/*
Theme Name: 20Shots Restored
Description: Минимальная тема для отображения контента, восстановленного из архива 20shots.co.uk. Контент хранится в WordPress как обычно (страницы/посты), а вся вёрстка/стили — здесь, в теме, отдельно от контента.
Version: 1.2
Author: Sasha
*/

/* ===== Базовый сброс, чтобы чужие темы/браузерные стили не мешали ===== */
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
img { max-width: 100%; height: auto; display: block; }
a { text-decoration: none; color: inherit; }
button { font: inherit; border: none; background: none; }

/* ===== Utility CSS (замена Tailwind CDN) =====
   Классы, которые реально используются в контенте, вытащенном из
   10Web-экспорта (20shots_WordPress XML). Полный список — 67 классов. */

/* --- Layout: flex & grid --- */
.flex { display: flex; }
.flex-1 { flex: 1 1 0%; }
.flex-col { flex-direction: column; }
.flex-row { flex-direction: row; }
.flex-wrap { flex-wrap: wrap; }
.grid { display: grid; }
.grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
.col-span-2 { grid-column: span 2 / span 2; }
.items-center { align-items: center; }
.justify-between { justify-content: space-between; }
.justify-center { justify-content: center; }
.hidden { display: none; }

/* --- Position --- */
.absolute { position: absolute; }
.sticky { position: sticky; }
.top-0 { top: 0; }
.z-50 { z-index: 50; }

/* --- Sizing / spacing --- */
.w-full { width: 100%; }
.h-auto { height: auto; }
.mx-auto { margin-left: auto; margin-right: auto; }
.ml-auto { margin-left: auto; }
.mt-2 { margin-top: 0.5rem; }
.px-4 { padding-left: 1rem; padding-right: 1rem; }
.gap-2 { gap: 0.5rem; }
.gap-3 { gap: 0.75rem; }
.gap-4 { gap: 1rem; }
.gap-6 { gap: 1.5rem; }
.gap-10 { gap: 2.5rem; }

/* --- Text --- */
.text-center { text-align: center; }
.font-extrabold { font-weight: 800; }
.tracking-wider { letter-spacing: 0.05em; }

/* --- Effects / interaction --- */
.cursor-pointer { cursor: pointer; }
.object-contain { object-fit: contain; }
.opacity-0 { opacity: 0; }
.translate-y-4 { transform: translateY(1rem); }
.transition-all { transition-property: all; transition-duration: 150ms; }
.transition-opacity { transition-property: opacity; transition-duration: 150ms; }
.duration-200 { transition-duration: 200ms; }
.duration-300 { transition-duration: 300ms; }
.duration-700 { transition-duration: 700ms; }
.hover\:scale-105:hover { transform: scale(1.05); }
.hover\:scale-110:hover { transform: scale(1.1); }

/* --- Responsive (аналог Tailwind md: = min-width 768px) --- */
@media (min-width: 768px) {
  .md\:block { display: block; }
  .md\:flex { display: flex; }
  .md\:flex-row { flex-direction: row; }
  .md\:grid { display: grid; }
  .md\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .md\:col-span-2 { grid-column: span 2 / span 2; }
  .md\:absolute { position: absolute; }
  .md\:left-1\/2 { left: 50%; }
  .md\:-translate-x-1\/2 { transform: translateX(-50%); }
  .md\:px-0 { padding-left: 0; padding-right: 0; }
  .md\:px-8 { padding-left: 2rem; padding-right: 2rem; }
}

/* ===== Контейнер на всю ширину для страницы контента ===== */
.site-content-full {
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
}

/* =====================================================================
   ФИКС: scroll-reveal анимации без JS
   На оригинальном сайте эти блоки "появлялись" при прокрутке благодаря
   JavaScript (IntersectionObserver), который добавлял класс .visible
   в нужный момент. Этот скрипт остался на стороне 10Web и не попал
   в экспорт — поэтому блоки застряли в состоянии "невидимо" (opacity:0).
   Ниже принудительно показываем весь контент без анимации появления —
   надёжнее, чем пытаться воссоздать JS-триггер с нуля.
   ===================================================================== */
.opacity-0,
.stat-animate,
.any-sport-text-anim {
  opacity: 1 !important;
  animation: none !important;
  transform: none !important;
}
