:root {
  --color-bg: #f4f2ed;
  --color-text: #1a1f1d;
  --color-accent: #8c2a3e;
  --font-sans: Corbel, "Segoe UI", "Helvetica Neue", Roboto, "Noto Sans", Arial, sans-serif;
  --font-display: Cambria, Athelas, "Noto Serif", "DejaVu Serif", Georgia, serif;
  --space-section: 2.1875rem;
  --gb-paper: #ffffff;
  --gb-ink-2: #3a3f3c;
  --gb-muted: #5b605c;
  --gb-line: #dcd8cf;
  --gb-line-strong: #8d8a83;
  --gb-accent-deep: #6e1f30;
  --gb-accent-soft: #f5e1e5;
  --gb-accent-hover: #fbf1f3;
  --gb-band: #25364a;
  --gb-on-band: #ffffff;
  --gb-on-band-soft: #c8d1dc;
  --gb-gold: #d9a73e;
  --gb-gold-soft: #f8ecd0;
  --gb-gold-edge: #8a6210;
  --gb-red: #b3261e;
  --gb-red-soft: #fbe2df;
  --gb-amber: #7a4d00;
  --gb-amber-soft: #f7ead2;
  --gb-green: #2f6646;
  --gb-green-soft: #deede3;
  --gb-grey: #e9e7e1;
  --gb-radius: .375rem;
  --gb-radius-s: .1875rem;
  --gb-chip: .3rem;
  --gb-shadow: 0 1px 2px rgba(26, 31, 29, .07), 0 10px 22px -15px rgba(26, 31, 29, .45);
  --gb-gutter: 1rem;
  --gb-cols: minmax(0, 1.12fr) minmax(0, .86fr) minmax(0, 1fr);
}

*, *::before, *::after { box-sizing: border-box; }
[hidden]:not(.gb-sprite) { display: none !important; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; color-scheme: light; scroll-padding-top: 1rem; }
body {
  margin: 0;
  background: var(--color-bg);
  color: var(--color-text);
  font-family: var(--font-sans);
  font-size: 1rem;
  font-size-adjust: .5;
  line-height: 1.52;
  overflow-wrap: break-word;
}
a { color: var(--gb-accent-deep); text-decoration-thickness: .08em; text-underline-offset: .18em; }
a:hover { color: var(--color-accent); text-decoration-thickness: .14em; }
:focus-visible { outline: 3px solid var(--gb-accent-deep); outline-offset: 2px; }
h1, h2, h3 { margin: 0 0 .5em; font-family: var(--font-display); font-weight: 700; line-height: 1.15; color: var(--color-text); -webkit-hyphens: auto; hyphens: auto; }
h1 { font-size: clamp(1.85rem, 1.4rem + 1.9vw, 2.8rem); letter-spacing: -.01em; }
h2 { margin-top: var(--space-section); font-size: 1.5625rem; }
h3 { font-size: 1.125rem; }
p, ul, ol, table, details { margin: 0 0 1rem; }
img, svg { max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; color: inherit; }
table { border-collapse: collapse; }
th { text-align: left; }
summary { cursor: pointer; }

.gb-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.gb-sprite symbol { stroke-width: 2.1; }
.gb-icon { flex: none; width: 1.2em; height: 1.2em; vertical-align: -.24em; }
.gb-skip { position: absolute; left: -999rem; top: .5rem; z-index: 30; padding: .5rem .9rem; border-radius: var(--gb-radius-s); background: var(--color-text); color: var(--gb-paper); font-weight: 700; }
.gb-skip:focus { left: .75rem; }
.gb-wrap { max-width: 75rem; margin: 0 auto; padding: 0 var(--gb-gutter); }
@media (min-width: 40rem) {
  .gb-wrap { --gb-gutter: 1.5rem; }
}

