/*
Plugin: Testy.org.ua — Спільні стилі
Version: 1.0.1

Важливо:
- v1.0.1 НЕ чіпає старі класи подібних тестів .li-thumb-wrap і .li-tag-badge.
- Подібні тести будемо переводити окремим етапом.
- Основна змінна кольору категорії:
  --testy-org-ua-category-color
*/

/* =========================================================
   01. Базові змінні
   ========================================================= */

:root {
  --testy-org-ua-fallback-color: #061225;
  --testy-org-ua-category-color: var(--testy-org-ua-fallback-color);

  --testy-org-ua-container-max-width: 1180px;
  --testy-org-ua-grid-min-width: 240px;
  --testy-org-ua-grid-gap: 22px;

  --testy-org-ua-card-bg: #ffffff;
  --testy-org-ua-card-text-color: #061225;
  --testy-org-ua-card-muted-color: #64748b;
  --testy-org-ua-card-radius: 18px;
  --testy-org-ua-card-padding: 16px;
  --testy-org-ua-card-border: 1px solid rgba(6, 18, 37, 0.08);
  --testy-org-ua-card-shadow: 0 4px 14px rgba(6, 18, 37, 0.08);
  --testy-org-ua-card-shadow-hover: 0 8px 24px rgba(6, 18, 37, 0.14);

  --testy-org-ua-image-ratio: 3 / 2;
  --testy-org-ua-image-radius: 0;
  --testy-org-ua-image-bg: #f1f5f9;

  --testy-org-ua-card-title-font: inherit;
  --testy-org-ua-card-title-size: 16px;
  --testy-org-ua-card-title-size-mobile: 15px;
  --testy-org-ua-card-title-weight: 400;
  --testy-org-ua-card-title-line-height: 1.25;
  --testy-org-ua-card-title-padding: 9px 12px 11px;

  --testy-org-ua-card-body-font: inherit;
  --testy-org-ua-card-body-size: 15px;
  --testy-org-ua-card-body-line-height: 1.45;
  --testy-org-ua-card-body-padding: 12px 14px 16px;

  --testy-org-ua-ribbon-width: 200px;
  --testy-org-ua-ribbon-padding: 6px 0;
  --testy-org-ua-ribbon-font-size: 15px;
  --testy-org-ua-ribbon-font-size-mobile: 14px;
  --testy-org-ua-ribbon-font-weight: 400;
  --testy-org-ua-ribbon-z-index: 30;

  --testy-org-ua-badge-radius: 999px;
  --testy-org-ua-badge-padding: 4px 10px;
  --testy-org-ua-badge-font-size: 13px;
  --testy-org-ua-badge-font-weight: 700;

  --testy-org-ua-button-bg: #061225;
  --testy-org-ua-button-bg-hover: #1877F2;
  --testy-org-ua-button-color: #ffffff;
  --testy-org-ua-button-radius: 999px;
  --testy-org-ua-button-padding: 10px 18px;
  --testy-org-ua-button-font-size: 15px;
  --testy-org-ua-button-font-weight: 700;

  --testy-org-ua-transition: 0.2s ease;
  --testy-org-ua-hover-transform: translateY(-2px);
}

/* =========================================================
   02. Службові класи
   ========================================================= */

.testy-org-ua-container {
  max-width: var(--testy-org-ua-container-max-width);
  margin-left: auto;
  margin-right: auto;
}

.testy-org-ua-cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(var(--testy-org-ua-grid-min-width), 1fr));
  gap: var(--testy-org-ua-grid-gap);
}

.testy-org-ua-category-color {
  color: var(--testy-org-ua-category-color, var(--testy-org-ua-fallback-color));
}

.testy-org-ua-category-bg {
  background: var(--testy-org-ua-category-color, var(--testy-org-ua-fallback-color));
  color: #ffffff;
}

.testy-org-ua-category-border {
  border-color: var(--testy-org-ua-category-color, var(--testy-org-ua-fallback-color));
}

/* =========================================================
   03. Універсальна НОВА картка тесту
   ========================================================= */

.testy-org-ua-test-card {
  position: relative;
  overflow: hidden;
  background: var(--testy-org-ua-card-bg);
  color: var(--testy-org-ua-card-text-color);
  border: var(--testy-org-ua-card-border);
  border-radius: var(--testy-org-ua-card-radius);
  box-shadow: var(--testy-org-ua-card-shadow);
  transition:
    box-shadow var(--testy-org-ua-transition),
    transform var(--testy-org-ua-transition),
    border-color var(--testy-org-ua-transition);
}

.testy-org-ua-test-card:hover {
  transform: var(--testy-org-ua-hover-transform);
  box-shadow: var(--testy-org-ua-card-shadow-hover);
}

.testy-org-ua-test-card__thumb,
.testy-org-ua-test-card__image-link {
  position: relative;
  display: block;
  overflow: hidden;
  line-height: 0;
  background: var(--testy-org-ua-image-bg);
}

