:root {
  --color-bg: #f5f3f0;
  --color-text: #1b1e26;
  --color-accent: #245a9e;
  --font-sans: "Segoe UI Variable Text", "Segoe UI", "SF Pro Text", -apple-system, Cantarell, "Noto Sans", "DejaVu Sans", sans-serif;
  --font-display: "Sitka Subheading", "Sitka Text", "Iowan Old Style", "Charis SIL", "Noto Serif", "DejaVu Serif", serif;
  --space-section: 2.203125rem;
  --ab-paper: #fffefc;
  --ab-ink-2: #383c47;
  --ab-muted: #5a5e69;
  --ab-line: #dad6cf;
  --ab-line-strong: #8a877f;
  --ab-accent-deep: #1a4378;
  --ab-accent-soft: #e0e9f5;
  --ab-accent-hover: #f0f5fb;
  --ab-band: #1c2433;
  --ab-on-band: #fffefc;
  --ab-on-band-soft: #c9d2e0;
  --ab-gold: #d4a537;
  --ab-gold-soft: #f7ecd2;
  --ab-gold-edge: #86600c;
  --ab-red: #b0262b;
  --ab-red-soft: #fae1df;
  --ab-amber: #7a4d00;
  --ab-amber-soft: #f6ead2;
  --ab-linden: #2d6a4a;
  --ab-linden-soft: #dcede3;
  --ab-grey: #e8e6e1;
  --ab-radius: .3125rem;
  --ab-radius-s: .171875rem;
  --ab-chip: .28125rem;
  --ab-shadow: 0 1px 2px rgba(27, 30, 38, .07), 0 11px 22px -15px rgba(27, 30, 38, .46);
  --ab-gutter: 1rem;
  --ab-cols: minmax(0, 1.1fr) minmax(0, .85fr) minmax(0, 1fr);
}

*, *::before, *::after { box-sizing: border-box; }
[hidden]:not(.ab-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.56;
  overflow-wrap: break-word;
}
a { color: var(--ab-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(--ab-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.8125rem, 1.38rem + 1.85vw, 2.71875rem); letter-spacing: -.004em; }
h2 { margin-top: var(--space-section); font-size: 1.53125rem; }
h3 { font-size: 1.109375rem; }
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; }

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

