/* Gallery — theme presentation over CBMG WebLab Core data. */
.wl-gallery-intro { padding: clamp(42px,5vw,72px) 0; display: grid; grid-template-columns: repeat(3,1fr); border-bottom: 1px solid var(--line); }
.wl-gallery-intro > div { min-height: 150px; padding: 8px clamp(22px,3vw,42px) 8px 0; display: grid; grid-template-columns: 40px 1fr; gap: 12px; align-content: start; border-right: 1px solid var(--line); }
.wl-gallery-intro > div + div { padding-left: clamp(22px,3vw,42px); }
.wl-gallery-intro > div:last-child { border-right: 0; }
.wl-gallery-intro span { color: var(--mid); font-size: 9px; letter-spacing: .12em; }
.wl-gallery-intro p { margin: 0; color: var(--gray); font-size: calc(13px * var(--text-scale)); line-height: 1.75; }
.wl-gallery-core { padding-top: clamp(70px,8vw,120px); }

/* The Core owns query logic/markup; the theme owns the visual system on this page. */
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary { --wl-blue:var(--blue); --wl-sky:var(--sky); --wl-line:var(--line); --wl-text:var(--ink); --wl-muted:var(--gray); --wl-surface:var(--surface); }
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-shell { width: 100%; max-width: none; margin: 0; padding: 0; }
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-head { display: none; }
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-filters { margin: 0 0 42px; padding: 0 0 28px; grid-template-columns: minmax(280px,1.35fr) repeat(5,minmax(118px,.58fr)); gap: 12px; border: 0; border-bottom: 1px solid var(--line); background: transparent; }
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-filters label { gap: 8px; }
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-filters label>span { color: var(--mid); font-size: calc(8px * var(--text-scale)); font-weight: 680; letter-spacing: .09em; text-transform: uppercase; }
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-filters input[type=search],
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-filters select { min-height: 48px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 0; background: var(--surface); color: var(--ink); box-shadow: none; }
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-filters input:focus,
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-filters select:focus { outline: 2px solid var(--focus-ring); outline-offset: 0; border-color: var(--mid); }
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-featured { grid-column: 1/3; min-height: 44px; align-self: end; }
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-featured input { appearance: none; -webkit-appearance: none; width: 18px; height: 18px; border: 1px solid var(--mid); border-radius: 0; background: var(--surface); position: relative; }
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-featured input:checked { background: var(--blue); border-color: var(--blue); }
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-featured input:checked::after { content:""; position:absolute; left:5px; top:2px; width:4px; height:8px; border:solid var(--inverse-text); border-width:0 2px 2px 0; transform:rotate(45deg); }
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-filter-actions { grid-column: 3/-1; align-self: end; }
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-button,
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-secondary { min-height: 44px; padding: 0 16px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--blue); border-radius: 0; background: var(--blue); color: var(--inverse-text); font-size: calc(10px * var(--text-scale)); font-weight: 650; text-decoration: none; transition: background .18s, transform .14s; }
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-secondary { background: transparent; color: var(--blue); }
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-button:hover,
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-button:focus-visible { background: var(--graphite); border-color: var(--graphite); }
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-secondary:hover,
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-secondary:focus-visible { background: color-mix(in srgb,var(--blue) 7%,transparent); }
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-button:active,
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-secondary:active { transform: translateY(1px) scale(.99); }
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-result-head { margin: 0 0 20px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-result-head strong { font-size: 28px; font-weight: 560; }
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-result-head span { font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; padding: 1px; background: var(--line); border: 0; }
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-card { border: 0; border-radius: 0; background: var(--surface); transition: transform .22s ease, box-shadow .22s ease; }
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-card.is-featured { grid-column: 1/-1; display: grid; grid-template-columns: minmax(0,1.3fr) minmax(320px,.7fr); border-top: 0; }
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-card:hover { z-index: 2; transform: translateY(-3px); box-shadow: 0 20px 50px rgba(var(--shadow-ink-rgb),.12); }
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-media { aspect-ratio: 16/10; background: var(--warm); }
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-card.is-featured .cbmg-wl-gallery-media { aspect-ratio: auto; min-height: 520px; }
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-media img { transition: transform .45s cubic-bezier(.22,.61,.36,1); }
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-card:hover .cbmg-wl-gallery-media img { transform: scale(1.025); }
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-type,
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-badge { top: 16px; padding: 7px 9px; border-radius: 0; font-size: 8px; letter-spacing: .1em; }
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-type { left: 16px; }
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-badge { right: 16px; }
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-body { padding: clamp(22px,3vw,38px); gap: 14px; }
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-body h3 { margin: 6px 0 0; font-family: var(--font-title); font-size: clamp(calc(25px * var(--title-scale)),calc(2.4vw * var(--title-scale)),calc(38px * var(--title-scale))); line-height: 1.06; letter-spacing: -.045em; font-weight: 610; }
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-body p { max-width: 580px; color: var(--gray); font-size: calc(13px * var(--text-scale)); line-height: 1.7; }
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-meta span,
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-tech span { padding: 5px 7px; border-radius: 0; font-size: 8px; letter-spacing: .05em; }
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-bottom { padding-top: 20px; border-top: 1px solid var(--line); }
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-bottom>strong { color: var(--mid); font-size: calc(11px * var(--text-scale)); }
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-text-link { padding-bottom: 3px; border-bottom: 1px solid currentColor; font-size: 10px; }
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-pagination { margin-top: 36px; }
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-pagination a,
.wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-pagination span { border-radius: 0; }
[data-theme="dark"] .wl-gallery-intro p { color: var(--dark-text-muted); }

@media (max-width: 1120px) {
  .wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-filters { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-featured,
  .wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-filter-actions { grid-column: auto; }
  .wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-card.is-featured { grid-template-columns: 1fr; }
  .wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-card.is-featured .cbmg-wl-gallery-media { min-height: 420px; }
}

/* Specificity lock: Core and earlier responsive presentation rules must not
 * reshape the approved v1.9.1 filter grid. */
.wl-gallery-core [data-cbmg-weblab-core="gallery"] .cbmg-wl-gallery-filters{grid-template-columns:repeat(12,minmax(0,1fr))!important;}
.wl-gallery-core [data-cbmg-weblab-core="gallery"] .cbmg-wl-gallery-search{grid-column:span 4!important;}
.wl-gallery-core [data-cbmg-weblab-core="gallery"] .cbmg-wl-gallery-filters>label:not(.cbmg-wl-gallery-search):not(.cbmg-wl-gallery-featured){grid-column:span 2!important;}
.wl-gallery-core [data-cbmg-weblab-core="gallery"] .cbmg-wl-gallery-featured{grid-column:1/7!important;}
.wl-gallery-core [data-cbmg-weblab-core="gallery"] .cbmg-wl-gallery-filter-actions{grid-column:7/-1!important;}
@media(max-width:1120px){
  .wl-gallery-core [data-cbmg-weblab-core="gallery"] .cbmg-wl-gallery-search{grid-column:span 6!important;}
  .wl-gallery-core [data-cbmg-weblab-core="gallery"] .cbmg-wl-gallery-filters>label:not(.cbmg-wl-gallery-search):not(.cbmg-wl-gallery-featured){grid-column:span 3!important;}
}
@media(max-width:760px){
  .wl-gallery-core [data-cbmg-weblab-core="gallery"] .cbmg-wl-gallery-filters{grid-template-columns:1fr!important;}
  .wl-gallery-core [data-cbmg-weblab-core="gallery"] .cbmg-wl-gallery-search,
  .wl-gallery-core [data-cbmg-weblab-core="gallery"] .cbmg-wl-gallery-filters>label:not(.cbmg-wl-gallery-search):not(.cbmg-wl-gallery-featured),
  .wl-gallery-core [data-cbmg-weblab-core="gallery"] .cbmg-wl-gallery-featured,
  .wl-gallery-core [data-cbmg-weblab-core="gallery"] .cbmg-wl-gallery-filter-actions{grid-column:1!important;}
}
.wl-gallery-core{padding:clamp(52px,6vw,88px) 0 clamp(72px,8vw,120px);}
/* v1.9.1 — deliberate two-row filter composition. Six data controls occupy
 * the first row; the boolean and actions share a balanced second row. */
.wl-gallery-core [data-cbmg-weblab-core="gallery"] .cbmg-wl-gallery-filters{grid-template-columns:repeat(12,minmax(0,1fr));gap:16px 12px;align-items:end;}
.wl-gallery-core [data-cbmg-weblab-core="gallery"] .cbmg-wl-gallery-search{grid-column:span 4;}
.wl-gallery-core [data-cbmg-weblab-core="gallery"] .cbmg-wl-gallery-filters>label:not(.cbmg-wl-gallery-search):not(.cbmg-wl-gallery-featured){grid-column:span 2;}
.wl-gallery-core [data-cbmg-weblab-core="gallery"] .cbmg-wl-gallery-featured{grid-column:1/7;min-height:48px;margin:0;padding:0 14px;border:1px solid var(--line);border-radius:4px;background:var(--surface);}
.wl-gallery-core [data-cbmg-weblab-core="gallery"] .cbmg-wl-gallery-featured input{border-radius:4px;}
.wl-gallery-core [data-cbmg-weblab-core="gallery"] .cbmg-wl-gallery-filter-actions{grid-column:7/-1;min-height:48px;display:flex;align-items:stretch;justify-content:flex-end;gap:10px;}
.wl-gallery-core [data-cbmg-weblab-core="gallery"] .cbmg-wl-gallery-filters input[type=search],.wl-gallery-core [data-cbmg-weblab-core="gallery"] .cbmg-wl-gallery-filters select,.wl-gallery-core [data-cbmg-weblab-core="gallery"] .cbmg-wl-button,.wl-gallery-core [data-cbmg-weblab-core="gallery"] .cbmg-wl-secondary{height:48px;min-height:48px;border-radius:4px;}
.wl-gallery-core [data-cbmg-weblab-core="gallery"] .cbmg-wl-gallery-filter-actions>*{margin:0;}
@media(max-width:1120px){.wl-gallery-core [data-cbmg-weblab-core="gallery"] .cbmg-wl-gallery-search{grid-column:span 6;}.wl-gallery-core [data-cbmg-weblab-core="gallery"] .cbmg-wl-gallery-filters>label:not(.cbmg-wl-gallery-search):not(.cbmg-wl-gallery-featured){grid-column:span 3;}.wl-gallery-core [data-cbmg-weblab-core="gallery"] .cbmg-wl-gallery-featured{grid-column:1/7;}.wl-gallery-core [data-cbmg-weblab-core="gallery"] .cbmg-wl-gallery-filter-actions{grid-column:7/-1;}}
@media (max-width: 760px) {
  .wl-gallery-intro { grid-template-columns: 1fr; }
  .wl-gallery-intro > div,.wl-gallery-intro > div + div { min-height: 0; padding: 22px 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .wl-gallery-intro > div:last-child { border-bottom: 0; }
  .wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-grid,
  .wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-filters { grid-template-columns: 1fr; }
  .wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-card.is-featured { grid-column: auto; }
  .wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-card.is-featured .cbmg-wl-gallery-media { min-height: 0; aspect-ratio: 16/10; }
  .wl-gallery-core [data-cbmg-weblab-core][data-cbmg-weblab-core="gallery"].cbmg-weblab-core-boundary .cbmg-wl-gallery-filter-actions { justify-content: stretch; }
  .wl-gallery-core [data-cbmg-weblab-core="gallery"] .cbmg-wl-gallery-search,
  .wl-gallery-core [data-cbmg-weblab-core="gallery"] .cbmg-wl-gallery-filters>label:not(.cbmg-wl-gallery-search):not(.cbmg-wl-gallery-featured),
  .wl-gallery-core [data-cbmg-weblab-core="gallery"] .cbmg-wl-gallery-featured,
  .wl-gallery-core [data-cbmg-weblab-core="gallery"] .cbmg-wl-gallery-filter-actions { grid-column:1/-1; }
  .wl-gallery-core [data-cbmg-weblab-core="gallery"] .cbmg-wl-gallery-filter-actions>* { flex:1 1 0; }
}