.testy-org-ua-test-card__image,
.testy-org-ua-test-card__thumb img,
.testy-org-ua-test-card__image-link img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: var(--testy-org-ua-image-ratio);
  object-fit: cover;
  border-radius: var(--testy-org-ua-image-radius);
}

.testy-org-ua-test-card__title {
  margin: 0;
  padding: var(--testy-org-ua-card-title-padding);
  background: var(--testy-org-ua-category-color, var(--testy-org-ua-fallback-color));
  color: #ffffff;
  font-family: var(--testy-org-ua-card-title-font);
  font-size: var(--testy-org-ua-card-title-size);
  font-weight: var(--testy-org-ua-card-title-weight);
  line-height: var(--testy-org-ua-card-title-line-height);
  text-align: center;
}

.testy-org-ua-test-card__title a,
.testy-org-ua-test-card__title a:visited {
  color: #ffffff;
  text-decoration: none;
}

.testy-org-ua-test-card__title a:hover,
.testy-org-ua-test-card__title a:focus {
  color: #ffffff;
  text-decoration: underline;
}

.testy-org-ua-test-card__body {
  padding: var(--testy-org-ua-card-body-padding);
  font-family: var(--testy-org-ua-card-body-font);
  font-size: var(--testy-org-ua-card-body-size);
  line-height: var(--testy-org-ua-card-body-line-height);
}

.testy-org-ua-test-card__meta {
  color: var(--testy-org-ua-card-muted-color);
  font-size: 14px;
}

/* =========================================================
   04. Картки архівів категорій / тегів / пошуку
   ========================================================= */

.archive .site-main article.post,
.blog .site-main article.post,
.search .site-main article.post {
  position: relative;
  overflow: hidden;
  background: var(--testy-org-ua-card-bg);
  border: var(--testy-org-ua-card-border);
  border-radius: var(--testy-org-ua-card-radius);
  box-shadow: var(--testy-org-ua-card-shadow);
  transition:
    box-shadow var(--testy-org-ua-transition),
    transform var(--testy-org-ua-transition),
    border-color var(--testy-org-ua-transition);
}

.archive .site-main article.post:hover,
.blog .site-main article.post:hover,
.search .site-main article.post:hover {
  transform: var(--testy-org-ua-hover-transform);
  box-shadow: var(--testy-org-ua-card-shadow-hover);
}

.archive .site-main article.post .inside-article,
.blog .site-main article.post .inside-article,
.search .site-main article.post .inside-article {
  overflow: hidden;
  padding: 0;
  background: transparent;
  border-radius: var(--testy-org-ua-card-radius);
}

.archive .site-main article.post .post-image,
.blog .site-main article.post .post-image,
.search .site-main article.post .post-image {
  position: relative;
  overflow: hidden;
  margin: 0;
  line-height: 0;
  background: var(--testy-org-ua-image-bg);
}

.archive .site-main article.post .post-image a,
.blog .site-main article.post .post-image a,
.search .site-main article.post .post-image a {
  display: block;
  line-height: 0;
}

.archive .site-main article.post .post-image img,
.blog .site-main article.post .post-image img,
.search .site-main article.post .post-image img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: var(--testy-org-ua-image-ratio);
  object-fit: cover;
}

.archive .site-main article.post .entry-header,
.blog .site-main article.post .entry-header,
.search .site-main article.post .entry-header {
  margin: 0;
}

.archive .site-main article.post .entry-title,
.blog .site-main article.post .entry-title,
.search .site-main article.post .entry-title {
  width: 100%;
  margin: 0;
  padding: var(--testy-org-ua-card-title-padding);
  background: var(--testy-org-ua-category-color, var(--testy-org-ua-fallback-color));
  color: #ffffff;
  font-family: var(--testy-org-ua-card-title-font);
  font-size: var(--testy-org-ua-card-title-size);
  font-weight: var(--testy-org-ua-card-title-weight);
  line-height: var(--testy-org-ua-card-title-line-height);
  text-align: center;
}

.archive .site-main article.post .entry-title a,
.archive .site-main article.post .entry-title a:visited,
.blog .site-main article.post .entry-title a,
.blog .site-main article.post .entry-title a:visited,
.search .site-main article.post .entry-title a,
.search .site-main article.post .entry-title a:visited {
  color: #ffffff !important;
  text-decoration: none;
}

.archive .site-main article.post .entry-title a:hover,
.archive .site-main article.post .entry-title a:focus,
.blog .site-main article.post .entry-title a:hover,
.blog .site-main article.post .entry-title a:focus,
.search .site-main article.post .entry-title a:hover,
.search .site-main article.post .entry-title a:focus {
  color: #ffffff !important;
  text-decoration: underline;
}

.archive .site-main article.post .entry-summary,
.archive .site-main article.post .entry-content,
.blog .site-main article.post .entry-summary,
.blog .site-main article.post .entry-content,
.search .site-main article.post .entry-summary,
.search .site-main article.post .entry-content {
  padding: var(--testy-org-ua-card-body-padding);
  font-size: var(--testy-org-ua-card-body-size);
  line-height: var(--testy-org-ua-card-body-line-height);
}