.gb-header { position: relative; z-index: 5; background: var(--gb-band); color: var(--gb-on-band); }
.gb-header::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  height: .32rem;
  background: linear-gradient(var(--gb-gold) 0 34%, var(--color-accent) 34% 100%);
  pointer-events: none;
}
.gb-header :focus-visible { outline-color: var(--gb-gold); }
.gb-header .gb-wrap { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem 1rem; padding-top: .7rem; padding-bottom: .55rem; }
.gb-brand { display: inline-flex; align-items: center; gap: .55rem; font-family: var(--font-display); font-size: 1.4rem; font-weight: 700; letter-spacing: 0; color: var(--gb-on-band); text-decoration: none; }
.gb-brand::before { content: ""; width: 1.15rem; height: .62rem; margin-top: .3rem; border: .19rem solid var(--gb-gold); border-bottom: 0; border-radius: .62rem .62rem 0 0; }
.gb-brand:hover { color: var(--gb-gold-soft); }
.gb-nav { order: 3; flex: 1 1 100%; }
.gb-nav ul { list-style: none; margin: 0; padding: 0; }
.gb-nav > ul { display: flex; flex-wrap: wrap; gap: .1rem .2rem; margin: 0 -.55rem; }
.gb-nav > ul > li > a { display: block; padding: .3rem .6rem; border-radius: var(--gb-chip); color: var(--gb-on-band); font-weight: 700; text-decoration: none; }
.gb-nav > ul > li > a:hover, .gb-has-sub:focus-within > a { background: rgba(255, 255, 255, .15); color: var(--gb-on-band); }
.gb-nav > ul > li > a[aria-current="page"] { background: var(--gb-on-band); color: var(--gb-band); }
.gb-has-sub { position: relative; }
.gb-sub {
  display: none;
  position: absolute;
  left: 0;
  top: 100%;
  z-index: 20;
  min-width: 13rem;
  max-height: 70vh;
  overflow-y: auto;
  padding: .4rem;
  background: var(--gb-paper);
  border: 1px solid var(--gb-line);
  border-radius: var(--gb-radius);
  box-shadow: 0 16px 32px -16px rgba(26, 31, 29, .5);
}
.gb-nav > ul > li:nth-last-child(-n+2) > .gb-sub { left: auto; right: 0; }
.gb-has-sub:focus-within > .gb-sub { display: block; }
@media (hover: hover) {
  .gb-has-sub:hover > .gb-sub { display: block; }
}
.gb-sub a { display: block; padding: .3rem .6rem; border-radius: var(--gb-radius-s); color: var(--color-text); text-decoration: none; }
.gb-sub a:hover { background: var(--gb-accent-soft); color: var(--gb-accent-deep); }
.gb-sub a[aria-current="page"] { background: var(--gb-accent-soft); color: var(--gb-accent-deep); font-weight: 700; }
.gb-langs { display: flex; gap: .3rem; margin: 0 0 0 auto; padding: 0; list-style: none; font-size: .875rem; }
.gb-langs a { display: block; padding: .15rem .65rem; border: 1.5px solid rgba(255, 255, 255, .55); border-radius: var(--gb-chip); color: var(--gb-on-band); font-weight: 700; text-decoration: none; }
.gb-langs a:hover { background: rgba(255, 255, 255, .15); color: var(--gb-on-band); }
.gb-langs a[aria-current] { background: var(--gb-on-band); border-color: var(--gb-on-band); color: var(--gb-band); }
@media (max-width: 39.99rem) {
  h1 { font-size: 1.625rem; margin-bottom: .4em; }
  .gb-main { padding-top: .75rem; }
  .gb-numbers { margin-bottom: .5rem; font-size: .875rem; line-height: 1.45; }
  .gb-main .gb-lead { margin-bottom: .6rem; font-size: .9375rem; line-height: 1.45; }
  .gb-filters-slot { margin: .6rem 0; }
  .gb-header .gb-wrap { gap: .2rem .75rem; padding-top: .45rem; padding-bottom: .3rem; }
  .gb-nav > ul { margin: 0 -.45rem; }
  .gb-nav > ul > li > a { padding: .25rem .45rem; font-size: .9375rem; }
}
@media (min-width: 40rem) {
  .gb-brand { white-space: nowrap; }
}
@media (min-width: 60rem) {
  .gb-header .gb-wrap { row-gap: .5rem; padding-top: .9rem; padding-bottom: .6rem; }
  .gb-brand { font-size: 1.55rem; }
}

.gb-main { padding: 1.9rem 0 var(--space-section); }
.gb-main:focus { outline: none; }
.gb-crumbs { margin-bottom: .75rem; font-size: .875rem; color: var(--gb-muted); }
.gb-crumbs ol { display: flex; flex-wrap: wrap; align-items: center; margin: 0; padding: 0; list-style: none; }
.gb-crumbs li + li::before { content: ""; display: inline-block; width: .38em; height: .38em; margin: 0 .6em .1em .4em; border-top: 1.5px solid currentColor; border-right: 1.5px solid currentColor; transform: rotate(45deg); }
.gb-crumbs a { color: var(--gb-ink-2); }

.gb-numbers { margin-bottom: .75rem; font-size: 1.0625rem; color: var(--gb-ink-2); }
.gb-num { padding: 0 .1em; background: linear-gradient(transparent 60%, var(--gb-gold) 60%); color: var(--color-text); font-weight: 700; font-variant-numeric: lining-nums tabular-nums; }
.gb-lead, .gb-intro { font-size: 1.125rem; color: var(--gb-ink-2); }
.gb-note { font-size: .875rem; color: var(--gb-muted); }
.gb-weak { color: var(--gb-muted); }
.gb-count { display: inline-block; min-width: 1.7rem; padding: .05rem .45rem; border-radius: var(--gb-chip); background: var(--gb-gold-soft); color: var(--color-text); font-size: .8125rem; font-weight: 700; text-align: center; font-variant-numeric: tabular-nums; }
.gb-noscript { padding: .6rem .9rem; border-radius: var(--gb-radius-s); background: var(--gb-gold-soft); font-size: .875rem; }
.gb-empty { padding: 1.5rem; border: 2px dashed var(--gb-line-strong); border-radius: var(--gb-radius); background: var(--gb-paper); color: var(--gb-ink-2); }

.gb-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  min-height: 2.5rem;
  padding: .45rem 1rem;
  border: 2px solid var(--color-accent);
  border-radius: var(--gb-chip);
  background: var(--gb-paper);
  color: var(--gb-accent-deep);
  font: inherit;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
}
.gb-btn:hover { background: var(--color-accent); color: var(--gb-paper); }

