:root {
    --sb-plum: #6b295f;
    --sb-plum-dark: #4d1945;
    --sb-rose: #b75f8f;
    --sb-pink-soft: #f7edf4;
    --sb-ink: #2f2930;
    --sb-muted: #746b73;
    --sb-border: #e6dde4;
    --sb-paper: #ffffff;
    --sb-soft: #faf8fa;
    --sb-max: 1280px;
    --sb-radius: 12px;
    --sb-shadow: 0 8px 28px rgba(50, 25, 45, .08);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--sb-ink); background: var(--sb-paper); font-family: Arial, Helvetica, sans-serif; font-size: 16px; line-height: 1.6; }
a { color: var(--sb-plum); text-decoration: none; }
a:hover { color: var(--sb-rose); }
img { max-width: 100%; height: auto; }
.sb-container { width: min(calc(100% - 40px), var(--sb-max)); margin-inline: auto; }

.sb-site-header { background: #fff; border-bottom: 1px solid var(--sb-border); position: relative; z-index: 20; }
.sb-header-inner { width: min(calc(100% - 40px), var(--sb-max)); margin: auto; display: grid; grid-template-columns: minmax(220px, 420px) minmax(260px, 520px) auto; align-items: center; gap: 34px; padding: 20px 0 18px; }
.sb-brand .custom-logo-link { display: inline-block; line-height: 0; }
.sb-brand .custom-logo { max-height: 118px; width: auto; }
.sb-text-logo { font-size: 2rem; font-weight: 700; }
.sb-header-search .search-form { display: flex; width: 100%; }
.sb-header-search label { flex: 1; }
.sb-header-search .search-field { width: 100%; height: 46px; padding: 0 14px; border: 1px solid #cfc4cc; border-radius: 8px 0 0 8px; font-size: 1rem; }
.sb-header-search .search-submit { min-width: 92px; border: 0; border-radius: 0 8px 8px 0; background: var(--sb-plum); color: #fff; font-weight: 700; cursor: pointer; }
.sb-menu-toggle { display: none; border: 1px solid var(--sb-plum); background: #fff; color: var(--sb-plum); padding: 9px 14px; border-radius: 7px; }
.sb-primary-nav { background: var(--sb-plum); }
.sb-nav-inner { width: min(calc(100% - 40px), var(--sb-max)); margin: auto; }
.sb-primary-nav ul { display: flex; align-items: center; gap: 2px; margin: 0; padding: 0; list-style: none; }
.sb-primary-nav li { position: relative; margin: 0; }
.sb-primary-nav a { display: block; color: #fff; padding: 14px 18px; font-weight: 700; white-space: nowrap; }
.sb-primary-nav a:hover,
.sb-primary-nav .current-menu-item > a,
.sb-primary-nav .current-menu-ancestor > a { background: rgba(255,255,255,.14); }
.sb-primary-nav .menu-item-has-children > a::after { content: "\25BE"; display: inline-block; margin-left: 7px; font-size: .72em; opacity: .9; }
.sb-primary-nav .sub-menu {
    display: none;
    position: absolute;
    z-index: 100;
    top: 100%;
    left: 0;
    min-width: 245px;
    padding: 7px 0;
    background: #fff;
    border: 1px solid var(--sb-border);
    border-top: 0;
    box-shadow: 0 12px 30px rgba(48, 22, 43, .16);
}
.sb-primary-nav .sub-menu li { width: 100%; }
.sb-primary-nav .sub-menu a { color: var(--sb-ink); padding: 10px 16px; font-weight: 600; white-space: normal; }
.sb-primary-nav .sub-menu a:hover,
.sb-primary-nav .sub-menu .current-menu-item > a { color: var(--sb-plum); background: var(--sb-pink-soft); }
.sb-primary-nav li:hover > .sub-menu,
.sb-primary-nav li:focus-within > .sub-menu { display: block; }

.sb-site-main { min-height: 50vh; }
.sb-home, .sb-content-wrap { padding-top: 34px; padding-bottom: 52px; }
.sb-home-intro { margin-bottom: 28px; }
.sb-section-heading { text-align: center; margin: 0 auto 24px; max-width: 800px; }
.sb-section-heading h1, .sb-section-heading h2 { margin-bottom: 8px; font-size: clamp(1.8rem, 3vw, 2.55rem); color: var(--sb-plum-dark); }

.sb-show-list { display: grid; gap: 28px; }
.sb-show-card { display: grid; grid-template-columns: minmax(280px, 41%) 1fr; border: 1px solid var(--sb-border); border-radius: var(--sb-radius); overflow: hidden; background: #fff; box-shadow: var(--sb-shadow); }
.sb-show-image { background: var(--sb-soft); min-height: 300px; display: flex; align-items: center; justify-content: center; }
.sb-show-image img { width: 100%; height: 100%; max-height: 520px; object-fit: contain; padding: 10px; }
.sb-show-content { padding: 28px; min-width: 0; }
.sb-show-title { margin: 0 0 10px; color: var(--sb-plum-dark); line-height: 1.2; }
.sb-show-description { font-size: 1.04rem; }
.sb-ticket-table { overflow-x: auto; margin-top: 18px; }
.sb-ticket-table table { width: 100%; }
.sb-ticket-debug { margin-top: 12px; padding: 10px 12px; border: 1px dashed #b24b73; background: #fff4f8; color: #6a2342; font-size: .9rem; }

.sb-directory { margin-top: 54px; }
.sb-category-filters { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-bottom: 22px; }
.sb-filter { border: 1px solid var(--sb-plum); background: #fff; color: var(--sb-plum); border-radius: 999px; padding: 8px 13px; cursor: pointer; font-weight: 700; }
.sb-filter:hover, .sb-filter.is-active { color: #fff; background: var(--sb-plum); }
.sb-category-sponsor-live { margin: 0 auto 26px; max-width: 880px; padding: 18px 24px; text-align: center; border: 1px solid var(--sb-border); border-radius: var(--sb-radius); background: var(--sb-pink-soft); }
.sb-category-sponsor-live[hidden] { display: none; }
.sb-category-sponsor-label { text-transform: uppercase; letter-spacing: .12em; font-size: .72rem; font-weight: 800; color: var(--sb-muted); margin-bottom: 8px; }
.sb-category-sponsor-image { height: 120px; display: flex; align-items: center; justify-content: center; margin-bottom: 6px; }
.sb-category-sponsor-image img { max-width: 100%; max-height: 100%; object-fit: contain; }

.sb-vendor-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.sb-vendor-card { position: relative; overflow: hidden; display: flex; flex-direction: column; border: 1px solid var(--sb-border); border-radius: var(--sb-radius); background: #fff; box-shadow: 0 5px 18px rgba(40,20,35,.06); }
.sb-vendor-card[hidden] { display: none; }
.sb-vendor-image { height: 220px; display: flex; align-items: center; justify-content: center; padding: 18px; background: #f8f7f8; }
.sb-vendor-image img { width: 100%; height: 100%; object-fit: contain; }
.sb-vendor-body { display: flex; flex: 1; flex-direction: column; padding: 20px; }
.sb-vendor-body h3 { margin: 0 0 5px; font-size: 1.25rem; line-height: 1.25; }
.sb-vendor-phone { color: var(--sb-muted); margin-bottom: 8px; }
.sb-consult-link { font-weight: 700; margin-bottom: 9px; }
.sb-vendor-categories { font-size: .9rem; color: var(--sb-muted); margin-bottom: 18px; }
.sb-vendor-actions { display: flex; gap: 8px; margin-top: auto; }
.sb-button { display: inline-flex; justify-content: center; align-items: center; min-height: 39px; padding: 8px 13px; border: 1px solid var(--sb-plum); border-radius: 6px; background: var(--sb-plum); color: #fff; font-weight: 700; }
.sb-button:hover { background: var(--sb-plum-dark); color: #fff; }
.sb-button-outline { background: #fff; color: var(--sb-plum); }

.sb-ribbon { position: absolute; z-index: 3; top: 16px; left: -42px; width: 160px; transform: rotate(-42deg); padding: 5px 0; text-align: center; text-transform: uppercase; font-size: .72rem; font-weight: 900; letter-spacing: .07em; color: #fff; box-shadow: 0 2px 6px rgba(0,0,0,.18); }
.sb-level-platinum .sb-ribbon { background: linear-gradient(90deg,#6f7378,#dfe2e4,#777b80); color: #222; }
.sb-level-gold .sb-ribbon { background: linear-gradient(90deg,#a77900,#f2cf5b,#a97b00); color: #332400; }
.sb-level-silver .sb-ribbon { background: linear-gradient(90deg,#8c9298,#e8eaec,#8b9095); color: #222; }
.sb-level-bronze .sb-ribbon { background: linear-gradient(90deg,#7f4b23,#c98b54,#73421e); }
.sb-level-premium .sb-ribbon { background: var(--sb-rose); }
.sb-level-category .sb-ribbon { background: var(--sb-plum); }

.sb-page { max-width: 1100px; margin: 0 auto; }
.sb-page > h1 { color: var(--sb-plum-dark); font-size: clamp(2rem, 4vw, 3rem); }
.sb-entry-content > :first-child { margin-top: 0; }
.sb-single-image { margin-bottom: 26px; }
.sb-search-result { padding: 18px 0; border-bottom: 1px solid var(--sb-border); }

.sb-prefooter { background: var(--sb-soft); border-top: 1px solid var(--sb-border); padding: 42px 0; }
.sb-prefooter-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 36px; }
.sb-prefooter h3, .sb-prefooter-title { margin-top: 0; color: var(--sb-plum-dark); }
.sb-prefooter img { max-height: 110px; width: auto; object-fit: contain; }
.sb-site-footer { background: var(--sb-plum-dark); color: #fff; padding: 30px 0; }
.sb-footer-grid { display: grid; grid-template-columns: minmax(240px, 1fr) 1fr; align-items: center; gap: 30px; }
.sb-site-footer a { color: #fff; }
.sb-footer-logo .custom-logo-link { display: inline-flex; align-items: center; justify-content: center; min-width: 170px; min-height: 88px; padding: 12px 22px; border: 2px solid var(--sb-rose); border-radius: 50%; background: #fff; line-height: 0; }
.sb-footer-logo .custom-logo { max-height: 66px; max-width: 145px; width: auto; filter: drop-shadow(0 2px 2px rgba(0,0,0,.08)); }
.sb-footer-contact { text-align: right; }

@media (max-width: 980px) {
    .sb-header-inner { grid-template-columns: 1fr auto; gap: 18px; }
    .sb-header-search { grid-column: 1 / -1; grid-row: 2; }
    .sb-menu-toggle { display: inline-block; }
    .sb-primary-nav { display: none; }
    .sb-primary-nav.is-open { display: block; }
    .sb-primary-nav ul { display: block; padding: 8px 0; }
    .sb-primary-nav .sub-menu { display: block; position: static; min-width: 0; padding: 0 0 0 18px; border: 0; box-shadow: none; background: rgba(0,0,0,.08); }
    .sb-primary-nav .sub-menu a { color: #fff; }
    .sb-primary-nav .sub-menu a:hover { color: #fff; background: rgba(255,255,255,.12); }
    .sb-show-card { grid-template-columns: 1fr; }
    .sb-show-image { min-height: 240px; }
    .sb-vendor-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
    .sb-container, .sb-header-inner, .sb-nav-inner { width: min(calc(100% - 24px), var(--sb-max)); }
    .sb-brand .custom-logo { max-height: 90px; }
    .sb-show-content { padding: 20px; }
    .sb-vendor-grid { grid-template-columns: 1fr; }
    .sb-prefooter-grid, .sb-footer-grid { grid-template-columns: 1fr; }
    .sb-footer-contact { text-align: left; }
    .sb-header-search .search-submit { min-width: 76px; }
}

/* ---------------------------------------------------------
   Vendor directory v4: premium cards + compact base listing
   --------------------------------------------------------- */
.sb-directory { margin-top: 58px; }
.sb-directory .sb-section-heading { max-width: 920px; margin-bottom: 28px; }
.sb-category-filters { gap: 6px; margin: 0 auto 26px; max-width: 1160px; }
.sb-filter { padding: 6px 11px; font-size: .84rem; line-height: 1.15; transition: background .15s ease, color .15s ease, transform .15s ease; }
.sb-filter:hover { transform: translateY(-1px); }

.sb-sponsored-vendors { margin-top: 8px; }
.sb-vendor-card { min-width: 0; border-radius: 10px; box-shadow: 0 5px 18px rgba(40,20,35,.07); }
.sb-vendor-image { height: 190px; padding: 22px; background: #fbfafb; border-bottom: 1px solid #eee8ec; }
.sb-vendor-image img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.sb-vendor-image-empty { min-height: 150px; color: #a89ba5; text-align: center; font-size: 1rem; font-weight: 700; }
.sb-vendor-body { padding: 18px 19px 19px; }
.sb-vendor-body h3 { font-size: 1.15rem; }
.sb-vendor-phone { font-size: .94rem; }
.sb-vendor-address { margin: 0 0 8px; color: var(--sb-muted); font-size: .94rem; }
.sb-vendor-categories { line-height: 1.35; }
.sb-vendor-actions { flex-wrap: wrap; }

.sb-ribbon { top: 13px; left: -43px; width: 165px; padding: 0; overflow: visible; background: none !important; box-shadow: none; }
.sb-ribbon span { display: block; padding: 5px 0; box-shadow: 0 2px 6px rgba(0,0,0,.18); }
.sb-level-platinum .sb-ribbon span { background: linear-gradient(90deg,#6f7378,#eef0f1,#777b80); color: #242424; }
.sb-level-gold .sb-ribbon span { background: linear-gradient(90deg,#a77900,#f4d66e,#a97b00); color: #332400; }
.sb-level-silver .sb-ribbon span { background: linear-gradient(90deg,#8c9298,#eef0f2,#8b9095); color: #222; }
.sb-level-bronze .sb-ribbon span { background: linear-gradient(90deg,#7f4b23,#cf9560,#73421e); color: #fff; }
.sb-level-premium .sb-ribbon span { background: var(--sb-rose); color: #fff; }
.sb-level-category .sb-ribbon span { background: var(--sb-plum); color: #fff; }

.sb-standard-vendors { margin-top: 42px; padding-top: 28px; border-top: 1px solid var(--sb-border); }
.sb-standard-vendors-heading { margin: 0 0 18px; color: var(--sb-plum-dark); font-size: 1.45rem; text-align: left; }
.sb-basic-vendor-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 32px; row-gap: 0; }
.sb-basic-vendor { min-width: 0; padding: 11px 0 12px; border-bottom: 1px solid #eee8ec; line-height: 1.35; }
.sb-basic-vendor[hidden] { display: none; }
.sb-basic-vendor-name { display: block; font-weight: 800; color: var(--sb-plum); }
.sb-basic-vendor-name:hover { color: var(--sb-rose); }
.sb-basic-vendor-phone { display: inline; color: var(--sb-ink); font-size: .9rem; }
.sb-basic-vendor-categories { display: block; margin-top: 3px; color: var(--sb-muted); font-size: .85rem; }
.sb-basic-vendor-phone + .sb-basic-vendor-categories { margin-top: 2px; }

@media (max-width: 980px) {
    .sb-basic-vendor-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 26px; }
}
@media (max-width: 640px) {
    .sb-category-filters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; justify-content: initial; width: 100%; }
    .sb-filter { width: 100%; padding: 6px 7px; font-size: .76rem; white-space: normal; }
    .sb-basic-vendor-grid { grid-template-columns: 1fr; }
    .sb-standard-vendors-heading { font-size: 1.3rem; }
}


.sb-category-sponsor-fallback { display: block; line-height: 0; }
.sb-category-sponsor-fallback img { display: block; max-width: 100%; height: auto; margin: 0 auto; }

/* ---------------------------------------------------------
   v15 consolidated refinements
   --------------------------------------------------------- */
.sb-show-more-info { margin: 20px 0 24px; }
.more-info-link { font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }

/* Four across on full desktop; step down naturally at narrower widths. */
@media (min-width: 1180px) {
    .sb-vendor-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
    .sb-basic-vendor-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 24px; }
    .sb-vendor-image { height: 165px; padding: 16px; }
    .sb-vendor-body { padding: 15px 15px 17px; }
    .sb-vendor-body h3 { font-size: 1.05rem; }
}

/* Site Sponsors + Partners: continuous, clickable 300x75 logo marquees. */
.sb-logo-marquee-section { margin-bottom: 30px; }
.sb-logo-marquee {
    position: relative;
    overflow: hidden;
    padding: 2px 0 8px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    overscroll-behavior-inline: contain;
}
.sb-logo-marquee::-webkit-scrollbar { display: none; }
.sb-logo-marquee-track { display: flex; width: max-content; will-change: transform; transform: translate3d(0,0,0); }
.sb-logo-marquee-group {
    display: flex;
    flex: 0 0 auto;
    gap: 18px;
    padding-right: 18px;
}
.sb-logo-marquee-item {
    flex: 0 0 300px;
    width: 300px;
    height: 75px;
}
.sb-logo-marquee-item a { display: block; width: 100%; height: 100%; line-height: 0; }
.sb-logo-marquee-item img {
    display: block;
    width: 300px;
    height: 75px;
    max-width: none;
    object-fit: contain;
}
.sb-prefooter-reviews { margin-top: 8px; }
.sb-prefooter-reviews p { margin-bottom: 0; }

@media (max-width: 640px) {
    .sb-logo-marquee-group { gap: 12px; padding-right: 12px; }
    .sb-logo-marquee-item {
        flex-basis: min(300px, calc(100vw - 48px));
        width: min(300px, calc(100vw - 48px));
        height: auto;
    }
    .sb-logo-marquee-item img { width: 100%; height: auto; aspect-ratio: 4 / 1; }
}

@media (prefers-reduced-motion: reduce) {
    .sb-logo-marquee { scroll-behavior: auto; }
}