.ab-header { position: relative; z-index: 5; background: var(--ab-band); color: var(--ab-on-band); }
.ab-header::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  height: .34375rem;
  background: conic-gradient(from 135deg at 50% 0, var(--ab-red) 90deg, transparent 0) 0 0 / .6875rem 100% repeat-x, var(--ab-gold);
  pointer-events: none;
}
.ab-header :focus-visible { outline-color: var(--ab-gold); }
.ab-header .ab-wrap { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem 1rem; padding-top: .7rem; padding-bottom: .55rem; }
.ab-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(--ab-on-band); text-decoration: none; }
.ab-brand::before { content: ""; flex: none; width: .75rem; height: .75rem; margin: 0 .14rem; border: .16rem solid var(--ab-gold); background: radial-gradient(var(--ab-red) 0 30%, transparent 33%); transform: rotate(45deg); }
.ab-brand:hover { color: var(--ab-gold-soft); }
.ab-nav { order: 3; flex: 1 1 100%; }
.ab-nav ul { list-style: none; margin: 0; padding: 0; }
.ab-nav > ul { display: flex; flex-wrap: wrap; gap: .1rem .2rem; margin: 0 -.55rem; }
.ab-nav > ul > li > a { display: block; padding: .3rem .6rem; border-radius: var(--ab-chip); color: var(--ab-on-band); font-weight: 700; text-decoration: none; }
.ab-nav > ul > li > a:hover, .ab-has-sub:focus-within > a { background: rgba(255, 255, 255, .15); color: var(--ab-on-band); }
.ab-nav > ul > li > a[aria-current="page"] { background: var(--ab-on-band); color: var(--ab-band); }
.ab-has-sub { position: relative; }
.ab-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(--ab-paper);
  border: 1px solid var(--ab-line);
  border-radius: var(--ab-radius);
  box-shadow: 0 16px 32px -16px rgba(27, 30, 38, .5);
}
.ab-nav > ul > li:nth-last-child(-n+2) > .ab-sub { left: auto; right: 0; }
.ab-has-sub:focus-within > .ab-sub { display: block; }
@media (hover: hover) {
  .ab-has-sub:hover > .ab-sub { display: block; }
}
.ab-sub a { display: block; padding: .3rem .6rem; border-radius: var(--ab-radius-s); color: var(--color-text); text-decoration: none; }
.ab-sub a:hover { background: var(--ab-accent-soft); color: var(--ab-accent-deep); }
.ab-sub a[aria-current="page"] { background: var(--ab-accent-soft); color: var(--ab-accent-deep); font-weight: 700; }
.ab-langs { display: flex; gap: .3rem; margin: 0 0 0 auto; padding: 0; list-style: none; font-size: .875rem; }
.ab-langs a { display: block; padding: .15rem .65rem; border: 1.5px solid rgba(255, 255, 255, .55); border-radius: var(--ab-chip); color: var(--ab-on-band); font-weight: 700; text-decoration: none; }
.ab-langs a:hover { background: rgba(255, 255, 255, .15); color: var(--ab-on-band); }
.ab-langs a[aria-current] { background: var(--ab-on-band); border-color: var(--ab-on-band); color: var(--ab-band); }
@media (max-width: 39.99rem) {
  h1 { font-size: 1.625rem; margin-bottom: .4em; }
  .ab-main { padding-top: .75rem; }
  .ab-numbers { margin-bottom: .5rem; font-size: .875rem; line-height: 1.45; }
  .ab-main .ab-lead { margin-bottom: .6rem; font-size: .9375rem; line-height: 1.45; }
  .ab-filters-slot { margin: .6rem 0; }
  .ab-header .ab-wrap { gap: .2rem .75rem; padding-top: .45rem; padding-bottom: .3rem; }
  .ab-nav > ul { margin: 0 -.45rem; }
  .ab-nav > ul > li > a { padding: .25rem .45rem; font-size: .9375rem; }
}
@media (min-width: 40rem) {
  .ab-brand { white-space: nowrap; }
}
@media (min-width: 60rem) {
  .ab-header .ab-wrap { row-gap: .5rem; padding-top: .9rem; padding-bottom: .6rem; }
  .ab-brand { font-size: 1.55rem; }
}

.ab-main { padding: 1.9rem 0 var(--space-section); }
.ab-main:focus { outline: none; }
.ab-crumbs { margin-bottom: .75rem; font-size: .875rem; color: var(--ab-muted); }
.ab-crumbs ol { display: flex; flex-wrap: wrap; align-items: center; margin: 0; padding: 0; list-style: none; }
.ab-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); }
.ab-crumbs a { color: var(--ab-ink-2); }

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

.ab-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(--ab-chip);
  background: var(--ab-paper);
  color: var(--ab-accent-deep);
  font: inherit;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
}
.ab-btn:hover { background: var(--color-accent); color: var(--ab-paper); }

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

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

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

