.baipar-listing-page { width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
.bsl {
    --ink: #101a2b;
    --muted: #687184;
    --line: #e4e6e3;
    --surface: #fff;
    --canvas: #f4f5f2;
    --red: var(--baipar-primary, #e11b22);
    --navy: var(--baipar-secondary, #0d1b34);
    --blue: #3176ef;
    position: relative;
    width: 100%;
    overflow: clip;
    color: var(--ink);
    background: var(--canvas);
    font-family: var(--wp--preset--font-family--body, "DM Sans", sans-serif);
    font-size: 14px;
}
.bsl *, .bsl *::before, .bsl *::after { box-sizing: border-box; }
.bsl button, .bsl input, .bsl textarea, .bsl select { font: inherit; }
.bsl button { cursor: pointer; }
.bsl [hidden] { display: none !important; }
.bsl .baipar-icon svg { display: block; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.bsl .baipar-icon svg * { fill: none; stroke: currentColor; }
.bsl-shell { width: min(1240px, calc(100% - 48px)); margin-inline: auto; }

/* Editorial media header */
.bsl-hero { position: relative; padding: 23px 0 0; background: var(--canvas); }
.bsl-hero__content { position: relative; }
.bsl-hero__top { min-height: 42px; display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin-bottom: 15px; }
.bsl-breadcrumb { min-width: 0; display: flex; align-items: center; gap: 9px; padding-top: 9px; color: #7a8290; font-size: 11px; white-space: nowrap; }
.bsl-breadcrumb a { color: inherit; text-decoration: none; }
.bsl-breadcrumb a:hover { color: var(--red); }
.bsl-breadcrumb strong { overflow: hidden; color: var(--ink); text-overflow: ellipsis; }
.bsl-hero-tools { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.bsl-hero-tools button {
    min-height: 38px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 0 13px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: #fff;
    color: #3d4758;
    font-size: 11px;
    font-weight: 700;
    box-shadow: 0 2px 8px rgba(16,26,43,.04);
}
.bsl-hero-tools button:hover { border-color: #c9ced4; color: var(--ink); transform: translateY(-1px); }
.bsl-hero-tools button svg { width: 16px; height: 16px; fill: none; stroke: currentColor; }
.bsl-hero-tools .baipar-favorite-count { display: none; }
.bsl-hero-tools .baipar-favorite-btn.active { border-color: rgba(225,27,34,.2); color: var(--red); background: #fff5f5; }
.bsl-photo-counter { color: #fff !important; border-color: var(--navy) !important; background: var(--navy) !important; }
.bsl-cover-grid {
    height: clamp(350px, 36vw, 470px);
    display: grid;
    grid-template-columns: minmax(0, 1.85fr) minmax(260px, .8fr);
    grid-template-rows: repeat(2, minmax(0, 1fr));
    gap: 9px;
    overflow: hidden;
    border-radius: 24px;
    background: #dfe2df;
}
.bsl-cover-grid button { position: relative; overflow: hidden; padding: 0; border: 0; background: #dfe2df; }
.bsl-cover-grid button:first-child { grid-row: 1 / 3; }
.bsl-cover-grid--1 button:first-child { grid-column: 1 / -1; }
.bsl-cover-grid--2 button:nth-child(2) { grid-row: 1 / 3; }
.bsl-cover-grid img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .5s cubic-bezier(.2,.7,.2,1); }
.bsl-cover-grid button:hover img { transform: scale(1.025); }
.bsl-cover-grid button::after { position: absolute; inset: 0; content: ""; background: linear-gradient(180deg, transparent 65%, rgba(6,12,22,.14)); pointer-events: none; }
.bsl-cover-grid__fallback { grid-area: 1 / 1 / 3 / 3; display: grid; place-items: center; background: linear-gradient(135deg, #13223b, #273957); }
.bsl-cover-grid__fallback span { color: rgba(255,255,255,.9); font-size: 90px; font-weight: 900; }

/* Identity card */
.bsl-profile {
    position: relative;
    z-index: 2;
    width: calc(100% - 52px);
    min-height: 174px;
    display: grid;
    grid-template-columns: 106px minmax(0, 1fr) auto;
    align-items: center;
    gap: 22px;
    margin: -72px auto 0;
    padding: 25px 28px;
    border: 1px solid rgba(13,27,52,.08);
    border-radius: 22px;
    background: rgba(255,255,255,.98);
    box-shadow: 0 24px 60px rgba(13,27,52,.12), 0 2px 8px rgba(13,27,52,.05);
}
.bsl-logo { width: 96px; height: 96px; overflow: hidden; display: grid; place-items: center; padding: 8px; border: 1px solid #e2e4e1; border-radius: 18px; background: #fff; }
.bsl-logo img { width: 100%; height: 100%; display: block; object-fit: contain; }
.bsl-logo--fallback { color: #fff; border: 0; background: var(--navy); font-size: 38px; font-weight: 900; }
.bsl-profile__copy { min-width: 0; }
.bsl-profile__copy h1 { display: flex; align-items: center; gap: 8px; margin: 0; color: var(--ink); font-family: var(--wp--preset--font-family--display, "Plus Jakarta Sans", sans-serif); font-size: clamp(28px, 3vw, 42px); font-weight: 800; letter-spacing: -.045em; line-height: 1.04; }
.bsl-profile__copy h1 span { display: inline-flex; color: var(--blue); }
.bsl-profile__copy > p { margin: 9px 0 0; color: var(--muted); font-size: 13px; }
.bsl-rating-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 10px; color: #6c7482; font-size: 11px; }
.bsl-rating-row > a { color: #9a6500; font-weight: 750; text-decoration: none; }
.bsl-open { display: inline-flex; align-items: center; gap: 6px; color: #7b8491; font-weight: 700; }
.bsl-open::before { width: 7px; height: 7px; content: ""; border-radius: 50%; background: #a9afb7; }
.bsl-open.is-open { color: #168554; }
.bsl-open.is-open::before { background: #18a465; box-shadow: 0 0 0 4px rgba(24,164,101,.1); }
.bsl-pills { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 11px; }
.bsl-pills span { padding: 5px 9px; border-radius: 999px; background: #f0f2ef; color: #596272; font-size: 9px; font-weight: 650; }
.bsl-profile__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.bsl-profile__actions:empty, .bsl-mobile-actions:empty { display: none; }
.bsl-primary-cta, .bsl-secondary-cta { min-height: 46px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 16px; border-radius: 9px; font-size: 11px; font-weight: 800; text-decoration: none; white-space: nowrap; }
.bsl-primary-cta { border: 1px solid var(--red); background: var(--red); color: #fff; box-shadow: 0 10px 22px rgba(225,27,34,.18); }
.bsl-primary-cta:hover { border-color: var(--navy); background: var(--navy); color: #fff; }
.bsl-secondary-cta { border: 1px solid #dfe2e5; background: #fff; color: var(--navy); }
.bsl-secondary-cta:hover { border-color: var(--navy); }
.bsl-primary-cta svg, .bsl-secondary-cta svg { width: 16px; height: 16px; fill: none; stroke: currentColor; }

/* Information rail */
.bsl-stage { position: relative; padding-top: 24px; }
.bsl-facts { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); overflow: hidden; border: 1px solid var(--line); border-radius: 17px; background: rgba(255,255,255,.72); }
.bsl-facts > div { min-width: 0; display: flex; align-items: center; gap: 11px; padding: 18px 20px; border-left: 1px solid var(--line); }
.bsl-facts > div:first-child { border-left: 0; }
.bsl-facts > div > svg { width: 34px; height: 34px; flex: 0 0 34px; padding: 9px; border-radius: 10px; background: #ecefeb; color: var(--navy); }
.bsl-facts span { min-width: 0; color: #858c97; font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.bsl-facts strong { overflow: hidden; display: block; margin-top: 4px; color: var(--ink); font-size: 11px; text-transform: none; letter-spacing: 0; text-overflow: ellipsis; white-space: nowrap; }
.bsl-section-nav { position: sticky; z-index: 50; top: 63px; display: flex; align-items: center; gap: 28px; margin-top: 18px; padding: 0 22px; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.94); box-shadow: 0 8px 25px rgba(13,27,52,.06); backdrop-filter: blur(14px); }
.bsl-section-nav a { position: relative; min-height: 50px; display: inline-flex; align-items: center; color: #6e7683; font-size: 11px; font-weight: 750; text-decoration: none; white-space: nowrap; }
.bsl-section-nav a::after { position: absolute; right: 0; bottom: -1px; left: 0; height: 2px; content: ""; transform: scaleX(0); background: var(--red); transition: transform .18s ease; }
.bsl-section-nav a:hover { color: var(--ink); }
.bsl-section-nav a:hover::after { transform: scaleX(1); }

/* Main editorial grid */
.bsl-columns { display: grid; grid-template-columns: minmax(0, 1fr) 340px; align-items: start; gap: 28px; padding: 22px 0 92px; }
.bsl-columns--single { grid-template-columns: minmax(0, 1fr); }
.bsl-main, .bsl-side { min-width: 0; display: grid; align-content: start; gap: 20px; }
.bsl-side { position: sticky; top: 132px; }
.bsl-card { scroll-margin-top: 128px; overflow: hidden; padding: 30px 32px; border: 1px solid var(--line); border-radius: 18px; background: var(--surface); box-shadow: 0 2px 3px rgba(13,27,52,.025); }
.bsl-card > h2, .bsl-card-title h2 { margin: 0 0 21px; color: var(--ink); font-family: var(--wp--preset--font-family--display, "Plus Jakarta Sans", sans-serif); font-size: 20px; font-weight: 800; letter-spacing: -.025em; }
.bsl-card-title { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.bsl-card-title button, .bsl-card-title a { padding: 0; border: 0; background: transparent; color: var(--red); font-size: 10px; font-weight: 800; text-decoration: none; }
.bsl-about > div { max-height: 104px; overflow: hidden; color: #505a68; font-size: 14px; line-height: 1.82; }
.bsl-about.is-expanded > div { max-height: none; }
.bsl-about > div > :first-child { margin-top: 0; }
.bsl-about > button { margin-top: 13px; padding: 0 0 3px; border: 0; border-bottom: 1px solid currentColor; background: none; color: var(--red); font-size: 10px; font-weight: 800; }
.bsl-amenities { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; }
.bsl-amenities > div { min-width: 0; display: flex; align-items: center; gap: 10px; padding: 12px; border-radius: 10px; background: #f6f7f4; color: #4f5967; font-size: 11px; }
.bsl-amenities i { width: 28px; height: 28px; display: grid; flex: 0 0 28px; place-items: center; color: var(--red); font-style: normal; }
.bsl-payments { display: flex; flex-wrap: wrap; gap: 8px; }
.bsl-payments span { min-height: 36px; display: inline-flex; align-items: center; gap: 7px; padding: 0 13px; border: 1px solid #e4e6e2; border-radius: 999px; color: #4d5664; font-size: 10px; }
.bsl-payments svg { color: var(--red); }

/* Conversion sidebar */
.bsl-contact-card { border: 0; background: var(--navy); color: #fff; box-shadow: 0 18px 40px rgba(13,27,52,.13); }
.bsl-contact-card > h2 { color: #fff; }
.bsl-contact { display: grid; }
.bsl-contact > a, .bsl-contact > div { min-width: 0; display: flex; align-items: center; gap: 12px; padding: 13px 0; border-top: 1px solid rgba(255,255,255,.1); color: rgba(255,255,255,.82); font-size: 11px; line-height: 1.5; text-decoration: none; }
.bsl-contact > :first-child { border-top: 0; }
.bsl-contact > a:hover { color: #fff; }
.bsl-contact > a > svg, .bsl-contact > div > svg { width: 34px; height: 34px; flex: 0 0 34px; padding: 9px; border-radius: 10px; background: rgba(255,255,255,.09); color: #fff; }
.bsl-contact span { min-width: 0; overflow-wrap: anywhere; }
.bsl-map { padding: 12px; }
.bsl-map > h2 { padding: 13px 14px 0; }
.bsl-map .baipar-location-map-wrap { overflow: hidden; border: 0; border-radius: 12px; background: #edf0ec; }
.bsl-map .baipar-listing-map, .bsl-map .baipar-google-map-embed { width: 100%; display: block; border: 0; }
.bsl-map .baipar-map-fallback { min-height: 220px; display: grid; place-items: center; padding: 24px; color: #5b687e; text-align: center; }
.bsl-map .baipar-directions-link { min-height: 44px; display: flex; align-items: center; justify-content: center; gap: 6px; margin-top: 8px; border: 1px solid #dce2df; border-radius: 9px; color: var(--navy); font-size: 10px; font-weight: 800; text-decoration: none; }
.bsl-tags { display: flex; flex-wrap: wrap; gap: 7px; }
.bsl-tags a { padding: 7px 11px; border-radius: 999px; background: #f0f2ef; color: #56606d; font-size: 9px; font-weight: 700; text-decoration: none; }

/* Google review surface */
.bsl-google-reviews { display: block; padding: 32px; border-radius: 18px; box-shadow: none; }
.bsl-google-reviews > h2 { margin: 0 0 18px; }
.bsl-google-reviews > header { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 24px; }
.bsl-google-reviews > header h2 { display: flex; align-items: baseline; margin: 0 0 7px; color: #24272c; font-family: Arial, sans-serif; font-size: 20px; font-weight: 400; letter-spacing: -.02em; }
.bsl-google-reviews__wordmark { display: inline-flex; margin-right: 5px; font-size: 25px; font-weight: 500; letter-spacing: -1.5px; }
.bsl-google-reviews__wordmark span:nth-child(1), .bsl-google-reviews__wordmark span:nth-child(4) { color: #4285f4; }
.bsl-google-reviews__wordmark span:nth-child(2), .bsl-google-reviews__wordmark span:nth-child(6) { color: #ea4335; }
.bsl-google-reviews__wordmark span:nth-child(3) { color: #fbbc05; }
.bsl-google-reviews__wordmark span:nth-child(5) { color: #34a853; }
.bsl-google-reviews__aggregate { display: flex; align-items: center; gap: 9px; color: #9298a2; font-family: Arial, sans-serif; font-size: 10px; }
.bsl-google-reviews__aggregate > strong { color: #202124; font-size: 18px; line-height: 1; }
.bsl-google-reviews__stars { --rating-width: 100%; position: relative; display: inline-block; color: #d9dde3; font-family: Arial, sans-serif; font-size: 18px; letter-spacing: 1px; line-height: 1; white-space: nowrap; }
.bsl-google-reviews__stars::after { position: absolute; top: 0; left: 0; width: var(--rating-width); overflow: hidden; content: "★★★★★"; color: #fbbc04; white-space: nowrap; }
.bsl-google-reviews__write { min-height: 38px; display: inline-flex; align-items: center; justify-content: center; padding: 0 15px; border-radius: 7px; background: #e8f0fe; color: #1a73e8; font-size: 10px; font-weight: 700; text-decoration: none; }
.bsl-google-reviews__carousel { position: relative; }
.bsl-google-reviews__list { display: grid; grid-auto-columns: calc((100% - 32px) / 3); grid-auto-flow: column; gap: 16px; overflow-x: auto; padding: 1px; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: none; }
.bsl-google-reviews__list::-webkit-scrollbar { display: none; }
.bsl-google-reviews__list article { min-width: 0; min-height: 226px; display: flex; flex-direction: column; align-items: flex-start; scroll-snap-align: start; padding: 18px; border: 1px solid #e1e4e0; border-radius: 12px; background: #fbfcfa; }
.bsl-google-reviews__author { width: 100%; display: grid; grid-template-columns: 42px minmax(0, 1fr); align-items: center; gap: 1px 10px; }
.bsl-google-reviews__avatar { position: relative; grid-row: 1 / 3; width: 40px; height: 40px; display: block; }
.bsl-google-reviews__avatar img, .bsl-google-reviews__avatar-fallback { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; object-fit: cover; }
.bsl-google-reviews__avatar-fallback { background: #e8f0fe; color: #1a73e8; font-size: 16px; font-weight: 800; }
.bsl-google-reviews__source-badge { position: absolute; right: -3px; bottom: -3px; width: 18px; height: 18px; display: grid; place-items: center; border: 2px solid #fff; border-radius: 50%; background: #fff; color: #4285f4; font: 800 13px Arial,sans-serif; }
.bsl-google-reviews__author a, .bsl-google-reviews__author strong { overflow: hidden; color: #24272c; font-size: 11px; font-weight: 800; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }
.bsl-google-reviews__author > span:last-child { color: #9aa0a6; font-size: 9px; }
.bsl-google-reviews__list article > .bsl-google-reviews__stars { margin-top: 12px; font-size: 16px; }
.bsl-google-reviews__text { display: -webkit-box; overflow: hidden; margin: 8px 0 0; color: #4a5058; font-size: 11px; line-height: 1.55; white-space: pre-line; -webkit-box-orient: vertical; -webkit-line-clamp: 4; }
.bsl-google-reviews__list article.is-expanded .bsl-google-reviews__text { display: block; overflow: visible; }
.bsl-google-reviews__more { margin: 2px 0 0; padding: 0; border: 0; background: transparent; color: #8a9098; font-size: 10px; }
.bsl-google-reviews__list article > small, .bsl-google-reviews__list article > time { display: block; margin-top: 8px; color: var(--muted); font-size: 9px; }
.bsl-google-reviews__list article > small button { padding: 0; border: 0; background: transparent; color: var(--blue); font-size: inherit; }
.bsl-google-reviews__source { margin-top: auto; padding-top: 10px; color: #1a73e8; font-size: 9px; text-decoration: none; }
.bsl-google-reviews__nav { position: absolute; z-index: 2; top: 50%; width: 32px; height: 32px; display: grid; place-items: center; padding: 0 0 2px; transform: translateY(-50%); border: 0; border-radius: 50%; background: rgba(13,27,52,.82); color: #fff; font: 27px/1 Arial,sans-serif; box-shadow: 0 3px 10px rgba(0,0,0,.18); }
.bsl-google-reviews__nav--previous { left: -16px; }
.bsl-google-reviews__nav--next { right: -16px; }
.bsl-google-reviews > footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 14px; padding-top: 14px; }
.bsl-google-reviews__link { color: #1a73e8; font-size: 10px; font-weight: 700; text-decoration: none; }
.bsl-google-reviews > footer small { color: #9aa0a6; font-size: 8px; }
.bsl-google-reviews__empty { margin: 20px 0; padding: 18px; border-radius: 9px; background: #f3f5f2; color: var(--muted); }
.bsl-google-reviews__skeleton span { display: block; width: 55%; height: 14px; margin: 12px 0; border-radius: 5px; background: linear-gradient(90deg, #edf0ec, #fafbfa, #edf0ec); background-size: 200% 100%; animation: bsl-shimmer 1.2s infinite; }
.bsl-google-reviews__skeleton span:nth-child(2) { width: 90%; }
.bsl-google-reviews__skeleton p { color: var(--muted); }
@keyframes bsl-shimmer { to { background-position: -200% 0; } }

.bsl-related { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.bsl-related > a { min-width: 0; color: var(--ink); text-decoration: none; }
.bsl-related > a > div { aspect-ratio: 1.22; overflow: hidden; border-radius: 10px; background: #e5e7e4; }
.bsl-related img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.bsl-related > a:hover img { transform: scale(1.035); }
.bsl-related strong, .bsl-related span, .bsl-related small { overflow: hidden; display: block; margin-top: 6px; text-overflow: ellipsis; white-space: nowrap; }
.bsl-related strong { font-size: 10px; }
.bsl-related span { color: #966400; font-size: 9px; font-weight: 800; }
.bsl-related small { color: var(--muted); font-size: 8px; }
.bsl-popularity-badge { align-self: flex-start; padding: 3px 8px; border-radius: 99px; background: #fff1d6; color: #8a5700; font-size: 9px; font-weight: 800; }

/* Listing events */
.bsl-events-count { padding: 5px 9px; border-radius: 999px; background: #f0f2f6; color: #667186; font-size: 9px; font-weight: 750; white-space: nowrap; }
.bsl-events-tools { display: flex; align-items: center; gap: 9px; }
.bsl-events-nav { display: flex; gap: 5px; }
.bsl-events-nav button { width: 44px; height: 44px; display: grid; place-items: center; padding: 0 0 2px; border: 1px solid #dfe3e9; border-radius: 50%; background: #fff; color: #102543; font: 20px/1 Arial, sans-serif; box-shadow: 0 3px 9px rgba(13,27,52,.06); transition: color .18s ease, border-color .18s ease, transform .18s ease; }
.bsl-events-nav button:hover, .bsl-events-nav button:focus-visible { transform: translateY(-1px); border-color: var(--baipar-primary); color: var(--baipar-primary); outline: none; }
.bsl-events-grid { display: flex; gap: 14px; overflow-x: auto; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: none; }
.bsl-events-grid::-webkit-scrollbar { display: none; }
.bsl-event-card { min-width: 0; flex: 0 0 calc((100% - 14px) / 2); overflow: hidden; scroll-snap-align: start; border: 1px solid #e5e8ed; border-radius: 12px; background: #fff; box-shadow: 0 8px 22px rgba(13,27,52,.055); transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease; }
.bsl-event-card:hover { transform: translateY(-3px); border-color: rgba(225,27,34,.24); box-shadow: 0 15px 32px rgba(13,27,52,.1); }
.bsl-event-card__media { position: relative; height: 165px; display: block; overflow: hidden; background: linear-gradient(135deg, #102543, #34748a); }
.bsl-event-card__media::after { position: absolute; inset: 0; content: ""; background: linear-gradient(180deg, rgba(8,20,39,.02) 38%, rgba(8,20,39,.46)); pointer-events: none; }
.bsl-event-card__media img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .45s cubic-bezier(.2,.7,.2,1); }
.bsl-event-card:hover .bsl-event-card__media img { transform: scale(1.045); }
.bsl-event-card__media-fallback { width: 100%; height: 100%; display: grid; place-items: center; color: rgba(255,255,255,.82); }
.bsl-event-card__media-fallback svg { width: 40px; height: 40px; }
.bsl-event-card__status { position: absolute; z-index: 2; top: 12px; right: 12px; padding: 6px 9px; border: 1px solid rgba(255,255,255,.38); border-radius: 999px; background: rgba(17,139,89,.92); color: #fff; font-size: 8px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; backdrop-filter: blur(8px); }
.bsl-event-card.is-past .bsl-event-card__status, .bsl-event-card.is-completed .bsl-event-card__status { background: rgba(63,73,89,.9); }
.bsl-event-card.is-postponed .bsl-event-card__status { background: rgba(183,112,7,.92); }
.bsl-event-card.is-sold_out .bsl-event-card__status, .bsl-event-card.is-cancelled .bsl-event-card__status { background: rgba(190,30,45,.92); }
.bsl-event-card__date { position: absolute; z-index: 2; bottom: 12px; left: 12px; width: 50px; min-height: 53px; display: grid; align-content: center; justify-items: center; overflow: hidden; border-radius: 9px; background: rgba(255,255,255,.96); color: #102543; line-height: 1; box-shadow: 0 7px 18px rgba(6,18,35,.18); }
.bsl-event-card__date strong { font-size: 19px; }
.bsl-event-card__date span { margin-top: 4px; color: var(--baipar-primary); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.bsl-event-card__body { padding: 17px; }
.bsl-event-card__type { display: block; margin-bottom: 7px; color: var(--baipar-primary); font-size: 8px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.bsl-event-card h3 { margin: 0; font-family: var(--wp--preset--font-family--display, "Plus Jakarta Sans", sans-serif); font-size: 15px; font-weight: 800; line-height: 1.35; letter-spacing: -.015em; }
.bsl-event-card h3 a { display: -webkit-box; overflow: hidden; color: #102543; text-decoration: none; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.bsl-event-card h3 a:hover { color: var(--baipar-primary); }
.bsl-event-card__meta { display: grid; gap: 7px; margin-top: 13px; color: #667186; font-size: 9px; }
.bsl-event-card__meta span { min-width: 0; display: flex; align-items: center; gap: 7px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bsl-event-card__meta svg { width: 13px !important; height: 13px !important; flex: 0 0 13px; color: var(--baipar-primary); }
.bsl-event-card__link { display: inline-flex; align-items: center; gap: 7px; margin-top: 15px; color: #102543; font-size: 9px; font-weight: 800; text-decoration: none; }
.bsl-event-card__link span { color: var(--baipar-primary); font-size: 14px; transition: transform .18s ease; }
.bsl-event-card__link:hover { color: var(--baipar-primary); }
.bsl-event-card__link:hover span { transform: translateX(3px); }

.bsl-mobile-actions { display: none; }
.bsl-lightbox { position: fixed; z-index: 100000; inset: 0; display: grid; grid-template-columns: 60px minmax(0, 1fr) 60px; place-items: center; padding: 60px 24px 35px; background: rgba(4,10,22,.96); }
.bsl-lightbox > img { max-width: 100%; max-height: calc(100vh - 100px); object-fit: contain; }
.bsl-lightbox > button { width: 46px; height: 46px; border: 1px solid rgba(255,255,255,.22); border-radius: 50%; background: rgba(255,255,255,.08); color: #fff; font-size: 27px; }
.bsl-lightbox > button:first-child { position: absolute; top: 17px; right: 17px; }
.bsl-lightbox > span { position: absolute; bottom: 18px; color: #fff; font-size: 12px; }
.bsl-modal { position: fixed; z-index: 99990; inset: 0; display: grid; place-items: center; padding: 20px; background: rgba(5,15,31,.66); }
.bsl-modal > div { position: relative; width: min(100%, 520px); max-height: 86vh; overflow-y: auto; padding: 28px; border-radius: 15px; background: #fff; box-shadow: 0 25px 80px rgba(5,15,31,.28); }
.bsl-modal > div > button { position: absolute; top: 12px; right: 12px; width: 36px; height: 36px; border: 0; border-radius: 50%; background: #f1f3f0; font-size: 20px; }
.bsl-modal input, .bsl-modal textarea, .bsl-modal select { width: 100%; max-width: none; border: 1px solid #d8ded8; border-radius: 8px; }
.bsl-modal input, .bsl-modal select { min-height: 43px; }
.bsl-modal textarea { padding: 10px; }
.bsl-toast { position: fixed; z-index: 100010; right: 18px; bottom: 18px; padding: 10px 14px; border-radius: 7px; background: var(--ink); color: #fff; font-size: 11px; opacity: 0; pointer-events: none; transition: opacity .2s; }
.bsl-toast.is-visible { opacity: 1; }

@media (max-width: 1050px) {
    .bsl-profile { grid-template-columns: 92px minmax(0,1fr); }
    .bsl-profile__actions { grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0,1fr)); }
    .bsl-columns { grid-template-columns: minmax(0,1fr) 300px; gap: 20px; }
    .bsl-facts > div { padding-inline: 12px; }
    .bsl-amenities { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 820px) {
    .bsl-shell { width: min(100% - 28px, 760px); }
    .bsl-cover-grid { height: 390px; grid-template-columns: minmax(0,1.5fr) minmax(180px,.8fr); border-radius: 18px; }
    .bsl-profile { width: calc(100% - 24px); margin-top: -54px; }
    .bsl-facts { grid-auto-columns: minmax(175px, 1fr); grid-auto-flow: column; grid-template-columns: none; overflow-x: auto; scrollbar-width: none; }
    .bsl-facts > div { border-left: 1px solid var(--line); }
    .bsl-facts > div:first-child { border-left: 0; }
    .bsl-columns { grid-template-columns: minmax(0,1fr); }
    .bsl-side { position: static; grid-template-columns: repeat(2, minmax(0,1fr)); }
    .bsl-google-reviews__list { grid-auto-columns: calc((100% - 16px) / 2); }
}
@media (max-width: 600px) {
    .bsl { padding-bottom: 72px; }
    .bsl-shell { width: calc(100% - 20px); }
    .bsl-hero { padding-top: 12px; }
    .bsl-hero__top { min-height: 40px; margin-bottom: 9px; }
    .bsl-breadcrumb { display: none; }
    .bsl-hero-tools { width: 100%; justify-content: flex-end; }
    .bsl-hero-tools button { width: 38px; min-height: 38px; justify-content: center; padding: 0; }
    .bsl-hero-tools button span { display: none; }
    .bsl-cover-grid { height: 290px; grid-template-columns: minmax(0,1.6fr) minmax(100px,.75fr); gap: 5px; border-radius: 14px; }
    .bsl-profile { width: calc(100% - 12px); grid-template-columns: 66px minmax(0,1fr); gap: 13px; margin-top: -38px; padding: 17px; border-radius: 16px; }
    .bsl-logo { width: 62px; height: 62px; padding: 5px; border-radius: 13px; }
    .bsl-profile__copy h1 { font-size: 26px; }
    .bsl-profile__copy > p { font-size: 11px; }
    .bsl-pills { display: none; }
    .bsl-profile__actions { gap: 7px; }
    .bsl-primary-cta, .bsl-secondary-cta { min-height: 42px; padding-inline: 10px; font-size: 10px; }
    .bsl-stage { padding-top: 15px; }
    .bsl-section-nav { top: 63px; gap: 22px; overflow-x: auto; margin-top: 12px; padding-inline: 16px; border-radius: 11px; scrollbar-width: none; }
    .bsl-section-nav a { min-height: 45px; }
    .bsl-columns { gap: 14px; padding: 14px 0 32px; }
    .bsl-main, .bsl-side { gap: 14px; }
    .bsl-side { grid-template-columns: minmax(0,1fr); }
    .bsl-card { padding: 22px 18px; border-radius: 14px; }
    .bsl-card > h2, .bsl-card-title h2 { margin-bottom: 17px; font-size: 18px; }
    .bsl-amenities { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; }
    .bsl-amenities > div { padding: 9px 7px; font-size: 10px; }
    .bsl-google-reviews { padding: 22px 18px; }
    .bsl-google-reviews > header { align-items: flex-start; margin-bottom: 20px; }
    .bsl-google-reviews__wordmark { font-size: 22px; }
    .bsl-google-reviews__aggregate { flex-wrap: wrap; gap: 5px; }
    .bsl-google-reviews__list { grid-auto-columns: 88%; }
    .bsl-google-reviews__nav--previous { left: -12px; }
    .bsl-google-reviews__nav--next { right: -12px; }
    .bsl-google-reviews > footer { flex-direction: column; }
    .bsl-related { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; }
    .bsl-related > a { min-width: 68%; scroll-snap-align: start; }
    .bsl-event-card { flex-basis: 100%; }
    .bsl-event-card__media { height: 185px; }
    .bsl-mobile-actions { position: fixed; z-index: 9990; right: 10px; bottom: 9px; left: 10px; min-height: 57px; display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; overflow: hidden; padding: 5px; border: 1px solid rgba(255,255,255,.12); border-radius: 16px; background: rgba(13,27,52,.96); box-shadow: 0 14px 35px rgba(13,27,52,.28); backdrop-filter: blur(14px); }
    .bsl-mobile-actions a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; border-left: 1px solid rgba(255,255,255,.1); color: #fff; font-size: 8px; font-weight: 700; text-decoration: none; }
    .bsl-mobile-actions a:first-child { border-left: 0; }
    .bsl-mobile-actions svg { width: 17px; height: 17px; fill: none; stroke: currentColor; }
    .bsl-lightbox { grid-template-columns: 42px minmax(0,1fr) 42px; padding-inline: 6px; }
}
@media (prefers-reduced-motion: reduce) {
    .bsl *, .bsl *::before, .bsl *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
    .bsl-google-reviews__skeleton span { animation: none; }
}

/* Screenshot-aligned listing composition */
.bsl { background: #f7f8fa; }
.bsl-hero { padding: 0; background: #fff; }
.bsl-hero__content { width: 100%; max-width: none; }
.bsl-cover-grid {
    width: 100%;
    height: clamp(390px, 25.8vw, 510px);
    display: flex;
    gap: 0;
    overflow: hidden;
    border-radius: 0;
    background: #e5e6e7;
}
.bsl-cover-grid button { min-width: 0; height: 100%; flex: 0 0 20%; border-radius: 0; }
.bsl-cover-grid button:first-child { grid-row: auto; }
.bsl-cover-grid--1 button { flex-basis: 100%; }
.bsl-cover-grid--2 button { flex-basis: 50%; }
.bsl-cover-grid--3 button { flex-basis: 33.333%; }
.bsl-cover-grid--4 button { flex-basis: 25%; }
.bsl-cover-grid--5 button:nth-child(1) { flex-basis: 18%; }
.bsl-cover-grid--5 button:nth-child(2) { flex-basis: 25%; }
.bsl-cover-grid--5 button:nth-child(3) { flex-basis: 24%; }
.bsl-cover-grid--5 button:nth-child(4) { flex-basis: 18%; }
.bsl-cover-grid--5 button:nth-child(5) { flex-basis: 15%; }
.bsl-cover-grid button::after { display: none; }
.bsl-cover-grid__fallback { width: 100%; height: 100%; }
.bsl-profile {
    width: min(1620px, calc(100% - 80px));
    min-height: 188px;
    grid-template-columns: 126px minmax(0, 1fr);
    gap: 24px;
    margin: 0 auto;
    padding: 37px 0 25px;
    border: 0;
    border-radius: 0;
    background: #fff;
    box-shadow: none;
}
.bsl-logo { width: 126px; height: 126px; padding: 0; overflow: hidden; border: 5px solid #f4f1e9; border-radius: 50%; }
.bsl-logo img { object-fit: cover; }
.bsl-logo--fallback { border: 0; border-radius: 50%; }
.bsl-profile__copy h1 { font-size: clamp(29px, 2.2vw, 42px); letter-spacing: -.035em; }
.bsl-profile__copy > p { margin-top: 13px; color: #3f4d61; font-size: 17px; }
.bsl-rating-row { margin-top: 12px; color: #566175; font-size: 13px; }
.bsl-rating-row > a { color: #a66c00; }
.bsl-pills { display: none; }
.bsl-action-bar {
    position: relative;
    width: min(1620px, calc(100% - 80px));
    min-height: 105px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    margin: 0 auto;
    border-top: 1px solid #dfe3e8;
}
.bsl-action-bar__links { min-width: 0; display: flex; align-items: center; gap: clamp(18px, 2.3vw, 37px); }
/* Book and Call are the two things a visitor came to do, so they sit together
   at the end of the bar rather than one of them hiding among the icon links.
   Side by side they each give up some width — two 255px buttons would push the
   icon row off the edge on a laptop. */
.bsl-action-bar__cta { display: flex; flex: 0 0 auto; align-items: center; gap: 10px; }
.bsl-action-bar__cta.is-pair .bsl-call-now { min-width: 172px; padding: 0 18px; font-size: 15px; }
.bsl-action-bar__links > a,
.bsl-action-bar__links > button,
.bsl-action-bar__links .baipar-favorite-btn {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #4b5668;
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
    white-space: nowrap;
    box-shadow: none;
}
.bsl-action-bar__links svg { width: 23px; height: 23px; fill: none; stroke: var(--baipar-primary); color: var(--baipar-primary); stroke-width: 1.8; }
.bsl-action-bar__links > a:hover, .bsl-action-bar__links > button:hover { color: var(--baipar-primary); }
.bsl-action-bar__links .baipar-favorite-count { display: none; }
.bsl-call-now {
    min-width: 255px;
    min-height: 60px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 0 28px;
    border: 0;
    border-radius: 14px;
    background: var(--baipar-primary);
    color: #fff;
    font-size: 17px;
    font-weight: 650;
    text-decoration: none;
}
.bsl-call-now:hover { background: var(--navy); color: #fff; }
.bsl-call-now svg { width: 21px; height: 21px; fill: none; stroke: currentColor; }
/* The Book button becomes a link when the business keeps its calendar
   elsewhere. The trailing mark says the tab will change; at the same size as
   the leading icon it would read as a second action instead of a hint.
   !important because the narrow-screen rule below also sizes these with it. */
.bsl-book-now[href] svg:last-of-type { width: 14px !important; height: 14px !important; opacity: .72; margin-inline-start: -2px; }

.bsl-stage { width: min(1620px, calc(100% - 80px)); padding: 100px 0 95px; }
.bsl-facts, .bsl-section-nav { display: none; }
.bsl-columns { grid-template-columns: minmax(0, 1fr) 385px; gap: 28px; padding: 0; }
.bsl-main, .bsl-side { gap: 28px; }
.bsl-side { position: static; }
.bsl-card { padding: 31px; border: 0; border-radius: 13px; background: #fff; box-shadow: 0 7px 24px rgba(21,37,59,.045); }
.bsl-card > h2, .bsl-card-title { min-height: 58px; margin: 0 0 26px; padding-bottom: 22px; border-bottom: 1px solid #dfe3e8; }
.bsl-card > h2, .bsl-card-title h2 { display: flex; align-items: center; gap: 13px; margin-top: 0; color: #082147; font-size: 23px; letter-spacing: -.025em; }
.bsl-card > h2::before, .bsl-card-title h2::before { width: 40px; height: 28px; flex: 0 0 40px; content: ""; background: linear-gradient(var(--baipar-primary),var(--baipar-primary)) 0 2px/40px 4px no-repeat, linear-gradient(var(--baipar-primary),var(--baipar-primary)) 0 12px/27px 4px no-repeat, linear-gradient(var(--baipar-primary),var(--baipar-primary)) 0 22px/17px 4px no-repeat; }
.bsl-about > div { max-height: none; color: #172943; font-size: 15px; line-height: 1.75; }
.bsl-about > button { display: none; }
.bsl-amenities { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px 28px; }
.bsl-amenities > div { padding: 0; background: transparent; color: #536075; font-size: 13px; }
.bsl-amenities i { width: 54px; height: 54px; flex: 0 0 54px; border-radius: 50%; background: #f1f1f1; color: var(--baipar-primary); }
.bsl-amenities i svg { width: 26px; height: 26px; }
.bsl-details-card { padding-bottom: 27px; }
.bsl-details-card > h2::before { display: none; }
.bsl-details-card > h2 > svg { width: 26px; height: 26px; color: var(--baipar-primary); }
.bsl-details-card dl { display: grid; gap: 0; margin: 0; }
.bsl-details-card dl > div { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 13px 0; }
.bsl-details-card dt { color: #172943; font-size: 13px; }
.bsl-details-card dd { margin: 0; color: #082147; font-size: 13px; text-align: right; }
.bsl-contact-card { color: var(--ink); background: #fff; box-shadow: 0 7px 24px rgba(21,37,59,.045); }
.bsl-contact-card > h2 { color: #082147; }
.bsl-contact > a, .bsl-contact > div { border-color: #e4e7eb; color: #3e4c61; }
.bsl-contact > a > svg, .bsl-contact > div > svg { background: #f2f3f5; color: var(--baipar-primary); }
.bsl-map { padding: 18px; }
.bsl-map > h2 { padding: 9px 12px 18px; }

@media (max-width: 1100px) {
    .bsl-profile, .bsl-action-bar, .bsl-stage { width: calc(100% - 40px); }
    .bsl-action-bar__links { gap: 18px; overflow-x: auto; }
    .bsl-action-bar__links span { font-size: 12px; }
    .bsl-call-now { min-width: 190px; }
    .bsl-action-bar__cta.is-pair .bsl-call-now { min-width: 132px; }
    .bsl-columns { grid-template-columns: minmax(0, 1fr) 320px; }
}
@media (max-width: 820px) {
    .bsl-cover-grid { height: 380px; overflow-x: auto; scroll-snap-type: x mandatory; }
    .bsl-cover-grid button, .bsl-cover-grid--5 button:nth-child(n) { min-width: 72%; flex-basis: 72%; scroll-snap-align: start; }
    .bsl-profile { grid-template-columns: 90px minmax(0,1fr); padding-block: 28px 20px; }
    .bsl-logo { width: 90px; height: 90px; }
    .bsl-action-bar { align-items: stretch; flex-direction: column; padding-block: 18px; }
    .bsl-action-bar__links { width: 100%; }
    .bsl-action-bar__cta { width: 100%; }
    .bsl-call-now { width: 100%; min-height: 52px; }
    .bsl-action-bar__cta.is-pair .bsl-call-now { min-width: 0; flex: 1 1 0; padding: 0 10px; }
    .bsl-stage { padding-block: 55px; }
    .bsl-columns { grid-template-columns: 1fr; }
    .bsl-side { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .bsl-details-card { grid-row: 1; }
}
@media (max-width: 600px) {
    .bsl-cover-grid { height: 280px; }
    .bsl-profile, .bsl-action-bar, .bsl-stage { width: calc(100% - 24px); }
    .bsl-profile { grid-template-columns: 72px minmax(0,1fr); gap: 14px; min-height: 0; padding: 22px 0 18px; }
    .bsl-logo { width: 72px; height: 72px; border-width: 3px; }
    .bsl-profile__copy h1 { font-size: 25px; }
    .bsl-profile__copy > p { margin-top: 7px; font-size: 13px; }
    .bsl-action-bar { gap: 13px; }
    .bsl-action-bar__links { gap: 23px; }
    .bsl-action-bar__links > a, .bsl-action-bar__links > button, .bsl-action-bar__links .baipar-favorite-btn { flex-direction: column; gap: 4px; font-size: 9px; }
    .bsl-action-bar__links svg { width: 20px; height: 20px; }
    .bsl-stage { padding-block: 38px 32px; }
    .bsl-card { padding: 22px 18px; }
    .bsl-card > h2, .bsl-card-title { min-height: 48px; padding-bottom: 15px; }
    .bsl-card > h2, .bsl-card-title h2 { font-size: 19px; }
    .bsl-card > h2::before, .bsl-card-title h2::before { width: 30px; flex-basis: 30px; background-size: 30px 3px, 21px 3px, 13px 3px; }
    .bsl-about > div { font-size: 13px; }
    .bsl-amenities { grid-template-columns: 1fr 1fr; gap: 15px 8px; }
    .bsl-amenities i { width: 43px; height: 43px; flex-basis: 43px; }
    .bsl-side { grid-template-columns: 1fr; }
    .bsl-mobile-actions { display: none; }
}

/* Refined section surfaces and icon scale */
.bsl-profile__copy h1 span svg { width: 20px !important; height: 20px !important; }
.bsl-action-bar__links svg { width: 19px !important; height: 19px !important; }
.bsl-call-now svg { width: 17px !important; height: 17px !important; }
.bsl-card {
    position: relative;
    border: 1px solid #e7e9ed;
    box-shadow: 0 9px 30px rgba(17, 35, 61, .045);
    transition: border-color .2s ease, box-shadow .2s ease;
}
.bsl-main > .bsl-card::after {
    content: "";
    position: absolute;
    top: -1px;
    left: 31px;
    width: 48px;
    height: 3px;
    border-radius: 0 0 4px 4px;
    background: var(--baipar-primary);
}
.bsl-card > h2, .bsl-card-title { min-height: 50px; margin-bottom: 23px; padding-bottom: 17px; }
.bsl-card > h2, .bsl-card-title h2 { gap: 11px; font-size: 21px; }
.bsl-card > h2::before, .bsl-card-title h2::before {
    width: 30px;
    height: 22px;
    flex-basis: 30px;
    background-size: 30px 3px, 21px 3px, 13px 3px;
    background-position: 0 1px, 0 9px, 0 17px;
}
.bsl-details-card > h2 > svg { width: 20px !important; height: 20px !important; }
.bsl-details-card dl > div { border-bottom: 1px solid #eef0f2; }
.bsl-details-card dl > div:last-child { border-bottom: 0; }
.bsl-details-card dl > div:hover { padding-inline: 6px; background: #fafafa; }
.bsl-details-card dt { color: #647084; }
.bsl-details-card dd { font-weight: 650; }
.bsl-detail-communities { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 5px; }
.bsl-detail-community { display: inline-flex; align-items: center; gap: 5px; }
.bsl-detail-community > i { width: 21px; height: 21px; display: inline-grid; flex: 0 0 21px; place-items: center; overflow: hidden; border: 1px solid #e3e6ec; border-radius: 50%; background: #fff; font-style: normal; }
.bsl-detail-community > i img { width: 100% !important; height: 100% !important; display: block; object-fit: cover; }
.bsl-detail-community > i svg { width: 12px !important; height: 12px !important; color: var(--baipar-primary); }
.bsl-amenities { gap: 10px 12px; }
.bsl-amenities > div {
    min-height: 58px;
    padding: 9px 12px;
    border: 1px solid #eceef1;
    border-radius: 10px;
    background: #fafbfc;
    transition: border-color .18s ease, background .18s ease;
}
.bsl-amenities > div:hover { border-color: rgba(207,0,57,.2); background: #fff8fa; }
.bsl-amenities i { width: 36px; height: 36px; flex-basis: 36px; background: #f2f2f2; }
.bsl-amenities i svg, .bsl-amenities i img { width: 19px !important; height: 19px !important; object-fit: contain; }
.bsl-payments span { background: #fafbfc; }
.bsl-payments span svg { width: 15px !important; height: 15px !important; }
.bsl-contact > a, .bsl-contact > div { border-radius: 8px; transition: padding .18s ease, background .18s ease; }
.bsl-contact > a:hover { padding-inline: 7px; background: #fafafa; color: var(--baipar-primary); }
.bsl-contact > a > svg, .bsl-contact > div > svg { width: 29px !important; height: 29px !important; flex-basis: 29px; padding: 7px; border-radius: 8px; }
.bsl-map { border-color: #e7e9ed; }
.bsl-map .baipar-directions-link svg { width: 15px !important; height: 15px !important; }
.bsl-tags a { border: 1px solid #e5e8ec; background: #fafbfc; }
.bsl-related strong { margin-top: 9px; font-size: 11px; }
.bsl-google-reviews__write { border: 1px solid #d6e4fb; }

@media (max-width: 600px) {
    .bsl-main > .bsl-card::after { left: 18px; width: 38px; }
    .bsl-card > h2, .bsl-card-title h2 { font-size: 18px; }
    .bsl-card > h2::before, .bsl-card-title h2::before { width: 25px; flex-basis: 25px; background-size: 25px 3px, 17px 3px, 11px 3px; }
    .bsl-amenities { grid-template-columns: minmax(0, 1fr); }
    .bsl-amenities > div { min-height: 52px; }
}

/* Compact semantic section headers */
.bsl-main > .bsl-card::after { display: none; }
.bsl-card {
    border-color: #e8eaf0;
    border-radius: 15px;
    box-shadow: 0 10px 32px rgba(16, 33, 56, .055);
}
.bsl-card:hover { border-color: #dfe2e8; box-shadow: 0 14px 38px rgba(16, 33, 56, .075); }
.bsl-card > h2,
.bsl-card-title {
    min-height: 0;
    margin: -31px -31px 27px;
    padding: 22px 31px 19px;
    border-bottom: 1px solid #e8eaf0;
    background: linear-gradient(180deg, #fff, #fcfcfd);
}
.bsl-card > h2,
.bsl-card-title h2 { gap: 10px; font-size: 20px; }
.bsl-card-title h2 { margin-bottom: 0; }
.bsl-card > h2::before,
.bsl-card-title h2::before { display: none; }
.bsl-card > h2 > svg,
.bsl-card-title h2 > svg {
    width: 16px !important;
    height: 16px !important;
    flex: 0 0 16px;
    padding: 0 !important;
    color: var(--baipar-primary);
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
}
.bsl-card > h2 > .baipar-icon,
.bsl-card-title h2 > .baipar-icon {
    width: 14px !important;
    height: 14px !important;
    display: inline-grid;
    flex: 0 0 14px;
    place-items: center;
    color: var(--baipar-primary) !important;
}
.bsl-card > h2 > .baipar-icon svg,
.bsl-card-title h2 > .baipar-icon svg {
    width: 14px !important;
    height: 14px !important;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 1.8 !important;
}
.bsl-card > h2 > .baipar-icon svg *,
.bsl-card-title h2 > .baipar-icon svg * { fill: none !important; stroke: currentColor !important; }
.bsl-details-card > h2 > svg { width: 16px !important; height: 16px !important; }
.bsl-map { padding: 30px; }
.bsl-map > h2 { margin: -30px -30px 20px; padding: 22px 30px 19px; }
.bsl-amenities i { width: 32px; height: 32px; flex-basis: 32px; }
.bsl-amenities i svg, .bsl-amenities i img { width: 16px !important; height: 16px !important; }
.bsl-about > div { max-width: 900px; }
.bsl-contact > a, .bsl-contact > div { padding-block: 12px; }
.bsl-details-card dl > div { padding-block: 12px; }

@media (max-width: 600px) {
    .bsl-card > h2,
    .bsl-card-title { margin: -22px -18px 21px; padding: 18px 18px 15px; }
    .bsl-card > h2, .bsl-card-title h2 { font-size: 18px; }
    .bsl-map { padding: 18px; }
    .bsl-map > h2 { margin: -18px -18px 18px; padding: 18px 18px 15px; }
}

/* Home-page design language */
.bsl { background: #fff; }
.bsl-hero {
    background:
        linear-gradient(90deg, rgba(12,46,91,.96), rgba(15,57,96,.78)),
        radial-gradient(circle at 75% 35%, rgba(80,159,189,.45), transparent 30%),
        linear-gradient(135deg, #0d1b34, #174f72 65%, #79a3aa);
}
.bsl-cover-grid { height: clamp(310px, 22vw, 420px); }
.bsl-profile {
    width: min(var(--baipar-container-max), calc(100% - (2 * var(--baipar-container-gutter))));
    min-height: 148px;
    padding: 24px 0 20px;
    background: transparent;
}
.bsl-logo { width: 76px; height: 76px; border: 3px solid rgba(255,255,255,.75); border-radius: 50%; }
.bsl-profile { grid-template-columns: 80px minmax(0,1fr); }
.bsl-profile__copy h1 { color: #fff; font-size: clamp(27px,2.2vw,36px); text-shadow: 0 2px 12px rgba(0,0,0,.12); }
.bsl-profile__copy > p { margin-top: 8px; color: rgba(255,255,255,.76); font-size: 13px; }
.bsl-rating-row, .bsl-rating-row > a { color: rgba(255,255,255,.83); }
.bsl-open { color: rgba(255,255,255,.75); }
.bsl-open.is-open { color: #8ce2b7; }
.bsl-action-bar {
    width: min(var(--baipar-container-max), calc(100% - (2 * var(--baipar-container-gutter))));
    min-height: 78px;
    background: #fff;
    box-shadow: 0 0 0 100vmax #fff, 0 13px 25px rgba(20,31,70,.13);
    clip-path: inset(0 -100vmax -20px);
}
.bsl-action-bar::after {
    content: "";
    position: absolute;
    right: 50%;
    bottom: -18px;
    width: 100vw;
    height: 18px;
    transform: translateX(50%);
    background: linear-gradient(180deg, rgba(20,31,70,.14), rgba(20,31,70,0));
    pointer-events: none;
}
.bsl-action-bar__links > a, .bsl-action-bar__links > button, .bsl-action-bar__links .baipar-favorite-btn { min-height: 38px; font-size: 12px; }
.bsl-action-bar__links svg { width: 17px !important; height: 17px !important; stroke: var(--baipar-primary); color: var(--baipar-primary); }
.bsl-call-now { min-width: 190px; min-height: 46px; border-radius: 9px; background: var(--baipar-primary); font-size: 13px; }
.bsl-action-bar__cta.is-pair .bsl-call-now { min-width: 138px; padding: 0 14px; font-size: 12.5px; }
.bsl-stage { width: min(var(--baipar-container-max), calc(100% - (2 * var(--baipar-container-gutter)))); padding: 30px 0 50px; }
.bsl-columns { grid-template-columns: minmax(0,1fr) 320px; gap: 12px; }
.bsl-main, .bsl-side { gap: 12px; }
.bsl-card {
    padding: 18px 20px;
    border: 1px solid #e9ebf1;
    border-radius: 10px;
    box-shadow: none;
}
.bsl-card:hover { border-color: #dfe3ea; box-shadow: 0 5px 16px rgba(20,31,70,.045); }
.bsl-card > h2, .bsl-card-title {
    margin: -18px -20px 18px;
    padding: 17px 20px 14px;
    border-bottom-color: #edf0f4;
    background: #e8ecf0;
}
.bsl-card > h2, .bsl-card-title h2 { font-size: 16px; letter-spacing: -.015em; }
.bsl-card > h2 > svg, .bsl-card-title h2 > svg, .bsl-details-card > h2 > svg { width: 14px !important; height: 14px !important; flex-basis: 14px; color: var(--baipar-primary); }
.bsl-about > div { font-size: 13px; line-height: 1.72; }
.bsl-amenities { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.bsl-amenities > div { min-height: 52px; padding: 8px 10px; border-color: #edf0f4; border-radius: 8px; background: #fff; font-size: 10px; }
.bsl-amenities i { width: 29px; height: 29px; flex-basis: 29px; background: color-mix(in srgb, var(--baipar-primary) 8%, white); }
.bsl-amenities i svg, .bsl-amenities i img { width: 14px !important; height: 14px !important; }
.bsl-details-card dl > div { padding: 10px 0; }
.bsl-details-card dt, .bsl-details-card dd { font-size: 11px; }
.bsl-contact > a, .bsl-contact > div { padding: 10px 0; font-size: 10px; }
.bsl-contact > a > svg, .bsl-contact > div > svg { width: 27px !important; height: 27px !important; flex-basis: 27px; }
.bsl-contact > a > .baipar-icon {
    width: 27px !important;
    height: 27px !important;
    display: inline-grid;
    flex: 0 0 27px;
    place-items: center;
    padding: 6px;
    border-radius: 8px;
    background: #f2f3f5;
    color: var(--baipar-primary) !important;
}
.bsl-contact > a > .baipar-icon svg { width: 15px !important; height: 15px !important; fill: none !important; stroke: currentColor !important; stroke-width: 1.8 !important; }
.bsl-contact > a > .baipar-icon svg * { fill: none !important; stroke: currentColor !important; }
.bsl-contact > div { display: none; }
.bsl-map { padding: 12px; }
.bsl-map > h2 { margin: -12px -12px 12px; padding: 15px 14px 13px; }
.bsl-google-reviews { padding: 20px; }
.bsl-google-reviews__list article { min-height: 205px; padding: 15px; border-radius: 9px; }
.bsl-related { gap: 10px; }
.bsl-related > a > div { border-radius: 8px; }

@media (max-width: 820px) {
    .bsl-columns { grid-template-columns: 1fr; }
    .bsl-side { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 600px) {
    .bsl-cover-grid { height: 260px; }
    .bsl-profile, .bsl-action-bar, .bsl-stage { width: calc(100% - 28px); }
    .bsl-profile { min-height: 0; grid-template-columns: 58px minmax(0,1fr); padding: 18px 0 15px; }
    .bsl-logo { width: 54px; height: 54px; }
    .bsl-profile__copy h1 { font-size: 23px; }
    .bsl-action-bar { min-height: 0; padding: 13px 0; }
    .bsl-call-now { min-height: 43px; }
    .bsl-stage { padding-block: 22px 30px; }
    .bsl-card { padding: 16px; }
    .bsl-card > h2, .bsl-card-title { margin: -16px -16px 16px; padding: 15px 16px 13px; }
    .bsl-amenities { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .bsl-side { grid-template-columns: 1fr; }
}

/* Feature groups from Baipar Core */
.bsl-feature-sections { display: grid; gap: 12px; scroll-margin-top: 90px; }
.bsl-feature-group-card { min-width: 0; }
.bsl-feature-group-card > h2 > img { width: 14px !important; height: 14px !important; object-fit: contain; }
.bsl-feature-items { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 18px; }
.bsl-feature-items > div { min-width: 0; min-height: 39px; display: flex; align-items: center; gap: 8px; border-bottom: 1px solid #f0f1f3; color: #586477; font-size: 10px; }
.bsl-feature-items > div:nth-last-child(-n+3) { border-bottom: 0; }
.bsl-feature-items > div > i { width: 21px; height: 21px; display: grid; flex: 0 0 21px; place-items: center; color: var(--baipar-primary); font-style: normal; }
.bsl-feature-items > div > i svg, .bsl-feature-items > div > i img { width: 13px !important; height: 13px !important; object-fit: contain; }
.bsl-feature-items > div > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

@media (max-width: 700px) {
    .bsl-feature-items { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .bsl-feature-items > div:nth-last-child(-n+3) { border-bottom: 1px solid #f0f1f3; }
    .bsl-feature-items > div:nth-last-child(-n+2) { border-bottom: 0; }
}
@media (max-width: 390px) {
    .bsl-feature-items { grid-template-columns: minmax(0, 1fr); }
    .bsl-feature-items > div:nth-last-child(-n+3), .bsl-feature-items > div:nth-last-child(-n+2) { border-bottom: 1px solid #f0f1f3; }
    .bsl-feature-items > div:last-child { border-bottom: 0; }
}

/* Standard content container below the full-width gallery */
.bsl-profile,
.bsl-action-bar,
.bsl-stage { width: min(1200px, calc(100% - 48px)); }

@media (max-width: 600px) {
    .bsl-profile,
    .bsl-action-bar,
    .bsl-stage { width: calc(100% - 28px); }
}

/* Additional listing form data */
.bsl-term-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.bsl-term-list > a, .bsl-term-list > span { min-width: 0; min-height: 46px; display: flex; align-items: center; gap: 9px; padding: 8px 11px; border: 1px solid #edf0f4; border-radius: 8px; background: #fff; color: #3f4d61; font-size: 10px; font-weight: 600; text-decoration: none; }
.bsl-term-list > a:hover { border-color: rgba(225,27,34,.2); color: var(--baipar-primary); background: #fff8f8; }
.bsl-term-list i { width: 28px; height: 28px; display: grid; flex: 0 0 28px; place-items: center; overflow: hidden; border-radius: 50%; background: #f4f5f8; color: var(--baipar-primary); font-style: normal; }
.bsl-term-list i svg, .bsl-term-list i img { width: 15px !important; height: 15px !important; object-fit: cover; }
.bsl-community-list i { border: 1px solid #e3e6ec; background: #fff; }
.bsl-community-list i img { width: 100% !important; height: 100% !important; }
.bsl-hours { display: grid; }
.bsl-hours > div { min-height: 35px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 6px 0; border-bottom: 1px solid #eef0f3; color: #657084; font-size: 10px; }
.bsl-hours > div:last-child { border-bottom: 0; }
.bsl-hours > div strong { color: #263750; font-size: 10px; font-weight: 650; }
.bsl-hours > div.is-today { margin-inline: -7px; padding-inline: 7px; border-radius: 6px; background: #fff4f5; color: var(--baipar-primary); }
.bsl-hours > div.is-today strong { color: var(--baipar-primary); }
.bsl-social-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.bsl-social-links a { min-width: 0; min-height: 38px; display: flex; align-items: center; gap: 8px; padding: 0 10px; border: 1px solid #edf0f4; border-radius: 7px; color: #455268; font-size: 9px; font-weight: 650; text-decoration: none; }
.bsl-social-links a:hover { border-color: rgba(225,27,34,.2); color: var(--baipar-primary); }
.bsl-social-links svg { width: 14px !important; height: 14px !important; flex: 0 0 14px; color: var(--baipar-primary); }
.bsl-social-links a { --bsl-social-color: var(--baipar-primary); }
.bsl-social-links .bsl-social--facebook { --bsl-social-color: #1877f2; }
.bsl-social-links .bsl-social--twitter { --bsl-social-color: #111; }
.bsl-social-links .bsl-social--instagram { --bsl-social-color: #e4405f; }
.bsl-social-links .bsl-social--linkedin { --bsl-social-color: #0a66c2; }
.bsl-social-links .bsl-social--youtube { --bsl-social-color: #f00; }
.bsl-social-links .bsl-social--telegram { --bsl-social-color: #229ed9; }
.bsl-social-links .bsl-social--tiktok { --bsl-social-color: #111; }
.bsl-social-links a svg { color: var(--bsl-social-color) !important; }
.bsl-social-links a:hover { border-color: color-mix(in srgb, var(--bsl-social-color) 35%, white); color: var(--bsl-social-color); background: color-mix(in srgb, var(--bsl-social-color) 5%, white); }

@media (max-width: 600px) {
    .bsl-term-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 380px) {
    .bsl-term-list, .bsl-social-links { grid-template-columns: minmax(0, 1fr); }
}

/* Review carousel controls */
.bsl-google-reviews__nav {
    width: 38px;
    height: 38px;
    padding: 0 0 3px;
    visibility: hidden;
    transform: translateY(-50%) scale(.88);
    border: 1px solid #e1e5eb;
    background: rgba(255,255,255,.96);
    color: var(--baipar-secondary);
    font-size: 25px;
    opacity: 0;
    box-shadow: 0 8px 22px rgba(13,27,52,.16);
    pointer-events: none;
    transition: opacity .18s ease, transform .18s ease, color .18s ease, border-color .18s ease;
}
.bsl-google-reviews__nav--previous { left: -12px; }
.bsl-google-reviews__nav--next { right: -12px; }
.bsl-google-reviews__carousel:hover .bsl-google-reviews__nav,
.bsl-google-reviews__carousel:focus-within .bsl-google-reviews__nav {
    visibility: visible;
    transform: translateY(-50%) scale(1);
    opacity: 1;
    pointer-events: auto;
}
.bsl-google-reviews__nav:hover,
.bsl-google-reviews__nav:focus-visible { border-color: var(--baipar-primary); color: var(--baipar-primary); outline: none; }

@media (hover: none) {
    .bsl-google-reviews__nav { display: none; }
}

/* Listing logo scale */
.bsl-profile { grid-template-columns: 88px minmax(0, 1fr); gap: 19px; }
.bsl-logo { width: 84px; height: 84px; }
@media (max-width: 600px) {
    .bsl-profile { grid-template-columns: 62px minmax(0, 1fr); gap: 12px; }
    .bsl-logo { width: 58px; height: 58px; }
}

/* Restaurant menu showcase and dialog */
.bsl-menu-count { padding: 5px 9px; border-radius: 999px; background: #fff0f2; color: var(--baipar-primary); font-size: 9px; font-weight: 800; white-space: nowrap; }
.bsl-menu-showcase { min-height: 350px; display: grid; grid-template-columns: minmax(260px, .9fr) minmax(0, 1.1fr); overflow: hidden; border-radius: 12px; background: #0c2340; box-shadow: 0 16px 35px rgba(12,35,64,.14); }
.bsl-menu-showcase button { font: inherit; }
.bsl-menu-showcase__feature { position: relative; min-height: 350px; overflow: hidden; padding: 0; border: 0; background: linear-gradient(145deg, #162b47, #9a2432); color: #fff; text-align: left; }
.bsl-menu-showcase__feature > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .55s cubic-bezier(.2,.7,.2,1); }
.bsl-menu-showcase__feature:hover > img { transform: scale(1.045); }
.bsl-menu-showcase__shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8,21,39,.08), rgba(8,21,39,.9)); }
.bsl-menu-showcase__copy { position: absolute; z-index: 1; right: 0; bottom: 0; left: 0; display: flex; flex-direction: column; align-items: flex-start; padding: 27px; }
.bsl-menu-showcase__copy small { margin-bottom: 7px; color: #ffbbc3; font-size: 9px; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.bsl-menu-showcase__copy strong { max-width: 260px; font-family: var(--wp--preset--font-family--display, "Plus Jakarta Sans", sans-serif); font-size: 27px; font-weight: 800; letter-spacing: -.035em; line-height: 1.08; }
.bsl-menu-showcase__copy em { min-height: 39px; display: inline-flex; align-items: center; gap: 8px; margin-top: 17px; padding: 0 14px; border: 1px solid rgba(255,255,255,.3); border-radius: 999px; background: rgba(255,255,255,.12); color: #fff; font-size: 10px; font-style: normal; font-weight: 750; backdrop-filter: blur(8px); }
.bsl-menu-showcase__copy em span { color: #ffabb5; font-size: 14px; transition: transform .18s ease; }
.bsl-menu-showcase__feature:hover .bsl-menu-showcase__copy em span { transform: translateX(3px); }
.bsl-menu-showcase__groups { display: grid; align-content: center; padding: 18px 22px; }
.bsl-menu-showcase__groups > button { min-height: 60px; display: grid; grid-template-columns: 31px minmax(0,1fr) 25px; align-items: center; gap: 11px; padding: 9px 5px; border: 0; border-bottom: 1px solid rgba(255,255,255,.1); background: transparent; color: #fff; text-align: left; }
.bsl-menu-showcase__groups > button:last-child { border-bottom: 0; }
.bsl-menu-showcase__groups > button:hover, .bsl-menu-showcase__groups > button:focus-visible { padding-inline: 11px; border-radius: 8px; background: rgba(255,255,255,.07); outline: none; }
.bsl-menu-showcase__number { color: #ef7f8c; font-size: 9px; font-weight: 850; letter-spacing: .08em; }
.bsl-menu-showcase__groups strong, .bsl-menu-showcase__groups small { display: block; }
.bsl-menu-showcase__groups strong { overflow: hidden; font-family: var(--wp--preset--font-family--display, "Plus Jakarta Sans", sans-serif); font-size: 12px; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.bsl-menu-showcase__groups small { margin-top: 3px; color: rgba(255,255,255,.55); font-size: 8px; }
.bsl-menu-showcase__groups i { color: rgba(255,255,255,.5); font-size: 14px; font-style: normal; transition: color .18s ease, transform .18s ease; }
.bsl-menu-showcase__groups > button:hover i { transform: translate(2px,-2px); color: #ffabb5; }

.bsl-menu-modal { position: fixed; z-index: 100020; inset: 0; display: grid; place-items: center; padding: 24px; background: rgba(238,233,248,.9); backdrop-filter: blur(12px); animation: bsl-menu-fade .2s ease both; }
.bsl-menu-modal__dialog { position: relative; width: min(1040px, 100%); max-height: min(900px, calc(100vh - 48px)); overflow: hidden; display: flex; flex-direction: column; border: 1px solid #e7e2ee; border-radius: 28px; background: #fff; box-shadow: 0 28px 80px rgba(71,55,104,.16); animation: bsl-menu-rise .28s cubic-bezier(.2,.75,.2,1) both; }
.bsl-menu-modal__dialog::before { position: absolute; z-index: 4; top: 0; right: 44px; left: 44px; height: 3px; border-radius: 0 0 4px 4px; content: ""; background: var(--baipar-primary); }
.bsl-menu-modal__hero { position: relative; min-height: 116px; display: grid; grid-template-columns: 68px minmax(0,1fr); align-items: center; gap: 16px; overflow: hidden; padding: 24px 78px 20px 28px; border-bottom: 1px solid #eeeaf2; color: #171522; background: #fff; }
.bsl-menu-modal__hero > img { position: static; width: 68px; height: 68px; display: block; border-radius: 15px; object-fit: cover; box-shadow: 0 7px 18px rgba(71,55,104,.12); }
.bsl-menu-modal__hero-shade { display: none; }
.bsl-menu-modal__hero > div { position: relative; z-index: 1; min-width: 0; }
.bsl-menu-modal__hero small { color: var(--baipar-primary); font-size: 8px; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }
.bsl-menu-modal__hero h2 { overflow: hidden; margin: 5px 0 4px; color: #171522; font-family: var(--wp--preset--font-family--display, "Plus Jakarta Sans", sans-serif); font-size: 23px; font-weight: 850; letter-spacing: -.035em; line-height: 1.1; text-overflow: ellipsis; white-space: nowrap; }
.bsl-menu-modal__hero p { margin: 0; color: #898595; font-size: 10px; }
.bsl-menu-modal__close { position: absolute; z-index: 2; top: 50%; right: 24px; width: 42px; height: 42px; display: grid; place-items: center; padding: 0 0 3px; transform: translateY(-50%); border: 1px solid #e4dfe9; border-radius: 50%; background: #faf8fc; color: #716b79; font: 25px/1 Arial,sans-serif; }
.bsl-menu-modal__close:hover, .bsl-menu-modal__close:focus-visible { border-color: #f0cbd1; background: #fff0f2; color: var(--baipar-primary); outline: none; }
.bsl-menu-modal__tabs { flex: 0 0 auto; display: flex; gap: 7px; overflow-x: auto; padding: 12px 22px; border-bottom: 1px solid #e8e3ed; background: #faf8fd; scrollbar-width: none; }
.bsl-menu-modal__tabs::-webkit-scrollbar { display: none; }
.bsl-menu-modal__tabs button { min-height: 40px; display: inline-flex; align-items: center; gap: 8px; padding: 0 15px; border: 1px solid #e3dee8; border-radius: 999px; background: #fff; color: #686270; font: inherit; font-size: 10px; font-weight: 750; white-space: nowrap; }
.bsl-menu-modal__tabs button span { min-width: 19px; height: 19px; display: grid; place-items: center; border-radius: 50%; background: #f1edf5; color: #81798a; font-size: 8px; }
.bsl-menu-modal__tabs button[aria-selected="true"] { border-color: var(--baipar-primary); background: var(--baipar-primary); color: #fff; box-shadow: 0 8px 18px rgba(225,27,34,.16); }
.bsl-menu-modal__tabs button[aria-selected="true"] span { background: rgba(255,255,255,.2); color: #fff; }
.bsl-menu-modal__tabs button:focus-visible { outline: 2px solid var(--baipar-primary); outline-offset: 2px; }
.bsl-menu-modal__content { min-height: 0; flex: 1 1 auto; overflow-y: auto; padding: 26px 30px 31px; background: #fff; overscroll-behavior: contain; }
.bsl-menu-modal__section-heading { display: grid; grid-template-columns: minmax(0,1fr) minmax(200px,.8fr); align-items: end; gap: 30px; margin-bottom: 22px; padding-bottom: 17px; border-bottom: 1px solid #dde1e5; }
.bsl-menu-modal__section-heading > div { display: flex; align-items: baseline; gap: 11px; }
.bsl-menu-modal__section-heading span { color: var(--baipar-primary); font-size: 10px; font-weight: 850; }
.bsl-menu-modal__section-heading h3 { margin: 0; color: #24202d; font-family: var(--wp--preset--font-family--display, "Plus Jakarta Sans", sans-serif); font-size: 24px; font-weight: 850; letter-spacing: -.035em; }
.bsl-menu-modal__section-heading p { margin: 0; color: #898595; font-size: 11px; line-height: 1.55; text-align: right; }
.bsl-menu-items { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.bsl-menu-item { position: relative; min-height: 116px; display: grid; grid-template-columns: 104px minmax(0,1fr); overflow: hidden; border: 1px solid #e8e3ed; border-radius: 14px; background: #fff; box-shadow: 0 6px 18px rgba(71,55,104,.045); }
.bsl-menu-item.is-special { border-color: rgba(225,27,34,.22); box-shadow: inset 0 3px var(--baipar-primary), 0 7px 20px rgba(71,55,104,.055); }
.bsl-menu-item > img, .bsl-menu-item__fallback { width: 104px; height: 100%; min-height: 116px; display: grid; place-items: center; object-fit: cover; background: linear-gradient(145deg, #e7e9e6, #f5f5f2); color: #8a93a0; }
.bsl-menu-item__fallback svg { width: 25px; height: 25px; }
.bsl-menu-item__copy { min-width: 0; padding: 14px 14px 12px; }
.bsl-menu-item__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.bsl-menu-item__heading h4 { margin: 0; color: #24202d; font-family: var(--wp--preset--font-family--display, "Plus Jakarta Sans", sans-serif); font-size: 13px; font-weight: 800; line-height: 1.3; }
.bsl-menu-item__heading strong { flex: 0 0 auto; padding: 4px 7px; border-radius: 6px; background: #fff0f2; color: var(--baipar-primary); font-size: 9px; font-weight: 850; }
.bsl-menu-item__copy > p { display: -webkit-box; overflow: hidden; margin: 7px 0 0; color: #85818f; font-size: 9px; line-height: 1.5; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.bsl-menu-item__badges { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 9px; }
.bsl-menu-item__badges span { padding: 3px 6px; border-radius: 999px; font-size: 7px; font-weight: 800; }
.bsl-menu-item__badges .is-vegetarian { background: #e9f7ef; color: #177747; }
.bsl-menu-item__badges .is-spicy { background: #fff0ea; color: #b34120; }
.bsl-menu-item__badges .is-special { background: #fff5d9; color: #8c6200; }
.bsl-menu-modal__footer { flex: 0 0 auto; min-height: 66px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 11px 28px; border-top: 1px solid #e8e3ed; background: #faf8fd; }
.bsl-menu-modal__footer p { margin: 0; color: #898595; font-size: 9px; }
.bsl-menu-modal__footer a { min-height: 42px; display: inline-flex; align-items: center; gap: 7px; padding: 0 17px; border-radius: 999px; background: var(--baipar-primary); color: #fff; font-size: 10px; font-weight: 800; text-decoration: none; white-space: nowrap; box-shadow: 0 9px 20px rgba(225,27,34,.18); }
.bsl-menu-modal__footer a:hover { background: #c8171e; color: #fff; transform: translateY(-1px); }
.bsl-menu-modal__footer svg { width: 14px !important; height: 14px !important; }
@keyframes bsl-menu-fade { from { opacity: 0; } }
@keyframes bsl-menu-rise { from { opacity: 0; transform: translateY(18px) scale(.985); } }

/* Listing Q&A mirrors the Elementor FAQ visual language. */
.bsl-faq-list { display:grid; gap:10px; }
.bsl-faq-item { overflow:hidden; border:1px solid #e4e8ee; border-radius:14px; background:#fff; box-shadow:0 5px 18px rgba(13,27,52,.045); transition:border-color .18s ease,background .18s ease,box-shadow .18s ease; }
.bsl-faq-item[open] { border-color:#f2c7cb; background:#fff6f7; box-shadow:0 10px 26px rgba(13,27,52,.07); }
.bsl-faq-item summary { display:flex; align-items:center; gap:13px; min-height:65px; padding:17px 18px; color:#292532; cursor:pointer; list-style:none; }
.bsl-faq-item summary::-webkit-details-marker { display:none; }
.bsl-faq-item summary::after { display:none; }
.bsl-faq-item summary:focus-visible { outline:3px solid rgba(225,27,34,.2); outline-offset:-3px; }
.bsl-faq-number { flex:0 0 auto; color:var(--baipar-primary); font-size:9px; font-weight:850; letter-spacing:.08em; }
.bsl-faq-question { min-width:0; flex:1; font-size:13px; font-weight:800; line-height:1.45; }
.bsl-faq-toggle { position:relative; width:31px; height:31px; display:grid; flex:0 0 31px; place-items:center; border-radius:50%; background:#f2f4f7; color:var(--baipar-secondary); transition:background .18s ease,color .18s ease,transform .18s ease; }
.bsl-faq-toggle::before,.bsl-faq-toggle::after { position:absolute; width:12px; height:1.7px; border-radius:99px; content:""; background:currentColor; }
.bsl-faq-toggle::after { transform:rotate(90deg); }
.bsl-faq-item[open] summary { color:var(--baipar-primary); }
.bsl-faq-item[open] .bsl-faq-toggle { transform:rotate(180deg); background:var(--baipar-primary); color:#fff; }
.bsl-faq-item[open] .bsl-faq-toggle::after { transform:rotate(0); }
.bsl-faq-answer { padding:16px 18px 19px; border-top:1px solid #eadde0; color:#667184; font-size:12px; line-height:1.72; }
.bsl-faq-answer p { margin:0 0 9px; }
.bsl-faq-answer p:last-child { margin-bottom:0; }

/* Hero video modal */
.bsl-video-modal { position:fixed; z-index:100040; inset:0; display:grid; place-items:center; padding:24px; background:rgba(7,18,34,.78); backdrop-filter:blur(10px); animation:bsl-menu-fade .2s ease both; }
.bsl-video-modal__dialog { width:min(1000px,100%); overflow:hidden; border:1px solid rgba(255,255,255,.22); border-radius:20px; background:#fff; box-shadow:0 35px 100px rgba(2,11,25,.42); animation:bsl-menu-rise .27s cubic-bezier(.2,.75,.2,1) both; }
.bsl-video-modal__dialog > header { min-height:76px; display:flex; align-items:center; justify-content:space-between; gap:18px; padding:15px 18px 14px 22px; border-bottom:1px solid #e9e5ed; }
.bsl-video-modal__dialog > header small,.bsl-video-modal__dialog > header h2 { display:block; margin:0; }
.bsl-video-modal__dialog > header small { margin-bottom:3px; color:var(--baipar-primary); font-size:8px; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.bsl-video-modal__dialog > header h2 { overflow:hidden; color:#171522; font-size:17px; text-overflow:ellipsis; white-space:nowrap; }
.bsl-video-modal__dialog > header button { width:42px; height:42px; display:grid; flex:0 0 42px; place-items:center; padding:0 0 3px; border:1px solid #e4dfe9; border-radius:50%; background:#faf8fc; color:#716b79; font:26px/1 Arial,sans-serif; }
.bsl-video-modal__dialog > header button:hover { border-color:#f0cbd1; background:#fff0f2; color:var(--baipar-primary); }
.bsl-video-modal__content { position:relative; aspect-ratio:16/9; overflow:hidden; background:#05070a; }
.bsl-video-modal__content iframe,.bsl-video-modal__content video { width:100%; height:100%; display:block; border:0; object-fit:contain; }

@media (max-width: 700px) {
    .bsl-menu-showcase { grid-template-columns: minmax(0,1fr); }
    .bsl-menu-showcase__feature { min-height: 260px; }
    .bsl-menu-showcase__groups { padding: 12px 16px; }
	.bsl-faq-item summary { min-height:60px; gap:10px; padding:15px 14px; }
	.bsl-faq-number { display:none; }
	.bsl-faq-question { font-size:12px; }
	.bsl-faq-answer { padding:14px; font-size:11px; }
	.bsl-video-modal { align-items:end; padding:8px; }
	.bsl-video-modal__dialog { border-radius:17px; }
	.bsl-video-modal__dialog > header { min-height:65px; padding:11px 12px 10px 16px; }
    .bsl-menu-modal { align-items: end; padding: 8px; }
    .bsl-menu-modal__dialog { width: 100%; max-height: calc(100dvh - 16px); border-radius: 20px; }
    .bsl-menu-modal__hero { min-height: 100px; grid-template-columns: 54px minmax(0,1fr); gap: 12px; padding: 18px 66px 16px 16px; }
    .bsl-menu-modal__hero > img { width: 54px; height: 54px; border-radius: 12px; }
    .bsl-menu-modal__hero h2 { font-size: 18px; }
    .bsl-menu-modal__close { top: 50%; right: 13px; }
    .bsl-menu-modal__tabs { padding: 10px 14px; }
    .bsl-menu-modal__content { padding: 20px 14px 24px; }
    .bsl-menu-modal__section-heading { grid-template-columns: minmax(0,1fr); gap: 7px; }
    .bsl-menu-modal__section-heading h3 { font-size: 22px; }
    .bsl-menu-modal__section-heading p { text-align: left; }
    .bsl-menu-items { grid-template-columns: minmax(0,1fr); }
    .bsl-menu-item { grid-template-columns: 96px minmax(0,1fr); }
    .bsl-menu-item > img, .bsl-menu-item__fallback { width: 96px; }
    .bsl-menu-item__heading h4 { font-size: 14px; }
    .bsl-menu-item__copy > p { font-size: 10px; }
    .bsl-menu-modal__footer { padding: 10px 14px; }
    .bsl-menu-modal__footer p { display: none; }
    .bsl-menu-modal__footer a { width: 100%; justify-content: center; }
}

@media (max-width: 390px) {
    .bsl-menu-showcase__feature { min-height: 225px; }
    .bsl-menu-showcase__copy { padding: 21px; }
    .bsl-menu-showcase__copy strong { font-size: 23px; }
    .bsl-menu-item { grid-template-columns: 82px minmax(0,1fr); }
    .bsl-menu-item > img, .bsl-menu-item__fallback { width: 82px; }
}

@media (prefers-reduced-motion: reduce) {
    .bsl-menu-modal, .bsl-menu-modal__dialog { animation: none; }
}

/* Interaction-gated third-party embeds */
.bsl-map-lazy > button { position: relative; width: 100%; min-height: 250px; display: grid; place-items: center; overflow: hidden; padding: 0; border: 0; border-radius: 10px; background: #f4f2f7; color: #302a39; }
.bsl-map-lazy > button > .baipar-icon, .bsl-map-lazy > button > strong, .bsl-map-lazy > button > span { position: relative; z-index: 1; }
.bsl-map-lazy iframe { width: 100%; height: 250px; display: block; border: 0; border-radius: 10px; }
.bsl-map-lazy > button { align-content: center; gap: 7px; border: 1px solid #e6e1eb; }
.bsl-map-lazy > button > .baipar-icon { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; background: #fff; color: var(--baipar-primary); }
.bsl-map-lazy > button > strong { font-size: 12px; }
.bsl-map-lazy > button > span { color: #898595; font-size: 10px; }
.bsl-stage .bsl-card { content-visibility: auto; contain-intrinsic-size: auto 420px; }
.bsl-modal form { display: grid; gap: 12px; }
.bsl-modal form label { display: grid; gap: 6px; color: #716b79; font-size: 11px; font-weight: 700; }
.bsl-modal form input, .bsl-modal form textarea, .bsl-modal form select { width: 100%; min-height: 46px; padding: 10px 13px; border: 1px solid #dedbe5; border-radius: 7px; background: #fff; color: #24202d; font: inherit; }
.bsl-modal form textarea { min-height: 100px; resize: vertical; }
.bsl-modal form input:focus, .bsl-modal form textarea:focus, .bsl-modal form select:focus { border-color: var(--baipar-primary); outline: 0; box-shadow: 0 0 0 3px rgba(225,27,34,.1); }
.bsl-modal form button[type="submit"], .bsl-login-required a { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; padding: 0 20px; border: 0; border-radius: 999px; background: var(--baipar-primary); color: #fff; font-size: 11px; font-weight: 800; text-decoration: none; }
.bsl-login-required { padding: 12px 4px; text-align: center; }
.bsl-login-required h2 { margin: 0; color: #24202d; font-size: 22px; }
.bsl-login-required p { margin: 9px 0 20px; color: #898595; font-size: 12px; line-height: 1.6; }
.bsl-login-required a { width: 100%; }
.bsl-modal .baipar-form-message { padding: 10px 12px; border-radius: 7px; font-size: 10px; }
.bsl-modal .baipar-success { background: #edf9f0; color: #1d7335; }
.bsl-modal .baipar-error { background: #fff0f0; color: #a5141a; }

/* ------------------------------------------------------------------
 * Claim dialog
 *
 * Deliberately mirrors the event ticket dialog (.bev-ticket-modal in
 * single-event.css): blurred overlay, rounded card with a red accent rule,
 * icon + eyebrow header, a three-cell fact strip and a two-column form.
 * The form markup itself comes from the plugin's [baipar_claim_form]
 * shortcode, so everything below styles that markup rather than changing it.
 * ------------------------------------------------------------------ */

.bsl-claim-modal { z-index: 100020; display: grid; place-items: center; padding: 22px; background: rgba(238, 233, 248, .9); backdrop-filter: blur(12px); animation: bsl-claim-fade .2s ease both; }
.bsl-claim-modal__dialog { position: relative; padding: 0; width: min(700px, 100%); max-height: calc(100dvh - 44px); overflow-y: auto; border: 1px solid #e7e2ee; border-radius: 28px; background: #fff; box-shadow: 0 28px 80px rgba(71, 55, 104, .16); animation: bsl-claim-rise .27s cubic-bezier(.2, .75, .2, 1) both; }
.bsl-claim-modal__dialog::before { position: absolute; z-index: 2; top: 0; right: 44px; left: 44px; height: 3px; border-radius: 0 0 4px 4px; content: ""; background: var(--red); }

.bsl-claim-modal__dialog > header { position: relative; display: grid; grid-template-columns: 50px minmax(0, 1fr) 42px; align-items: center; gap: 14px; padding: 27px 28px 22px; border-bottom: 1px solid #eeeaf2; background: #fff; }
.bsl-claim-modal__icon { width: 50px; height: 50px; display: grid; place-items: center; border: 1px solid #f3d8dd; border-radius: 15px; background: #fff2f4; }
.bsl-claim-modal__icon .baipar-icon, .bsl-claim-modal__icon .baipar-icon svg { color: var(--red) !important; }
.bsl-claim-modal__icon svg { width: 22px !important; height: 22px !important; }
.bsl-claim-modal__heading { min-width: 0; }
.bsl-claim-modal__heading small { color: var(--red); font-size: 8px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.bsl-claim-modal__heading h2 { overflow: hidden; margin: 5px 0 0; color: #171522; font-size: 18px; font-weight: 850; letter-spacing: -.02em; text-overflow: ellipsis; white-space: nowrap; }
.bsl-claim-modal__heading p { overflow: hidden; margin: 5px 0 0; color: #898595; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.bsl-claim-modal__dialog > header > button { position: static; width: 42px; height: 42px; display: grid; place-items: center; padding: 0; border: 1px solid #e4dfe9; border-radius: 50%; background: #faf8fc; color: #7f7988; font-size: 0; }
.bsl-claim-modal__dialog > header > button:hover { border-color: #f0cbd1; background: #fff0f2; color: var(--red); }
.bsl-claim-modal__dialog > header > button svg { width: 18px !important; height: 18px !important; display: block; fill: none !important; stroke: currentColor !important; stroke-width: 2 !important; }

.bsl-claim-modal__summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 18px 23px 0; overflow: hidden; border: 1px solid #e8e3ed; border-radius: 11px; background: #faf8fd; }
.bsl-claim-modal__summary > span { min-width: 0; padding: 14px 17px; border-left: 1px solid #e8e3ed; }
.bsl-claim-modal__summary > span:first-child { border-left: 0; }
.bsl-claim-modal__summary small, .bsl-claim-modal__summary strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bsl-claim-modal__summary small { color: #95909c; font-size: 7px; font-weight: 800; text-transform: uppercase; }
.bsl-claim-modal__summary strong { margin-top: 5px; color: #292431; font-size: 11px; }

.bsl-claim-modal__body { padding: 20px 23px 6px; }

/* The claim itself is completed in the dashboard, so this modal only explains
   the three steps and hands the visitor off. */
.bsl-claim-steps { display: grid; gap: 13px; margin: 0; padding: 0; list-style: none; counter-reset: none; }
.bsl-claim-steps li { display: grid; grid-template-columns: 26px minmax(0, 1fr); align-items: start; gap: 12px; }
.bsl-claim-steps li > span { width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; background: #fff2f4; color: var(--red); font-size: 10px; font-weight: 850; }
.bsl-claim-steps li > div { color: #898595; font-size: 10.5px; line-height: 1.55; }
.bsl-claim-steps strong { display: block; margin-bottom: 2px; color: #292431; font-size: 11.5px; font-weight: 800; }

.bsl-claim-cta { display: grid; gap: 9px; margin-top: 20px; }
.bsl-claim-cta a { min-height: 50px; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; font-size: 10px; font-weight: 850; text-decoration: none; transition: background .18s ease, transform .18s ease, border-color .18s ease; }
.bsl-claim-cta__primary { background: var(--red); color: #fff; box-shadow: 0 10px 22px rgba(225, 27, 34, .2); }
.bsl-claim-cta__primary:hover { background: #c8171e; color: #fff; transform: translateY(-1px); }
.bsl-claim-cta__secondary { border: 1px solid #e4dfe9; background: #faf8fc; color: #57515f; }
.bsl-claim-cta__secondary:hover { border-color: #f0cbd1; background: #fff0f2; color: var(--red); }

.bsl-claim-modal__note { display: grid; grid-template-columns: 18px minmax(0, 1fr); align-items: start; gap: 10px; margin: 6px 23px 23px; padding-top: 16px; border-top: 1px solid #ebe7ee; }
.bsl-claim-modal__note svg { width: 16px !important; height: 16px !important; color: var(--red); }
.bsl-claim-modal__note p { margin: 0; color: #898595; font-size: 10px; line-height: 1.55; }
.bsl-claim-modal__note strong { display: block; margin-bottom: 2px; color: #292431; font-size: 10.5px; font-weight: 800; }

@keyframes bsl-claim-fade { from { opacity: 0; } }
@keyframes bsl-claim-rise { from { opacity: 0; transform: translateY(18px) scale(.985); } }

@media (max-width: 600px) {
    .bsl-claim-modal { padding: 12px; }
    .bsl-claim-modal__dialog { border-radius: 20px; }
    .bsl-claim-modal__dialog > header { grid-template-columns: 44px minmax(0, 1fr) 38px; gap: 11px; padding: 20px 18px 17px; }
    .bsl-claim-modal__summary { grid-template-columns: minmax(0, 1fr); margin-inline: 16px; }
    .bsl-claim-modal__summary > span { border-top: 1px solid #e8e3ed; border-left: 0; padding: 11px 15px; }
    .bsl-claim-modal__summary > span:first-child { border-top: 0; }
    .bsl-claim-modal__body { padding: 17px 16px 4px; }
    .bsl-claim-modal__note { margin-inline: 16px; }
}

/* Listing deals — discount codes and promotions, styled to match the events rail */
.bsl-deals-count { display: inline-flex; align-items: center; padding: 4px 10px; border-radius: 999px; background: #f4f5f2; color: #687184; font-size: 9px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.bsl-deals-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(258px, 1fr)); gap: 14px; }
.bsl-deal-card { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease; }
.bsl-deal-card:hover { border-color: var(--red); transform: translateY(-2px); box-shadow: 0 12px 26px rgba(16, 26, 43, .08); }

.bsl-deal-card__media { position: relative; height: 132px; overflow: hidden; background: var(--canvas); }
.bsl-deal-card__media img { width: 100%; height: 100%; display: block; object-fit: cover; }
.bsl-deal-card__badge { position: absolute; top: 10px; left: 10px; padding: 5px 10px; border-radius: 999px; background: var(--red); color: #fff; font-size: 11px; font-weight: 850; }
.bsl-deal-card__figure { display: flex; align-items: baseline; justify-content: center; gap: 6px; padding: 22px 14px 16px; background: linear-gradient(135deg, #fff2f4, #fff); }
.bsl-deal-card__figure strong { color: var(--red); font-size: 30px; font-weight: 850; letter-spacing: -.03em; }
.bsl-deal-card__figure small { color: #8a919e; font-size: 11px; font-weight: 700; text-transform: uppercase; }

.bsl-deal-card__body { display: flex; flex: 1; flex-direction: column; gap: 8px; padding: 14px 15px 15px; }
.bsl-deal-card__body h3 { margin: 0; color: var(--ink); font-size: 14.5px; font-weight: 750; line-height: 1.35; }
.bsl-deal-card__desc { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.55; }

.bsl-deal-card__code { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border: 1px dashed var(--line); border-radius: 9px; background: var(--canvas); }
.bsl-deal-card__code code { flex: 1; min-width: 0; overflow: hidden; color: var(--ink); font-size: 13px; font-weight: 800; letter-spacing: .06em; text-overflow: ellipsis; white-space: nowrap; }
.bsl-deal-card__code button { display: inline-flex; align-items: center; gap: 5px; padding: 5px 9px; border: 1px solid var(--line); border-radius: 7px; background: #fff; color: var(--muted); font-size: 10px; font-weight: 750; cursor: pointer; transition: border-color .18s ease, color .18s ease; }
.bsl-deal-card__code button:hover { border-color: var(--red); color: var(--red); }
.bsl-deal-card__code button svg { width: 13px !important; height: 13px !important; }
.bsl-deal-card__code button.is-copied { border-color: #1d7335; color: #1d7335; }

.bsl-deal-card__meta { display: flex; flex-wrap: wrap; gap: 6px 12px; margin-top: auto; padding-top: 4px; }
.bsl-deal-card__meta span { display: inline-flex; align-items: center; gap: 5px; color: var(--muted); font-size: 11px; }
.bsl-deal-card__meta span.is-urgent { color: var(--red); font-weight: 750; }
.bsl-deal-card__meta svg { width: 13px !important; height: 13px !important; flex: 0 0 13px; }

@media (max-width: 600px) {
    .bsl-deals-grid { grid-template-columns: minmax(0, 1fr); }
}
.bsl-deal-card__scope { display: inline-flex; align-items: center; gap: 5px; color: #8a919e; font-size: 10.5px; line-height: 1.4; }
.bsl-deal-card__scope svg { width: 12px !important; height: 12px !important; flex: 0 0 12px; }

/* Verified badge — the seal is filled and rimmed in white so it holds up over
   the hero photograph, where a stroke-only icon in the title colour was hard
   to make out. paint-order draws the stroke before the fill, so the white sits
   entirely outside the shape as a clean rim instead of thinning the seal. */
.bsl .bsl-verified { flex: 0 0 auto; filter: drop-shadow(0 1px 2px rgba(0,0,0,.3)); }
.bsl .bsl-verified svg > path:first-child { fill: var(--blue); stroke: #fff; stroke-width: 1.7; paint-order: stroke fill; }
.bsl .bsl-verified svg > path + path { fill: none; stroke: #fff; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }

/* ── Services & Pricing ──────────────────────────────────────────────────
   The listing's rate card. Deliberately quieter than the menu showcase next
   door: a menu sells with photographs, a price list sells by being scannable,
   so this is a plain two-column row with the money on a tabular baseline. */
.bsl-services-count { padding: 5px 9px; border-radius: 999px; background: #fff0f2; color: var(--baipar-primary); font-size: 9px; font-weight: 800; white-space: nowrap; }
.bsl-services-list { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.bsl-service { display: flex; align-items: flex-start; gap: 14px; padding: 15px 0; border-bottom: 1px solid var(--line); }
.bsl-service:last-child { border-bottom: 0; padding-bottom: 0; }
.bsl-service:first-child { padding-top: 0; }
.bsl-service__media { width: 56px; height: 56px; flex: 0 0 56px; overflow: hidden; border-radius: 10px; background: var(--canvas); }
.bsl-service__media img { width: 100%; height: 100%; display: block; object-fit: cover; }
.bsl-service__body { min-width: 0; flex: 1; }
.bsl-service__body h3 { margin: 0; color: var(--ink); font-size: 15px; font-weight: 700; letter-spacing: -.01em; }
.bsl-service__body p { margin: 4px 0 0; color: var(--muted); font-size: 13px; line-height: 1.6; }
.bsl-service__meta { display: inline-flex; align-items: center; gap: 5px; margin-top: 7px; color: var(--muted); font-size: 11px; font-weight: 600; }
.bsl-service__meta svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.bsl-service__aside { flex: 0 0 auto; display: flex; flex-direction: column; align-items: flex-end; gap: 7px; }
.bsl-service__price { color: var(--ink); font-size: 15px; font-weight: 800; font-variant-numeric: tabular-nums; white-space: nowrap; }
@media (max-width: 620px) {
	.bsl-service { gap: 11px; }
	.bsl-service__media { width: 46px; height: 46px; flex-basis: 46px; }
	.bsl-service__body h3 { font-size: 14px; }
	.bsl-service__price { font-size: 14px; }
}

/* ── Booking ─────────────────────────────────────────────────────────────
   The panel is a working tool, not a page: dense, tappable, and quiet enough
   that the one chosen thing at each step is the only thing that reads as loud. */
/* Same shape as Call Now, one step quieter: the phone is the action a listing
   without appointments still offers, and two identical red buttons side by side
   would make the visitor choose between two shouts. */
.bsl-book-now { border: 1.5px solid var(--baipar-primary); background: #fff; color: var(--baipar-primary); cursor: pointer; }
.bsl-book-now:hover { background: var(--baipar-primary); color: #fff; }
.bsl-book-now svg { stroke: currentColor; }
.bsl-book-modal { position: fixed; z-index: 9999; inset: 0; display: grid; place-items: center; padding: 20px; background: rgba(12, 18, 32, .55); backdrop-filter: blur(3px); }
.bsl-book-modal[hidden] { display: none; }
.bsl-book-modal__dialog { width: min(560px, 100%); max-height: min(88vh, 860px); display: flex; flex-direction: column; overflow: hidden; border-radius: 18px; background: var(--surface); box-shadow: 0 30px 70px rgba(12, 18, 32, .34); }
.bsl-book-modal__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 20px 22px; border-bottom: 1px solid var(--line); }
.bsl-book-modal__head small { display: block; color: var(--red); font-size: 10px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.bsl-book-modal__head h2 { margin: 4px 0 0; color: var(--ink); font-size: 19px; font-weight: 800; letter-spacing: -.02em; }
.bsl-book-modal__head button { padding: 0 4px; border: 0; background: transparent; color: var(--muted); font-size: 26px; line-height: 1; cursor: pointer; }
.bsl-book-modal__body { overflow-y: auto; padding: 20px 22px 26px; }

.baipar-book__step + .baipar-book__step, .baipar-book__form { margin-top: 22px; }
.baipar-book__step-label { display: block; margin-bottom: 9px; color: var(--muted); font-size: 10px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }

/* Shown instead of the picker when there is only one thing to book. */
.baipar-book__single { margin: 0 0 4px; padding: 11px 14px; border: 1.5px solid var(--line); border-radius: 12px; color: var(--ink); font-size: 13.5px; font-weight: 700; }
.baipar-book__services { display: grid; gap: 8px; }
.baipar-book__service { display: grid; gap: 3px; padding: 12px 14px; border: 1.5px solid var(--line); border-radius: 12px; background: var(--surface); text-align: left; cursor: pointer; }
.baipar-book__service:hover { border-color: #c9cfd8; }
.baipar-book__service.is-selected { border-color: var(--red); background: #fff5f5; }
.baipar-book__service-name { color: var(--ink); font-size: 14px; font-weight: 700; }
.baipar-book__service-meta { color: var(--muted); font-size: 12px; }
.baipar-book__service-meta strong { color: var(--ink); font-variant-numeric: tabular-nums; }
.baipar-book__service-note { color: var(--red); font-size: 11px; font-weight: 700; }

.baipar-book__calendar-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 9px; }
.baipar-book__calendar-head .baipar-book__step-label { margin: 0; }
.baipar-book__nav { display: flex; align-items: center; gap: 4px; }
.baipar-book__nav strong { min-width: 130px; color: var(--ink); font-size: 13px; font-weight: 700; text-align: center; }
.baipar-book__nav button { width: 30px; height: 30px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); color: var(--ink); font-size: 17px; line-height: 1; cursor: pointer; }
.baipar-book__nav button:hover { background: var(--canvas); }
.baipar-book__weekdays, .baipar-book__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.baipar-book__weekdays span { padding-bottom: 5px; color: var(--muted); font-size: 10px; font-weight: 800; text-align: center; }
.baipar-book__day { aspect-ratio: 1; display: grid; place-items: center; border: 1px solid transparent; border-radius: 9px; background: var(--canvas); color: var(--ink); font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums; cursor: pointer; }
.baipar-book__day:hover:not(:disabled) { border-color: var(--red); }
.baipar-book__day.is-closed { background: transparent; color: #c3c8d0; cursor: not-allowed; }
.baipar-book__day.is-selected { background: var(--red); color: #fff; }
.baipar-book__pad { aspect-ratio: 1; }

.baipar-book__times { display: grid; grid-template-columns: repeat(auto-fill, minmax(84px, 1fr)); gap: 7px; }
.baipar-book__time { display: grid; gap: 1px; padding: 9px 4px; border: 1.5px solid var(--line); border-radius: 10px; background: var(--surface); color: var(--ink); font-size: 13px; font-weight: 700; font-variant-numeric: tabular-nums; cursor: pointer; }
.baipar-book__time:hover { border-color: #c9cfd8; }
.baipar-book__time.is-selected { border-color: var(--red); background: var(--red); color: #fff; }
.baipar-book__time small { color: var(--red); font-size: 9px; font-weight: 800; }
.baipar-book__time.is-selected small { color: #ffd9da; }
.baipar-book__loading, .baipar-book__empty { grid-column: 1 / -1; margin: 14px 0; color: var(--muted); font-size: 13px; text-align: center; }

.baipar-book__chosen { margin-bottom: 12px; padding: 10px 13px; border-radius: 10px; background: #fff5f5; color: var(--ink); font-size: 13px; font-weight: 700; }
.baipar-book__form label { display: block; margin-bottom: 11px; }
.baipar-book__form label > span { display: block; margin-bottom: 4px; color: var(--ink); font-size: 12px; font-weight: 700; }
.baipar-book__form label em { color: var(--muted); font-style: normal; font-weight: 500; }
.baipar-book__form input, .baipar-book__form textarea { width: 100%; padding: 9px 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); color: var(--ink); font: inherit; font-size: 13px; }
.baipar-book__form input:focus, .baipar-book__form textarea:focus { border-color: var(--red); outline: 0; }
.baipar-book__error { margin: 0 0 11px; padding: 9px 12px; border-radius: 9px; background: #fdecec; color: #a8320f; font-size: 12.5px; }
.baipar-book__submit { width: 100%; min-height: 46px; border: 0; border-radius: 11px; background: var(--red); color: #fff; font-size: 14px; font-weight: 800; cursor: pointer; }
.baipar-book__submit:disabled { opacity: .6; cursor: progress; }
.baipar-book__fineprint { margin: 10px 0 0; color: var(--muted); font-size: 11.5px; text-align: center; }

.baipar-book__done { padding: 24px 6px; text-align: center; }
.baipar-book__done-mark { display: inline-grid; width: 46px; height: 46px; place-items: center; border-radius: 50%; background: #e4f4ec; color: #0d7048; font-size: 24px; font-weight: 800; }
.baipar-book__done h3 { margin: 14px 0 0; color: var(--ink); font-size: 17px; font-weight: 800; }
.baipar-book__done p { margin: 6px 0 0; color: var(--muted); font-size: 13px; }
.baipar-book__manage { display: inline-block; margin-top: 16px; color: var(--red); font-size: 13px; font-weight: 700; }

@media (max-width: 620px) {
	.bsl-book-modal { padding: 0; }
	.bsl-book-modal__dialog { width: 100%; max-height: 100vh; height: 100%; border-radius: 0; }
}
