/* Barrel Broz -- Search dropdown (final A0). Loaded by bb-search-overlay.php.
   Every rule is scoped to .bbso (the dropdown) or to the header Search icon / html.bbso-* state classes, so nothing here
   can touch another component. Disable bb-search-overlay.php and this file is simply no longer loaded. */

/* ---- header Search icon: open-state marker (3px underline, same weight as the nav hover underline) and a larger tap area.
        The icon itself is not redrawn. All of it only applies after the script has initialised (html.bbso-ready). ---- */
html.bbso-ready .astra-search-icon{position:relative}
html.bbso-ready .astra-search-icon::after{content:"";position:absolute;left:50%;bottom:-4px;height:3px;width:0;background:#0a0a0a;transform:translateX(-50%);transition:width .2s cubic-bezier(.22,1,.36,1)}
html.bbso-ready .astra-search-icon[aria-expanded="true"]::after{width:22px}
html.bbso-ready .ast-mobile-header-wrap .astra-search-icon::before{content:"";position:absolute;inset:-10px -11px}
/* header stays put while the dropdown is open (the hide-on-scroll header must not slide away from the icon) */
html.bbso-open #masthead{transform:none!important}
/* scroll lock on <body>, as the existing video modal does: Production has body{overflow-x:hidden}, and locking <html> would un-stick the header */
body.bbso-lock{overflow:hidden}

/* ---- the dropdown ---- */
.bbso{--ink:#0a0a0a;--y:#ffd203;--paper:#f7f7f2;--grey:#8f8f89;--hdr:127px;--vvh:100vh;--il:600px;
  position:fixed;inset:0;z-index:9000;visibility:hidden;pointer-events:none;font-family:Archivo,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:16px;line-height:1.5;color:#0a0a0a;text-align:left}
.bbso[hidden]{display:none}
.bbso *,.bbso *::before,.bbso *::after{box-sizing:border-box}
.bbso[data-state="opening"],.bbso[data-state="open"],.bbso[data-state="closing"]{visibility:visible}
.bbso-scrim,.bbso-panel{pointer-events:none}
.bbso[data-state="opening"] .bbso-scrim,.bbso[data-state="open"] .bbso-scrim,
.bbso[data-state="opening"] .bbso-panel,.bbso[data-state="open"] .bbso-panel{pointer-events:auto}
.bbso-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* resets, so the theme's global button / input / link styles cannot leak in */
.bbso button,.bbso input,.bbso a{font:inherit;color:inherit;margin:0;text-shadow:none;letter-spacing:inherit;text-transform:inherit}
.bbso a,.bbso a:hover,.bbso a:focus{text-decoration:none;color:inherit;box-shadow:none}
.bbso button{border-radius:0;box-shadow:none;background:none;border:0;padding:0;-webkit-appearance:none;appearance:none}

.bbso-scrim{position:absolute;inset:0;top:var(--hdr);background:rgba(10,10,10,.2);opacity:0;transition:opacity .2s ease-out}
.bbso[data-state="open"] .bbso-scrim{opacity:1}
.bbso[data-state="closing"] .bbso-scrim{transition:opacity .15s ease-in}

.bbso-panel{position:absolute;top:var(--hdr);right:24px;width:min(560px,calc(100% - 32px));display:flex;flex-direction:column;min-height:0;
  max-height:calc(var(--vvh) - var(--hdr) - 14px);background:var(--paper);border:3px solid var(--ink);border-top:0;box-shadow:6px 6px 0 var(--ink);
  opacity:0;transform:translateY(-10px);transition:opacity .18s ease-out,transform .23s cubic-bezier(.22,1,.36,1)}
.bbso[data-state="open"] .bbso-panel{opacity:1;transform:none}
.bbso[data-state="closing"] .bbso-panel{opacity:0;transform:translateY(-8px);transition:opacity .15s ease-in,transform .17s cubic-bezier(.4,0,1,1)}

/* yellow input row */
.bbso-form{position:relative;display:flex;align-items:center;background:#ffd203;margin:0}
.bbso .bbso-input{flex:1;min-width:0;width:100%;height:auto;margin:0;border:0!important;border-bottom:3px solid var(--ink)!important;border-radius:0;outline:0!important;box-shadow:none!important;
  background:transparent!important;color:#0a0a0a;caret-color:#0a0a0a;-webkit-appearance:none;appearance:none;
  font:700 18px/1.2 Archivo,sans-serif;letter-spacing:0;text-transform:none;padding:20px 150px 18px 20px}
.bbso .bbso-input::placeholder{font:700 16px/1.2 Archivo,sans-serif;letter-spacing:0;text-transform:none;color:rgba(10,10,10,.68);opacity:1}
.bbso .bbso-input::selection{background:#0a0a0a;color:#ffd203}
.bbso .bbso-input::-webkit-search-cancel-button,.bbso .bbso-input::-webkit-search-decoration{-webkit-appearance:none;display:none}
.bbso-clear{display:none;position:absolute;right:102px;top:5px;min-width:44px;min-height:44px;cursor:pointer;font:700 22px/1 Archivo,sans-serif;color:#0a0a0a}
.bbso.has-q .bbso-clear{display:block}

/* black ESC button, white on hover */
.bbso-bar{position:absolute;right:12px;top:13px;z-index:2;padding:0;display:flex;align-items:center}
.bbso .bbso-close{display:inline-flex;align-items:center;justify-content:center;background:#0a0a0a;color:#fff;border:2px solid #0a0a0a;min-height:36px;min-width:0;padding:0 11px;cursor:pointer;
  font:700 11px "Space Mono",monospace;letter-spacing:.05em;text-transform:uppercase;transition:background-color .16s ease,color .16s ease,border-color .16s ease}
.bbso .bbso-close:hover{background:#0a0a0a;color:#fff;border-color:#0a0a0a}
@media (hover:hover){.bbso .bbso-close:hover{background:#fff;color:#0a0a0a;border-color:#0a0a0a}}
.bbso .bbso-close:active{background:#fff;color:#0a0a0a}
.bbso .bbso-close:focus-visible{outline:3px solid #0a0a0a;outline-offset:3px}
.bbso a:focus-visible,.bbso .bbso-chip:focus-visible,.bbso .bbso-btn:focus-visible,.bbso .bbso-clear:focus-visible{outline:3px solid var(--ink);outline-offset:2px}

/* results */
.bbso-cols{display:flex;flex:1;min-height:0}
.bbso-main{display:flex;flex-direction:column;flex:1;min-width:0;min-height:0}
.bbso-status{font:400 11.5px/1.4 "Space Mono",monospace;letter-spacing:.03em;color:var(--grey);padding:12px 20px 6px;min-height:34px}
.bbso-scroll{position:relative;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;transition:opacity .15s}
.bbso.is-loading .bbso-scroll.has-rows{opacity:.45}
.bbso-glabel{display:block;font:400 10.5px/1 "Space Mono",monospace;letter-spacing:.07em;text-transform:uppercase;color:var(--grey);padding:14px 20px 8px}
.bbso a.bbso-row{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:12px 20px;min-height:48px;border-top:1px solid #dcdcd4;cursor:pointer;color:var(--ink)}
.bbso-row .t{font:800 16px/1.3 Archivo,sans-serif;min-width:0;overflow-wrap:anywhere}
.bbso-row .m{font:400 11px "Space Mono",monospace;color:var(--grey);white-space:nowrap}
.bbso a.bbso-row.is-active{background:var(--y)}
.bbso-row.is-active .m{color:var(--ink)}
.bbso-row mark{background:none;color:inherit;box-shadow:inset 0 -.42em 0 rgba(255,210,3,.95)}
.bbso-row.is-active mark{box-shadow:inset 0 -.42em 0 rgba(10,10,10,.2)}
.bbso-play{display:inline-grid;place-items:center;width:17px;height:17px;border:1.5px solid currentColor;border-radius:50%;font-size:8px;margin-right:7px;vertical-align:1px;padding-left:1px}
.bbso a.bbso-foot{display:flex;justify-content:space-between;gap:12px;align-items:center;background:var(--ink);color:var(--y);padding:0 20px;min-height:50px;font:700 12px "Space Mono",monospace;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;flex:none}
.bbso a.bbso-foot:hover,.bbso a.bbso-foot:focus{color:var(--y)}
.bbso a.bbso-foot[hidden]{display:none}
.bbso a.bbso-foot.is-active{background:var(--y);color:var(--ink);box-shadow:inset 0 0 0 3px var(--ink)}
.bbso-foot .bbso-hint{opacity:.8}
.bbso-chips{padding:12px 20px 6px;display:flex;flex-wrap:wrap;gap:8px}
.bbso .bbso-chip{background:var(--paper);border:2px solid var(--ink);padding:0 14px;min-height:40px;font:800 13px Archivo,sans-serif;letter-spacing:.03em;text-transform:uppercase;cursor:pointer;color:var(--ink)}
.bbso .bbso-chip:hover{background:var(--ink);color:var(--y)}
.bbso-state{padding:22px 20px 26px}
.bbso-state h2{font:400 32px/1 Anton,Impact,sans-serif;letter-spacing:.01em;text-transform:uppercase;margin:0 0 10px;color:var(--ink)}
.bbso-state p{margin:0 0 16px;font:500 15px/1.5 Archivo,sans-serif;color:#444;max-width:46ch}
.bbso .bbso-btn{display:inline-block;background:var(--ink);color:var(--y);border:2px solid var(--ink);padding:0 18px;min-height:44px;font:700 12px "Space Mono",monospace;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;margin:0 8px 8px 0}
.bbso .bbso-btn.alt{background:transparent;color:var(--ink)}
.bbso-sk{height:16px;background:#dcdcd4;margin:20px;animation:bbsopulse 1.1s ease-in-out infinite}
@keyframes bbsopulse{50%{opacity:.4}}

/* touch devices: no hover exists, so the ESC button is a solid, full-size target showing just the cross */
.bbso[data-touch] .bbso-k,.bbso[data-touch] .bbso-hint{display:none}
.bbso[data-touch] .bbso-close{min-height:44px;min-width:44px;padding:0 6px;font-size:22px;line-height:1;letter-spacing:0}
.bbso[data-touch] .bbso-bar{right:6px;top:9px}
.bbso[data-touch] .bbso-clear{right:54px}
.bbso[data-touch] .bbso-input{padding-right:104px}

/* phones: full-width panel under the header */
@media (max-width:700px){
  .bbso-panel{left:0;right:0;width:auto;border-left:0;border-right:0;box-shadow:none;max-height:calc(var(--vvh) - var(--hdr))}
  .bbso .bbso-input{font-size:17px}
  .bbso a.bbso-row,.bbso-glabel,.bbso-status,.bbso-chips,.bbso-state{padding-left:16px;padding-right:16px}
  .bbso a.bbso-foot{padding:0 16px}
}

/* short screens (phone landscape): the panel starts beside the Search icon inside the header row, so the input, close control and
   results all stay above the keyboard. Icon and hamburger remain uncovered. */
@media (max-height:520px){
  .bbso-panel{top:4px;left:8px;right:auto;width:calc(var(--il) - 24px);max-height:calc(var(--vvh) - 8px);border-top:3px solid var(--ink)}
  .bbso .bbso-input{font-size:16px;padding:12px 120px 11px 16px}
  .bbso-bar{top:5px;right:8px}
  .bbso-clear{top:0;right:84px}
  .bbso[data-touch] .bbso-clear{right:54px}
  .bbso[data-touch] .bbso-bar{top:1px;right:4px}
  .bbso-status{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);padding:0;min-height:0}
  .bbso-glabel{padding:4px 16px 2px}
  .bbso a.bbso-row{padding:5px 16px;min-height:36px}
  .bbso a.bbso-foot{min-height:30px}
}

/* archive subcategory rows ("Sections & Categories"). Same row as every other result (so a cached older stylesheet still looks right);
   these rules only add a trailing arrow and an upper-case parent-archive label. */
.bbso-row.bbso-cat .t::after{content:" \2192";font-weight:700}
.bbso-row.bbso-cat .m{text-transform:uppercase;letter-spacing:.05em}

/* the same group on the full /search/ page: the page's own result markup plus a yellow edge mark so it reads as navigation, not as content */
.elementor .bb-result.bb-result-cat{padding-inline-start:12px;box-shadow:inset 4px 0 0 #ffd203}
.elementor .bb-result.bb-result-cat .bb-result-t::after{content:" \2192";font-weight:700}
.elementor .bb-result.bb-result-cat .bb-result-m{text-transform:uppercase;letter-spacing:.05em}
.elementor .bb-cat-nocontent{margin:18px 0 0;font:500 15px/1.5 var(--font-body,Archivo,sans-serif);color:var(--grey,#6a6a64)}

/* reduced motion: no movement, only a very short opacity fade */
@media (prefers-reduced-motion:reduce){
  .bbso-panel,.bbso-scrim{transform:none!important;transition:opacity .1s linear!important}
  .bbso .bbso-close,html.bbso-ready .astra-search-icon::after{transition-duration:.01ms!important}
  .bbso-sk{animation:none}
}