@media (max-width: 55.99rem) {
  .ab-table-wrap:has(> .ab-list) { margin-left: calc(-1 * var(--ab-gutter)); margin-right: calc(-1 * var(--ab-gutter)); }
  .ab-list, .ab-list > caption, .ab-list > tbody { display: block; }
  .ab-list { display: flex; flex-direction: column; }
  .ab-list { border-bottom: 1px solid var(--ab-line); background: var(--ab-paper); }
  .ab-list > caption { order: 3; padding: .8rem var(--ab-gutter) .9rem; background: var(--color-bg); }
  .ab-list > thead {
    display: grid;
    grid-template-columns: var(--ab-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(--ab-gutter) .5rem;
    background: var(--ab-band);
    color: var(--ab-paper);
    font-family: var(--font-sans);
    font-size: .6875rem;
    line-height: 1.3;
    letter-spacing: .06em;
    text-transform: uppercase;
  }
  .ab-list > thead > tr { display: contents; }
  .ab-list > thead th { display: block; padding: 0; font-weight: 700; }
  .ab-list > thead tr:first-child > th:nth-child(1) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .ab-list > thead tr:first-child > th:nth-child(2) { grid-area: area; }
  .ab-list > thead tr:first-child > th:nth-child(3) { grid-area: ages; }
  .ab-list > thead tr:first-child > th:nth-child(4) { grid-area: grp; }
  .ab-list > thead tr:first-child > th:nth-child(5) { grid-area: hrs; }
  .ab-list > thead tr:first-child > th:nth-child(6) { grid-area: price; }
  .ab-list > thead tr:first-child > th:nth-child(7) { grid-area: lang; }
  .ab-list > thead tr:first-child > th:nth-child(8) { grid-area: trial; }
  .ab-list > tbody > tr {
    display: grid;
    grid-template-columns: var(--ab-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(--ab-gutter) .75rem;
    border-top: 1px solid var(--ab-line);
  }
  .ab-list > thead + tbody > tr:first-child { border-top: 0; }
  .ab-list > tbody > tr > td { display: block; min-width: 0; padding: 0; }
  .ab-list td:nth-child(1) { grid-area: name; display: flex; flex-wrap: wrap; align-items: baseline; column-gap: .45rem; margin-bottom: .2rem; }
  .ab-list td:nth-child(1) > a { flex: 1 1 100%; font-size: 1.0625rem; line-height: 1.25; }
  .ab-list td:nth-child(2) { grid-area: area; }
  .ab-list td:nth-child(3) { grid-area: ages; }
  .ab-list td:nth-child(4) { grid-area: grp; }
  .ab-list td:nth-child(5) { grid-area: hrs; }
  .ab-list td:nth-child(6) { grid-area: price; }
  .ab-list td:nth-child(7) { grid-area: lang; }
  .ab-list td:nth-child(8) { grid-area: trial; }
  .ab-list td:nth-child(4), .ab-list td:nth-child(5) { padding-left: 1.1em; text-indent: -1.1em; }
  .ab-list td:nth-child(4)::before, .ab-list td:nth-child(5)::before, .ab-list > thead th:nth-child(4)::before, .ab-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;
  }
  .ab-list td:nth-child(4)::before, .ab-list > thead th:nth-child(4)::before { background: var(--ab-gold); box-shadow: 0 0 0 1.5px var(--ab-gold-edge); }
  .ab-list td:nth-child(5)::before { border: 2px solid var(--ab-muted); }
  .ab-list > thead th:nth-child(5)::before { border: 2px solid var(--ab-on-band-soft); }
  .ab-list td:nth-child(3)::before, .ab-list td:nth-child(6)::before, .ab-list td:nth-child(7)::before, .ab-list td:nth-child(8)::before { margin-right: .35em; color: var(--ab-muted); font-size: .6875rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
  .ab-list td:nth-child(3)::before { content: "Vârste"; }
  .ab-list td:nth-child(6)::before { content: "Preț"; }
  .ab-list td:nth-child(7)::before { content: "Limbi"; }
  .ab-list td:nth-child(8)::before { content: "Probă"; }
  .ab-list td:nth-child(3):lang(en)::before { content: "Ages"; }
  .ab-list td:nth-child(6):lang(en)::before { content: "Price"; }
  .ab-list td:nth-child(7):lang(en)::before { content: "Languages"; }
  .ab-list td:nth-child(8):lang(en)::before { content: "Trial"; }
  .ab-list > tbody > tr.ab-tail-h, .ab-list > tbody > tr.ab-sec-h { display: block; padding: 0; border-top: 0; }
  .ab-tail-h > th, .ab-sec-h > th { display: block; padding: 1rem var(--ab-gutter) .5rem; }
  .ab-is-tail { box-shadow: inset 4px 0 0 var(--ab-gold); }
  .ab-is-tail > td:first-child { box-shadow: none; }
}

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

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

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

.ab-para { margin: 0 0 1rem; }
.ab-src-more { display: inline; margin: 0; }
.ab-src-more::details-content { display: none; }
.ab-src-more[open]::details-content { display: inline; }
.ab-src-more > summary { display: inline-block; min-width: 1.5em; margin-left: .2rem; padding: 0 .32em; border-radius: var(--ab-chip); background: var(--ab-grey); color: var(--ab-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; }
.ab-src-more > summary::-webkit-details-marker { display: none; }
.ab-src-more > summary:hover { background: var(--ab-ink-2); color: var(--ab-paper); }
.ab-location, .ab-contacts { margin-bottom: 1.1rem; }
.ab-location .ab-btn { width: 100%; }
.ab-location > .ab-note { margin: .35rem 0 0; }

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

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

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

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

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

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

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

.ab-list > tbody:not(:has(> tr[data-ab-p]:not([hidden]))) > tr.ab-sec-h { display: none; }
