/* Catalogue refinement — shared visual system with the product landing page. */
body.catalog { color: var(--ink); background: #f6f5f8; }
body.catalog .header { top: 16px; }
body.catalog .header__bar { height: 64px; }
body.catalog .nav a.is-active { color: #2c0afb; background: #f1eff8; }

.chero { padding: 10px 12px 0; }
.chero__card {
  padding-top: calc(var(--nav-h) + 58px);
  border: 1px solid #ebe7f0;
  border-radius: 36px;
  background:
    radial-gradient(580px 310px at 92% 8%, rgba(155,103,239,.15), transparent 70%),
    linear-gradient(105deg, #fff 0%, #fff 58%, #f4f0fb 100%);
  box-shadow: 0 30px 80px -58px rgba(37,34,34,.38);
}
.chero__card::before { display: none; }
.chero__copy { max-width: 850px; padding-bottom: 8px; }
.chero__copy h1 { max-width: 14ch; font-size: clamp(42px,5.4vw,70px); line-height: 1; letter-spacing: -.055em; }
.chero__copy p { max-width: 700px; margin: 22px 0 28px; color: #77717f; font-size: 16.5px; line-height: 1.7; }
.search { max-width: 800px; gap: 12px; padding: 7px 7px 7px 18px; border: 1px solid #e1dce8; border-radius: 17px; box-shadow: 0 16px 35px -30px rgba(37,34,34,.48); }
.search:focus-within { border-color: #9e8af3; box-shadow: 0 0 0 4px rgba(44,10,251,.08), 0 18px 38px -30px rgba(37,34,34,.5); }
.search input { font-size: 15.5px; }
.search .btn { min-width: 112px; }
.chero__meta { margin-top: 14px; color: #827b88; }
.chero__meta b { color: #423c47; }
.chero__meta .demo { color: #725300; background: #fff3cc; }

.countries { grid-template-columns: repeat(8,1fr); margin-top: 42px; border-color: #ebe7f0; }
.cty { padding: 17px 14px 19px; border-color: #ebe7f0; transition: background-color .2s ease; }
.cty:hover { background: #faf8fc; }
.cty[aria-pressed="true"] { background: #eeebff; }
.cty[aria-pressed="true"]::after { height: 2px; background: #2c0afb; }
.cty .code { color: #6d3bea; font-family: var(--font-body); font-size: 11px; letter-spacing: .08em; }
.cty .name { color: #5e5864; font-size: 12.5px; }
.cty .num { margin-top: 9px; color: #252222; font-size: 21px; }
.cty .sub { color: #8a838f; }

.cmain { grid-template-columns: 286px minmax(0,1fr); gap: 30px; padding-top: 34px; padding-bottom: 72px; }
.filters { top: 94px; padding: 22px; border: 1px solid #e8e4ed; border-radius: 22px; box-shadow: 0 20px 52px -45px rgba(37,34,34,.46); }
.filters__head { margin-bottom: 10px; }
.filters__head > b { font-family: var(--font-head); font-size: 17px; }
.fgroup { padding: 17px 0; border-color: #eeeaf1; }
.fgroup__title { color: #8a838f; font-size: 11px; letter-spacing: .08em; }
.fchips { gap: 7px; }
.fchips button { border-color: #e4dfe9; border-radius: 8px; color: #5e5864; background: #fff; transition: border-color .2s ease, color .2s ease, background-color .2s ease; }
.fchips button:hover { border-color: #ad9af0; color: #2c0afb; }
.fchips button[aria-pressed="true"] { border-color: #2c0afb; color: #fff; background: #2c0afb; }
.fcheck, .fradio { color: #57515c; }
.frange input { border-color: #e1dce7; background: #fbfafc; }

.results__head { min-height: 44px; margin-bottom: 15px; }
.results__count { color: #807986; }
.results__count b { color: #252222; font-size: 18px; }
.seg { padding: 3px; border-color: #e2dde8; background: rgba(255,255,255,.85); }
.seg button[aria-pressed="true"] { color: #fff; background: #2c0afb; }
.sel { border-color: #e2dde8; color: #57515c; background-color: rgba(255,255,255,.86); }
.list { gap: 11px; }
.card {
  padding: 21px 62px 21px 22px;
  border: 1px solid #e9e5ed;
  border-radius: 18px;
  box-shadow: 0 16px 40px -38px rgba(37,34,34,.45);
  transition: border-color .22s ease, box-shadow .22s ease;
}
.card:hover { transform: none; border-color: #cfc5e0; box-shadow: 0 20px 44px -35px rgba(37,34,34,.42); }
.card:focus-visible { outline: 3px solid rgba(44,10,251,.2); outline-offset: 2px; }
.card__title { max-width: 860px; color: #302c32; font-size: 16.5px; line-height: 1.4; letter-spacing: -.015em; }
.card__meta { color: #88818d; font-size: 12.5px; }
.card__side { min-width: 178px; padding-left: 18px; border-left: 1px solid #eeeaf1; }
.card__sum { color: #252222; font-size: 19px; }
.card__deadline { color: #88818d; font-size: 12px; }
.tag { border: 1px solid transparent; border-radius: 6px; background: #f4f2f6; font-size: 11px; }
.tag--country { color: #4031a4; background: #efedff; }
.tag--country i { color: #2c0afb; }
.tag--cat { color: #644194; background: #f3ecfb; }
.tag--hot { color: #ad302c; background: #fff0ef; }
.tag--soon, .tag--demo { color: #765700; background: #fff5d8; }
.fav { color: #d8d2dc; }
.fav:hover { color: #805a00; background: #fff8e7; }
.fav.is-on { color: #d89a00; }
.skeleton { background: linear-gradient(90deg,#fff 25%,#f0edf3 50%,#fff 75%); background-size: 200% 100%; }

.cblock { padding-top: 38px; padding-bottom: 54px; }
.subscribe { gap: 48px; padding: 46px 50px; border-color: #e7e2ec; border-radius: 28px; box-shadow: 0 24px 58px -50px rgba(37,34,34,.42); }
.subscribe h2 { letter-spacing: -.04em; }
.subscribe p { color: #7c7582; line-height: 1.65; }
.subform input { border-color: #e1dce7; background: #fbfafc; }
.section-head--left h2 { letter-spacing: -.04em; }
.section-head--left p { margin-left: 0; color: #7c7582; }
.tablewrap { border-color: #e7e2ec; border-radius: 22px; box-shadow: 0 22px 55px -48px rgba(37,34,34,.44); }
.srctable th { color: #8b8490; background: #faf9fb; }
.srctable th, .srctable td { border-color: #eeeaf1; }
.srctable a { color: #2c0afb; }
.cfooter { color: #807986; border-color: #dfdae4; }
.cfooter a { color: #5f5964; }
.cfooter a:hover { color: #2c0afb; }

.drawer { width: min(600px,100%); box-shadow: -35px 0 80px -42px rgba(37,34,34,.52); }
.drawer__head, .drawer__actions { border-color: #e9e5ed; }
.drawer__body { padding: 28px; }
.drawer__body h2 { color: #302c32; font-size: 24px; letter-spacing: -.025em; }
.drawer__body p.desc { color: #5d5762; background: #f7f5f9; }
.toast { border-radius: 999px; background: #252222; box-shadow: 0 16px 35px -20px rgba(0,0,0,.5); }

@media (max-width: 1200px) {
  .countries { grid-template-columns: repeat(5,1fr); }
}
@media (max-width: 1024px) {
  .cmain { grid-template-columns: 1fr; }
  .filters { top: 0; border-radius: 0; }
}
@media (max-width: 720px) {
  body.catalog .header { top: 8px; }
  .chero { padding: 6px 6px 0; }
  .chero__card { padding-top: calc(var(--nav-h) + 28px); border-radius: 26px; }
  .chero__copy h1 { font-size: clamp(36px,11.5vw,48px); }
  .chero__copy p { margin-top: 18px; font-size: 15px; }
  .search { gap: 6px; padding: 8px; }
  .search .btn { min-width: 0; }
  .countries { grid-template-columns: repeat(3,1fr); margin-top: 28px; }
  .cty { padding: 13px 10px 15px; }
  .cty .num { font-size: 18px; }
  .cmain { padding-top: 24px; }
  .results__head, .results__ctrls { align-items: stretch; }
  .results__ctrls { width: 100%; }
  .results__ctrls .filters-toggle { flex: 1; }
  .sel { flex: 1; min-width: 150px; }
  .card { padding: 18px; }
  .card__side { padding: 14px 0 0; border-top: 1px solid #eeeaf1; border-left: 0; }
  .subscribe { padding: 30px 22px; border-radius: 24px; }
  .cblock { padding-left: 18px; padding-right: 18px; }
  .srctable th, .srctable td { min-width: 150px; padding: 12px 14px; }
  .cfooter { padding-left: 20px; padding-right: 20px; }
  .cfooter nav { width: 100%; flex-wrap: wrap; gap: 10px 16px; }
}

@media (prefers-reduced-motion: reduce) {
  .drawer, .scrim, .card, .cty, .fchips button { transition: none; }
  .skeleton { animation: none; }
}
