@font-face {
  font-family: "Instrument Serif";
  src: url("/assets/fonts/instrument-serif-regular.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

:root {
  --paper: #f4e9d8;
  --paper-2: #e7d9c2;
  --ink: #171019;
  --ink-2: #3a2a34;
  --muted: #6e625f;
  --lime: #b8d98a;
  --lime-dark: #6e9b36;
  --tomato: #ff5a3c;
  --yellow: #f4c95d;
  --white: #fffaf0;
  --line: rgba(23, 16, 25, 0.2);
  --serif: "Instrument Serif", "Iowan Old Style", Georgia, serif;
  --sans: Inter, Avenir, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --mono: "SF Mono", ui-monospace, Menlo, Consolas, "Liberation Mono", monospace;
  --tomato-deep: #c2401f;
  --amber: #b0821a;
  --green-dot: #4e7a22;
}

* { box-sizing: border-box; }
html { scroll-behavior: auto; }
body {
  margin: 0;
  color: var(--ink);
  background:
    radial-gradient(circle at 8% 4%, rgba(255, 90, 60, 0.09), transparent 27%),
    radial-gradient(circle at 93% 14%, rgba(184, 217, 138, 0.19), transparent 30%),
    var(--paper);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.55;
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: 0.48;
  background-image:
    linear-gradient(rgba(23, 16, 25, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(23, 16, 25, 0.04) 1px, transparent 1px);
  background-size: 88px 88px;
  mask-image: linear-gradient(to bottom, #000 8%, transparent 88%);
}

img { display: block; max-width: 100%; }
button, select, input { font: inherit; }
a { color: inherit; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { text-wrap: balance; }
h1, h2 {
  margin-bottom: 0;
  font-family: var(--serif);
  font-weight: 700;
  line-height: 0.92;
  letter-spacing: -0.055em;
}

.shell { width: min(1240px, calc(100% - 40px)); margin-inline: auto; }
.skip-link {
  position: fixed;
  z-index: 300;
  top: 12px;
  left: 16px;
  padding: 10px 15px;
  transform: translateY(-160%);
  color: var(--ink);
  background: var(--lime);
  border: 2px solid var(--ink);
  font-weight: 900;
  text-decoration: none;
}
.skip-link:focus { transform: translateY(0); }

.topbar {
  position: relative;
  z-index: 150;
  padding: 8px 16px;
  color: var(--ink);
  background: var(--lime);
  border-bottom: 1px solid var(--ink);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.13em;
  text-align: center;
  text-transform: uppercase;
}
.topbar strong { color: inherit; }
.nav {
  position: sticky;
  z-index: 140;
  top: 0;
  color: var(--white);
  background: rgba(23, 16, 25, 0.94);
  border-bottom: 1px solid rgba(255, 250, 240, 0.14);
  backdrop-filter: blur(22px) saturate(1.2);
}
.nav-inner {
  height: 70px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.logo {
  color: inherit;
  font-family: var(--serif);
  font-size: 23px;
  font-weight: 700;
  letter-spacing: -0.035em;
  text-decoration: none;
}
.logo-dot { color: var(--tomato); }
.nav-links { display: flex; align-items: center; gap: clamp(15px, 2vw, 29px); }
.nav-links a {
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.11em;
  text-decoration: none;
  text-transform: uppercase;
}
.nav-links a:hover { text-decoration: underline; text-underline-offset: 5px; }
.nav-pill {
  padding: 10px 14px;
  color: var(--ink);
  background: var(--tomato);
  border: 1px solid var(--tomato);
}

.page-top-anchor {
  position: absolute;
  top: 0;
  width: 1px;
  height: 1px;
  pointer-events: none;
}
#scroll-world { margin-top: 0 !important; }
#srovnani, #finder, #mapa-trhu, #zkusenost, #metodika, #faq { scroll-margin-top: 88px; }

.eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--ink-2);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}
.eyebrow::before {
  content: "";
  width: 30px;
  height: 2px;
  flex: 0 0 auto;
  background: var(--tomato);
  box-shadow: 8px 0 0 var(--lime-dark);
}

.button {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 12px 18px;
  color: var(--ink);
  background: transparent;
  border: 1px solid var(--ink);
  border-radius: 0;
  font-size: 12px;
  font-weight: 900;
  text-decoration: none;
  cursor: pointer;
  transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease;
}
.button:hover { transform: translateY(-2px); box-shadow: 5px 5px 0 var(--ink); }
.button.primary { color: var(--white); background: var(--ink); }
.button.primary::after { content: "↘"; color: var(--lime); }
.button.accent { color: var(--ink); background: var(--tomato); }

.visual-cta {
  position: relative;
  z-index: 1;
  padding: clamp(72px, 9vw, 126px) 0 clamp(78px, 10vw, 136px);
  overflow: hidden;
  background:
    radial-gradient(circle at 92% 10%, rgba(255, 90, 60, 0.17), transparent 28%),
    radial-gradient(circle at 6% 78%, rgba(184, 217, 138, 0.28), transparent 30%),
    var(--paper);
  border-bottom: 1px solid var(--ink);
}
.visual-cta::before {
  content: "CHOOSE";
  position: absolute;
  z-index: -1;
  right: -0.04em;
  bottom: -0.14em;
  color: rgba(23, 16, 25, 0.035);
  font-family: var(--serif);
  font-size: clamp(160px, 25vw, 410px);
  font-weight: 800;
  line-height: 0.72;
  letter-spacing: -0.08em;
  pointer-events: none;
}
.visual-cta__head {
  display: grid;
  grid-template-columns: minmax(300px, .78fr) minmax(0, 1.22fr);
  gap: clamp(36px, 8vw, 112px);
  align-items: end;
  margin-bottom: 38px;
}
.visual-cta__head h2 {
  max-width: 9ch;
  margin: 13px 0 0;
  font-size: clamp(58px, 7.2vw, 102px);
}
.visual-cta__head p {
  max-width: 700px;
  margin: 0;
  color: var(--ink-2);
  font-size: clamp(18px, 1.5vw, 22px);
}
.cta-banner {
  position: relative;
  display: block;
  color: var(--white);
  background: var(--ink);
  border: 1px solid var(--ink);
  box-shadow: 14px 14px 0 var(--tomato);
  text-decoration: none;
  transform: translateZ(0);
  transition: transform 220ms ease, box-shadow 220ms ease;
}
.cta-banner:hover {
  transform: translate(-4px, -4px);
  box-shadow: 20px 20px 0 var(--tomato);
}
.cta-banner img {
  width: 100%;
  height: auto;
  aspect-ratio: 1200 / 630;
  object-fit: cover;
  border-bottom: 1px solid rgba(255, 250, 240, .2);
}
.cta-banner__action {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 24px;
  align-items: center;
  min-height: 88px;
  padding: 18px 22px;
}
.cta-banner__action b {
  color: var(--lime);
  font-family: var(--serif);
  font-size: clamp(29px, 3vw, 45px);
  line-height: .9;
  letter-spacing: -.035em;
}
.cta-banner__action small {
  color: #cfc1bb;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.cta-banner__action i {
  color: var(--tomato);
  font-family: var(--serif);
  font-size: 50px;
  font-style: normal;
  line-height: 1;
}
.visual-cta .hero-finder {
  position: relative;
  z-index: 1;
  margin-top: 48px;
}

.hero-finder {
  display: grid;
  grid-template-columns: 1fr 1fr auto;
  gap: 10px;
  align-items: end;
  margin-top: 32px;
  padding: 18px;
  background: rgba(255, 250, 240, 0.72);
  border: 1px solid var(--ink);
  box-shadow: 7px 7px 0 var(--lime);
}
.finder-top {
  grid-column: 1 / -1;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 18px;
  padding-bottom: 8px;
}
.finder-top b { display: block; font-family: var(--serif); font-size: 26px; line-height: 1; }
.finder-top span { color: var(--muted); font-size: 10px; font-weight: 800; }
.no-gate { padding: 5px 8px; border: 1px solid var(--ink); text-transform: uppercase; }
.field label {
  display: block;
  margin: 0 0 7px 3px;
  color: var(--muted);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.field select {
  width: 100%;
  height: 48px;
  padding: 0 12px;
  color: var(--ink);
  background: var(--white);
  border: 1px solid var(--ink);
  border-radius: 0;
  font-weight: 750;
}
.finder-answer {
  grid-column: 1 / -1;
  margin: 0;
  padding: 10px 12px;
  color: var(--ink-2);
  background: var(--paper-2);
  border-left: 4px solid var(--tomato);
  font-size: 11px;
}
.finder-picks { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 8px; }
.finder-pick { padding: 9px; background: var(--white); border: 1px solid var(--line); text-decoration: none; }
.finder-pick b { display: block; font-family: var(--serif); font-size: 17px; line-height: 1; }
.finder-pick span { display: block; margin-top: 4px; color: var(--muted); font-size: 9px; }

.section { position: relative; padding: clamp(76px, 9vw, 128px) 0; }
#srovnani {
  isolation: isolate;
  background: var(--paper);
}
.section-head {
  display: grid;
  grid-template-columns: minmax(270px, 0.72fr) minmax(0, 1.28fr);
  gap: clamp(35px, 8vw, 115px);
  align-items: end;
  margin-bottom: 42px;
  padding-bottom: 34px;
  border-bottom: 1px solid var(--ink);
}
.section-head h2 { max-width: 10ch; margin: 13px 0 0; font-size: clamp(50px, 6.5vw, 88px); }
.section-head p { max-width: 690px; margin: 0; color: var(--ink-2); font-size: clamp(17px, 1.35vw, 21px); }

.comparison-snapshot { margin-bottom: 36px; border: 1px solid var(--ink); background: var(--white); }
.snapshot-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 15px 18px;
  color: var(--white);
  background: var(--ink);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}
.snapshot-head span:last-child { color: var(--lime); }
.comparison-snapshot__scroll { overflow-x: auto; }
.comparison-snapshot table { width: 100%; min-width: 980px; border-collapse: collapse; font-size: 12px; }
.comparison-snapshot th, .comparison-snapshot td { padding: 14px 16px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; }
.comparison-snapshot td small { display: block; margin-top: 4px; color: var(--muted); font-size: 8px; font-weight: 750; }
.comparison-snapshot tr:last-child td { border-bottom: 0; }
.comparison-snapshot th:last-child, .comparison-snapshot td:last-child { border-right: 0; }
.comparison-snapshot thead th { color: var(--muted); background: var(--paper-2); font-size: 8px; font-weight: 900; letter-spacing: 0.1em; text-transform: uppercase; }
.comparison-snapshot thead th:first-child { position: sticky; z-index: 2; left: 0; background: var(--paper-2); box-shadow: 1px 0 0 var(--line); }
.comparison-snapshot tbody th { position: sticky; z-index: 1; left: 0; font-family: var(--serif); font-size: 19px; line-height: 1; background: var(--paper); box-shadow: 1px 0 0 var(--line); }
.matrix-status { display: inline-flex; gap: 6px; align-items: center; font-weight: 850; }
.matrix-status::before { content: ""; width: 7px; height: 7px; background: var(--lime-dark); border-radius: 50%; }
.matrix-status.partial::before { background: var(--yellow); }
.matrix-status.missing::before { background: var(--tomato); }
.snapshot-note { margin: 0; padding: 12px 16px; color: var(--muted); background: var(--paper-2); font-size: 10px; }
.swipe-hint { display: none; padding: 8px 14px; color: var(--ink); background: var(--lime); font-size: 9px; font-weight: 900; letter-spacing: .07em; text-align: center; text-transform: uppercase; }

.compare-tools {
  display: grid;
  grid-template-columns: 1.15fr 0.9fr 0.9fr 0.85fr;
  gap: 10px;
  margin-bottom: 14px;
  padding: 16px 0;
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
}
.results-meta { display: flex; justify-content: space-between; gap: 20px; margin-bottom: 13px; color: var(--muted); font-size: 10px; }
.commercial-note { margin: 0 0 24px; padding: 12px 14px; background: rgba(255, 250, 240, 0.58); border-left: 4px solid var(--lime-dark); font-size: 11px; }
.commercial-note a { font-weight: 900; text-underline-offset: 3px; }

.service-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.service-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 16px;
  background: var(--white);
  border: 1px solid var(--line);
  transition: transform 250ms cubic-bezier(.22, 1, .36, 1), border-color 250ms ease, box-shadow 250ms ease;
}
.service-card:hover { transform: translateY(-3px); border-color: var(--ink); box-shadow: 0 12px 30px rgba(23, 16, 25, 0.14); }
.tag { display: inline-flex; padding: 4px 7px; background: var(--paper-2); border: 1px solid var(--line); font-size: 8px; font-weight: 900; letter-spacing: 0.08em; text-transform: uppercase; }
.tag.own { background: var(--lime); border-color: var(--ink); }
.finder-answer small { display: block; margin-top: 8px; color: var(--muted); font-size: 9px; font-weight: 750; }

.sc-head { display: flex; gap: 12px; align-items: flex-start; }
.sc-thumb { position: relative; width: 112px; aspect-ratio: 4 / 3; flex: 0 0 112px; display: block; overflow: hidden; background: rgba(23, 16, 25, 0.06); }
.sc-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform 450ms ease; }
.service-card:hover .sc-thumb img { transform: scale(1.03); }
.sc-thumb--missing { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; background: rgba(23, 16, 25, 0.035); border: 1px dashed rgba(23, 16, 25, 0.3); }
.sc-thumb--missing b { font-family: var(--mono); font-size: 9px; font-weight: 500; letter-spacing: 0.14em; opacity: 0.5; }
.sc-thumb--missing span { font-family: var(--mono); font-size: 9px; opacity: 0.35; }
.sc-title { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.sc-name-row { width: 100%; display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.sc-name { margin: 0; font-family: var(--serif); font-weight: 400; font-size: 22px; line-height: 1.05; letter-spacing: -0.01em; }
.sc-num { font-family: var(--serif); font-style: italic; font-size: 13px; opacity: 0.35; }
.service-card .tag { font-family: var(--mono); font-weight: 500; font-size: 9px; letter-spacing: 0.14em; background: transparent; border: 1px solid rgba(23, 16, 25, 0.3); color: rgba(23, 16, 25, 0.7); }
.service-card .tag.own { background: var(--ink); border-color: var(--ink); color: var(--yellow); }

.sc-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: rgba(23, 16, 25, 0.14); }
.sc-fact { min-width: 0; padding: 9px 10px; background: var(--white); }
.sc-fact b { display: block; margin-bottom: 4px; font-family: var(--mono); font-size: 9px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; opacity: 0.55; }
.sc-fact strong { display: flex; align-items: center; gap: 6px; font-size: 15px; font-weight: 650; line-height: 1.2; }
.sc-fact small { display: block; margin-top: 2px; font-size: 10px; line-height: 1.3; opacity: 0.55; }
.sc-dot { width: 8px; height: 8px; flex: 0 0 8px; border-radius: 50%; display: inline-block; }
.sc-dot--ok { background: var(--green-dot); }
.sc-dot--warn { background: var(--amber); }
.sc-dot--mut { background: rgba(23, 16, 25, 0.28); }

.sc-label { display: block; margin-bottom: 5px; font-family: var(--mono); font-size: 9px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--tomato-deep); }
.sc-meal { border-top: 1px solid rgba(23, 16, 25, 0.14); padding-top: 10px; }
.sc-meal em { display: block; margin-bottom: 7px; font-family: var(--serif); font-size: 15px; line-height: 1.25; }
.macro-chips { display: flex; flex-wrap: wrap; gap: 5px; }
.macro-chips span { padding: 4px 7px; background: rgba(23, 16, 25, 0.07); font-family: var(--mono); font-size: 10px; font-weight: 500; letter-spacing: 0.04em; }
.data-gap { margin: 0; color: #a33e2d; font-size: 10px; font-weight: 850; }

.sc-watch { display: flex; gap: 7px; align-items: baseline; margin: 0; }
.sc-watch .sc-label { margin: 0; padding-top: 1px; white-space: nowrap; }
.sc-watch span { font-size: 12px; line-height: 1.45; opacity: 0.82; }

.sc-src { font-family: var(--mono); font-size: 9px; line-height: 1.5; letter-spacing: 0.06em; opacity: 0.5; text-transform: uppercase; }
.sc-src a { color: inherit; font-weight: 700; text-underline-offset: 3px; }

.sc-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: auto; padding-top: 4px; }
.sc-actions a { display: inline-flex; align-items: center; justify-content: center; min-height: 36px; padding: 6px 12px; font-size: 12px; font-weight: 650; text-decoration: none; color: var(--ink); border: 1px solid rgba(23, 16, 25, 0.3); transition: background 180ms ease, color 180ms ease, border-color 180ms ease; }
.sc-actions a:hover { border-color: var(--ink); background: rgba(23, 16, 25, 0.06); }
.sc-actions a.primary { background: var(--tomato); border-color: var(--tomato); font-weight: 700; }
.sc-actions a.primary:hover { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.sc-actions .compare-toggle { min-height: 36px; padding: 6px 10px; font-family: var(--mono); font-size: 11px; font-weight: 500; letter-spacing: 0.06em; color: var(--ink); background: transparent; border: 1px solid rgba(23, 16, 25, 0.3); cursor: pointer; transition: background 180ms ease, color 180ms ease, border-color 180ms ease; }
.sc-actions .compare-toggle:hover { border-color: var(--ink); }
.sc-actions .compare-toggle[aria-pressed="true"] { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.empty { grid-column: 1 / -1; padding: 40px; background: var(--white); border: 1px dashed var(--ink); text-align: center; }

#scroll-world.is-mobile-cinematic { margin-top: 0 !important; }

.market-map {
  isolation: isolate;
  overflow: hidden;
  background:
    radial-gradient(circle at 8% 24%, rgba(255, 90, 60, .15), transparent 24%),
    radial-gradient(circle at 88% 12%, rgba(110, 155, 54, .22), transparent 27%),
    var(--paper-2);
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
}
.market-map::before {
  content: "ČR";
  position: absolute;
  z-index: -1;
  top: .08em;
  right: -.02em;
  color: rgba(23, 16, 25, .035);
  font-family: var(--serif);
  font-size: clamp(210px, 34vw, 510px);
  font-weight: 800;
  line-height: .7;
  letter-spacing: -.08em;
}
.market-map > .shell { position: relative; z-index: 1; }
.market-map__head h2 { max-width: 9ch; }
.market-map__head p { color: var(--ink-2); }

.market-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: clamp(64px, 8vw, 100px);
}
.market-stat {
  min-height: 270px;
  display: flex;
  flex-direction: column;
  padding: clamp(20px, 2.5vw, 30px);
  border: 1px solid var(--ink);
}
.market-stat > strong { display: block; font-family: var(--serif); font-size: clamp(78px, 9vw, 126px); font-weight: 700; line-height: .72; letter-spacing: -.07em; }
.market-stat h3 { max-width: 13ch; margin: 24px 0 8px; font-family: var(--serif); font-size: clamp(27px, 2.8vw, 38px); line-height: .92; letter-spacing: -.035em; }
.market-stat p { margin: 0 0 22px; font-size: 10px; font-weight: 750; }
.market-stat > :is(a, span) { margin-top: auto; font-size: 9px; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.market-stat > a { text-underline-offset: 4px; }
.market-stat.is-detailed { color: var(--white); background: var(--ink); }
.market-stat.is-detailed > strong, .market-stat.is-detailed > a { color: var(--lime); }
.market-stat.is-detailed p { color: #cfc1bb; }
.market-stat.is-active { background: var(--lime); }
.market-stat.is-check { background: var(--white); box-shadow: inset 0 -8px 0 var(--tomato); }
.market-stat.is-check > strong { color: var(--tomato); }

.market-next, .market-directory { margin-top: clamp(56px, 7vw, 88px); }
.market-subhead {
  display: grid;
  grid-template-columns: minmax(260px, .7fr) minmax(0, 1.3fr);
  gap: clamp(30px, 7vw, 90px);
  align-items: end;
  margin-bottom: 28px;
}
.market-subhead > div > span { display: block; margin-bottom: 8px; color: var(--tomato); font-size: 9px; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.market-subhead h3 { max-width: 11ch; margin: 0; font-family: var(--serif); font-size: clamp(42px, 5vw, 66px); font-weight: 700; line-height: .9; letter-spacing: -.045em; }
.market-subhead p { max-width: 700px; margin: 0; color: var(--ink-2); font-size: 14px; }

.market-next-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; counter-reset: market-next; }
.market-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  padding: 20px;
  background: rgba(255, 250, 240, .86);
  border: 1px solid var(--ink);
  transition: transform 180ms ease, box-shadow 180ms ease;
}
.market-card:hover { transform: translateY(-3px); box-shadow: 7px 7px 0 rgba(23, 16, 25, .12); }
.market-card__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: -20px -20px 20px; padding: 9px 12px; color: var(--white); background: var(--ink); }
.market-card__top span { font-size: 8px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.market-card__top b { color: var(--lime); font-family: var(--serif); font-size: 19px; line-height: 1; }
.market-card h4 { margin: 0 0 13px; font-family: var(--serif); font-size: clamp(30px, 3vw, 42px); line-height: .92; letter-spacing: -.04em; }
.market-card h4 a { text-decoration-thickness: 1px; text-decoration-color: transparent; text-underline-offset: 5px; }
.market-card h4 a:hover { text-decoration-color: currentColor; }
.market-card__coverage { margin: 0 0 16px; color: var(--ink-2); font-size: 11px; font-weight: 750; }
.market-card__coverage span, .market-card__evidence span { display: block; margin-bottom: 3px; color: var(--muted); font-size: 8px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.market-card dl { margin: 0 0 16px; border-top: 1px solid var(--line); }
.market-card dl > div { padding: 10px 0; border-bottom: 1px solid var(--line); }
.market-card dt { color: var(--muted); font-size: 8px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.market-card dd { margin: 3px 0 0; font-size: 11px; font-weight: 800; }
.market-card__evidence { margin: 0 0 18px; color: var(--muted); font-size: 10px; }
.market-card__editorial { margin: -8px 0 18px; padding: 10px 12px; background: var(--paper); border-left: 4px solid var(--tomato); font-size: 11px; line-height: 1.5; }
.market-card__editorial span { display: block; margin-bottom: 3px; color: var(--tomato-deep); font-size: 8px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.market-card__links { display: grid; grid-template-columns: repeat(3, 1fr); gap: 5px; margin-top: auto; }
.market-card__links a { min-height: 38px; display: grid; place-items: center; padding: 8px 6px; border: 1px solid var(--ink); font-size: 8px; font-weight: 900; text-align: center; text-decoration: none; text-transform: uppercase; }
.market-card__links a:first-child { background: var(--tomato); box-shadow: 2px 2px 0 var(--ink); }
.market-card__links a:hover { background: var(--lime); }

.market-directory__group { margin: 0; padding: 0; background: rgba(255, 250, 240, .72); border: 1px solid var(--ink); }
.market-directory__group + .market-directory__group { margin-top: 10px; }
.market-directory__group > summary { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 20px; align-items: center; padding: 22px 82px 22px 22px; }
.market-directory__group > summary::after { top: 50%; right: 22px; transform: translateY(-52%); }
.market-directory__group > summary span { min-width: 0; }
.market-directory__group > summary b { display: block; font-family: var(--serif); font-size: clamp(26px, 3vw, 38px); line-height: 1; }
.market-directory__group > summary small { display: block; max-width: 700px; margin-top: 7px; color: var(--muted); font-family: var(--sans); font-size: 10px; font-weight: 700; line-height: 1.45; }
.market-directory__group > summary strong { color: var(--lime-dark); font-family: var(--serif); font-size: 48px; line-height: .8; }
.market-directory__group.is-check > summary strong { color: var(--tomato); }
.market-directory__group ul { margin: 0; padding: 0; border-top: 1px solid var(--ink); list-style: none; }
.market-directory__group li {
  display: grid;
  grid-template-columns: minmax(150px, .72fr) minmax(160px, .9fr) minmax(220px, 1.3fr) auto;
  gap: 20px;
  align-items: start;
  padding: 16px 18px;
  border-bottom: 1px solid var(--line);
}
.market-directory__group li:last-child { border-bottom: 0; }
.market-directory__group li:hover { background: rgba(184, 217, 138, .18); }
.market-directory__group.is-check li:hover { background: rgba(255, 90, 60, .08); }
.market-directory__group li h4 { margin: 0; font-family: var(--serif); font-size: 21px; line-height: 1; }
.market-directory__group li div { min-width: 0; }
.market-directory__group li small { display: block; margin-bottom: 3px; color: var(--muted); font-size: 7px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.market-directory__group li span { display: block; font-size: 10px; font-weight: 750; }
.market-directory__group li > a { align-self: center; font-size: 8px; font-weight: 900; text-underline-offset: 4px; text-transform: uppercase; white-space: nowrap; }
.market-map__note { margin: 24px 0 0; padding: 15px 18px; color: var(--muted); background: rgba(255, 250, 240, .62); border-left: 4px solid var(--tomato); font-size: 10px; }
.market-map__note strong { color: var(--ink); }

.experience-preview { color: var(--white); background: var(--ink); overflow: hidden; }
.experience-preview::before { content: "ONE TEST"; position: absolute; right: -0.04em; bottom: -0.12em; color: rgba(255,255,255,.035); font-family: var(--serif); font-size: clamp(160px, 24vw, 390px); font-weight: 800; line-height: .7; }
.experience-preview .eyebrow { color: var(--white); }
.experience-preview .section-head { border-color: rgba(255,250,240,.38); }
.experience-preview .section-head p { color: #cfc1bb; }
.experience-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(350px, .9fr); gap: clamp(28px, 6vw, 80px); }
.experience-copy { padding: clamp(24px, 4vw, 52px); background: rgba(255,250,240,.055); border: 1px solid rgba(255,250,240,.22); }
.experience-copy blockquote { margin: 0 0 24px; color: var(--white); font-family: var(--serif); font-size: clamp(34px, 4.4vw, 59px); line-height: .98; letter-spacing: -.035em; }
.experience-copy blockquote em { color: var(--lime); font-style: italic; }
.experience-copy p { color: #cfc1bb; }
.experience-copy .button { margin-top: 10px; color: var(--ink); background: var(--tomato); }
.experience-ledger { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid rgba(255,250,240,.3); border-left: 1px solid rgba(255,250,240,.3); }
.experience-ledger article { min-height: 155px; padding: 20px; border-right: 1px solid rgba(255,250,240,.3); border-bottom: 1px solid rgba(255,250,240,.3); }
.experience-ledger strong { display: block; color: var(--lime); font-family: var(--serif); font-size: clamp(47px, 5vw, 72px); line-height: .82; }
.experience-ledger span { display: block; margin-top: 14px; color: #cfc1bb; font-size: 9px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }

.method-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; counter-reset: method; }
.method { counter-increment: method; padding: 20px 0; border-top: 4px solid var(--tomato); }
.method::before { content: "0" counter(method); color: var(--tomato); font-family: var(--serif); font-size: 31px; font-weight: 800; }
.method h3 { margin: 15px 0 8px; font-family: var(--serif); font-size: 23px; line-height: 1; }
.method p { margin: 0; color: var(--muted); font-size: 12px; }
.sources { display: grid; grid-template-columns: .55fr 1.45fr; gap: 45px; margin-top: 40px; padding: 25px; background: rgba(255,250,240,.55); border: 1px solid var(--ink); }
.sources h3 { margin: 0; font-family: var(--serif); font-size: 30px; line-height: 1; }
.sources p { margin: 0; color: var(--muted); font-size: 11px; }
.sources a { font-weight: 900; text-underline-offset: 3px; }

.faq-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 26px; }
details { padding: 20px 0; background: transparent; border: 0; border-top: 1px solid var(--ink); }
summary { position: relative; padding-right: 28px; font-family: var(--serif); font-size: 22px; font-weight: 700; line-height: 1.05; list-style: none; cursor: pointer; }
summary::after { content: "+"; position: absolute; top: -3px; right: 0; color: var(--tomato); font-family: var(--sans); font-size: 24px; }
details[open] summary::after { content: "−"; }
details p { margin: 13px 0 0; color: var(--muted); font-size: 12px; }

.compare-dock { position: fixed; z-index: 190; left: 50%; bottom: 22px; max-width: calc(100% - 30px); display: flex; align-items: center; gap: 18px; padding: 10px 10px 10px 18px; transform: translateX(-50%); color: var(--white); background: var(--ink); border: 1px solid var(--lime); box-shadow: 8px 8px 0 var(--tomato); }
.compare-dock[hidden] { display: none; }
.compare-dock-copy { min-width: 0; }
.compare-dock-copy b { display: block; font-size: 11px; }
.compare-dock-copy span { display: block; max-width: 390px; overflow: hidden; color: #cfc1bb; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.compare-dock button { padding: 11px 15px; color: var(--ink); background: var(--lime); border: 0; font-size: 10px; font-weight: 900; white-space: nowrap; cursor: pointer; }
.compare-dock button:disabled { opacity: .48; cursor: not-allowed; }
.compare-dialog { width: min(1050px, calc(100% - 30px)); max-height: min(88vh, 850px); padding: 0; color: var(--ink); background: var(--paper); border: 0; box-shadow: 20px 20px 0 rgba(23,16,25,.28); }
.compare-dialog::backdrop { background: rgba(10, 7, 10, .8); backdrop-filter: blur(8px); }
.dialog-head { position: sticky; z-index: 3; top: 0; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 24px; background: var(--paper); border-bottom: 1px solid var(--ink); }
.dialog-head h2 { margin: 6px 0 0; font-size: 42px; }
.dialog-close { width: 42px; height: 42px; background: transparent; border: 1px solid var(--ink); font-size: 24px; cursor: pointer; }
.compare-table-wrap { overflow: auto; padding: 20px 24px 28px; }
.dialog-swipe-hint { display: none; }
.compare-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.compare-card { padding: 20px; background: var(--white); border: 1px solid var(--ink); }
.compare-card h3 { margin: 0 0 12px; font-family: var(--serif); font-size: 31px; line-height: 1; }
.compare-card dl { margin: 0; }
.compare-card dt { margin-top: 13px; color: var(--muted); font-size: 8px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.compare-card dd { margin: 3px 0 0; font-size: 11px; font-weight: 750; }
.compare-card .button { width: 100%; margin-top: 17px; }

footer { padding: 55px 0 100px; color: #ddd0c8; background: var(--ink); }
.footer-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: end; }
footer .logo { color: var(--white); font-size: 27px; }
footer p { max-width: 690px; margin: 13px 0 0; color: #a99c96; font-size: 10px; }
.footer-links { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 17px; font-size: 10px; font-weight: 800; }
.footer-links button { padding: 0; color: inherit; background: transparent; border: 0; font: inherit; font-weight: 800; text-decoration: underline; cursor: pointer; }
.mobile-cta { display: none; }

:focus-visible { outline: 3px solid var(--tomato); outline-offset: 3px; }

@supports (animation-timeline: view()) {
  .section > .shell > :is(.section-head, .comparison-snapshot, .service-list, .market-stats, .market-next, .market-directory, .experience-grid, .method-grid) {
    animation: editorial-reveal both linear;
    animation-timeline: view();
    animation-range: entry 7% cover 28%;
  }
}
@keyframes editorial-reveal {
  from { opacity: .35; transform: translateY(28px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 1020px) {
  .visual-cta__head { grid-template-columns: 1fr; gap: 22px; }
  .section-head, .experience-grid { grid-template-columns: 1fr; gap: 24px; }
  .section-head h2 { max-width: 12ch; }
  .compare-tools { grid-template-columns: 1fr 1fr; }
  .service-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .market-next-grid { grid-template-columns: 1fr 1fr; }
  .method-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 720px) {
  .shell { width: min(100% - 28px, 1240px); }
  .topbar { font-size: 8px; }
  .nav-inner { height: 62px; }
  .nav-links a:not(.nav-pill) { display: none; }
  .nav-pill { padding: 8px 10px; }
  .visual-cta { padding-top: 64px; }
  .visual-cta__head { margin-bottom: 26px; }
  .visual-cta__head h2 { max-width: 10ch; font-size: clamp(51px, 15vw, 70px); }
  .visual-cta__head p { font-size: 17px; }
  .cta-banner { box-shadow: 7px 7px 0 var(--tomato); }
  .cta-banner:hover { transform: none; box-shadow: 7px 7px 0 var(--tomato); }
  .cta-banner__action { grid-template-columns: 1fr auto; gap: 8px 14px; min-height: 0; padding: 15px 16px; }
  .cta-banner__action b { font-size: 31px; }
  .cta-banner__action small { grid-column: 1; line-height: 1.35; }
  .cta-banner__action i { grid-column: 2; grid-row: 1 / 3; font-size: 42px; }
  .hero-finder { grid-template-columns: 1fr; box-shadow: 6px 6px 0 var(--lime); }
  .finder-top { align-items: start; }
  .hero-finder .button { width: 100%; }
  .finder-picks { grid-template-columns: 1fr; }
  .section { padding: 72px 0; }
  #srovnani { padding-top: 44px; }
  #srovnani .section-head {
    gap: 16px;
    margin-bottom: 24px;
    padding-bottom: 24px;
  }
  #srovnani .section-head h2 {
    max-width: 10ch;
    font-size: clamp(45px, 12.8vw, 58px);
    line-height: .91;
  }
  #srovnani .section-head p {
    max-width: 35ch;
    font-size: 15px;
    line-height: 1.48;
  }
  #srovnani .snapshot-head {
    align-items: flex-start;
    flex-direction: column;
    gap: 5px;
  }
  #srovnani .comparison-snapshot table { min-width: 860px; }
  #srovnani .comparison-snapshot th,
  #srovnani .comparison-snapshot td { padding: 12px; }
  .section-head h2 { font-size: clamp(44px, 13vw, 61px); }
  .compare-tools, .faq-grid, .method-grid, .sources, .footer-grid, .compare-card-grid { grid-template-columns: 1fr; }
  .swipe-hint { display: block; }
  .compare-table-wrap { padding-right: 14px; padding-left: 14px; }
  .dialog-swipe-hint { display: block; margin: -4px 0 12px; padding: 8px 10px; color: var(--ink); background: var(--lime); font-size: 9px; font-weight: 900; letter-spacing: .07em; text-align: center; text-transform: uppercase; }
  .compare-card-grid { display: grid; grid-auto-flow: column; grid-auto-columns: min(86vw, 390px); grid-template-columns: none; overflow-x: auto; padding-bottom: 10px; scroll-snap-type: x mandatory; }
  .compare-card { scroll-snap-align: start; }
  .results-meta { display: block; }
  .results-meta span { display: block; margin-top: 4px; }
  .service-list { grid-template-columns: 1fr; }
  .service-card { padding: 14px; }
  .sc-actions a.primary { flex: 1 1 150px; min-height: 44px; }
  .sc-actions a:not(.primary), .sc-actions .compare-toggle { min-height: 44px; }
  .market-stats, .market-next-grid { grid-template-columns: 1fr; }
  .market-stat { min-height: 225px; }
  .market-subhead { grid-template-columns: 1fr; gap: 18px; }
  .market-subhead h3 { font-size: clamp(40px, 13vw, 58px); }
  .market-card { padding: 17px; }
  .market-card__top { margin: -17px -17px 17px; }
  .market-directory__group > summary { padding: 18px 70px 18px 16px; }
  .market-directory__group > summary::after { right: 16px; }
  .market-directory__group > summary strong { margin-right: 12px; font-size: 38px; }
  .market-directory__group li { grid-template-columns: 1fr; gap: 12px; padding: 16px; }
  .market-directory__group li h4 { font-size: 25px; }
  .market-directory__group li > a { justify-self: start; }
  .experience-ledger { grid-template-columns: 1fr; }
  .sources { gap: 18px; }
  .footer-links { justify-content: flex-start; }
  .compare-dock { bottom: 72px; width: calc(100% - 24px); justify-content: space-between; }
  .compare-dock-copy span { max-width: 150px; }
  .mobile-cta { position: fixed; z-index: 180; right: 12px; bottom: 12px; left: 12px; display: flex; justify-content: center; padding: 13px 16px; color: var(--ink); background: var(--lime); border: 2px solid var(--ink); box-shadow: 4px 4px 0 var(--ink); font-size: 11px; font-weight: 900; text-decoration: none; transition: opacity 180ms ease, transform 180ms ease, visibility 180ms ease; }
  .mobile-cta.is-context-hidden { visibility: hidden; opacity: 0; pointer-events: none; transform: translateY(calc(100% + 28px)); }
  .has-compare .mobile-cta { display: none; }
  footer { padding-bottom: 150px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}
