/*
Theme Name: pwnz
Theme URI: 
Author: 
Author URI: 
Description: 
Requires at least: 6.9
Tested up to: 6.9
Requires PHP: 5.7
Version: 
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Template: twentytwentyfive
Text Domain: pwnz
Tags: 
*/

/* ==========================================================================
   Фон: по ширине контента, цвет #212121 (поля экрана — темнее)
   ========================================================================== */

body {
  background-color: lab(9 -0.36 -5.99);
}

main {
  max-width: var(--wp--style--global--content-size, 662px);
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

/* Заголовок поста и мета (автор, дата) в одну строку; длинный заголовок обтекает мета */
.pwnz-title-row {
  display: flex;
  flex-wrap: nowrap;
  align-items: baseline;
  gap: var(--wp--preset--spacing--40, 1rem);
}

.pwnz-title-row > .wp-block-post-title,
.pwnz-title-row > h1,
.pwnz-title-row > h2,
.pwnz-title-row > *:first-child {
  flex: 1 1 auto;
  min-width: 0;
  margin-top: 0;
  margin-bottom: 0;
}

.pwnz-title-row .wp-block-post-title {
  min-width: 0;
}

.pwnz-title-meta {
  flex-shrink: 0;
  font-size: 0.6875rem !important;  /* 11px */
  line-height: 1.2;
  letter-spacing: 0.01em;
  gap: 0.35rem;
}

.pwnz-title-meta,
.pwnz-title-meta a,
.pwnz-title-meta .wp-block-post-author-name,
.pwnz-title-meta .wp-block-post-date,
.pwnz-title-meta .wp-block-post-terms,
.pwnz-title-meta .wp-block-post-terms a {
  font-size: inherit !important;
}

.pwnz-title-meta .wp-block-group,
.pwnz-title-meta > *,
.pwnz-title-meta .wp-block-paragraph {
  margin: 0 !important;
}

.pwnz-title-meta .wp-block-paragraph {
  font-size: inherit !important;
}

/* Мета по структуре, если класс не выводится в разметке */
.pwnz-title-row > .wp-block-group:last-child {
  flex-shrink: 0;
  font-size: 0.6875rem !important;
  line-height: 1.2;
  gap: 0.35rem;
}

.pwnz-title-row > .wp-block-group:last-child,
.pwnz-title-row > .wp-block-group:last-child a {
  font-size: inherit !important;
}

.pwnz-title-row > .wp-block-group:last-child > * {
  margin: 0 !important;
}

/* Мета в карточке поста по фактической разметке (как счётчик переходов на l2serv.su) */
.wp-block-query article .wp-block-group:has(.wp-block-post-date) {
  font-size: 0.6875rem !important;
  line-height: 1.2;
  gap: 0.35rem !important;
}

.wp-block-query article .wp-block-post-date,
.wp-block-query article .wp-block-post-author-name,
.wp-block-query article .wp-block-post-terms,
.wp-block-query article .wp-block-post-terms.taxonomy-category {
  font-size: 0.6875rem !important;
  margin: 0 !important;
  color: rgba(232, 232, 236, 0.65);
}

.wp-block-query article .wp-block-post-author-name a,
.wp-block-query article .wp-block-post-terms a {
  font-size: inherit !important;
  color: inherit;
}

.wp-block-query article .wp-block-post-date time {
  font-size: inherit !important;
}

/* Мета внизу: ширина 100%, три колонки — дата слева, рубрики центр, автор справа */
.pwnz-card-meta {
  width: 100% !important;
  display: grid !important;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  font-size: 0.6875rem !important;
  line-height: 1.2;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding-top: var(--wp--preset--spacing--20, 0.5rem) !important;
  margin-top: calc(var(--wp--preset--spacing--50, 1.25rem) / 2) !important;
}

.pwnz-card-meta .wp-block-post-terms,
.pwnz-card-meta .wp-block-post-terms a {
  font-weight: 400 !important;
}

.pwnz-card-meta .wp-block-post-date { justify-self: start; }
.pwnz-card-meta .wp-block-post-terms { justify-self: center; text-align: center; margin: 0 !important; }
.pwnz-card-meta .wp-block-post-author-name { justify-self: end; }

.pwnz-card-meta,
.pwnz-card-meta a,
.pwnz-card-meta .wp-block-post-author-name,
.pwnz-card-meta .wp-block-post-date,
.pwnz-card-meta .wp-block-post-date time,
.pwnz-card-meta .wp-block-post-terms,
.pwnz-card-meta .wp-block-post-terms a {
  font-size: 0.6875rem !important;
  color: rgba(232, 232, 236, 0.65);
}

/* Внутренние отступы карточки: контент не прилипает к рамке (фикс. значения, т.к. переменные могут не применяться) */
.pwnz-post-card,
.wp-block-query article > .wp-block-group.alignfull,
.wp-block-query article .wp-block-group.alignfull.has-global-padding {
  padding-top: 10px !important;
  padding-bottom: 10px !important;
  padding-left: 30px !important;
  padding-right: 30px !important;
  box-sizing: border-box !important;
}

/* Контент поста внутри карточки не должен выезжать за отступы (alignfull отключаем) */
.pwnz-post-card .wp-block-post-content.alignfull,
.wp-block-query article .wp-block-group.alignfull .wp-block-post-content.alignfull {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box !important;
}

/* Карточка поста — flex-колонка, чтобы мета уехала вниз */
.wp-block-query article .wp-block-group.alignfull.has-global-padding,
.wp-block-query article > .wp-block-group.alignfull {
  display: flex !important;
  flex-direction: column !important;
}

/* Блок с мета (прямой потомок карточки) — ширина 100%, в самый низ; три колонки */
.wp-block-query article .wp-block-group.alignfull > .wp-block-group:has(.wp-block-post-date) {
  width: 100% !important;
  order: 999 !important;
  margin-top: auto !important;
  padding-top: var(--wp--preset--spacing--20, 0.5rem) !important;
  padding-bottom: 0 !important;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  display: grid !important;
  grid-template-columns: 1fr auto 1fr !important;
  align-items: center !important;
  font-size: 0.6875rem !important;
  line-height: 1.2;
}

.wp-block-query article .wp-block-group:has(.wp-block-post-date) .wp-block-post-terms,
.wp-block-query article .wp-block-group:has(.wp-block-post-date) .wp-block-post-terms a {
  font-weight: 400 !important;
}

/* Дата слева, рубрики центр, автор справа; размер даты принудительно мелкий */
.wp-block-query article .wp-block-group.alignfull > .wp-block-group:has(.wp-block-post-date) .wp-block-post-date {
  order: 0 !important;
  margin: 0 !important;
  justify-self: start !important;
  font-size: 0.6875rem !important;
}

.wp-block-query article .wp-block-group.alignfull > .wp-block-group:has(.wp-block-post-date) .wp-block-post-date time {
  font-size: 0.6875rem !important;
}

.wp-block-query article .wp-block-group.alignfull > .wp-block-group:has(.wp-block-post-date) .wp-block-post-terms {
  order: 1 !important;
  margin: 0 !important;
  justify-self: center !important;
  text-align: center !important;
  font-size: 0.6875rem !important;
}

.wp-block-query article .wp-block-group.alignfull > .wp-block-group:has(.wp-block-post-date) .wp-block-post-author-name {
  order: 2 !important;
  margin: 0 !important;
  justify-self: end !important;
  font-size: 0.6875rem !important;
}

/* Отступ между контентом поста и полоской мета (больше, чем минимальный) */
.wp-block-query article .wp-block-group.alignfull .wp-block-post-content {
  margin-bottom: calc(var(--wp--preset--spacing--50, 1.25rem) / 2) !important;
}

/* Внутренние обёртки мета убираем (display: contents), чтобы в ряд были дата, рубрика, автор */
.wp-block-query article .wp-block-group.alignfull > .wp-block-group:has(.wp-block-post-date) .wp-block-group {
  display: contents !important;
}

.wp-block-query article .wp-block-group.alignfull > .wp-block-group:has(.wp-block-post-date) .wp-block-post-date { order: 0 !important; margin: 0 !important; }
.wp-block-query article .wp-block-group.alignfull > .wp-block-group:has(.wp-block-post-date) .wp-block-post-terms { order: 1 !important; margin: 0 !important; }
.wp-block-query article .wp-block-group.alignfull > .wp-block-group:has(.wp-block-post-date) .wp-block-post-author-name { order: 2 !important; margin: 0 !important; }

/* ==========================================================================
   L2 Телепорты (шорткод [l2_teleport])
   Стили только через переменные темы — при смене шрифтов/цветов/отступов
   в theme.json или родительской теме блок меняется автоматически.
   ========================================================================== */

.l2-teleport {
  max-width: var(--wp--custom--layout--content-size, 662px);
  margin-top: var(--wp--preset--spacing--40, 1.5rem);
  margin-bottom: var(--wp--preset--spacing--40, 1.5rem);
}

.l2-teleport-title {
  margin-bottom: var(--wp--preset--spacing--30, 0.75rem);
}

.l2-teleport-desc {
  color: var(--wp--preset--color--accent-4, currentColor);
  margin-bottom: var(--wp--preset--spacing--40, 1rem);
}

.l2-teleport-fields {
  margin-bottom: var(--wp--preset--spacing--40, 1rem);
}

.l2-teleport-field {
  margin-bottom: var(--wp--preset--spacing--30, 0.75rem);
}

.l2-teleport-field:last-child {
  margin-bottom: 0;
}

.l2-teleport-label {
  display: block;
  font-size: var(--wp--preset--font-size--small, 0.875rem);
  font-weight: 500;
  color: var(--wp--preset--color--accent-4, currentColor);
  margin-bottom: var(--wp--preset--spacing--20, 0.5rem);
}

/* Выпадашки в стиле l2serv.su: скругление, тень, кастомная стрелка, фокус-кольцо */
.l2-teleport-select {
  width: 100%;
  max-width: 100%;
  min-height: 2.25rem;
  font-family: inherit;
  font-size: var(--wp--preset--font-size--medium, 1rem);
  color: var(--wp--preset--color--contrast, #e8e8ec);
  background-color: var(--wp--preset--color--accent-5, rgba(255, 255, 255, 0.06));
  border: 1px solid var(--wp--preset--color--accent-6, rgba(255, 255, 255, 0.12));
  border-radius: 6px;
  padding: 0.5rem 2.25rem 0.5rem 0.75rem;
  box-sizing: border-box;
  appearance: none;
  cursor: pointer;
  outline: none;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.5rem center;
}

.l2-teleport-select:hover {
  border-color: var(--wp--preset--color--accent-4, rgba(255, 255, 255, 0.2));
  background-color: var(--wp--preset--color--accent-5, rgba(255, 255, 255, 0.08));
}

.l2-teleport-select:focus,
.l2-teleport-select:focus-visible {
  outline: none;
  border-color: #2dd4a2;
  box-shadow: 0 0 0 3px rgba(45, 212, 162, 0.25);
}

.l2-teleport-select option {
  background-color: var(--wp--preset--color--base, #1a1a2e);
  color: var(--wp--preset--color--contrast, #e8e8ec);
}

.l2-teleport-btn {
  display: inline-block;
  font-family: inherit;
  font-size: var(--wp--preset--font-size--medium, 1rem);
  font-weight: 500;
  color: #1a1a2e;
  background-color: #2dd4a2;
  border: none;
  border-radius: 6px;
  padding: 0.6em 1.2em;
  cursor: pointer;
}

.l2-teleport-btn:hover {
  filter: brightness(0.97);
}

.l2-teleport-result {
  margin-top: var(--wp--preset--spacing--40, 1rem);
}

.l2-teleport-path {
  margin-top: var(--wp--preset--spacing--30, 0.75rem);
}

.l2-teleport-step {
  margin: 0.35rem 0;
  padding-bottom: 0.35rem;
  border-bottom: 1px solid var(--wp--preset--color--accent-6, rgba(0,0,0,0.1));
  font-size: var(--wp--preset--font-size--medium, 1rem);
}

.l2-teleport-step-cost {
  display: inline-block;
  font-weight: 700;
  color: #2dd4a2;
  background: rgba(45, 212, 162, 0.14);
  padding: 0.15em 0.5em;
  border-radius: 4px;
  white-space: nowrap;
}

.l2-teleport-total {
  font-weight: 700;
  margin-top: var(--wp--preset--spacing--30, 0.75rem);
  color: #2dd4a2;
}

.l2-teleport-error {
  color: var(--wp--preset--color--contrast, #111);
  font-size: var(--wp--preset--font-size--small, 0.875rem);
}

/* ==========================================================================
   Карточки постов (как на l2serv.su: выделение цветом, тонкая рамка)
   Селектор по структуре: первый .wp-block-group внутри article в Query Loop
   ========================================================================== */

.pwnz-post-card,
.wp-block-query article > .wp-block-group,
.wp-block-query article .wp-block-group.alignfull {
  background-color: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 0.75rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.pwnz-post-card:hover,
.wp-block-query article > .wp-block-group:hover,
.wp-block-query article .wp-block-group.alignfull:hover {
  border-color: rgba(255, 255, 255, 0.2);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  transform: translateY(-2px);
}

/* Отступ между карточками в ленте */
.wp-block-query article + article {
  margin-top: var(--wp--preset--spacing--50, 1.25rem);
}

/* ==========================================================================
   Глобальные кнопки и поля формы (как у телепорта)
   ========================================================================== */

/* Кнопки: зелёные, как «Найти маршрут» */
button,
input[type="submit"],
input[type="button"],
input[type="reset"],
.wp-block-button__link {
  font-family: inherit;
  font-size: var(--wp--preset--font-size--medium, 1rem);
  font-weight: 500;
  color: #1a1a2e !important;
  background-color: #2dd4a2 !important;
  border: none;
  border-radius: 6px;
  padding: 0.6em 1.2em;
  cursor: pointer;
  transition: filter 0.15s ease;
}

button:hover,
input[type="submit"]:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
.wp-block-button__link:hover {
  filter: brightness(0.97);
}

/* Поля ввода: тёмные, светлый текст, зелёная обводка при фокусе */
textarea,
input[type="text"],
input[type="email"],
input[type="url"],
input[type="search"],
input[type="password"],
input[type="number"] {
  font-family: inherit;
  font-size: var(--wp--preset--font-size--medium, 1rem);
  color: #e8e8ec;
  background-color: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 6px;
  padding: 0.5rem 0.75rem;
  box-sizing: border-box;
  outline: none;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

textarea {
  min-height: 8em;
  resize: vertical;
}

textarea::placeholder,
input[type="text"]::placeholder,
input[type="email"]::placeholder,
input[type="url"]::placeholder,
input[type="search"]::placeholder,
input[type="password"]::placeholder {
  color: rgba(232, 232, 236, 0.6);
}

textarea:hover,
input[type="text"]:hover,
input[type="email"]:hover,
input[type="url"]:hover,
input[type="search"]:hover,
input[type="password"]:hover,
input[type="number"]:hover {
  border-color: rgba(255, 255, 255, 0.2);
  background-color: rgba(255, 255, 255, 0.08);
}

textarea:focus,
textarea:focus-visible,
input[type="text"]:focus,
input[type="text"]:focus-visible,
input[type="email"]:focus,
input[type="email"]:focus-visible,
input[type="url"]:focus,
input[type="url"]:focus-visible,
input[type="search"]:focus,
input[type="search"]:focus-visible,
input[type="password"]:focus,
input[type="password"]:focus-visible,
input[type="number"]:focus,
input[type="number"]:focus-visible {
  outline: none;
  border-color: #2dd4a2;
  box-shadow: 0 0 0 3px rgba(45, 212, 162, 0.25);
}

/* Лейблы форм (опционально — светлее для читаемости) */
.comment-form label,
.comment-form-comment label {
  display: block;
  font-size: var(--wp--preset--font-size--small, 0.875rem);
  font-weight: 500;
  color: rgba(232, 232, 236, 0.9);
  margin-bottom: 0.35rem;
}