.archive .site-main article.post .entry-meta,
.blog .site-main article.post .entry-meta,
.search .site-main article.post .entry-meta {
  padding-left: 14px;
  padding-right: 14px;
  color: var(--testy-org-ua-card-muted-color);
}

/* =========================================================
   05. НОВІ стрічки / ріббони
   ========================================================= */

/*
Тільки новий клас .testy-org-ua-ribbon.
Старий .li-tag-badge тут спеціально НЕ стилізуємо.
*/

.testy-org-ua-ribbon {
  position: absolute;
  top: 0;
  left: 0;
  z-index: var(--testy-org-ua-ribbon-z-index);
  display: block;
  width: var(--testy-org-ua-ribbon-width);
  padding: var(--testy-org-ua-ribbon-padding);
  background: var(--testy-org-ua-category-color, var(--testy-org-ua-fallback-color));
  color: #ffffff;
  font-family: var(--testy-org-ua-card-title-font);
  font-size: var(--testy-org-ua-ribbon-font-size);
  font-weight: var(--testy-org-ua-ribbon-font-weight);
  line-height: 1.1;
  text-align: center;
  text-decoration: none;
  transform: rotate(-45deg) translate(-100px, 35px);
  transform-origin: 0 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  pointer-events: none;
}

.testy-org-ua-ribbon a {
  color: #ffffff;
  text-decoration: none;
}

/* =========================================================
   06. Бейджі категорій / міток
   ========================================================= */

.testy-org-ua-badge,
.testy-org-ua-category-badge,
.testy-org-ua-category-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  max-width: 100%;
  padding: var(--testy-org-ua-badge-padding);
  border-radius: var(--testy-org-ua-badge-radius);
  background: var(--testy-org-ua-category-color, var(--testy-org-ua-fallback-color));
  color: #ffffff;
  font-size: var(--testy-org-ua-badge-font-size);
  font-weight: var(--testy-org-ua-badge-font-weight);
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
}

.testy-org-ua-badge a,
.testy-org-ua-category-badge a,
.testy-org-ua-category-label a {
  color: #ffffff;
  text-decoration: none;
}

/* =========================================================
   07. Кнопки
   ========================================================= */

.testy-org-ua-button,
.testy-org-ua-button:visited {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: var(--testy-org-ua-button-padding);
  border: 0;
  border-radius: var(--testy-org-ua-button-radius);
  background: var(--testy-org-ua-button-bg);
  color: var(--testy-org-ua-button-color);
  font-size: var(--testy-org-ua-button-font-size);
  font-weight: var(--testy-org-ua-button-font-weight);
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
  transition:
    background-color var(--testy-org-ua-transition),
    color var(--testy-org-ua-transition),
    transform var(--testy-org-ua-transition),
    box-shadow var(--testy-org-ua-transition);
}

.testy-org-ua-button:hover,
.testy-org-ua-button:focus {
  background: var(--testy-org-ua-button-bg-hover);
  color: var(--testy-org-ua-button-color);
  text-decoration: none;
}

.testy-org-ua-button--category {
  background: var(--testy-org-ua-category-color, var(--testy-org-ua-fallback-color));
}

.testy-org-ua-button--category:hover,
.testy-org-ua-button--category:focus {
  filter: brightness(1.06);
}

.wp-block-button.testy-org-ua-button-primary .wp-block-button__link {
  border-radius: var(--testy-org-ua-button-radius);
  background: var(--testy-org-ua-button-bg);
  color: var(--testy-org-ua-button-color);
  font-size: var(--testy-org-ua-button-font-size);
  font-weight: var(--testy-org-ua-button-font-weight);
  transition: background-color var(--testy-org-ua-transition);
}

.wp-block-button.testy-org-ua-button-primary .wp-block-button__link:hover {
  background: var(--testy-org-ua-button-bg-hover);
  color: var(--testy-org-ua-button-color);
}

/* =========================================================
   08. Мобільна версія
   ========================================================= */

@media (max-width: 768px) {
  :root {
    --testy-org-ua-grid-min-width: 220px;
    --testy-org-ua-grid-gap: 16px;
    --testy-org-ua-card-title-size: var(--testy-org-ua-card-title-size-mobile);
    --testy-org-ua-ribbon-font-size: var(--testy-org-ua-ribbon-font-size-mobile);
  }

  .archive .site-main article.post .entry-summary,
  .archive .site-main article.post .entry-content,
  .blog .site-main article.post .entry-summary,
  .blog .site-main article.post .entry-content,
  .search .site-main article.post .entry-summary,
  .search .site-main article.post .entry-content {
    padding: 10px 12px 14px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .testy-org-ua-test-card,
  .archive .site-main article.post,
  .blog .site-main article.post,
  .search .site-main article.post,
  .testy-org-ua-button {
    transition: none;
  }

  .testy-org-ua-test-card:hover,
  .archive .site-main article.post:hover,
  .blog .site-main article.post:hover,
  .search .site-main article.post:hover {
    transform: none;
  }
}
