:root {
      --xsg-yellow: #ffd100;
      --xsg-yellow-dark: #e9bd00;
      --xsg-black: #111;
      --xsg-ink: #242424;
      --xsg-muted: #676767;
      --xsg-line: #dedede;
      --xsg-bg: #f6f6f3;
      --xsg-white: #fff;
      --xsg-radius: 14px;
      --xsg-shadow: 0 10px 28px rgba(0, 0, 0, .09);
    }

    * { box-sizing: border-box; }

    body {
      margin: 0;
      color: var(--xsg-ink);
      background: var(--xsg-bg);
      font-family: Arial, Helvetica, sans-serif;
      line-height: 1.5;
    }

    body.xsg-no-scroll { overflow: hidden; }

    .xsg-shell {
      width: min(1180px, calc(100% - 32px));
      margin-inline: auto;
    }

    .xsg-hero {
      padding: 72px 0 56px;
      color: var(--xsg-white);
      background:
        linear-gradient(115deg, rgba(0, 0, 0, .94), rgba(0, 0, 0, .72)),
        var(--xsg-black);
    }

    .xsg-eyebrow {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      margin: 0 0 14px;
      color: var(--xsg-yellow);
      font-size: .79rem;
      font-weight: 800;
      letter-spacing: .14em;
      text-transform: uppercase;
    }

    .xsg-eyebrow::before {
      width: 28px;
      height: 3px;
      background: currentColor;
      content: "";
    }

    .xsg-hero h1 {
      max-width: 760px;
      margin: 0;
      font-size: clamp(2rem, 5vw, 4rem);
      line-height: 1.05;
      letter-spacing: -.035em;
    }

    .xsg-hero p {
      max-width: 690px;
      margin: 18px 0 0;
      color: #d6d6d6;
      font-size: clamp(1rem, 2vw, 1.15rem);
    }

    .xsg-gallery-section { padding: 42px 0 72px; }

    .xsg-toolbar {
      display: grid;
      grid-template-columns: minmax(240px, 1fr) repeat(1, minmax(190px, 260px));
      gap: 14px;
      padding: 18px;
      border: 1px solid var(--xsg-line);
      border-radius: var(--xsg-radius);
      background: var(--xsg-white);
      box-shadow: 0 5px 20px rgba(0, 0, 0, .05);
    }
    .xsg-field:nth-child(3) {
        display: none;
    }
    .xsg-field label {
      display: block;
      margin-bottom: 6px;
      color: #444;
      font-size: .75rem;
      font-weight: 800;
      letter-spacing: .06em;
      text-transform: uppercase;
    }

    .xsg-control {
      width: 100%;
      min-height: 46px;
      padding: 10px 13px;
      border: 1px solid #cfcfcf;
      border-radius: 9px;
      color: var(--xsg-ink);
      background: var(--xsg-white);
      font: inherit;
    }

    .xsg-control:focus {
      border-color: var(--xsg-black);
      outline: 3px solid rgba(255, 209, 0, .35);
    }

    .xsg-search-wrap {
      position: relative;
    }

    .xsg-search-wrap .xsg-control {
      padding-left: 38px;
    }

    .xsg-search-icon {
      position: absolute;
      top: 50%;
      left: 12px;
      transform: translateY(-50%);
      width: 18px;
      height: 18px;
      color: var(--xsg-muted);
      pointer-events: none;
    }

    .xsg-summary {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
      min-height: 32px;
      margin: 22px 2px 14px;
      color: var(--xsg-muted);
      font-size: .94rem;
    }

    .xsg-clear {
      padding: 0;
      border: 0;
      color: #333;
      background: transparent;
      font: inherit;
      font-weight: 700;
      text-decoration: underline;
      cursor: pointer;
    }

    .xsg-grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 20px;
    }

    .xsg-card {
      overflow: hidden;
      border: 1px solid var(--xsg-line);
      border-radius: var(--xsg-radius);
      background: var(--xsg-white);
      box-shadow: 0 4px 16px rgba(0, 0, 0, .055);
      transition: transform .2s ease, box-shadow .2s ease;
    }

    .xsg-card:hover {
      transform: translateY(-3px);
      box-shadow: var(--xsg-shadow);
    }

    .xsg-card-button {
      display: block;
      width: 100%;
      padding: 0;
      border: 0;
      color: inherit;
      background: transparent;
      text-align: left;
      cursor: zoom-in;
    }

    .xsg-media {
      position: relative;
      aspect-ratio: 4 / 3;
      overflow: hidden;
      background: #e8e8e5;
    }

    .xsg-media img {
      width: 100%;
      height: 100%;
      object-fit: contain;
      display: block;
      transition: transform .3s ease;
    }

    .xsg-card:hover .xsg-media img { transform: scale(1.025); }

    .xsg-zoom {
      position: absolute;
      right: 12px;
      bottom: 12px;
      display: grid;
      width: 40px;
      height: 40px;
      place-items: center;
      border-radius: 50%;
      color: var(--xsg-black);
      background: var(--xsg-yellow);
      box-shadow: 0 4px 12px rgba(0, 0, 0, .22);
      transition: transform .2s ease, background-color .2s ease;
    }

    .xsg-zoom svg {
      display: block;
      width: 20px;
      height: 20px;
    }

    .xsg-card:hover .xsg-zoom {
      transform: scale(1.08);
      background: var(--xsg-yellow-dark);
    }

    .xsg-card-copy { padding: 16px 17px 18px; }

    .xsg-category {
      display: inline-block;
      margin-bottom: 7px;
      color: #705c00;
      font-size: .72rem;
      font-weight: 800;
      letter-spacing: .06em;
      text-transform: uppercase;
    }

    .xsg-card h2 {
      margin: 0;
      color: var(--xsg-black);
      font-size: 1.05rem;
      line-height: 1.35;
      display:none;
    }

    .xsg-location {
      margin: 7px 0 0;
      color: var(--xsg-muted);
      font-size: .88rem;
    }

    .xsg-empty,
    .xsg-error,
    .xsg-loading {
      grid-column: 1 / -1;
      padding: 58px 20px;
      border: 1px dashed #bdbdbd;
      border-radius: var(--xsg-radius);
      background: var(--xsg-white);
      text-align: center;
    }

    .xsg-error { color: #8b1f1f; }

    .xsg-pagination {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: center;
      gap: 8px;
      margin-top: 34px;
    }

    .xsg-page-button {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 6px;
      min-width: 42px;
      min-height: 42px;
      padding: 8px 12px;
      border: 1px solid #c8c8c8;
      border-radius: 8px;
      color: var(--xsg-ink);
      background: var(--xsg-white);
      font: inherit;
      font-weight: 700;
      cursor: pointer;
      transition: border-color .15s ease, background-color .15s ease, color .15s ease;
    }

    .xsg-page-button svg {
      display: block;
      width: 15px;
      height: 15px;
      flex-shrink: 0;
    }

    .xsg-page-button:hover,
    .xsg-page-button:focus-visible {
      border-color: var(--xsg-black);
      outline: none;
    }

    .xsg-page-button[aria-current="page"] {
      border-color: var(--xsg-yellow);
      color: var(--xsg-black);
      background: var(--xsg-yellow);
    }

    .xsg-page-button:disabled {
      opacity: .45;
      cursor: not-allowed;
    }

    .xsg-page-gap { padding-inline: 3px; color: var(--xsg-muted); }

    .xsg-lightbox {
      position: fixed;
      z-index: 99999;
      inset: 0;
      display: none;
      align-items: center;
      justify-content: center;
      padding: 58px 70px 38px;
      background: rgba(0, 0, 0, .94);
    }

    .xsg-lightbox.is-open { display: flex; }

    .xsg-lightbox-figure {
      display: flex;
      max-width: min(1200px, 100%);
      max-height: 100%;
      margin: 0;
      flex-direction: column;
      align-items: center;
      gap: 13px;
    }

    .xsg-lightbox-image {
      display: block;
      max-width: 100%;
      max-height: calc(100vh - 130px);
      object-fit: contain;
    }

    .xsg-lightbox-caption {
      color: #eee;
      text-align: center;
    }

    .xsg-lightbox-control {
      position: absolute;
      display: grid;
      width: 48px;
      height: 48px;
      padding: 0;
      place-items: center;
      border: 1px solid rgba(255, 255, 255, .3);
      border-radius: 50%;
      color: var(--xsg-white);
      background: rgba(20, 20, 20, .72);
      cursor: pointer;
      transition: border-color .2s ease, color .2s ease, background-color .2s ease;
    }

    .xsg-lightbox-control svg {
      display: block;
      width: 26px;
      height: 26px;
    }

    .xsg-lightbox-control:hover,
    .xsg-lightbox-control:focus-visible {
      border-color: var(--xsg-yellow);
      color: var(--xsg-yellow);
      background: rgba(30, 30, 30, .9);
      outline: none;
    }

    .xsg-close { top: 16px; right: 18px; }
    .xsg-previous { top: 50%; left: 14px; transform: translateY(-50%); }
    .xsg-next { top: 50%; right: 14px; transform: translateY(-50%); }

    @media (max-width: 860px) {
      .xsg-toolbar { grid-template-columns: 1fr 1fr; }
      .xsg-field:first-child { grid-column: 1 / -1; }
      .xsg-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    }

    @media (max-width: 560px) {
      .xsg-shell { width: min(100% - 22px, 1180px); }
      .xsg-hero { padding: 48px 0 40px; }
      .xsg-gallery-section { padding-top: 24px; }
      .xsg-toolbar, .xsg-grid { grid-template-columns: 1fr; }
      .xsg-field:first-child { grid-column: auto; }
      .xsg-summary { align-items: flex-start; flex-direction: column; gap: 5px; }
      .xsg-lightbox { padding: 62px 12px 56px; }
      .xsg-previous { top: auto; bottom: 8px; left: calc(50% - 58px); transform: none; }
      .xsg-next { top: auto; right: calc(50% - 58px); bottom: 8px; transform: none; }
    }

    @media (prefers-reduced-motion: reduce) {
      *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
    }