/* ==========================================================================
   Homepage visual guide — ten illustrated cards (#visual-guide)
   --------------------------------------------------------------------------
   Loaded after the page's component sheet on all sixteen homepages. Built on
   the tokens in tokens.css only, so light, dark and [data-theme] follow the
   rest of the page without a second palette here. Logical properties
   throughout: the Arabic and Hebrew pages need no overrides.
   ========================================================================== */

.hv {
  padding-block: var(--section-y, 3rem);
  background: var(--surface-2, #f2f5fb);
  color: var(--ink, #0a0f1f);
}

.hv-head {
  max-inline-size: 46rem;
  margin-inline: auto;
  margin-block-end: var(--s-6, 2rem);
  text-align: center;
}

.hv-kicker {
  margin: 0 0 var(--s-2, 0.5rem);
  font-size: var(--t-xs, 0.78rem);
  font-weight: 700;
  letter-spacing: var(--wide, 0.1em);
  text-transform: uppercase;
  color: var(--brand, #3538cd);
}

.hv-title {
  margin: 0 0 var(--s-3, 0.75rem);
  font-family: var(--display, inherit);
  font-size: var(--t-3xl, 2rem);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: var(--tight, -0.02em);
  color: var(--ink, #0a0f1f);
  text-wrap: balance;
}

.hv-lead {
  margin: 0;
  font-size: var(--t-lg, 1.1rem);
  line-height: 1.6;
  color: var(--ink-2, #4a5468);
  text-wrap: pretty;
}

.hv-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-5, 1.5rem);
}

@media (min-width: 768px) {
  .hv-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1600px) {
  .hv .container { max-inline-size: 1500px; }
  .hv-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.hv-card {
  display: flex;
  flex-direction: column;
  margin: 0;
  overflow: hidden;
  background: var(--surface, #fff);
  border: 1px solid var(--line, #e2e8f3);
  border-radius: var(--r-lg, 18px);
  box-shadow: var(--sh-2, 0 8px 20px rgba(10, 15, 31, 0.06));
  scroll-margin-block-start: 6rem;
  transition: box-shadow var(--base, 200ms) var(--ease, ease), transform var(--base, 200ms) var(--ease, ease);
}

.hv-card:hover {
  box-shadow: var(--sh-3, 0 24px 56px rgba(10, 15, 31, 0.09));
  transform: translateY(-2px);
}

.hv-img {
  display: block;
  inline-size: 100%;
  block-size: auto;
  aspect-ratio: 3 / 2;
  /* Matches the picture's own card colour, so nothing flashes while it loads. */
  background: #eeecff;
  border-block-end: 1px solid var(--line, #e2e8f3);
}

.hv-body {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  column-gap: var(--s-3, 0.75rem);
  row-gap: var(--s-2, 0.5rem);
  align-items: start;
  padding: var(--s-5, 1.5rem);
  text-align: start;
}

.hv-num {
  display: inline-grid;
  place-items: center;
  min-inline-size: 2.25rem;
  block-size: 2.25rem;
  padding-inline: 0.4rem;
  border-radius: var(--r-pill, 999px);
  background: var(--brand-soft, #eef0ff);
  color: var(--brand, #3538cd);
  font-size: var(--t-sm, 0.875rem);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

.hv-cap {
  align-self: center;
  font-family: var(--display, inherit);
  font-size: var(--t-lg, 1.1rem);
  font-weight: 700;
  line-height: 1.35;
  color: var(--ink, #0a0f1f);
  text-wrap: balance;
}

.hv-desc {
  grid-column: 1 / -1;
  margin: 0;
  font-size: var(--t-base, 1rem);
  line-height: 1.65;
  color: var(--ink-2, #4a5468);
}

@media (prefers-reduced-motion: reduce) {
  .hv-card { transition: none; }
  .hv-card:hover { transform: none; }
}

@media print {
  .hv-card { box-shadow: none; break-inside: avoid; }
}