.gb-filters-slot { margin: 1.25rem 0; }
.gb-filters {
  padding: .5rem .9rem .2rem;
  background: var(--gb-paper);
  border: 1px solid var(--gb-line);
  border-top: 4px solid var(--color-accent);
  border-radius: var(--gb-radius);
  box-shadow: var(--gb-shadow);
  font-size: .9375rem;
  line-height: 1.4;
}
.gb-filters-box { margin: 0; }
.gb-filters-box > summary, .gb-filters-more > summary { padding: .3rem 0; color: var(--gb-accent-deep); font-weight: 700; }
.gb-filters-more { display: block; margin: 0 0 .3rem; }
.gb-filters-more:not([open]) { display: inline-block; margin-right: 1.1rem; }
.gb-filters-more[open] > summary { margin-bottom: .4rem; }
.gb-frow { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .25rem .45rem; min-width: 0; margin: 0 1.1rem .45rem 0; vertical-align: middle; }
.gb-frow label { overflow-wrap: anywhere; }
.gb-frow > label[for]:first-child, .gb-frow > span[aria-hidden]:first-child { color: var(--gb-ink-2); font-size: .8125rem; font-weight: 700; line-height: 1.2; }
.gb-frow select, .gb-frow input[type="number"], .gb-frow input[type="text"], .gb-frow input[type="time"] {
  flex: 0 1 auto;
  min-width: 0;
  min-height: 2.1rem;
  padding: .15rem .45rem;
  border: 1.5px solid var(--gb-line-strong);
  border-radius: var(--gb-radius-s);
  background: var(--gb-paper);
}
.gb-frow select:focus, .gb-frow input:focus { border-color: var(--color-accent); }
.gb-frow select:disabled, .gb-frow input:disabled { border-style: dashed; background: var(--gb-grey); color: var(--gb-ink-2); }
.gb-frow input[type="checkbox"] { flex: none; width: 1.1rem; height: 1.1rem; margin: 0; accent-color: var(--color-accent); }
.gb-frow label:has(> input[type="checkbox"]) { display: inline-flex; align-items: center; gap: .45rem; min-height: 1.9rem; cursor: pointer; }
.gb-frow[role="group"] label:has(> input) { position: relative; min-height: 1.85rem; padding: .2rem .6rem; font-size: .875rem; border: 1.5px solid var(--gb-line-strong); border-radius: var(--gb-chip); background: var(--gb-paper); }
.gb-frow[role="group"] label > input[type="checkbox"] { position: absolute; left: 50%; top: 50%; width: 1px; height: 1px; opacity: 0; }
.gb-frow[role="group"] label:hover { border-color: var(--color-accent); }
.gb-frow[role="group"] label:has(> input:checked) { border-color: var(--color-accent); background: var(--color-accent); color: var(--gb-paper); font-weight: 700; }
.gb-frow[role="group"] label:has(> input:focus-visible) { outline: 3px solid var(--gb-accent-deep); outline-offset: 2px; }
.gb-frow[role="group"] label:has(> input:disabled) { border-style: dashed; cursor: default; }
@media (forced-colors: active) {
  .gb-frow[role="group"] label > input[type="checkbox"] { position: static; width: 1.1rem; height: 1.1rem; opacity: 1; }
}
.gb-frow[role="group"] label[for] { color: var(--gb-ink-2); font-size: .8125rem; }
.gb-frow:has(> [name="pu"]) > label[for]:not(:first-child) { color: var(--gb-ink-2); font-size: .8125rem; }
.gb-frow[role="group"] { gap: .35rem .3rem; }
.gb-frow:has([name="d"]) label:has(> input) { justify-content: center; padding: .2rem .5rem; font-size: .8125rem; }
.gb-unlock { font-size: .8125rem; font-weight: 700; }
.gb-origin .gb-hint { display: inline; color: var(--gb-muted); font-weight: 400; }
.gb-origin input[type="text"] { flex: 0 1 11rem; width: 11rem; }
.gb-origin .gb-btn { min-height: 2.1rem; padding: .15rem .8rem; font-size: .875rem; }
.gb-map { flex: 0 1 auto; margin: 0; }
.gb-map[open] { flex: 0 0 100%; }
.gb-map > summary { color: var(--gb-accent-deep); font-size: .875rem; font-weight: 700; }
.gb-map-box { position: relative; width: fit-content; margin-top: .5rem; border-radius: var(--gb-radius-s); outline: 1px solid var(--gb-line-strong); line-height: 0; cursor: crosshair; }
.gb-map-img { display: block; width: 30rem; height: auto; border-radius: var(--gb-radius-s); }
.gb-map-box img { max-width: 100%; }
.gb-map-pin { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.gb-map-pin circle { fill: var(--color-accent); stroke: var(--gb-paper); stroke-width: 3; }
.gb-map-box[data-gb-live] { width: 100%; }
.gb-map-box[data-gb-live] .gb-map-img { width: 100%; height: min(60vh, 30rem); object-fit: cover; }
.gb-map-box[data-gb-live] .gb-map-pin { pointer-events: auto; touch-action: none; }
.gb-map-box[data-gb-live] .gb-map-pin g circle { fill: var(--color-accent); stroke: none; opacity: .75; }
.gb-map-box[data-gb-live] .gb-map-pin > circle { fill: #1a1f1d; stroke: #fff; stroke-width: 3; }
.gb-map-box[data-gb-live] > a { display: inline-block; margin-top: .3rem; font-size: .75rem; line-height: 1.4; }
.gb-out { display: inline-block; margin: 0 1rem .45rem 0; color: var(--gb-accent-deep); font-weight: 700; }
.gb-filters button[type="reset"] { margin: 0 0 .45rem; min-height: 2.1rem; padding: .15rem .85rem; border-color: var(--gb-line-strong); color: var(--gb-ink-2); font-size: .875rem; }
.gb-filters button[type="reset"]:hover { border-color: var(--gb-red); background: var(--gb-red); color: var(--gb-paper); }
@media (min-width: 40rem) {
  @supports selector(::details-content) {
    .gb-filters-box > summary { display: none; }
    .gb-filters-box::details-content { content-visibility: visible; }
  }
}

.gb-table-wrap { margin: 0 0 1.5rem; overflow-x: auto; }
.gb-table-wrap:has(> .gb-list) { overflow: visible; }
.gb-list { width: 100%; margin: 0; font-size: .9375rem; line-height: 1.4; font-variant-numeric: lining-nums tabular-nums; }
.gb-order-note { caption-side: top; padding: 0 0 .9rem; color: var(--gb-ink-2); font-size: .9375rem; font-weight: 700; text-align: left; }
.gb-legend { margin: .5rem 0 1.25rem; color: var(--gb-muted); font-size: .8125rem; line-height: 1.5; }
.gb-legend > summary { cursor: pointer; color: var(--gb-ink-2); font-weight: 700; }
.gb-legend > p { margin: .4rem 0 0; }
.gb-list td:first-child > a { color: var(--gb-accent-deep); font-weight: 700; text-decoration: none; }
.gb-list td:first-child > a:hover { color: var(--color-accent); text-decoration: underline; }
.gb-tags { color: var(--gb-muted); font-size: .8125rem; }
.gb-tags:empty { display: none; }
.gb-list td:first-child > time { color: var(--gb-muted); font-size: .75rem; white-space: nowrap; }
.gb-tags:not(:empty) + time::before { content: ""; display: inline-block; width: .3em; height: .3em; margin: 0 .45em .2em .2em; border-radius: 50%; background: currentColor; }
.gb-list td:nth-child(5) { color: var(--gb-ink-2); font-size: .875rem; }
.gb-list td:nth-child(7) { font-size: .8125rem; letter-spacing: .03em; }
.gb-list q { color: var(--gb-ink-2); font-size: .875rem; font-style: italic; }
.gb-dist { display: block; margin-top: .15rem; color: var(--color-accent); font-size: .8125rem; font-weight: 700; }
.gb-has-origin .gb-dist { color: var(--gb-accent-deep); }
.gb-tail-h > th { padding: 1.1rem .65rem .5rem; border-top: 3px solid var(--gb-gold); background: var(--gb-gold-soft); color: var(--color-text); font-family: var(--font-display); font-size: 1.0625rem; font-weight: 700; text-align: left; }
.gb-tail > tr > td, .gb-is-tail > td { color: var(--gb-ink-2); }
.gb-is-tail > td:first-child { box-shadow: inset 3px 0 0 var(--gb-gold); }
.gb-is-out { display: none; }
.gb-is-filtered > caption { color: var(--gb-accent-deep); }

@media (min-width: 56rem) {
  .gb-list { table-layout: fixed; border-collapse: separate; border-spacing: 0; background: var(--gb-paper); border: 1px solid var(--gb-line); border-radius: var(--gb-radius); box-shadow: var(--gb-shadow); }
  .gb-list > thead { position: sticky; top: 0; z-index: 3; }
  .gb-list > thead th { padding: .5rem .65rem; background: var(--gb-band); color: var(--gb-paper); font-family: var(--font-sans); font-size: .8125rem; font-weight: 700; letter-spacing: .03em; vertical-align: bottom; overflow-wrap: break-word; }
  .gb-list > thead tr:first-child > th:nth-child(1) { width: 20%; border-top-left-radius: calc(var(--gb-radius) - 1px); }
  .gb-list > thead tr:first-child > th:nth-child(2) { width: 11%; }
  .gb-list > thead tr:first-child > th:nth-child(3) { width: 7%; }
  .gb-list > thead tr:first-child > th:nth-child(4) { width: 16%; }
  .gb-list > thead tr:first-child > th:nth-child(5) { width: 16%; }
  .gb-list > thead tr:first-child > th:nth-child(6) { width: 11%; }
  .gb-list > thead tr:first-child > th:nth-child(7) { width: 9%; }
  .gb-list > thead tr:first-child > th:nth-child(8) { width: 10%; border-top-right-radius: calc(var(--gb-radius) - 1px); }
  .gb-list td { padding: .6rem .65rem; border-top: 1px solid var(--gb-line); vertical-align: top; }
  .gb-rows > tr:first-child > td { border-top: 0; }
  .gb-list > tbody > tr:hover > td { background: var(--gb-accent-hover); }
  .gb-list td:first-child > a { display: block; font-size: 1rem; line-height: 1.3; }
  .gb-tail:last-child > tr:last-child > td:first-child { border-bottom-left-radius: calc(var(--gb-radius) - 1px); }
}

@media (max-width: 55.99rem) {
  .gb-table-wrap:has(> .gb-list) { margin-left: calc(-1 * var(--gb-gutter)); margin-right: calc(-1 * var(--gb-gutter)); }
  .gb-list, .gb-list > caption, .gb-list > tbody { display: block; }
  .gb-list { display: flex; flex-direction: column; }
  .gb-list { border-bottom: 1px solid var(--gb-line); background: var(--gb-paper); }
  .gb-list > caption { order: 3; padding: .8rem var(--gb-gutter) .9rem; background: var(--color-bg); }
  .gb-list > thead {
    display: grid;
    grid-template-columns: var(--gb-cols);
    grid-template-areas: "area ages price" "grp hrs hrs" "lang lang trial";
    gap: .15rem .75rem;
    position: sticky;
    top: 0;
    z-index: 3;
    padding: .45rem var(--gb-gutter) .5rem;
    background: var(--gb-band);
    color: var(--gb-paper);
    font-family: var(--font-sans);
    font-size: .6875rem;
    line-height: 1.3;
    letter-spacing: .06em;
    text-transform: uppercase;
  }
  .gb-list > thead > tr { display: contents; }
  .gb-list > thead th { display: block; padding: 0; font-weight: 700; }
  .gb-list > thead tr:first-child > th:nth-child(1) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .gb-list > thead tr:first-child > th:nth-child(2) { grid-area: area; }
  .gb-list > thead tr:first-child > th:nth-child(3) { grid-area: ages; }
  .gb-list > thead tr:first-child > th:nth-child(4) { grid-area: grp; }
  .gb-list > thead tr:first-child > th:nth-child(5) { grid-area: hrs; }
  .gb-list > thead tr:first-child > th:nth-child(6) { grid-area: price; }
  .gb-list > thead tr:first-child > th:nth-child(7) { grid-area: lang; }
  .gb-list > thead tr:first-child > th:nth-child(8) { grid-area: trial; }
  .gb-list > tbody > tr {
    display: grid;
    grid-template-columns: var(--gb-cols);
    grid-template-areas: "name name name" "area ages price" "grp grp grp" "hrs hrs hrs" "lang lang trial";
    gap: .2rem .75rem;
    padding: .7rem var(--gb-gutter) .75rem;
    border-top: 1px solid var(--gb-line);
  }
  .gb-list > thead + tbody > tr:first-child { border-top: 0; }
  .gb-list > tbody > tr > td { display: block; min-width: 0; padding: 0; }
  .gb-list td:nth-child(1) { grid-area: name; display: flex; flex-wrap: wrap; align-items: baseline; column-gap: .45rem; margin-bottom: .2rem; }
  .gb-list td:nth-child(1) > a { flex: 1 1 100%; font-size: 1.0625rem; line-height: 1.25; }
  .gb-list td:nth-child(2) { grid-area: area; }
  .gb-list td:nth-child(3) { grid-area: ages; }
  .gb-list td:nth-child(4) { grid-area: grp; }
  .gb-list td:nth-child(5) { grid-area: hrs; }
  .gb-list td:nth-child(6) { grid-area: price; }
  .gb-list td:nth-child(7) { grid-area: lang; }
  .gb-list td:nth-child(8) { grid-area: trial; }
  .gb-list td:nth-child(4), .gb-list td:nth-child(5) { padding-left: 1.1em; text-indent: -1.1em; }
  .gb-list td:nth-child(4)::before, .gb-list td:nth-child(5)::before, .gb-list > thead th:nth-child(4)::before, .gb-list > thead th:nth-child(5)::before {
    content: "";
    display: inline-block;
    width: .62em;
    height: .62em;
    margin-right: .48em;
    border-radius: 50%;
    vertical-align: .02em;
    text-indent: 0;
  }
  .gb-list td:nth-child(4)::before, .gb-list > thead th:nth-child(4)::before { background: var(--gb-gold); box-shadow: 0 0 0 1.5px var(--gb-gold-edge); }
  .gb-list td:nth-child(5)::before { border: 2px solid var(--gb-muted); }
  .gb-list > thead th:nth-child(5)::before { border: 2px solid var(--gb-on-band-soft); }
  .gb-list td:nth-child(3)::before, .gb-list td:nth-child(6)::before, .gb-list td:nth-child(7)::before, .gb-list td:nth-child(8)::before { margin-right: .35em; color: var(--gb-muted); font-size: .6875rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
  .gb-list td:nth-child(3)::before { content: "Életkor"; }
  .gb-list td:nth-child(6)::before { content: "Ár"; }
  .gb-list td:nth-child(7)::before { content: "Nyelvek"; }
  .gb-list td:nth-child(8)::before { content: "Próbaóra"; }
  .gb-list td:nth-child(3):lang(en)::before { content: "Ages"; }
  .gb-list td:nth-child(6):lang(en)::before { content: "Price"; }
  .gb-list td:nth-child(7):lang(en)::before { content: "Languages"; }
  .gb-list td:nth-child(8):lang(en)::before { content: "Trial"; }
  .gb-list > tbody > tr.gb-tail-h { display: block; padding: 0; border-top: 0; }
  .gb-tail-h > th { display: block; padding: 1rem var(--gb-gutter) .5rem; }
  .gb-is-tail { box-shadow: inset 4px 0 0 var(--gb-gold); }
  .gb-is-tail > td:first-child { box-shadow: none; }
}

@media (min-width: 40rem) and (max-width: 55.99rem) {
  .gb-list { --gb-cols: minmax(0, 1.3fr) minmax(0, .7fr) minmax(0, 1fr) minmax(0, .9fr) minmax(0, .55fr); }
  .gb-list > thead { grid-template-areas: "area ages price lang trial" "grp grp hrs hrs hrs"; }
  .gb-list > tbody > tr { grid-template-areas: "name name name name name" "area ages price lang trial" "grp grp hrs hrs hrs"; }
}

.gb-near { margin-top: var(--space-section); column-gap: 2.25rem; }
.gb-near > h2 { margin: 0 0 1.25rem; }
.gb-near-group { scroll-margin-top: 1rem; break-inside: avoid; padding-bottom: 1.25rem; }
.gb-near-group h3 { margin: 0 0 .55rem; color: var(--gb-ink-2); font-size: .9375rem; letter-spacing: .06em; text-transform: uppercase; }
.gb-near-group > h2 { margin: 0 0 .6rem; font-size: 1.25rem; }
.gb-near-group ul { display: flex; flex-wrap: wrap; gap: .45rem; margin: 0; padding: 0; list-style: none; }
.gb-near-group li { display: inline-flex; align-items: center; gap: .4rem; padding: .2rem .3rem .2rem .8rem; border: 1.5px solid var(--gb-line-strong); border-radius: var(--gb-chip); background: var(--gb-paper); font-weight: 700; }
.gb-near-group li[aria-current] { border-color: var(--color-text); background: var(--color-text); color: var(--gb-paper); }
.gb-near-group li[aria-current] .gb-count { background: var(--gb-gold); }
.gb-near-group a { color: var(--color-text); text-decoration: none; }
.gb-near-group a:hover { color: var(--color-accent); text-decoration: underline; }
@media (min-width: 56rem) {
  .gb-near { column-count: 2; }
  .gb-near > h2 { column-span: all; }
}
.gb-about { margin-top: var(--space-section); padding: .9rem 1.1rem; border: 1px solid var(--gb-line); border-radius: var(--gb-radius); background: var(--gb-paper); }
.gb-about > summary { color: var(--gb-accent-deep); font-family: var(--font-display); font-size: 1.125rem; font-weight: 700; }
.gb-about > summary::marker { color: var(--gb-gold-edge); }
.gb-about-body { margin-top: .75rem; color: var(--gb-ink-2); }
.gb-about-body > p:last-child { margin-bottom: 0; }
.gb-data-links { margin-top: 1.25rem; color: var(--gb-muted); font-size: .875rem; }
.gb-data-links a { margin-right: .9rem; font-weight: 700; }

.gb-card { display: block; }
.gb-card-head { margin-bottom: 1.5rem; padding-bottom: 1.1rem; border-bottom: 3px solid var(--color-accent); }
.gb-card-head h1 { margin-bottom: .35rem; }
.gb-name-local { margin: 0 0 .35rem; color: var(--gb-ink-2); font-size: 1.125rem; }
.gb-kind-line { margin: 0; color: var(--gb-ink-2); font-weight: 700; }
.gb-status-line { display: inline-block; margin: .65rem 0 0; padding: .2rem .8rem; border-radius: var(--gb-chip); background: var(--gb-grey); color: var(--gb-ink-2); font-size: .875rem; font-weight: 700; }
.gb-st-closed { background: var(--gb-red-soft); color: var(--gb-red); }
.gb-st-temporarily_closed { background: var(--gb-amber-soft); color: var(--gb-amber); }
.gb-st-unknown { background: var(--gb-grey); color: var(--gb-ink-2); }
.gb-card-body { display: flex; flex-direction: column; gap: 1.75rem; }
.gb-card-main { display: contents; }
.gb-card-main > * { order: 3; min-width: 0; margin-top: 0; }
.gb-card-main > .gb-facts-sec, .gb-card-main > :first-child { order: 1; }
.gb-card-side { order: 2; min-width: 0; padding: 1.1rem; border: 1px solid var(--gb-line); border-radius: var(--gb-radius); background: var(--gb-paper); box-shadow: var(--gb-shadow); }
.gb-card-main h2 { margin-top: 0; }
@media (min-width: 60rem) {
  .gb-card-body { display: grid; grid-template-columns: minmax(0, 1fr) 19rem; align-items: start; gap: 2.75rem; }
  .gb-card-main { display: block; grid-column: 1; grid-row: 1; }
  .gb-card-main > * + * { margin-top: var(--space-section); }
  .gb-card-side { grid-column: 2; grid-row: 1; }
}
@media (min-width: 60rem) and (min-height: 44rem) {
  .gb-card-side { position: sticky; top: 1rem; }
}
.gb-facts { width: 100%; border-top: 2px solid var(--color-text); }
.gb-facts > tbody > tr > th, .gb-facts > tbody > tr > td { padding: .6rem .75rem .6rem 0; border-bottom: 1px solid var(--gb-line); text-align: left; vertical-align: top; }
.gb-facts > tbody > tr > th { width: 34%; color: var(--gb-ink-2); font-size: .875rem; font-weight: 700; }
.gb-facts > tbody > tr > td[colspan] { color: var(--gb-muted); font-style: italic; }
.gb-slots, .gb-hours { width: auto; margin: 0; font-variant-numeric: lining-nums tabular-nums; }
.gb-slots th, .gb-slots td, .gb-hours th, .gb-hours td { padding: .1rem 1rem .1rem 0; border: 0; text-align: left; vertical-align: top; font-size: .9375rem; }
.gb-slots th, .gb-hours th { color: var(--gb-ink-2); font-weight: 700; }
.gb-hours { margin: .5rem 0 .75rem; }
.gb-hours caption { caption-side: top; padding-bottom: .25rem; color: var(--gb-ink-2); font-size: .875rem; font-weight: 700; text-align: left; }
.gb-prog { padding-top: 1.25rem; border-top: 2px dotted var(--gb-line-strong); }
.gb-prog-h { font-size: 1.25rem; }
.gb-branches > h3 { margin: 1.25rem 0 .35rem; }
.gb-branches .gb-icon { margin-right: .3rem; color: var(--color-accent); }
.gb-corrections { padding: 1rem 1.1rem; border-radius: var(--gb-radius); background: var(--gb-gold-soft); }
.gb-sources { margin: 0; padding: 0; list-style: none; font-size: .9375rem; }
.gb-src-group { margin-bottom: .9rem; padding-bottom: .8rem; border-bottom: 1px solid var(--gb-line); }
.gb-src-link { font-weight: 700; word-break: break-all; }
.gb-src-group > ol { margin: .35rem 0 0; padding-left: 1.75rem; }
.gb-src-item { margin: .25rem 0; color: var(--gb-ink-2); }
.gb-src-item::marker { color: var(--gb-accent-deep); font-weight: 700; }
.gb-src-item:target { border-radius: var(--gb-radius-s); background: var(--gb-gold-soft); }
.gb-src-time { color: var(--gb-muted); font-size: .875rem; white-space: nowrap; }
.gb-src-quote { color: var(--color-text); font-style: italic; }
.gb-flag-place { --gb-f: var(--gb-accent-deep); --gb-f-soft: var(--gb-accent-soft); }
.gb-flag-google { --gb-f: var(--gb-amber); --gb-f-soft: var(--gb-amber-soft); }
.gb-flag-federation { --gb-f: var(--gb-green); --gb-f-soft: var(--gb-green-soft); }
.gb-flag { display: inline-block; padding: .05rem .5rem; border-radius: var(--gb-chip); background: var(--gb-f-soft, var(--gb-grey)); color: var(--gb-f, var(--gb-ink-2)); font-size: .75rem; font-weight: 700; letter-spacing: .02em; }
.gb-src-ref { display: inline-block; min-width: 1.5em; margin-left: .2rem; padding: 0 .32em; border-radius: var(--gb-chip); background: var(--gb-f-soft, var(--gb-grey)); color: var(--gb-f, var(--gb-ink-2)); font-size: .6875rem; font-weight: 700; line-height: 1.5; text-align: center; text-decoration: none; vertical-align: .3em; font-variant-numeric: tabular-nums; }
.gb-src-ref:hover { background: var(--gb-f, var(--gb-ink-2)); color: var(--gb-paper); }

.gb-para { margin: 0 0 1rem; }
.gb-src-more { display: inline; margin: 0; }
.gb-src-more::details-content { display: none; }
.gb-src-more[open]::details-content { display: inline; }
.gb-src-more > summary { display: inline-block; min-width: 1.5em; margin-left: .2rem; padding: 0 .32em; border-radius: var(--gb-chip); background: var(--gb-grey); color: var(--gb-ink-2); font-size: .6875rem; font-weight: 700; line-height: 1.5; text-align: center; vertical-align: .3em; list-style: none; font-variant-numeric: tabular-nums; }
.gb-src-more > summary::-webkit-details-marker { display: none; }
.gb-src-more > summary:hover { background: var(--gb-ink-2); color: var(--gb-paper); }
.gb-location, .gb-contacts { margin-bottom: 1.1rem; }
.gb-location .gb-btn { width: 100%; }
.gb-location > .gb-note { margin: .35rem 0 0; }

.gb-minimap { margin: 0 0 .75rem; }
.gb-minimap svg { display: block; width: 100%; height: auto; border: 1px solid var(--gb-line); border-radius: var(--gb-radius-s); background: #ebe8e1; }
.gb-minimap path, .gb-minimap circle { fill: var(--color-accent); }
.gb-minimap figcaption { margin: .35rem 0 0; }

.gb-contact-list { display: grid; gap: .5rem; margin: 0 0 .75rem; padding: 0; list-style: none; }
.gb-contact { width: 100%; border-color: var(--color-accent); background: var(--color-accent); color: var(--gb-paper); }
.gb-contact:hover { border-color: var(--gb-accent-deep); background: var(--gb-accent-deep); color: var(--gb-paper); }
.gb-contacts > p { margin: 0 0 .6rem; font-size: .9375rem; overflow-wrap: anywhere; }
.gb-report { margin: 0; }
.gb-report .gb-btn { width: 100%; border-color: var(--gb-line-strong); color: var(--gb-ink-2); }
.gb-report .gb-btn:hover { border-color: var(--gb-red); background: var(--gb-red); color: var(--gb-paper); }
.gb-partner { margin-top: 1.1rem; padding: .85rem 1rem; border: 1.5px dashed var(--gb-line-strong); border-radius: var(--gb-radius-s); color: var(--gb-ink-2); font-size: .875rem; }
.gb-partner p { margin: 0 0 .4rem; }
.gb-partner-link { font-weight: 700; }

.gb-doc-section { margin-top: var(--space-section); font-size: 1.0625rem; }
.gb-doc-section h2 { margin-top: 0; }
.gb-doc-section ul { padding-left: 1.25rem; }
.gb-doc-section li::marker { color: var(--color-accent); }
@media (min-width: 60rem) {
  .gb-doc-section { display: grid; grid-template-columns: 15rem minmax(0, 1fr); column-gap: 2.5rem; }
  .gb-doc-section > h2 { grid-column: 1; grid-row: 1 / span 12; }
  .gb-doc-section > :not(h2) { grid-column: 2; }
}

.gb-form { max-width: 40rem; }
.gb-fieldset { margin: 0 0 1.25rem; padding: 1.1rem 1.1rem .3rem; border: 1px solid var(--gb-line); border-radius: var(--gb-radius); background: var(--gb-paper); }
.gb-modes legend { padding: 0 .4rem; font-family: var(--font-display); font-size: 1.0625rem; font-weight: 700; }
.gb-modes .gb-label { display: flex; align-items: center; gap: .55rem; font-weight: 400; }
.gb-field { margin-bottom: .9rem; }
.gb-label { display: block; margin-bottom: .25rem; font-weight: 700; }
.gb-hint { display: block; margin-top: .2rem; color: var(--gb-muted); font-size: .8125rem; }
.gb-input, .gb-textarea { width: 100%; min-height: 2.6rem; padding: .45rem .7rem; border: 1.5px solid var(--gb-line-strong); border-radius: var(--gb-radius-s); background: var(--gb-paper); color: inherit; font: inherit; }
.gb-input:focus, .gb-textarea:focus { border-color: var(--color-accent); }
.gb-input[type="radio"], .gb-input[type="checkbox"] { flex: none; width: 1.15rem; height: 1.15rem; min-height: 0; margin: 0; padding: 0; accent-color: var(--color-accent); }
.gb-textarea { resize: vertical; }
.gb-hp { position: absolute; left: -999rem; width: 1px; height: 1px; overflow: hidden; }
.gb-submit { min-height: 2.9rem; padding: .55rem 1.6rem; border: 0; border-radius: var(--gb-chip); background: var(--color-accent); color: var(--gb-paper); font: inherit; font-weight: 700; cursor: pointer; }
.gb-submit:hover { background: var(--gb-accent-deep); }
.gb-notice { margin-top: 1rem; padding: .8rem 1rem; border-left: 5px solid var(--gb-line-strong); border-radius: var(--gb-radius-s); background: var(--gb-paper); }
.gb-notice-ok { border-left-color: var(--color-accent); background: var(--gb-accent-soft); }
.gb-notice-fail { border-left-color: var(--gb-red); background: var(--gb-red-soft); }
.gb-notice-sending { opacity: .75; }

.gb-log { width: 100%; background: var(--gb-paper); font-size: .9375rem; }
.gb-log th, .gb-log td { padding: .55rem .7rem; border-bottom: 1px solid var(--gb-line); text-align: left; vertical-align: top; }
.gb-log thead th { border-bottom: 2px solid var(--color-text); font-family: var(--font-display); }
.gb-log-type { border-left: 4px solid var(--gb-line-strong); font-size: .8125rem; font-weight: 700; white-space: nowrap; }
.gb-type-launch { border-left-color: var(--gb-gold-edge); }
.gb-type-data { border-left-color: var(--color-accent); color: var(--gb-accent-deep); }
.gb-type-fix { border-left-color: var(--gb-red); color: var(--gb-red); }
.gb-type-copy { border-left-color: var(--gb-line-strong); color: var(--gb-ink-2); }
.gb-type-method { border-left-color: var(--gb-green); color: var(--gb-green); }
.gb-notfound { padding: var(--space-section) 0; }

.gb-footer { padding: 2rem 0 2.5rem; border-top: 5px solid var(--color-accent); background: var(--gb-band); color: var(--gb-on-band-soft); font-size: .9375rem; }
.gb-footer a { color: var(--gb-paper); }
.gb-footer a:hover { color: var(--gb-gold); }
.gb-footer :focus-visible { outline-color: var(--gb-gold); }
.gb-footer-nav { display: flex; flex-wrap: wrap; gap: .4rem 1.4rem; margin: 0 0 1rem; padding: 0; list-style: none; font-weight: 700; }
.gb-asof { color: var(--gb-gold-soft); }

@media print {
  .gb-header, .gb-footer, .gb-filters-slot, .gb-filters, .gb-near, .gb-data-links { display: none; }
  body { background: #fff; }
  .gb-list > thead { position: static; }
  .gb-card-side { position: static; box-shadow: none; }
}
.gb-branches > details > summary { padding: .4rem 0; color: var(--gb-accent-deep); font-weight: 700; }
.gb-src-ref { position: relative; }
.gb-src-ref::after { position: absolute; inset: -.15rem -.1rem; content: ""; }
.gb-contacts > details > summary { color: var(--gb-accent-deep); font-weight: 700; }
