/* =====================================================================
   WLAW site search (wss) - scoped stylesheet, all surfaces.
   Ported 1:1 from the approved design (run 20261021-1802-session, design/mock/wss.css, design_approval 2026-10-21).
   The PHP of wlaw-site-search.php cuts this file into PARTS by the "@wss-part" marker lines below and prints only
   the parts a page needs inline (head: base + nav + drawer + motion; front page: base + chips + home + nav + motion,
   its drawer part comes with the whole file after the first real interaction). The whole file is loaded
   as a normal stylesheet on the results page and the 404 page, and lazily (together with the JS) when a visitor
   first touches a search field. Keep every marker line exactly as it is.
   Every selector is scoped to a wss root:
     .wss-home  .wss-nav  .wss-panel  .wss-backdrop  .wss-sheet  .wss-results  .wss-404
   Keyboard characters only.
   ===================================================================== */

/* @wss-part base */
:is(.wss-home, .wss-nav, .wss-panel, .wss-sheet, .wss-results, .wss-404) {
  --wss-navy: #1f2350;
  --wss-purple: #6b2088;
  --wss-purple-2: #8c2396;
  --wss-deep: #4c0f64;
  --wss-tint: #cf99e4;
  --wss-kicker: #d47dde;
  --wss-text: #665b67;
  --wss-muted: #5b5f6b;
  --wss-card-line: #ece7f1;
  --wss-hair: #e5e7eb;
  --wss-field: #f5f3f8;
  --wss-field-line: #e6e3ec;
  --wss-hover: #faf6fd;
  --wss-mark: #f3e6f8;
  --wss-light: #f8f8f9;
  --wss-r-card: 16px;
  --wss-r-ctl: 12px;
  --wss-r-item: 8px;
  --wss-shadow-card: 0 18px 40px rgba(0, 0, 0, .18);
  --wss-shadow-soft: 0 10px 30px -12px rgba(31, 35, 80, .22);
  --wss-shadow-pop: 0 24px 60px -18px rgba(31, 35, 80, .28), 0 4px 12px rgba(31, 35, 80, .1);
  --wss-grad-band: linear-gradient(105deg, rgba(30, 33, 78, .98) 0%, rgba(26, 28, 69, .94) 57%, rgba(63, 16, 77, .83) 100%);
  --wss-grad-cta: linear-gradient(135deg, #8c2396, #6b2088);
  --wss-font: neue-haas-unica, neue-haas-unica-fallback, "Lato", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-family: var(--wss-font);
}
:is(.wss-home, .wss-nav, .wss-panel, .wss-sheet, .wss-results, .wss-404) :is(*, *::before, *::after) { box-sizing: border-box; }
:is(.wss-home, .wss-nav, .wss-panel, .wss-sheet, .wss-results, .wss-404) .wss-i { width: 22px; height: 22px; flex: none; display: block; }
:is(.wss-home, .wss-nav, .wss-panel, .wss-sheet, .wss-results, .wss-404) .wss-arc { width: 32px; height: 32px; flex: none; display: block; transform: rotate(90deg); transition: transform .3s; }
:is(.wss-home, .wss-nav, .wss-panel, .wss-sheet, .wss-results, .wss-404) .wss-sr,
.wss-sr { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
:is(.wss-home, .wss-nav, .wss-panel, .wss-sheet, .wss-results, .wss-404) mark {
  background: var(--wss-mark); color: var(--wss-deep); font-weight: 700; border-radius: 3px; padding: 0 1px;
}

/* ---------- field (input bar) ---------- */
:is(.wss-home, .wss-nav, .wss-panel, .wss-results, .wss-404) .wss-form { margin: 0; }
:is(.wss-home, .wss-nav, .wss-panel, .wss-results, .wss-404) .wss-field {
  position: relative; display: flex; align-items: center; gap: 4px;
  height: 64px; padding: 7px 7px 7px 56px;
  background: #fff; border: 1px solid var(--wss-card-line); border-radius: var(--wss-r-card);
  box-shadow: var(--wss-shadow-card);
  transition: border-color .15s, box-shadow .15s, background-color .15s;
}
:is(.wss-home, .wss-nav, .wss-panel, .wss-results, .wss-404) .wss-field__icon {
  position: absolute; left: 20px; top: 50%; transform: translateY(-50%); color: var(--wss-purple); pointer-events: none;
}
:is(.wss-home, .wss-nav, .wss-panel, .wss-results, .wss-404) .wss-field__input {
  flex: 1 1 auto; min-width: 0; height: 100%; margin: 0; padding: 0 4px 0 0;
  border: 0; background: transparent; box-shadow: none; outline: none; -webkit-appearance: none; appearance: none;
  font: 400 18px/1.3 var(--wss-font); color: var(--wss-navy);
}
:is(.wss-home, .wss-nav, .wss-panel, .wss-results, .wss-404) .wss-field__input::placeholder { color: var(--wss-text); opacity: 1; }
:is(.wss-home, .wss-nav, .wss-panel, .wss-results, .wss-404) .wss-field__input::-webkit-search-cancel-button,
:is(.wss-home, .wss-nav, .wss-panel, .wss-results, .wss-404) .wss-field__input::-webkit-search-decoration { -webkit-appearance: none; display: none; }
/* focus: ring in the light brand tint - visible on navy AND on white */
:is(.wss-home, .wss-nav, .wss-panel, .wss-results, .wss-404) .wss-field:focus-within {
  border-color: var(--wss-purple);
  box-shadow: 0 0 0 3px rgba(207, 153, 228, .65), var(--wss-shadow-card);
}
:is(.wss-home, .wss-nav, .wss-panel, .wss-results, .wss-404) .wss-field__clear {
  display: inline-flex; align-items: center; justify-content: center; flex: none;
  width: 40px; height: 40px; margin: 0; padding: 0; border: 0; border-radius: 10px;
  background: transparent; color: var(--wss-muted); cursor: pointer;
}
:is(.wss-home, .wss-nav, .wss-panel, .wss-results, .wss-404) .wss-field__clear[hidden] { display: none; }
:is(.wss-home, .wss-nav, .wss-panel, .wss-results, .wss-404) .wss-field__clear .wss-i { width: 18px; height: 18px; }
:is(.wss-home, .wss-nav, .wss-panel, .wss-results, .wss-404) .wss-field__clear:hover { background: var(--wss-hover); color: var(--wss-purple); }
:is(.wss-home, .wss-nav, .wss-panel, .wss-results, .wss-404) .wss-field__clear:focus-visible { outline: 2px solid var(--wss-deep); outline-offset: 1px; }

/* ---------- primary button (the only filled control in the field) ---------- */
:is(.wss-home, .wss-nav, .wss-panel, .wss-results, .wss-404) .wss-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px; flex: none;
  height: 48px; margin: 0; padding: 0 10px 0 22px;
  border: 0; border-radius: var(--wss-r-ctl);
  background-color: var(--wss-purple); color: #fff; cursor: pointer;
  font: 700 18px/1 var(--wss-font); letter-spacing: 0; text-transform: none;
  transition: background-color .15s, box-shadow .15s;
}
:is(.wss-home, .wss-nav, .wss-panel, .wss-results, .wss-404) .wss-btn .wss-arc { width: 30px; height: 30px; }
:is(.wss-home, .wss-nav, .wss-panel, .wss-results, .wss-404) .wss-btn:hover { background-image: var(--wss-grad-cta); }
:is(.wss-home, .wss-nav, .wss-panel, .wss-results, .wss-404) .wss-btn:hover .wss-arc { transform: translateX(4px) rotate(90deg); }
:is(.wss-home, .wss-nav, .wss-panel, .wss-results, .wss-404) .wss-btn:active { background-image: none; background-color: var(--wss-deep); }
:is(.wss-home, .wss-nav, .wss-panel, .wss-results, .wss-404) .wss-btn:focus-visible { outline: 2px solid var(--wss-deep); outline-offset: 2px; }
:is(.wss-home, .wss-nav, .wss-panel, .wss-results, .wss-404) .wss-btn[aria-busy="true"] { cursor: progress; }
:is(.wss-home, .wss-nav, .wss-panel, .wss-results, .wss-404) .wss-btn[aria-busy="true"] .wss-arc { animation: wss-spin 1s linear infinite; }
:is(.wss-home, .wss-nav, .wss-panel, .wss-results, .wss-404) .wss-btn:disabled { background: #d9d4de; color: #fff; cursor: not-allowed; }
@keyframes wss-spin { to { transform: rotate(450deg); } }
/* @wss-part chips */
/* ---------- chips (popular searches) ---------- */
:is(.wss-home, .wss-panel, .wss-sheet, .wss-results, .wss-404) .wss-chips { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px; margin: 24px 0 0; }
:is(.wss-home, .wss-panel, .wss-sheet, .wss-results, .wss-404) .wss-chips__label { flex-basis: 100%; font: 700 13px/19.5px var(--wss-font); letter-spacing: 2.08px; text-transform: uppercase; color: var(--wss-kicker); }
:is(.wss-home, .wss-panel, .wss-sheet, .wss-results, .wss-404) .wss-chips__list { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
:is(.wss-home, .wss-panel, .wss-sheet, .wss-results, .wss-404) .wss-chips__list li { margin: 0; padding: 0; list-style: none; }
:is(.wss-home, .wss-panel, .wss-sheet, .wss-results, .wss-404) .wss-chip {
  display: inline-flex; align-items: center; height: 40px; padding: 0 18px;
  border: 1px solid rgba(255, 255, 255, .5); border-radius: 999px; background: rgba(255, 255, 255, .06); /* .5 = 3.3:1 boundary on the lightest band colour (WCAG 1.4.11) */
  font: 400 15px/1 var(--wss-font); color: #fff; text-decoration: none; white-space: nowrap;
  transition: background-color .15s, color .15s, border-color .15s;
}
:is(.wss-home, .wss-panel, .wss-sheet, .wss-results, .wss-404) .wss-chip:hover { background: #fff; border-color: #fff; color: var(--wss-purple); text-decoration: none; }
:is(.wss-home, .wss-panel, .wss-sheet, .wss-results, .wss-404) .wss-chip:active { background: var(--wss-mark); color: var(--wss-deep); }
:is(.wss-home, .wss-panel, .wss-sheet, .wss-results, .wss-404) .wss-chip:focus-visible { outline: 2px solid var(--wss-tint); outline-offset: 2px; }
/* light variant: on white (panel, empty state) */
:is(.wss-panel, .wss-sheet, .wss-results) .wss-chips--light .wss-chips__label {
  flex-basis: 100%; font: 700 12px/14.4px var(--wss-font); letter-spacing: .6px; text-transform: uppercase; color: var(--wss-purple);
}
:is(.wss-panel, .wss-sheet, .wss-results) .wss-chips--light .wss-chip { border-color: var(--wss-card-line); background: var(--wss-hover); color: var(--wss-purple); }
:is(.wss-panel, .wss-sheet, .wss-results) .wss-chips--light .wss-chip:hover { border-color: var(--wss-purple); background: #fff; }
:is(.wss-panel, .wss-sheet, .wss-results) .wss-chips--light .wss-chip:focus-visible { outline-color: var(--wss-deep); }

/* text link with the site arc glyph */
:is(.wss-panel, .wss-sheet, .wss-results) .wss-link {
  display: inline-flex; align-items: center; gap: 14px; margin-top: 18px;
  font: 700 15px/1.3 var(--wss-font); color: var(--wss-purple); text-decoration: none;
}
:is(.wss-panel, .wss-sheet, .wss-results) .wss-link .wss-arc { width: 30px; height: 30px; }
:is(.wss-panel, .wss-sheet, .wss-results) .wss-link:hover .wss-arc { transform: translateX(6px) rotate(90deg); }
:is(.wss-panel, .wss-sheet, .wss-results) .wss-link:focus-visible { outline: 2px solid var(--wss-deep); outline-offset: 3px; border-radius: 4px; }
/* @wss-part home */
/* =====================================================================
   (a) BLOCK UNDER THE 3 CARDS  (.front-page-text > .wss-home)
   Uses the theme grid (.container / .row / .col-lg-4 / .col-lg-8) so the edges ARE the card edges.
   ===================================================================== */
/* Seam-free join WITHOUT touching the theme: the band overlaps the empty space under the cards
   (theme: 80px card margin + 72px section padding on desktop, 18 + 72 below 992px) and fades its own
   gradient in over that overlap, so the two 105deg gradients (different box heights) never meet at a hard edge.
   Measured alternative rejected: a negative margin on the card row collapses through the section and doubles the
   two semi-transparent gradients into a 32px dark strip. */
.wss-home { position: relative; isolation: isolate; color: #fff; margin-top: -104px; padding: 0 0 72px; }
.wss-home::before {
  /* white base = what the theme section sits on; makes the band opaque so it matches exactly at the section's bottom edge */
  content: ""; position: absolute; inset: 0; z-index: -1; background-color: #fff; background-image: var(--wss-grad-band);
  -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 104px); mask-image: linear-gradient(to bottom, transparent 0, #000 104px);
}
.wss-home .wss-home__grid { display: grid; grid-template-columns: minmax(0, 1fr); row-gap: 0; }
@media (min-width: 992px) {
  /* same 3 tracks + 30px gutter as the card row: intro = card 1, search = cards 2-3 */
  .wss-home .wss-home__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 30px; align-items: start; }
  .wss-home .wss-home__search { grid-column: 2 / span 2; }
}
.wss-home .wss-home__label { display: block; margin: 0 0 8px; font: 500 28px/36px var(--wss-font); color: #fff; cursor: default; }
.wss-home .wss-home__hint { margin: 0; max-width: 100%; text-wrap: pretty; font: 400 16px/28px var(--wss-font); color: rgba(255, 255, 255, .82); }
@media (max-width: 991.98px) {
  .wss-home { margin-top: -90px; padding: 40px 0 56px; }
  .wss-home::before { -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 90px); mask-image: linear-gradient(to bottom, transparent 0, #000 90px); }
  .wss-home .wss-home__label { font-size: 21px; line-height: 28px; }
  .wss-home .wss-home__hint { max-width: none; font-size: 16px; line-height: 24px; margin-bottom: 20px; }
}

/* field sizing below lg (all hero-variant fields) */
@media (max-width: 991.98px) {
  :is(.wss-home, .wss-results, .wss-404) .wss-field--hero { height: 56px; padding: 6px 6px 6px 48px; border-radius: 14px; }
  :is(.wss-home, .wss-results, .wss-404) .wss-field--hero .wss-field__icon { left: 16px; width: 20px; height: 20px; }
  :is(.wss-home, .wss-results, .wss-404) .wss-field--hero .wss-field__input { font-size: 16px; } /* 16px = no iOS zoom on focus */
  :is(.wss-home, .wss-results, .wss-404) .wss-field--hero .wss-btn { height: 44px; padding: 0 6px 0 16px; font-size: 16px; border-radius: 10px; }
  :is(.wss-home, .wss-results, .wss-404) .wss-field--hero .wss-btn .wss-arc { width: 26px; height: 26px; }
  :is(.wss-home, .wss-panel, .wss-sheet, .wss-results, .wss-404) .wss-chip { height: 44px; padding: 0 16px; }
  :is(.wss-home, .wss-results, .wss-404) .wss-chips { margin-top: 16px; gap: 8px; }
  :is(.wss-home, .wss-results, .wss-404) .wss-chips__list { gap: 8px; }
}
/* @wss-part nav */
/* =====================================================================
   (b) NAV ITEM: one <li> = desktop icon button + drawer form; the container decides which shows
   ===================================================================== */
.wss-nav { display: flex; align-items: center; }
.wss-nav .wss-nav__btn {
  position: relative; display: inline-flex; align-items: center; justify-content: center;
  width: 32px; height: 32px; margin: 0; padding: 0; border-radius: 8px;
  color: var(--wss-navy); background: transparent; text-decoration: none;
  transition: color .15s, background-color .15s;
}
.wss-nav .wss-nav__btn .wss-i { width: 20px; height: 20px; }
.wss-nav .wss-nav__ico--close { display: none; }
.wss-nav .wss-nav__btn[aria-expanded="true"] .wss-nav__ico--search { display: none; }
.wss-nav .wss-nav__btn[aria-expanded="true"] .wss-nav__ico--close { display: block; }
.wss-nav .wss-nav__btn:hover { color: var(--wss-purple); background: var(--wss-hover); }
.wss-nav .wss-nav__btn[aria-expanded="true"] { color: var(--wss-purple); background: var(--wss-hover); }
/* open-state indicator = the same 3px purple bar the active menu item draws on the header's bottom edge */
.wss-nav .wss-nav__btn[aria-expanded="true"]::after {
  content: ""; position: absolute; left: -4px; right: -4px; bottom: calc((32px - var(--wss-header-h, 57px)) / 2);
  height: 3px; background: var(--wss-purple);
}
.wss-nav .wss-nav__btn:focus-visible { outline: 2px solid var(--wss-deep); outline-offset: 2px; }
.wss-nav .wss-drawer { display: none; }
/* inside the mobile drawer: hide the icon, show the form */
.mobile-menu .wss-nav { display: block; }
.mobile-menu .wss-nav .wss-nav__btn { display: none; }
/* 40px top: clears the theme's section-mark watermark (ends ~145px from the drawer top), 20px to the first menu item */
.mobile-menu .wss-nav .wss-drawer { display: block; margin: 40px 0 20px; }
.desktop-nav .wss-nav .wss-drawer { display: none; }

/* @wss-part drawer */
/* drawer field: on purple #461a7b, white bar, icon-only submit (44x44) */
.wss-nav .wss-field--drawer { height: 52px; padding: 4px 4px 4px 46px; border: 0; border-radius: 12px; box-shadow: none; }
.wss-nav .wss-field--drawer .wss-field__icon { left: 14px; width: 20px; height: 20px; }
.wss-nav .wss-field--drawer .wss-field__input { font-size: 16px; }
.wss-nav .wss-field--drawer .wss-field__clear { width: 44px; height: 44px; }
.wss-nav .wss-field--drawer:focus-within { box-shadow: 0 0 0 3px rgba(207, 153, 228, .75); }
.wss-nav .wss-btn--icon { width: 44px; height: 44px; padding: 0; border-radius: 10px; }
.wss-nav .wss-btn--icon .wss-i { width: 22px; height: 22px; }
.wss-nav .wss-btn--icon:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
/* @wss-part panel */
/* ---------- panel under the header (desktop, JS on) ---------- */
.wss-backdrop { position: fixed; left: 0; right: 0; bottom: 0; top: var(--wss-header-h, 57px); z-index: 997; background: rgba(6, 7, 16, .34); }
.wss-panel {
  position: fixed; z-index: 998; top: calc(var(--wss-header-h, 57px) + 8px); right: 80px;
  width: min(720px, calc(100vw - 160px)); max-height: calc(100vh - var(--wss-header-h, 57px) - 32px); overflow: auto;
  padding: 26px 28px 22px; background: #fff; color: var(--wss-navy);
  border: 1px solid var(--wss-hair); border-radius: 12px; box-shadow: var(--wss-shadow-pop);
}
.wss-panel::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; border-radius: 12px 12px 0 0; background: var(--wss-grad-cta); }
.wss-panel .wss-field--panel { height: 56px; padding: 5px 5px 5px 50px; background: var(--wss-field); border-color: var(--wss-field-line); border-radius: 12px; box-shadow: none; }
.wss-panel .wss-field--panel .wss-field__icon { left: 16px; }
.wss-panel .wss-field--panel .wss-field__input { font-size: 17px; }
.wss-panel .wss-field--panel .wss-btn { height: 44px; padding: 0 8px 0 18px; font-size: 16px; border-radius: 9px; }
.wss-panel .wss-field--panel .wss-btn .wss-arc { width: 26px; height: 26px; }
.wss-panel .wss-field--panel:focus-within { background: #fff; border-color: var(--wss-purple); box-shadow: 0 0 0 3px rgba(107, 32, 136, .16); }
.wss-panel .wss-panel__body { margin-top: 18px; }
.wss-panel .wss-chips { margin-top: 0; }

/* =====================================================================
   (c) SUGGESTIONS (listbox) - same idiom as the live mega-menu (group label, title + description)
   ===================================================================== */
:is(.wss-panel, .wss-sheet) .wss-lb { margin: 0 -12px; }
:is(.wss-panel, .wss-sheet) .wss-lb__group + .wss-lb__group { margin-top: 8px; padding-top: 12px; border-top: 1px solid var(--wss-hair); }
:is(.wss-panel, .wss-sheet) .wss-lb__glabel {
  display: flex; align-items: center; gap: 8px; padding: 2px 12px 6px;
  font: 700 12px/14.4px var(--wss-font); letter-spacing: .6px; text-transform: uppercase; color: var(--wss-purple);
}
:is(.wss-panel, .wss-sheet) .wss-gicon {
  display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; flex: none;
  border-radius: 50%; background: var(--wss-grad-cta); color: #fff; box-shadow: 0 3px 8px rgba(107, 32, 136, .25);
}
:is(.wss-panel, .wss-sheet) .wss-gicon svg { width: 13px; height: 13px; }
:is(.wss-panel, .wss-sheet) .wss-opt {
  position: relative; display: flex; align-items: center; gap: 12px; min-height: 52px; padding: 7px 12px;
  border-radius: var(--wss-r-item); cursor: pointer; color: var(--wss-navy);
}
:is(.wss-panel, .wss-sheet) .wss-opt__body { display: flex; flex-direction: column; gap: 2px; flex: 1 1 auto; min-width: 0; }
:is(.wss-panel, .wss-sheet) .wss-opt__t { font: 600 15px/18px var(--wss-font); color: var(--wss-navy); }
:is(.wss-panel, .wss-sheet) .wss-opt__d { font: 400 13px/19.5px var(--wss-font); color: var(--wss-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
:is(.wss-panel, .wss-sheet) .wss-opt__go { flex: none; color: var(--wss-purple); opacity: 0; transition: opacity .12s; }
:is(.wss-panel, .wss-sheet) .wss-opt__go .wss-i { width: 18px; height: 18px; }
/* hover = tint only; keyboard-active (aria-selected) = tint + 3px bar + purple title + Enter arrow */
:is(.wss-panel, .wss-sheet) .wss-opt:hover { background: var(--wss-hover); }
:is(.wss-panel, .wss-sheet) .wss-opt[aria-selected="true"] { background: var(--wss-hover); box-shadow: inset 3px 0 0 var(--wss-purple); }
:is(.wss-panel, .wss-sheet) .wss-opt[aria-selected="true"] .wss-opt__t { color: var(--wss-purple); }
:is(.wss-panel, .wss-sheet) .wss-opt[aria-selected="true"] .wss-opt__go { opacity: 1; }
:is(.wss-panel, .wss-sheet) .wss-opt--all { position: sticky; bottom: -22px; z-index: 1; background: #fff; margin-top: 10px; min-height: 48px; justify-content: flex-start; gap: 14px; border-top: 1px solid var(--wss-hair); border-radius: 0 0 8px 8px; padding-top: 12px; }
:is(.wss-panel, .wss-sheet) .wss-opt--all .wss-opt__t { color: var(--wss-purple); font-weight: 700; }
:is(.wss-panel, .wss-sheet) .wss-opt--all .wss-arc { width: 28px; height: 28px; color: var(--wss-purple); }
:is(.wss-panel, .wss-sheet) .wss-opt--all[aria-selected="true"] .wss-arc,
:is(.wss-panel, .wss-sheet) .wss-opt--all:hover .wss-arc { transform: translateX(6px) rotate(90deg); }
/* empty state */
:is(.wss-panel, .wss-sheet) .wss-empty { padding: 4px 0 2px; }
:is(.wss-panel, .wss-sheet) .wss-empty__t { margin: 0 0 4px; font: 600 16px/24px var(--wss-font); color: var(--wss-navy); }
:is(.wss-panel, .wss-sheet) .wss-empty__b { margin: 0 0 14px; font: 400 14px/21px var(--wss-font); color: var(--wss-muted); }
:is(.wss-panel, .wss-sheet) .wss-empty .wss-chips { margin: 0; }

/* drawer suggestions sheet (below the drawer field, covers the menu list while typing) */
.wss-sheet {
  margin: -8px 0 20px; padding: 14px 16px 10px; background: #fff; color: var(--wss-navy);
  border-radius: 12px; box-shadow: var(--wss-shadow-pop); overflow: auto;
  /* JS sets --wss-vvh = visualViewport.height (keyboard open) and --wss-sheet-top = sheet top in px;
     61px = the drawer's own 49px bottom padding + 12px air, so the sticky "show all" row is never clipped */
  max-height: calc(var(--wss-vvh, 100dvh) - var(--wss-sheet-top, 226px) - 61px);
}
.wss-sheet .wss-lb { margin: 0 -8px; }
.wss-sheet .wss-opt--all { bottom: -10px; }
.wss-sheet .wss-opt { min-height: 56px; padding: 8px; }
.wss-sheet .wss-opt__d { white-space: normal; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; }

/* ---------- added in the build (not drawn in the design, same idiom as the drawer sheet) ----------
   Suggestions under a "hero" field (front page block, results page, 404): the drawer sheet, absolutely
   positioned under the field. JS sets --wss-vvh / --wss-sheet-top like for the drawer, so the list never
   runs under the phone keyboard. */
:is(.wss-home, .wss-results, .wss-404) .wss-form { position: relative; }
.wss-sheet.wss-sheet--pop {
  position: absolute; left: 0; right: 0; top: calc(100% + 8px); z-index: 40; margin: 0; text-align: left;
  max-height: min(560px, calc(var(--wss-vvh, 100vh) - var(--wss-sheet-top, 200px) - 16px));
}
/* while a sheet is open its section is lifted above the sections that follow it */
:is(.wss-home, .wss-rhero, .wss-404).wss-is-open { position: relative; z-index: 30; }
.wss-sheet[hidden], .wss-panel[hidden], .wss-backdrop[hidden] { display: none; }
/* 6th result group "Kancelaria" / "The firm" (manager decision): same look as the other groups */
:is(.wss-panel, .wss-sheet) .wss-opt__d:empty { display: none; }
/* @wss-part results */
/* =====================================================================
   (e) RESULTS PAGE  /szukaj/?q=  and  /en/search/?q=
   ===================================================================== */
.wss-results { background: var(--wss-light); }
.wss-results .wss-rhero { background-image: var(--wss-grad-band); color: #fff; padding: 72px 0 64px; }
.wss-results .wss-kicker { margin: 0 0 16px; font: 700 13px/19.5px var(--wss-font); letter-spacing: 2.08px; text-transform: uppercase; color: var(--wss-kicker); }
.wss-results .wss-rhero__h1 { margin: 0 0 12px; max-width: 1060px; text-wrap: balance; font: 700 48px/56px var(--wss-font); color: #fff; overflow-wrap: anywhere; }
.wss-results .wss-rhero__search { max-width: none; } /* full container: same left AND right edge as the 2-column result grid */
.wss-results .wss-rbody__narrow { max-width: calc(50% - 15px); } /* = column 1 of the result grid */
@media (max-width: 991.98px) { .wss-results .wss-rbody__narrow { max-width: none; } }
.wss-results .wss-rhero__count { margin: 0 0 28px; max-width: 760px; font: 400 20px/32px var(--wss-font); color: rgba(255, 255, 255, .86); }
.wss-results .wss-rbody { padding: 48px 0 24px; } /* small bottom: the theme footer CTA section that follows already opens with ~140px of the same #f8f8f9 */
.wss-results .wss-tabs ul { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.wss-results .wss-tabs li { margin: 0; list-style: none; }
.wss-results .wss-tab {
  display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 8px 0 16px;
  border: 1px solid var(--wss-card-line); border-radius: 999px; background: #fff;
  font: 500 15px/1 var(--wss-font); color: var(--wss-navy); text-decoration: none; transition: border-color .15s, color .15s;
}
.wss-results .wss-tab__n { display: inline-flex; align-items: center; justify-content: center; min-width: 26px; height: 26px; padding: 0 7px; border-radius: 999px; background: var(--wss-hover); color: var(--wss-purple); font-weight: 700; font-size: 13px; }
.wss-results .wss-tab:hover { border-color: var(--wss-purple); color: var(--wss-purple); text-decoration: none; }
.wss-results .wss-tab:focus-visible { outline: 2px solid var(--wss-deep); outline-offset: 2px; }
.wss-results .wss-group { margin-top: 56px; scroll-margin-top: calc(var(--wss-header-h, 57px) + 24px); }
.wss-results .wss-group__head { display: flex; align-items: baseline; gap: 14px; margin: 0 0 20px; }
.wss-results .wss-group__h { margin: 0; font: 500 28px/36px var(--wss-font); color: var(--wss-navy); }
.wss-results .wss-group__n { font: 400 15px/1 var(--wss-font); color: var(--wss-muted); }
/* equal-height grid: rows stretch, every card is a flex column, CTA pinned to the bottom */
.wss-results .wss-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 30px; align-items: stretch; margin: 0; padding: 0; list-style: none; }
.wss-results .wss-grid--exp { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.wss-results .wss-card {
  position: relative; display: flex; gap: 18px; height: 100%; margin: 0; padding: 28px 30px 24px; list-style: none;
  background: #fff; border: 1px solid var(--wss-card-line); border-radius: var(--wss-r-card); box-shadow: var(--wss-shadow-soft);
  transition: box-shadow .2s, border-color .2s, transform .2s;
}
.wss-results .wss-card:hover { border-color: #d9c6e3; box-shadow: var(--wss-shadow-pop); transform: translateY(-2px); }
.wss-results .wss-card:focus-within { border-color: var(--wss-purple); box-shadow: 0 0 0 3px rgba(107, 32, 136, .18), var(--wss-shadow-soft); }
.wss-results .wss-card__body { display: flex; flex-direction: column; flex: 1 1 auto; min-width: 0; }
.wss-results .wss-card__type { margin: 0 0 8px; font: 700 12px/14.4px var(--wss-font); letter-spacing: .6px; text-transform: uppercase; color: var(--wss-purple); }
.wss-results .wss-card__t { margin: 0 0 8px; font: 500 22px/28px var(--wss-font); color: var(--wss-navy); overflow-wrap: anywhere; }
.wss-results .wss-card__link { color: inherit; text-decoration: none; }
.wss-results .wss-card__link::after { content: ""; position: absolute; inset: 0; border-radius: var(--wss-r-card); }
.wss-results .wss-card__link:focus-visible { outline: none; }
.wss-results .wss-card__d { margin: 0 0 20px; font: 400 16px/28px var(--wss-font); color: var(--wss-text); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.wss-results .wss-card__cta { display: inline-flex; align-items: center; gap: 16px; margin-top: auto; font: 700 16px/1.2 var(--wss-font); color: var(--wss-purple); }
.wss-results .wss-card__cta .wss-arc { width: 36px; height: 36px; }
.wss-results .wss-card:hover .wss-card__cta .wss-arc { transform: translateX(8px) rotate(90deg); }
.wss-results .wss-card--exp { flex-direction: column; align-items: flex-start; padding: 24px 24px 22px; }
.wss-results .wss-card__photo { display: block; width: 72px; height: 72px; flex: none; border-radius: 50%; overflow: hidden; background: var(--wss-hover); box-shadow: 0 0 0 3px #fff, 0 0 0 4px var(--wss-card-line); }
.wss-results .wss-card__photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 22%; }
.wss-results .wss-card--exp .wss-card__t { font-size: 20px; line-height: 26px; }
.wss-results .wss-card--exp .wss-card__d { font-size: 15px; line-height: 22px; -webkit-line-clamp: 2; }
.wss-results .wss-rbody--none { padding-top: 48px; }
.wss-results .wss-tile {
  padding: 32px 32px 28px; border-radius: var(--wss-r-card); color: #fff;
  background: linear-gradient(135deg, #6b2088 0%, #4c1466 100%); box-shadow: var(--wss-shadow-soft);
}
.wss-results .wss-tile__ico { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; margin-bottom: 22px; border-radius: 10px; background: rgba(255, 255, 255, .14); }
.wss-results .wss-tile__ico svg { width: 22px; height: 22px; }
.wss-results .wss-tile__t { margin: 0 0 8px; font: 700 22px/28px var(--wss-font); color: #fff; }
.wss-results .wss-tile__b { margin: 0 0 22px; font: 400 16px/26px var(--wss-font); color: rgba(255, 255, 255, .86); }
.wss-results .wss-tile__cta { display: inline-flex; align-items: center; gap: 16px; font: 700 17px/1.2 var(--wss-font); color: #fff; text-decoration: none; }
.wss-results .wss-tile__cta .wss-arc { width: 34px; height: 34px; }
.wss-results .wss-tile__cta:hover .wss-arc { transform: translateX(8px) rotate(90deg); }
.wss-results .wss-tile__cta:focus-visible { outline: 2px solid #fff; outline-offset: 3px; border-radius: 4px; }
@media (max-width: 1199.98px) { .wss-results .wss-grid--exp { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 991.98px) {
  .wss-results .wss-rhero { padding: 40px 0 40px; }
  .wss-results .wss-kicker { margin-bottom: 10px; }
  .wss-results .wss-rhero__h1 { font-size: 28px; line-height: 34px; }
  .wss-results .wss-rhero__count { font-size: 16px; line-height: 24px; margin-bottom: 20px; }
  .wss-results .wss-rbody { padding: 28px 0 16px; }
  .wss-results .wss-tabs ul { flex-wrap: nowrap; overflow-x: auto; margin: 0 -15px; padding: 0 15px 4px; scrollbar-width: none; }
  .wss-results .wss-tab { height: 44px; white-space: nowrap; }
  .wss-results .wss-group { margin-top: 36px; }
  .wss-results .wss-group__h { font-size: 21px; line-height: 28px; }
  .wss-results .wss-grid, .wss-results .wss-grid--exp { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .wss-results .wss-card { padding: 22px 20px 20px; }
  .wss-results .wss-card__t { font-size: 19px; line-height: 25px; }
  .wss-results .wss-card__d { font-size: 15px; line-height: 24px; margin-bottom: 14px; }
  .wss-results .wss-card--exp { flex-direction: row; align-items: center; padding: 16px 18px; gap: 16px; }
  .wss-results .wss-card--exp .wss-card__photo { width: 56px; height: 56px; }
  .wss-results .wss-card--exp .wss-card__type, .wss-results .wss-card--exp .wss-card__cta { display: none; }
  .wss-results .wss-card--exp .wss-card__t { font-size: 17px; line-height: 22px; margin-bottom: 2px; }
  .wss-results .wss-card--exp .wss-card__d { margin: 0; font-size: 14px; line-height: 20px; }
  .wss-results .wss-tile { padding: 24px 20px; }
}
/* @wss-part e404 */
/* =====================================================================
   404 block (replaces the paragraph inside the theme's centred 404 container)
   ===================================================================== */
.wss-404 { width: 100%; max-width: 780px; margin: 0 auto; text-align: left; }
.wss-404 .wss-404__msg { margin: 0 0 28px; text-align: center; color: #fff; text-wrap: balance; }
.wss-404 .wss-404__hint { margin: 0 0 12px; font: 400 16px/24px var(--wss-font); color: rgba(255, 255, 255, .86); text-align: center; }
.wss-404 .wss-chips { justify-content: center; margin-top: 16px; }
.wss-404 .wss-chips__list { justify-content: center; }
/* @wss-part motion */
@media (prefers-reduced-motion: reduce) {
  :is(.wss-home, .wss-nav, .wss-panel, .wss-sheet, .wss-results, .wss-404) :is(*, *::before, *::after) { transition: none !important; animation: none !important; }
  .wss-results .wss-card:hover { transform: none; }
}

/* The design's "drawer order" block (ul.menu:has(> li.wss-nav) as a flex column + order:-1) is NOT ported:
   the plugin PREPENDS the item for the drawer's menu call instead (the design's stated equivalent). A flex
   column would also change the vertical margin collapsing of the theme's drawer list. */
