/*
 * Магазин Tony Kador — оформление по дизайн-системе (версия 1.1, 31.07.2026).
 * Грузится только на страницах магазина (см. tk-woo-lean.php).
 * Переменные берутся из темы, значения продублированы фолбэком на случай изменения имён.
 */

.woocommerce-page,
.woocommerce {
    --tks-paper:     var(--paper, #FBF8F2);
    --tks-paper-2:   var(--paper-2, #F6F1E8);
    --tks-card:      var(--card, #FFFDF9);
    --tks-ink:       var(--ink, #161616);
    --tks-heading:   #1E293B;
    --tks-muted:     var(--ink-2, #6F675D);
    --tks-green:     var(--accent, #223930);
    --tks-green-2:   var(--accent-2, #2F5043);
    --tks-gold:      var(--gold, #C79A4B);
    --tks-gold-deep: var(--gold-deep, #A87E33);
    --tks-line:      var(--line, #DDD3C4);
    --tks-line-soft: #E5DCCE;
    --tks-control:   #8A8175;
    --tks-on-dark:   #EAF0EC;
    --tks-success:   #2F6B4F;
    --tks-danger:    #B42318;
    --tks-r-card:    24px;
    --tks-r-compact: 16px;
    --tks-r-field:   14px;
    --tks-shadow:    0 8px 30px rgba(22, 22, 22, .05);
}

/* ---------- Общее ---------- */

.woocommerce-page .site-content,
.woocommerce .site-content { background: var(--tks-paper); }

.woocommerce-page h1, .woocommerce-page h2,
.woocommerce-page h3, .woocommerce-page h4,
.woocommerce h1, .woocommerce h2, .woocommerce h3 {
    font-family: Lora, Georgia, "Times New Roman", serif;
    color: var(--tks-heading);
    font-weight: 600;
}
.woocommerce-page h1.entry-title,
.woocommerce-page .woocommerce-products-header__title {
    font-size: clamp(36px, 5vw, 48px);
    line-height: 1.1;
    letter-spacing: -.02em;
    margin-bottom: 8px;
}
.woocommerce-page, .woocommerce {
    font-family: Inter, system-ui, -apple-system, "Segoe UI", sans-serif;
    color: var(--tks-ink);
}

/* ---------- Кнопки ---------- */

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.wc-block-components-button {
    background: var(--tks-green);
    color: #fff;
    font: 600 16px/1 Inter, system-ui, sans-serif;
    border: 1px solid var(--tks-green);
    border-radius: 999px;
    padding: 17px 26px;
    min-height: 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    transition: background .15s ease, border-color .15s ease;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover {
    background: var(--tks-green-2);
    border-color: var(--tks-green-2);
    color: #fff;
}
.woocommerce .button:focus-visible {
    outline: 3px solid var(--tks-gold-deep);
    outline-offset: 3px;
}
.woocommerce .button:disabled,
.woocommerce .button.disabled { opacity: .55; cursor: not-allowed; }

/* Главное коммерческое действие — золотое */
.woocommerce .single_add_to_cart_button,
.woocommerce .checkout-button,
.woocommerce #place_order {
    background: var(--tks-gold);
    border-color: var(--tks-gold);
    color: #2A1F08;
}
.woocommerce .single_add_to_cart_button:hover,
.woocommerce .checkout-button:hover,
.woocommerce #place_order:hover {
    background: var(--tks-gold-deep);
    border-color: var(--tks-gold-deep);
    color: #2A1F08;
}

/* Вторичное действие */
.woocommerce .button.wc-backward,
.woocommerce a.added_to_cart {
    background: transparent;
    color: var(--tks-ink);
    border: 1px solid var(--tks-control);
}
.woocommerce .button.wc-backward:hover,
.woocommerce a.added_to_cart:hover {
    background: var(--tks-paper-2);
    color: var(--tks-ink);
    border-color: var(--tks-control);
}

/* ---------- Каталог ---------- */

/* Селектор повторяет специфичность Astra (:not(.elementor-grid)) — иначе её
   жёсткие repeat(4, 1fr) выигрывают и карточки сжимаются до 180 px. */
.woocommerce ul.products,
.woocommerce ul.products:not(.elementor-grid),
.woocommerce-page ul.products:not(.elementor-grid) {
    display: grid;
    /* !important осознанно: Astra подключает свою сетку после нашей темы,
       и её repeat(4, 1fr) выигрывает по порядку при равной специфичности.
       Без этого карточки сжимаются до 173 px и кнопки переносятся. */
    grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)) !important;
    gap: 24px;
    margin: 32px 0 0;
    padding: 0;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { content: none; }

.woocommerce ul.products li.product {
    background: var(--tks-card);
    border: 1px solid var(--tks-line);
    border-radius: var(--tks-r-card);
    padding: 28px;
    margin: 0;
    width: auto;
    float: none;
    display: flex;
    flex-direction: column;
    gap: 12px;
    transition: box-shadow .18s ease, transform .18s ease;
}
.woocommerce ul.products li.product:hover {
    box-shadow: var(--tks-shadow);
    transform: translateY(-2px);
}
.woocommerce ul.products li.product a img {
    border-radius: var(--tks-r-compact);
    margin-bottom: 4px;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-family: Lora, Georgia, serif;
    font-size: 20px;
    line-height: 1.35;
    font-weight: 600;
    color: var(--tks-heading);
    padding: 0;
    margin: 0;
}
.woocommerce ul.products li.product .price {
    font-family: Inter, system-ui, sans-serif;
    font-size: 22px;
    font-weight: 600;
    color: var(--tks-ink);
    margin: 0;
}
.woocommerce ul.products li.product .button { margin-top: auto; align-self: flex-start; }

/* Пометка Kleinunternehmer и прочие подписи Germanized */
.woocommerce .wc-gzd-additional-info,
.woocommerce .wc-gzd-additional-info-loop,
.woocommerce p.wc-gzd-additional-info {
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--tks-muted);
    margin: 0;
}

.woocommerce .woocommerce-result-count { color: var(--tks-muted); font-size: 14.5px; }
.woocommerce .woocommerce-ordering { margin: 0 0 4px; }
.woocommerce .woocommerce-ordering select {
    border: 1px solid var(--tks-control);
    border-radius: var(--tks-r-field);
    padding: 10px 14px;
    background: #fff;
    font-family: inherit;
}

/* ---------- Страница товара ---------- */

.woocommerce div.product .product_title {
    font-size: clamp(30px, 4vw, 42px);
    line-height: 1.15;
    letter-spacing: -.015em;
    margin-bottom: 12px;
}
.woocommerce div.product p.price,
.woocommerce div.product span.price {
    font-size: 30px;
    font-weight: 600;
    color: var(--tks-ink);
    margin-bottom: 12px;
}
.woocommerce div.product .woocommerce-product-details__short-description {
    font-size: 19px;
    line-height: 1.55;
    color: var(--tks-ink);
    max-width: 62ch;
    margin-bottom: 20px;
}
.woocommerce div.product form.cart { margin: 24px 0 32px; }
.woocommerce div.product form.cart .quantity input {
    border: 1px solid var(--tks-control);
    border-radius: var(--tks-r-field);
    padding: 14px 10px;
    min-height: 52px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs {
    padding: 0;
    margin: 0 0 24px;
    border-bottom: 1px solid var(--tks-line);
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before { border: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
    background: transparent;
    border: 0;
    border-radius: 0;
    margin: 0 24px 0 0;
    padding: 0 0 12px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { content: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
    font: 600 15px/1.4 Inter, system-ui, sans-serif;
    color: var(--tks-muted);
    padding: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--tks-ink); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
    box-shadow: inset 0 -2px 0 0 var(--tks-gold);
}
.woocommerce div.product .woocommerce-tabs .panel {
    font-size: 16px;
    line-height: 1.6;
    max-width: 72ch;
}
.woocommerce div.product .woocommerce-tabs .panel h2 { font-size: 26px; margin-bottom: 12px; }
.woocommerce .product_meta { font-size: 14px; color: var(--tks-muted); }

/* ---------- Корзина, чекаут, кабинет: общие поверхности ---------- */

.woocommerce table.shop_table {
    border: 1px solid var(--tks-line);
    border-radius: var(--tks-r-card);
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
    background: var(--tks-card);
}
.woocommerce table.shop_table th {
    background: var(--tks-paper-2);
    font: 600 13px/1.5 Inter, system-ui, sans-serif;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--tks-muted);
    padding: 16px 20px;
    border: 0;
}
.woocommerce table.shop_table td {
    padding: 18px 20px;
    border: 0;
    border-top: 1px solid var(--tks-line-soft);
    vertical-align: top;
}
.woocommerce table.shop_table tfoot th,
.woocommerce table.shop_table tfoot td {
    background: transparent;
    border-top: 1px solid var(--tks-line-soft);
    text-transform: none;
    font-size: 16px;
    letter-spacing: 0;
    color: var(--tks-ink);
}
.woocommerce table.shop_table .order-total th,
.woocommerce table.shop_table .order-total td { font-weight: 700; font-size: 18px; }

.woocommerce .cart_totals h2,
.woocommerce-checkout h3,
.woocommerce-account h2,
.woocommerce-order-details__title,
.woocommerce-column__title { font-size: 24px; margin-bottom: 16px; }

/* ---------- Поля форм ---------- */

.woocommerce form .form-row label { font-size: 14.5px; color: var(--tks-muted); margin-bottom: 6px; }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .select2-container .select2-selection--single {
    border: 1px solid var(--tks-control);
    border-radius: var(--tks-r-field);
    padding: 14px 16px;
    min-height: 52px;
    font: 400 16px/1.4 Inter, system-ui, sans-serif;
    background: #fff;
    color: var(--tks-ink);
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
    outline: 3px solid var(--tks-gold-deep);
    outline-offset: 2px;
    border-color: var(--tks-control);
}
.woocommerce form .form-row.woocommerce-invalid input.input-text { border-color: var(--tks-danger); }

/* ---------- Юридические чекбоксы Germanized ---------- */

.woocommerce-checkout .wc-gzd-checkbox-placeholder,
.woocommerce-checkout .legal-checkbox,
.woocommerce form.checkout .wc-gzd-checkbox-placeholder {
    background: var(--tks-paper-2);
    border: 1px solid var(--tks-line);
    border-radius: var(--tks-r-compact);
    padding: 16px 18px;
    margin-bottom: 12px;
}
.woocommerce-checkout .wc-gzd-checkbox-placeholder label,
.woocommerce-checkout .legal-checkbox label {
    font-size: 14.5px;
    line-height: 1.55;
    color: var(--tks-ink);
}
.woocommerce-checkout .wc-gzd-checkbox-placeholder input[type="checkbox"],
.woocommerce-checkout .legal-checkbox input[type="checkbox"] {
    width: 20px; height: 20px; margin-right: 10px; accent-color: var(--tks-green);
}
.woocommerce-checkout .wc-gzd-checkbox-placeholder a { text-decoration: underline; color: var(--tks-green); }

/* ---------- Способы оплаты ---------- */

.woocommerce-checkout #payment { background: transparent; border-radius: 0; }
.woocommerce-checkout #payment ul.payment_methods {
    border: 0;
    padding: 0;
    margin: 0 0 20px;
    display: grid;
    gap: 12px;
}
.woocommerce-checkout #payment ul.payment_methods li {
    background: var(--tks-card);
    border: 1px solid var(--tks-line);
    border-radius: var(--tks-r-compact);
    padding: 16px 18px;
    list-style: none;
}
.woocommerce-checkout #payment ul.payment_methods li label {
    font-weight: 600; font-size: 16px; color: var(--tks-ink);
}
.woocommerce-checkout #payment div.payment_box {
    background: var(--tks-paper-2);
    border-radius: 12px;
    margin: 12px 0 0;
    font-size: 14.5px;
    line-height: 1.55;
    color: var(--tks-muted);
}
.woocommerce-checkout #payment div.payment_box::before { display: none; }

/* ---------- Уведомления ---------- */

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
    border-radius: var(--tks-r-compact);
    border: 1px solid var(--tks-line);
    border-top-width: 1px;
    background: var(--tks-card);
    color: var(--tks-ink);
    font-size: 15.5px;
    line-height: 1.55;
    padding: 16px 18px 16px 52px;
}
.woocommerce-message { border-left: 4px solid var(--tks-success); }
.woocommerce-info    { border-left: 4px solid var(--tks-gold); }
.woocommerce-error   { border-left: 4px solid var(--tks-danger); }
.woocommerce-message::before { color: var(--tks-success); }
.woocommerce-info::before    { color: var(--tks-gold-deep); }
.woocommerce-error::before   { color: var(--tks-danger); }

/* ---------- Страница «спасибо» ---------- */

.woocommerce .woocommerce-order > p.woocommerce-notice--success {
    font-family: Lora, Georgia, serif;
    font-size: 26px;
    line-height: 1.3;
    color: var(--tks-heading);
    background: transparent;
    border: 0;
    padding: 0;
    margin-bottom: 20px;
}
.woocommerce .woocommerce-order > p.woocommerce-notice--success::before { display: none; }
.woocommerce ul.woocommerce-order-overview {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 32px;
    background: var(--tks-paper-2);
    border: 1px solid var(--tks-line);
    border-radius: var(--tks-r-compact);
    padding: 20px 22px;
    margin: 0 0 8px;
}
.woocommerce ul.woocommerce-order-overview li {
    border: 0;
    float: none;
    margin: 0;
    padding: 0;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--tks-muted);
}
.woocommerce ul.woocommerce-order-overview li strong {
    display: block;
    font-size: 18px;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
    color: var(--tks-ink);
    margin-top: 4px;
}

/* ---------- Личный кабинет ---------- */

.woocommerce-account .woocommerce-MyAccount-navigation ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 4px;
}
.woocommerce-account .woocommerce-MyAccount-navigation li a {
    display: block;
    padding: 12px 16px;
    border-radius: 12px;
    color: var(--tks-ink);
    text-decoration: none;
    font-weight: 500;
}
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover { background: var(--tks-paper-2); }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
    background: var(--tks-green);
    color: #fff;
}

/* ---------- Мобильное ---------- */

@media (max-width: 600px) {
    .woocommerce ul.products { grid-template-columns: 1fr; gap: 16px; }
    .woocommerce ul.products li.product { padding: 22px; border-radius: 20px; }
    .woocommerce table.shop_table th,
    .woocommerce table.shop_table td { padding: 14px 16px; }
    .woocommerce ul.woocommerce-order-overview { gap: 12px 20px; padding: 18px; }
    .woocommerce a.button,
    .woocommerce button.button,
    .woocommerce input.button { width: 100%; }
    .woocommerce ul.products li.product .button { align-self: stretch; }
}

/* ---------- Карточка каталога: порядок и вид без картинки ---------- */
/*
 * У товаров пока нет изображений, и Woo подставляет серую заглушку — она
 * выглядит как ошибка. Прячем её и строим карточку текстом: метка, название,
 * цена, налоговая пометка, действие. Когда появятся настоящие обложки,
 * достаточно будет убрать этот блок.
 */
/* ВАЖНО: пометка «Umsatzsteuer wird nicht erhoben… § 19 UStG» лежит ВНУТРИ блока
   с картинкой. Скрывать блок целиком нельзя — это обязательный реквизит рядом с ценой
   (PAngV). Поэтому прячем только саму заглушку и всплывающую кнопку Astra, а блок
   оставляем и переносим под цену. Когда появятся настоящие обложки, правило
   с :has() перестанет срабатывать само и картинка вернётся на своё место. */
.woocommerce ul.products li.product img.woocommerce-placeholder { display: none; }
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap:has(img.woocommerce-placeholder) > a { display: none; }
.woocommerce ul.products li.product:has(img.woocommerce-placeholder) .astra-shop-thumbnail-wrap { order: 3; }

.woocommerce ul.products li.product .astra-shop-thumbnail-wrap { order: 1; }
.woocommerce ul.products li.product .astra-shop-summary-wrap   { order: 2; display: flex; flex-direction: column; gap: 8px; }
.woocommerce ul.products li.product .wc-gzd-additional-info    { order: 3; }
.woocommerce ul.products li.product > .button,
.woocommerce ul.products li.product > .added_to_cart           { order: 4; margin-top: 16px; }

/* Метка категории — надпись над названием */
.woocommerce ul.products li.product .ast-woo-product-category {
    font: 600 12px/1.6 Inter, system-ui, sans-serif;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--tks-gold-deep);
}
.woocommerce ul.products li.product .ast-loop-product__link { text-decoration: none; }

/* Тонкая золотая черта вместо обложки — карточка выглядит задуманной, а не пустой */
.woocommerce ul.products li.product .astra-shop-summary-wrap::before {
    content: "";
    display: block;
    width: 44px;
    height: 3px;
    border-radius: 999px;
    background: var(--tks-gold);
    margin-bottom: 4px;
}

/* Налоговая пометка на карточке — мелко и спокойно, но читаемо */
.woocommerce ul.products li.product .wc-gzd-additional-info.small-business-info {
    font-size: 13px;
    line-height: 1.45;
    color: var(--tks-muted);
    padding-top: 12px;
    border-top: 1px solid var(--tks-line-soft);
    margin: 4px 0 0;
}

/* Иконка-корзина Astra поверх карточки без картинки не нужна */
.woocommerce ul.products li.product .ast-on-card-button { display: none; }

/* ---------- Страница товара: без обложки, золотое действие ---------- */

/* Заглушка изображения на странице товара — такой же мусор, как в каталоге */
.woocommerce div.product .woocommerce-product-gallery:has(img.woocommerce-placeholder),
.woocommerce div.product img.woocommerce-placeholder,
.woocommerce div.product .astra-shop-thumbnail-wrap:has(img.woocommerce-placeholder) { display: none; }
.woocommerce div.product:has(img.woocommerce-placeholder) .summary { float: none; width: 100%; }

/* Астра перебивает цвет главного действия — поднимаем вес селектора */
.woocommerce div.product form.cart button.single_add_to_cart_button,
.woocommerce div.product form.cart button.single_add_to_cart_button.alt,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
.woocommerce-checkout #payment button#place_order {
    background: var(--tks-gold);
    border-color: var(--tks-gold);
    color: #2A1F08;
}
.woocommerce div.product form.cart button.single_add_to_cart_button:hover,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce-checkout #payment button#place_order:hover {
    background: var(--tks-gold-deep);
    border-color: var(--tks-gold-deep);
    color: #2A1F08;
}

/* Активная вкладка — золотая, а не тема по умолчанию */
.woocommerce div.product .woocommerce-tabs ul.tabs li.active,
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
    border-bottom-color: var(--tks-gold);
    box-shadow: inset 0 -3px 0 0 var(--tks-gold);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a { border: 0; }

/* Блок «Похожие» */
.woocommerce .related > h2,
.woocommerce .upsells > h2 {
    font-size: 26px;
    margin: 48px 0 20px;
}

/* Хлебные крошки и мета — тише */
.woocommerce .woocommerce-breadcrumb { font-size: 14px; color: var(--tks-muted); margin-bottom: 20px; }
.woocommerce .woocommerce-breadcrumb a { color: var(--tks-muted); }

/* WooCommerce сам помечает галерею без картинок — надёжнее, чем ловить заглушку.
   Появится настоящая обложка — класс исчезнет и галерея вернётся сама. */
.woocommerce div.product .woocommerce-product-gallery--without-images { display: none; }
.woocommerce div.product:has(.woocommerce-product-gallery--without-images) .summary {
    float: none;
    width: 100%;
    margin: 0;
}

/* Одна вкладка — панель вкладок не нужна, она только шумит */
.woocommerce div.product .woocommerce-tabs ul.tabs:has(li:only-child) { display: none; }
.woocommerce div.product .woocommerce-tabs .panel { margin-top: 8px; }
.woocommerce div.product .woocommerce-tabs .panel > h2:first-child {
    font-size: 26px;
    margin: 0 0 12px;
}

/* ---------- Корзина ---------- */

/* Кнопка внутри уведомления приходит с классом wp-element-button и красится темой в синий */
.woocommerce .woocommerce-message a.button,
.woocommerce .woocommerce-info a.button,
.woocommerce .woocommerce-error a.button,
.woocommerce-notices-wrapper a.button,
.woocommerce a.button.wp-element-button,
.woocommerce button.wp-element-button {
    background: var(--tks-green);
    border-color: var(--tks-green);
    color: #fff;
}
.woocommerce .woocommerce-message a.button:hover,
.woocommerce-notices-wrapper a.button:hover,
.woocommerce a.button.wp-element-button:hover {
    background: var(--tks-green-2);
    border-color: var(--tks-green-2);
    color: #fff;
}

/* Заглушка вместо обложки в строке корзины */
.woocommerce-cart .product-thumbnail img.woocommerce-placeholder,
.woocommerce-checkout .product-thumbnail img.woocommerce-placeholder { display: none; }
.woocommerce-cart table.cart td.product-thumbnail:has(img.woocommerce-placeholder),
.woocommerce-cart table.cart th.product-thumbnail { display: none; }

/* Все товары цифровые и продаются по одной штуке — колонка количества пуста */
.woocommerce-cart table.cart th.product-quantity,
.woocommerce-cart table.cart td.product-quantity { display: none; }

.woocommerce-cart table.cart td.product-name a { color: var(--tks-ink); text-decoration: none; font-weight: 600; }
.woocommerce-cart table.cart td.product-name a:hover { text-decoration: underline; }
.woocommerce-cart table.cart .coupon input.input-text {
    border: 1px solid var(--tks-control);
    border-radius: var(--tks-r-field);
    padding: 14px 16px;
    min-height: 52px;
}
.woocommerce-cart .cart_totals h2 { font-size: 24px; }
.woocommerce-cart .wc-proceed-to-checkout { padding-top: 8px; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { width: 100%; }

/* Неактивная кнопка «Обновить корзину» — тише, а не грязно-зелёная */
.woocommerce-cart table.cart button[name="update_cart"]:disabled,
.woocommerce-cart table.cart button[name="update_cart"][disabled] {
    background: transparent;
    color: var(--tks-muted);
    border: 1px solid var(--tks-line);
    opacity: 1;
}

/* ---------- Шапка магазина: кто продаёт и что здесь есть ---------- */

.tk-shopintro {
    background: var(--tks-card);
    border: 1px solid var(--tks-line);
    border-radius: var(--tks-r-card);
    padding: 28px 30px;
    margin: 24px 0 8px;
}
.tk-shopintro__head {
    display: flex;
    align-items: center;
    gap: 18px;
    margin-bottom: 18px;
}
.tk-shopintro__photo {
    width: 96px;
    height: 96px;
    border-radius: 50%;
    object-fit: cover;
    flex: 0 0 96px;
    /* тонкое золотое кольцо: подпись автора, а не рамка ради рамки */
    box-shadow: 0 0 0 2px var(--tks-card), 0 0 0 4px var(--tks-gold);
}
.tk-shopintro__eyebrow {
    font: 600 12px/1.6 Inter, system-ui, sans-serif;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--tks-gold-deep);
    margin-bottom: 2px;
}
.tk-shopintro__name {
    font-family: Lora, Georgia, serif;
    font-size: clamp(24px, 3.4vw, 32px);
    line-height: 1.2;
    font-weight: 600;
    color: var(--tks-heading);
    margin: 0;
}
.tk-shopintro__text {
    font-size: 16.5px;
    line-height: 1.62;
    color: var(--tks-ink);
    max-width: 68ch;
}
.tk-shopintro__text p { margin: 0 0 12px; }
.tk-shopintro__text p:last-child { margin-bottom: 0; }
.tk-shopintro__text strong { font-weight: 600; }

.tk-shopintro__facts {
    list-style: none;
    margin: 22px 0 0;
    padding: 18px 0 0;
    border-top: 1px solid var(--tks-line-soft);
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 14px 28px;
}
.tk-shopintro__facts li {
    margin: 0;
    font-size: 14.5px;
    line-height: 1.5;
    color: var(--tks-ink);
}
.tk-shopintro__facts span {
    display: block;
    font: 600 12px/1.6 Inter, system-ui, sans-serif;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--tks-muted);
    margin-bottom: 2px;
}
.tk-shopintro__facts a { color: var(--tks-green); text-decoration: underline; }

/* Заголовок каталога рядом с этим блоком звучит казённо — прячем «Показаны все» */
.woocommerce .woocommerce-result-count { display: none; }

@media (max-width: 600px) {
    .tk-shopintro { padding: 22px 18px; border-radius: 20px; }
    .tk-shopintro__head { gap: 14px; margin-bottom: 14px; }
    .tk-shopintro__photo { width: 72px; height: 72px; flex-basis: 72px; }
    .tk-shopintro__text { font-size: 16px; }
    .tk-shopintro__facts { gap: 12px; }
}

/* Сортировка при пяти товарах — лишний элемент управления, который ничего не решает.
   Вернуть просто: удалить это правило, когда товаров станет много. */
.woocommerce .woocommerce-ordering { display: none; }

/* ---------- Страница товара: полное описание ---------- */

.woocommerce div.product .woocommerce-product-details__short-description,
.woocommerce div.product .tk-lead {
    font-size: 19px;
    line-height: 1.55;
    color: var(--tks-ink);
    max-width: 62ch;
    margin: 0 0 20px;
}

.tk-prod { max-width: 820px; margin: 8px 0 0; }
.tk-prod__sec { padding: 28px 0; border-top: 1px solid var(--tks-line-soft); }
.tk-prod__sec:first-child { border-top: 0; padding-top: 8px; }
.tk-prod__sec > h2 {
    font-family: Lora, Georgia, serif;
    font-size: 26px;
    line-height: 1.3;
    font-weight: 600;
    color: var(--tks-heading);
    margin: 0 0 14px;
}
.tk-prod__rich { font-size: 16.5px; line-height: 1.62; }
.tk-prod__rich p { margin: 0 0 12px; }
.tk-prod__rich h3 { font-size: 19px; margin: 20px 0 8px; font-family: Lora, Georgia, serif; }
.tk-prod__rich ul { margin: 0 0 12px; padding-left: 20px; }

.tk-prod__list { list-style: none; margin: 0; padding: 0; }
.tk-prod__list li {
    position: relative;
    padding: 0 0 0 26px;
    margin: 0 0 10px;
    font-size: 16.5px;
    line-height: 1.6;
}
.tk-prod__list li::before {
    content: "";
    position: absolute;
    left: 4px; top: 11px;
    width: 7px; height: 7px;
    border-radius: 50%;
    background: var(--tks-gold);
}

/* Кому подходит и кому нет — рядом, чтобы честность читалась сразу */
.tk-prod__cols {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 20px;
}
.tk-fit {
    background: var(--tks-card);
    border: 1px solid var(--tks-line);
    border-radius: var(--tks-r-compact);
    padding: 20px 22px;
}
.tk-fit h3 {
    font: 600 12px/1.6 Inter, system-ui, sans-serif;
    letter-spacing: .06em;
    text-transform: uppercase;
    margin: 0 0 10px;
}
.tk-fit--yes h3 { color: var(--tks-success); }
.tk-fit--no h3  { color: var(--tks-muted); }
.tk-fit ul { list-style: none; margin: 0; padding: 0; }
.tk-fit li { font-size: 15.5px; line-height: 1.55; margin: 0 0 8px; }
.tk-fit--no li { color: var(--tks-muted); }

/* Характеристики */
.tk-spec { margin: 0; }
.tk-spec__row {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 20px;
    padding: 12px 0;
    border-top: 1px solid var(--tks-line-soft);
}
.tk-spec__row:first-child { border-top: 0; }
.tk-spec dt { flex: 0 0 220px; color: var(--tks-muted); font-size: 15px; margin: 0; }
.tk-spec dd { margin: 0; flex: 1 1 240px; font-size: 15.5px; }

/* Частые вопросы */
.tk-faq__item {
    border-top: 1px solid var(--tks-line-soft);
    padding: 4px 0;
}
.tk-faq__item:first-child { border-top: 0; }
.tk-faq__item summary {
    cursor: pointer;
    list-style: none;
    padding: 14px 32px 14px 0;
    font-size: 16.5px;
    font-weight: 600;
    color: var(--tks-ink);
    position: relative;
}
.tk-faq__item summary::-webkit-details-marker { display: none; }
.tk-faq__item summary::after {
    content: "+";
    position: absolute;
    right: 4px; top: 12px;
    font-size: 20px;
    font-weight: 400;
    color: var(--tks-gold-deep);
}
.tk-faq__item[open] summary::after { content: "\2212"; }
.tk-faq__a { font-size: 16px; line-height: 1.6; padding: 0 0 16px; max-width: 68ch; }
.tk-faq__a p { margin: 0 0 10px; }

/* Условия — тише остального, но не спрятаны */
.tk-prod__legal .tk-prod__list li { font-size: 15px; color: var(--tks-muted); }
.tk-prod__legal .tk-prod__list li::before { background: var(--tks-line); }
.tk-prod__legal a { color: var(--tks-green); text-decoration: underline; }

/* Кнопки покупки на странице товара */
.tk-buybox { margin: 22px 0 8px; }
.tk-buybox__pay {
    display: inline-flex !important;
    background: var(--tks-gold) !important;
    border-color: var(--tks-gold) !important;
    color: #2A1F08 !important;
    font-size: 17px !important;
    padding: 18px 30px !important;
}
.tk-buybox__pay:hover { background: var(--tks-gold-deep) !important; border-color: var(--tks-gold-deep) !important; }
.tk-buybox__hint { font-size: 13.5px; line-height: 1.5; color: var(--tks-muted); margin: 10px 0 0; max-width: 46ch; }
.tk-buybox__alt { margin: 12px 0 0; font-size: 15px; }
.tk-buybox__alt a { color: var(--tks-green); text-decoration: underline; }

/* Якорь-ссылка на программу записи, сразу под коротким описанием */
.tk-program__jumplink { margin: 10px 0 18px; font-size: 15px; }
.tk-program__jumplink a { color: var(--tks-green); text-decoration: underline; font-weight: 500; }

/* Пометка «скоро» */
.tk-soon {
    display: inline-flex;
    align-items: center;
    padding: 11px 18px;
    border-radius: 999px;
    border: 1px dashed var(--tks-control);
    color: var(--tks-muted);
    font: 600 14px/1 Inter, system-ui, sans-serif;
}
.tk-soon--single { display: block; border: 0; padding: 0; font-weight: 400; font-size: 16px; margin: 16px 0; }
.tk-soon--single a { color: var(--tks-green); text-decoration: underline; }
.tk-card--soon { opacity: .72; }
.tk-card--soon:hover { opacity: 1; }

/* Цена подписки */
.tk-price-from { font-size: .7em; color: var(--tks-muted); font-weight: 400; }
.tk-price-suffix { font-size: .55em; color: var(--tks-muted); font-weight: 400; }

/* Карточка клуба — главный продукт витрины */
.woocommerce ul.products li.product.tk-card--club {
    background: var(--tks-green);
    border-color: var(--tks-green);
}
/* ВАЖНО: только внутри каталога. Класс tk-card--club вешается и на странице товара,
   и без этого ограничения белый текст уезжал на белый фон — цена пропадала. */
.woocommerce ul.products li.product.tk-card--club .woocommerce-loop-product__title,
.woocommerce ul.products li.product.tk-card--club .price,
.woocommerce ul.products li.product.tk-card--club .price .amount,
.woocommerce ul.products li.product.tk-card--club .tk-price-from,
.woocommerce ul.products li.product.tk-card--club .tk-price-suffix { color: #fff !important; }
.woocommerce ul.products li.product.tk-card--club .ast-woo-product-category { color: var(--tks-gold) !important; }
.woocommerce ul.products li.product.tk-card--club .astra-shop-summary-wrap::before { background: var(--tks-gold); }
.woocommerce ul.products li.product.tk-card--club .wc-gzd-additional-info {
    color: #C9D6CE !important; border-top-color: rgba(255,255,255,.18) !important; }
.woocommerce ul.products li.product.tk-card--club .button {
    background: var(--tks-gold) !important;
    border-color: var(--tks-gold) !important;
    color: #2A1F08 !important;
}
.woocommerce ul.products li.product.tk-card--club .button:hover {
    background: var(--tks-gold-deep) !important; border-color: var(--tks-gold-deep) !important; }

@media (max-width: 600px) {
    .tk-prod__sec { padding: 22px 0; }
    .tk-prod__sec > h2 { font-size: 23px; }
    .tk-spec dt { flex: 1 1 100%; }
}

/* ---------- Тарифы товара ---------- */
.tk-tariffs { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; margin: 20px 0 10px; }
.tk-tariff {
    display: block; text-decoration: none;
    background: var(--tks-card); border: 1px solid var(--tks-line);
    border-radius: var(--tks-r-compact); padding: 18px 20px;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.tk-tariff:hover { border-color: var(--tks-gold); box-shadow: var(--tks-shadow); }
.tk-tariff--main { background: var(--tks-green); border-color: var(--tks-green); }
.tk-tariff__title { display: block; font: 600 12px/1.6 Inter, system-ui, sans-serif;
    letter-spacing: .06em; text-transform: uppercase; color: var(--tks-muted); margin-bottom: 4px; }
.tk-tariff--main .tk-tariff__title { color: var(--tks-gold); }
.tk-tariff__price { display: block; font-size: 24px; font-weight: 700; color: var(--tks-ink); line-height: 1.2; }
.tk-tariff--main .tk-tariff__price { color: #fff; }
.tk-tariff__note { display: block; font-size: 14px; color: var(--tks-muted); margin-top: 4px; }
.tk-tariff--main .tk-tariff__note { color: #C9D6CE; }
.tk-tariffs__hint { font-size: 14px; color: var(--tks-muted); margin: 4px 0 0; }

/* Если у товара заданы тарифы, штатная кнопка покупки дублирует их.
   Снять через remove_action не вышло — тема подключает шаблон по-своему,
   поэтому прячем разметкой: правило само перестанет работать,
   когда тарифы у товара уберут. */
.woocommerce div.product:has(.tk-tariffs) form.cart { display: none; }

/* --- Ширина корзины и чекаута ---------------------------------------
   Тема держит .entry-content в 760px — это верно для текста статьи,
   но чекаут двухколоночный, и в 760px правая колонка сжимается так,
   что заголовок «Ваш заказ» вставал столбиком по одной букве.
   Заголовку отдельно задаём ширину: WooCommerce выносит его ИЗ
   #order_review, и без ширины он схлопывается по содержимому. */
@media (min-width: 993px) {
    .woocommerce-checkout .entry-content,
    .woocommerce-cart .entry-content {
        max-width: 1100px;
    }
    /* У формы ровно два блока — реквизиты и заказ. Grid держит их рядом
       надёжнее, чем float: не нужны ни clear, ни ширины в процентах,
       и колонки выравниваются по верху. */
    .woocommerce-checkout form.checkout {
        display: grid;
        grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
        gap: 0 44px;
        align-items: start;
    }
    .woocommerce-checkout form.checkout > #customer_details,
    .woocommerce-checkout form.checkout > #order_review {
        width: auto;
        float: none;
    }
}
/* Заголовок «Ваш заказ»: Germanized переносит его внутрь блока заказа и вешает
   класс wc-gzd-heading-moved вместе с float — заголовок схлопывался по
   содержимому, и текст вставал столбиком по букве. Равняем его на соседний
   заголовок «Zahlungsart auswählen». */
.woocommerce-checkout #order_review_heading,
.woocommerce-checkout h3.wc-gzd-heading-moved {
    float: none;
    width: auto;
    max-width: none;
    clear: both;
    display: block;
}

/* Миниатюра товара в корзине и в списке заказа: обложка у нас — полоса 3:1,
   в квадратной ячейке она превращалась в нечитаемую крошку. */
.woocommerce-cart table.cart img,
.woocommerce-checkout-review-order-table img {
    width: 96px;
    max-width: none;
    height: auto;
    border-radius: 8px;
}

/* ==================================================================
   КОРЗИНА
   Была голая таблица во всю ширину. Делаем как в больших магазинах:
   слева список покупок карточками, справа — липкий блок с итогом
   и выбором способа оплаты.
   ================================================================== */

@media (min-width: 993px) {
    .woocommerce-cart .woocommerce {
        display: grid;
        grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
        gap: 32px;
        align-items: start;
    }
    .woocommerce-cart .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
    .woocommerce-cart .cart-collaterals { position: sticky; top: 96px; }
}

.woocommerce-cart .woocommerce-cart-form {
    background: var(--tks-card, #FFFDF9);
    border: 1px solid var(--tks-line, #DDD3C4);
    border-radius: 20px;
    padding: 8px 24px 24px;
}

/* Таблицу превращаем в список карточек: строка-товар вместо ячеек. */
.woocommerce-cart table.cart,
.woocommerce-cart table.cart tbody,
.woocommerce-cart table.cart tr,
.woocommerce-cart table.cart td,
.woocommerce-cart table.cart th {
    display: block;
    border: 0;
    background: transparent;
    padding: 0;
}
.woocommerce-cart table.cart thead { display: none; }

.woocommerce-cart table.cart tr.woocommerce-cart-form__cart-item {
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr) auto;
    grid-template-areas:
        "img name price"
        "img qty  remove";
    gap: 6px 18px;
    align-items: center;
    padding: 22px 0;
    border-top: 1px solid var(--tks-line-soft, #E5DCCE);
}
.woocommerce-cart table.cart tr.woocommerce-cart-form__cart-item:first-of-type { border-top: 0; }

.woocommerce-cart table.cart td.product-thumbnail { grid-area: img; }
.woocommerce-cart table.cart td.product-name      { grid-area: name; }
.woocommerce-cart table.cart td.product-subtotal  { grid-area: price; text-align: right; }
.woocommerce-cart table.cart td.product-quantity  { grid-area: qty; }
.woocommerce-cart table.cart td.product-remove    { grid-area: remove; text-align: right; }
.woocommerce-cart table.cart td.product-price     { display: none; }

.woocommerce-cart table.cart td.product-thumbnail img {
    width: 112px;
    height: auto;
    border-radius: 10px;
    display: block;
}
.woocommerce-cart table.cart td.product-name a {
    font-family: var(--tks-font-display, "Lora", Georgia, serif);
    font-size: 18px;
    line-height: 1.35;
    color: var(--tks-ink, #161616);
    text-decoration: none;
}
.woocommerce-cart table.cart td.product-name a:hover { color: var(--tks-green, #223930); }
.woocommerce-cart table.cart td.product-subtotal .amount {
    font-size: 19px;
    font-weight: 700;
    color: var(--tks-ink, #161616);
}
.woocommerce-cart table.cart td.product-remove a.remove {
    width: auto;
    height: auto;
    font-size: 14px;
    color: var(--tks-muted, #6F675D) !important;
    background: none !important;
    text-decoration: underline;
}
.woocommerce-cart table.cart td.product-remove a.remove::before { content: "убрать"; }
.woocommerce-cart table.cart td.product-remove a.remove { font-size: 0; }
.woocommerce-cart table.cart td.product-remove a.remove::before { font-size: 14px; }
.woocommerce-cart table.cart td.product-remove a.remove:hover { color: var(--tks-danger, #B42318) !important; }

/* Строка с купоном и «обновить корзину» — служебная, не главная. */
.woocommerce-cart table.cart tr:last-child td.actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    padding-top: 20px;
    border-top: 1px solid var(--tks-line-soft, #E5DCCE);
}
.woocommerce-cart table.cart td.actions .coupon { display: flex; gap: 8px; flex: 1 1 260px; }
.woocommerce-cart table.cart td.actions .coupon input {
    flex: 1 1 auto;
    min-width: 0;
    height: 48px;
    border-radius: 12px;
}
.woocommerce-cart table.cart td.actions .button {
    height: 48px;
    border-radius: 12px;
    white-space: nowrap;
}

/* Блок итога справа */
.woocommerce-cart .cart_totals {
    background: var(--tks-card, #FFFDF9);
    border: 1px solid var(--tks-line, #DDD3C4);
    border-radius: 20px;
    padding: 24px;
}
.woocommerce-cart .cart_totals h2 {
    font-size: 20px;
    margin: 0 0 16px;
}
.woocommerce-cart .cart_totals table { margin: 0 0 4px; border: 0; }
.woocommerce-cart .cart_totals table th,
.woocommerce-cart .cart_totals table td {
    border: 0;
    padding: 10px 0;
    background: transparent;
}
.woocommerce-cart .cart_totals tr.order-total th,
.woocommerce-cart .cart_totals tr.order-total td {
    border-top: 1px solid var(--tks-line-soft, #E5DCCE);
    font-size: 20px;
}
.woocommerce-cart .cart_totals tr.order-total .amount { font-weight: 700; }
.woocommerce-cart .cross-sells { display: none; }

/* Кнопки выбора способа оплаты */
.tk-pay {
    display: block;
    width: 100%;
    box-sizing: border-box;
    text-align: center;
    padding: 15px 20px;
    border-radius: 999px;
    font-size: 17px;
    font-weight: 600;
    text-decoration: none;
    transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.tk-pay--main {
    background: var(--tks-gold, #C79A4B);
    border: 1px solid var(--tks-gold, #C79A4B);
    color: #2A1F08;
    margin-top: 4px;
}
.tk-pay--main:hover {
    background: var(--tks-gold-deep, #A87E33);
    border-color: var(--tks-gold-deep, #A87E33);
    color: #2A1F08;
}
.tk-pay--alt {
    background: transparent;
    border: 1px solid var(--tks-green, #223930);
    color: var(--tks-green, #223930);
}
.tk-pay--alt:hover { background: var(--tks-green, #223930); color: #fff; }
.tk-pay__hint {
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--tks-muted, #6F675D);
    margin: 10px 0 18px;
}
.tk-pay__hint:last-child { margin-bottom: 0; }

@media (max-width: 992px) {
    .woocommerce-cart .cart-collaterals { margin-top: 24px; }
    .woocommerce-cart table.cart tr.woocommerce-cart-form__cart-item {
        grid-template-columns: 84px minmax(0, 1fr);
        grid-template-areas:
            "img name"
            "img price"
            "qty remove";
    }
    .woocommerce-cart table.cart td.product-thumbnail img { width: 84px; }
    .woocommerce-cart table.cart td.product-subtotal { text-align: left; }
}

/* Поправки к корзине после проверки на живой странице.
   WooCommerce и тема задают свои ширины контейнерам — без их сброса
   правая колонка сжималась до 205 px и слово «ИТОГО» ломалось пополам. */
.woocommerce-cart .cart-collaterals,
.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-cart .cart_totals {
    width: 100% !important;
    float: none !important;
    max-width: none;
}
.woocommerce-cart .woocommerce-cart-form,
.woocommerce-cart table.cart {
    width: 100% !important;
    float: none !important;
}

/* Тема ужимает картинки в таблице корзины до миниатюры — вернём размер. */
.woocommerce-cart table.cart td.product-thumbnail img {
    width: 112px !important;
    max-width: 112px !important;
}

/* Количество для цифрового товара не редактируется: экземпляр всегда один. */
.woocommerce-cart table.cart td.product-quantity { display: none; }

/* «убрать» стояло отдельной колонкой и схлопывалось в вертикальную строку.
   Ставим под название, обычной ссылкой. */
.woocommerce-cart table.cart tr.woocommerce-cart-form__cart-item {
    grid-template-columns: 112px minmax(0, 1fr) auto;
    grid-template-areas:
        "img name   price"
        "img remove .";
    row-gap: 10px;
}
.woocommerce-cart table.cart td.product-remove {
    grid-area: remove;
    text-align: left;
}
.woocommerce-cart table.cart td.product-remove a.remove {
    display: inline-block;
    line-height: 1.4;
    width: auto !important;
    height: auto !important;
}

@media (max-width: 992px) {
    .woocommerce-cart table.cart tr.woocommerce-cart-form__cart-item {
        grid-template-columns: 84px minmax(0, 1fr);
        grid-template-areas:
            "img name"
            "img price"
            "remove remove";
    }
    .woocommerce-cart table.cart td.product-thumbnail img {
        width: 84px !important;
        max-width: 84px !important;
    }
}

/* Своя ссылка «убрать» вместо крестика WooCommerce (см. tk-checkout-lean.php). */
.woocommerce-cart table.cart td.product-remove a.tk-remove {
    display: inline-block;
    width: auto;
    height: auto;
    font-size: 14px;
    line-height: 1.4;
    color: var(--tks-muted, #6F675D);
    background: none;
    border-radius: 0;
    padding: 0;
    text-decoration: underline;
}
.woocommerce-cart table.cart td.product-remove a.tk-remove:hover {
    color: var(--tks-danger, #B42318);
    background: none;
}

/* ==================================================================
   ЦИТАТЫ УЧАСТНИКОВ (tk-quotes.php)
   Намеренно не похожи на отзывы магазина: без звёзд и без метки
   «проверенная покупка» — покупки в магазине не было.
   ================================================================== */
.tk-quotes { margin: 44px 0 0; }
.tk-quotes__title {
    font-family: var(--tks-font-display, Lora, Georgia, serif);
    font-size: clamp(24px, 3vw, 30px);
    color: var(--tks-heading, #1E293B);
    margin: 0 0 8px;
}
.tk-quotes__source {
    font-size: 14.5px;
    line-height: 1.55;
    color: var(--tks-muted, #6F675D);
    max-width: 62ch;
    margin: 0 0 24px;
}
.tk-quotes__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 18px;
}
.tk-quote {
    margin: 0;
    background: var(--tks-card, #FFFDF9);
    border: 1px solid var(--tks-line, #DDD3C4);
    border-radius: 18px;
    padding: 22px 24px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.tk-quote__text {
    margin: 0;
    border: 0;
    padding: 0;
    quotes: "«" "»";
    font-size: 16px;
    line-height: 1.6;
    color: var(--tks-ink, #161616);
}
.tk-quote__text::before { content: open-quote; }
.tk-quote__text::after  { content: close-quote; }
.tk-quote__who {
    margin-top: auto;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: baseline;
    font-size: 14px;
    color: var(--tks-muted, #6F675D);
}
.tk-quote__name { font-weight: 600; color: var(--tks-green, #223930); }
.tk-quote__nick::before { content: "· "; }
.tk-quote__date::before { content: "· "; }

/* ==================================================================
   ВИТРИНА СЕКЦИЯМИ (tk-shop-sections.php)
   ================================================================== */
.tk-section { margin: 40px 0 0; }
.tk-section:first-child { margin-top: 28px; }
.tk-section__title {
    font-family: var(--tks-font-display, Lora, Georgia, serif);
    font-size: clamp(22px, 2.6vw, 28px);
    color: var(--tks-heading, #1E293B);
    margin: 0 0 6px;
}
.tk-section__sub {
    font-size: 15px;
    line-height: 1.55;
    color: var(--tks-muted, #6F675D);
    max-width: 60ch;
    margin: 0 0 18px;
}
.tk-section .products { margin-top: 0 !important; }

/* Ближайший эфир и клуб стоят рядом: это выбор между разовой покупкой
   и подпиской за те же деньги. Рядом — значит сравнимо. */
@media (min-width: 993px) {
    .tk-section-pair {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 28px;
        align-items: start;
    }
    .tk-section-pair .tk-section { margin-top: 28px; }
    /* Внутри пары — по одной карточке на колонку, без внутренней сетки. */
    .tk-section-pair .products {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}

/* Ближайший эфир — единственное, что идёт вживую: помечаем золотой линией. */
.tk-section--upcoming .tk-section__title::before {
    content: "";
    display: block;
    width: 56px;
    height: 4px;
    border-radius: 2px;
    background: var(--tks-gold, #C79A4B);
    margin-bottom: 12px;
}
.tk-section--soon .products li.product { opacity: .82; }

/* ==================================================================
   ПОРЯДОК ВНУТРИ КАРТОЧКИ КАТАЛОГА
   Astra кладёт обязательную сноску § 19 UStG внутрь обёртки картинки,
   поэтому она печаталась ВЫШЕ названия товара: человек читал немецкий
   налоговый текст раньше, чем узнавал, что вообще продаётся.
   `display: contents` растворяет обёртку, её дети становятся прямыми
   элементами карточки — и order наконец начинает работать.
   ================================================================== */
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap {
    display: contents;
}
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap > a.woocommerce-LoopProduct-link,
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap > a.woocommerce-loop-product__link {
    order: 1;
}
.woocommerce ul.products li.product .astra-shop-summary-wrap { order: 2; }

/* Сноска уходит вниз карточки и набирается мельче: она обязательна,
   но это сноска, а не заголовок. */
.woocommerce ul.products li.product .wc-gzd-additional-info,
.woocommerce ul.products li.product .wc-gzd-additional-info-loop {
    order: 6;
    margin: 4px 0 0;
    font-size: 12px;
    line-height: 1.45;
    color: var(--tks-muted, #6F675D);
    opacity: .85;
}

/* Кнопка Astra поверх картинки дублирует нашу «Подробнее» — убираем,
   иначе после display:contents она всплывает в потоке. */
.woocommerce ul.products li.product .ast-on-card-button,
.woocommerce ul.products li.product .ast-select-options-trigger {
    display: none !important;
}

/* Наша кнопка — всегда последней и прижата к низу карточки. */
.woocommerce ul.products li.product .astra-shop-summary-wrap .button { margin-top: 8px; }

/* Русская расшифровка под немецким юридическим чекбоксом. Не заменяет
   текст договора, а помогает человеку понять, под чем он ставит галочку. */
.tk-legal-ru {
    display: block;
    margin-top: 6px;
    font-size: 13px;
    line-height: 1.5;
    color: var(--tks-muted, #6F675D);
    font-weight: 400;
}

/* Главное действие на мобильном — во всю ширину: узкая кнопка покупки
   на телефоне теряется среди текста. */
@media (max-width: 600px) {
    .woocommerce div.product form.cart button.single_add_to_cart_button {
        width: 100%;
    }
    .woocommerce div.product form.cart .quantity { display: none; }
}

/* Зум обложки бессмыслен: обложка — текстовая полоса, увеличивать нечего,
   а лупа перекрывает угол картинки. */
.woocommerce div.product .woocommerce-product-gallery__trigger { display: none; }
.woocommerce div.product img.zoomImg { display: none !important; }

/* ==================================================================
   КЛЮЧЕВЫЕ ФАКТЫ, ДОВЕРИЕ И ЛИПКАЯ ПАНЕЛЬ ПОКУПКИ (tk-buypanel.php)
   Приём из больших магазинов: решение принимается вверху страницы,
   значит главные факты и гарантии должны быть там же, а кнопка —
   доступна на любой глубине.
   ================================================================== */

/* --- Ключевые факты: две колонки «свойство — значение» --- */
.tk-facts {
    list-style: none;
    margin: 0 0 20px;
    padding: 16px 0;
    border-top: 1px solid var(--tks-line-soft, #E5DCCE);
    border-bottom: 1px solid var(--tks-line-soft, #E5DCCE);
    display: grid;
    gap: 8px;
}
.tk-facts__item {
    display: grid;
    grid-template-columns: minmax(96px, 34%) 1fr;
    gap: 12px;
    margin: 0;
    font-size: 15px;
    line-height: 1.5;
}
.tk-facts__key { color: var(--tks-muted, #6F675D); }
.tk-facts__val { color: var(--tks-ink, #161616); font-weight: 500; }

/* --- Блок доверия --- */
.tk-trust {
    list-style: none;
    margin: 18px 0 0;
    padding: 0;
    display: grid;
    gap: 12px;
}
.tk-trust__item {
    display: grid;
    grid-template-columns: 26px 1fr;
    gap: 10px;
    align-items: start;
    margin: 0;
}
.tk-trust__icon {
    font-size: 16px;
    line-height: 1.5;
    text-align: center;
    color: var(--tks-green, #223930);
}
.tk-trust__body { display: block; font-size: 14.5px; line-height: 1.5; }
.tk-trust__body strong { display: block; color: var(--tks-ink, #161616); font-weight: 600; }
.tk-trust__body span { display: block; color: var(--tks-muted, #6F675D); }

/* --- Липкая панель покупки --- */
.tk-buypanel {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 90;
    background: var(--tks-card, #FFFDF9);
    border-top: 1px solid var(--tks-line, #DDD3C4);
    box-shadow: 0 -6px 24px rgba(22, 22, 22, .10);
    padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px));
    animation: tk-buypanel-in .18s ease-out;
}
.tk-buypanel[hidden] { display: none; }
@keyframes tk-buypanel-in {
    from { transform: translateY(100%); }
    to   { transform: translateY(0); }
}
.tk-buypanel__inner {
    max-width: 1100px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 14px;
}
.tk-buypanel__info {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1 1 auto;
}
.tk-buypanel__name {
    font-size: 13.5px;
    color: var(--tks-muted, #6F675D);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.tk-buypanel__price {
    font-size: 19px;
    font-weight: 700;
    color: var(--tks-ink, #161616);
    line-height: 1.25;
}
.tk-buypanel__price .amount { font-weight: 700; }
.tk-buypanel__price del { display: none; }
.tk-buypanel__btn {
    flex: 0 0 auto;
    min-height: 50px;
    padding: 14px 26px;
    border-radius: 999px;
    border: 1px solid var(--tks-gold, #C79A4B);
    background: var(--tks-gold, #C79A4B);
    color: #2A1F08;
    font: 600 16px/1 Inter, system-ui, sans-serif;
    cursor: pointer;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
}
.tk-buypanel__btn:hover {
    background: var(--tks-gold-deep, #A87E33);
    border-color: var(--tks-gold-deep, #A87E33);
    color: #2A1F08;
}

/* Плавающая кнопка корзины не должна налезать на панель покупки. */
.tk-buypanel:not([hidden]) ~ #tk-cartfab-wrap .tk-cartfab,
body:has(.tk-buypanel:not([hidden])) #tk-cartfab-wrap { bottom: 88px; }

@media (max-width: 600px) {
    .tk-buypanel__btn { padding: 14px 20px; font-size: 15px; }
    .tk-buypanel__name { font-size: 12.5px; }
}

/* Кнопка «Наверх» от Astra и плавающая корзина стоят в том же углу,
   что и панель покупки, — поднимаем их, пока панель на экране. */
body:has(.tk-buypanel:not([hidden])) #ast-scroll-top,
body:has(.tk-buypanel:not([hidden])) .ast-scroll-top-icon,
body:has(.tk-buypanel:not([hidden])) #tk-cartfab-wrap {
    bottom: 96px !important;
}

/* ==================================================================
   ВЫГОДА В КОРЗИНЕ (tk-cart-upsell.php)
   Приём Amazon «Frequently bought together» / Ozon «Выгоднее вместе»:
   в момент, когда человек уже решил платить, показать, где дешевле.
   Считаем деньгами, а не уговорами.
   ================================================================== */
.tk-upsell { margin: 26px 0 0; }
.tk-upsell__title {
    font-family: var(--tks-font-display, Lora, Georgia, serif);
    font-size: 22px;
    color: var(--tks-heading, #1E293B);
    margin: 0 0 14px;
}
.tk-upsell__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 16px;
}
.tk-upsell__card {
    background: var(--tks-card, #FFFDF9);
    border: 1px solid var(--tks-line, #DDD3C4);
    border-radius: 18px;
    padding: 20px 22px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.tk-upsell__card--accent {
    border-color: var(--tks-gold, #C79A4B);
    box-shadow: 0 0 0 1px var(--tks-gold, #C79A4B) inset;
}
.tk-upsell__label {
    align-self: flex-start;
    font: 600 11px/1 Inter, system-ui, sans-serif;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--tks-green, #223930);
    background: var(--tks-paper-2, #F6F1E8);
    border-radius: 999px;
    padding: 6px 10px;
}
.tk-upsell__card--accent .tk-upsell__label {
    background: var(--tks-gold, #C79A4B);
    color: #2A1F08;
}
.tk-upsell__name {
    font-family: var(--tks-font-display, Lora, Georgia, serif);
    font-size: 19px;
    line-height: 1.3;
    color: var(--tks-heading, #1E293B);
    margin: 2px 0 0;
}
.tk-upsell__text {
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--tks-muted, #6F675D);
    margin: 0;
}
.tk-upsell__text .amount { color: var(--tks-ink, #161616); font-weight: 600; white-space: nowrap; }
.tk-upsell__btn {
    align-self: flex-start;
    margin-top: 8px;
    padding: 13px 22px;
    border-radius: 999px;
    font: 600 15px/1 Inter, system-ui, sans-serif;
    text-decoration: none;
    border: 1px solid var(--tks-green, #223930);
    color: var(--tks-green, #223930);
    background: transparent;
}
.tk-upsell__btn:hover { background: var(--tks-green, #223930); color: #fff; }
.tk-upsell__card--accent .tk-upsell__btn {
    background: var(--tks-gold, #C79A4B);
    border-color: var(--tks-gold, #C79A4B);
    color: #2A1F08;
}
.tk-upsell__card--accent .tk-upsell__btn:hover {
    background: var(--tks-gold-deep, #A87E33);
    border-color: var(--tks-gold-deep, #A87E33);
}

/* Купон прячем в строку: он нужен единицам, а место занимал у всех —
   тёмная кнопка рядом с оплатой конкурировала с главным действием. */
.woocommerce-cart table.cart td.actions .coupon {
    display: flex;
    gap: 8px;
    flex: 1 1 100%;
}
.woocommerce-cart table.cart td.actions .coupon input[type="text"] {
    max-width: 220px;
    height: 46px;
}
.woocommerce-cart table.cart td.actions .coupon .button {
    background: transparent;
    color: var(--tks-ink, #161616);
    border: 1px solid var(--tks-control, #8A8175);
    height: 46px;
    min-height: 46px;
    padding: 12px 18px;
    font-size: 15px;
}
.woocommerce-cart table.cart td.actions .coupon .button:hover {
    background: var(--tks-paper-2, #F6F1E8);
    color: var(--tks-ink, #161616);
    border-color: var(--tks-control, #8A8175);
}

/* --- Пустая корзина: не тупик, а развилка --- */
.tk-empty { margin: 26px 0 0; }
.tk-empty__title {
    font-family: var(--tks-font-display, Lora, Georgia, serif);
    font-size: 22px;
    color: var(--tks-heading, #1E293B);
    margin: 0 0 14px;
}
.tk-empty__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 16px;
}
.tk-empty__card {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 18px;
    border: 1px solid var(--tks-line, #DDD3C4);
    border-radius: 18px;
    background: var(--tks-card, #FFFDF9);
    text-decoration: none;
    transition: box-shadow .18s ease;
}
.tk-empty__card:hover { box-shadow: var(--tks-shadow, 0 8px 30px rgba(22,22,22,.05)); }
.tk-empty__card img { border-radius: 10px; width: 100%; height: auto; }
.tk-empty__name {
    font-family: var(--tks-font-display, Lora, Georgia, serif);
    font-size: 17px;
    line-height: 1.3;
    color: var(--tks-heading, #1E293B);
}
.tk-empty__price { font-size: 17px; font-weight: 600; color: var(--tks-ink, #161616); }
.tk-empty__all { margin: 16px 0 0; }
.tk-empty__all a { color: var(--tks-green, #223930); font-weight: 600; }

/* ==================================================================
   ТАБЛИЦА СРАВНЕНИЯ (tk-compare.php)
   Приём Amazon «Compare with similar items». Пока варианты лежат на
   разных страницах, человек их не сравнивает — он уходит думать.
   Рядом в таблице разница видна за секунды.
   ================================================================== */
.tk-compare { margin: 44px 0 0; }
.tk-compare__title {
    font-family: var(--tks-font-display, Lora, Georgia, serif);
    font-size: clamp(24px, 3vw, 30px);
    color: var(--tks-heading, #1E293B);
    margin: 0 0 8px;
}
.tk-compare__sub {
    font-size: 15px;
    line-height: 1.55;
    color: var(--tks-muted, #6F675D);
    max-width: 62ch;
    margin: 0 0 20px;
}
/* Таблица на телефоне не помещается — даём ей прокрутку внутри блока,
   а не ломаем страницу горизонтальным скроллом. */
.tk-compare__scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.tk-compare__table {
    width: 100%;
    min-width: 520px;
    border-collapse: separate;
    border-spacing: 0;
    background: var(--tks-card, #FFFDF9);
    border: 1px solid var(--tks-line, #DDD3C4);
    border-radius: 18px;
    overflow: hidden;
}
.tk-compare__table th,
.tk-compare__table td {
    padding: 14px 16px;
    text-align: left;
    font-size: 15px;
    line-height: 1.45;
    border-bottom: 1px solid var(--tks-line-soft, #E5DCCE);
    vertical-align: top;
}
.tk-compare__table thead th {
    background: var(--tks-paper-2, #F6F1E8);
    border-bottom: 1px solid var(--tks-line, #DDD3C4);
}
.tk-compare__table tbody th {
    color: var(--tks-muted, #6F675D);
    font-weight: 400;
    white-space: nowrap;
}
.tk-compare__table tr:last-child th,
.tk-compare__table tr:last-child td { border-bottom: 0; }

.tk-compare__name {
    display: block;
    font-family: var(--tks-font-display, Lora, Georgia, serif);
    font-size: 17px;
    color: var(--tks-heading, #1E293B);
}
.tk-compare__price {
    display: block;
    font-size: 19px;
    font-weight: 700;
    color: var(--tks-ink, #161616);
    margin-top: 4px;
}
.tk-compare__note { display: block; font-size: 13px; color: var(--tks-muted, #6F675D); }
.tk-compare__badge {
    display: inline-block;
    margin-top: 8px;
    font: 600 11px/1 Inter, system-ui, sans-serif;
    letter-spacing: .06em;
    text-transform: uppercase;
    background: var(--tks-gold, #C79A4B);
    color: #2A1F08;
    border-radius: 999px;
    padding: 5px 9px;
}
/* Колонка открытого товара подсвечена — чтобы не терять, где ты находишься. */
.tk-compare__table .is-here { background: rgba(199, 154, 75, .07); }
.tk-compare__link {
    display: inline-block;
    padding: 10px 18px;
    border-radius: 999px;
    border: 1px solid var(--tks-green, #223930);
    color: var(--tks-green, #223930);
    font: 600 14px/1 Inter, system-ui, sans-serif;
    text-decoration: none;
}
.tk-compare__link:hover { background: var(--tks-green, #223930); color: #fff; }
.tk-compare__current { font-size: 14px; color: var(--tks-muted, #6F675D); }
.tk-compare__corner { font-size: 13px; color: var(--tks-muted, #6F675D); }

/* ==================================================================
   ПРОГРАММА ЗАПИСИ (tk-program.php)
   Покупатель платит за «два часа сорок шесть минут» и не знает, что
   внутри. Нумерованный список снимает главное возражение — «что я
   вообще получу за это время».
   ================================================================== */
.tk-program { margin: 36px 0 0; scroll-margin-top: 24px; }
.tk-program__title {
    font-family: var(--tks-font-display, Lora, Georgia, serif);
    font-size: clamp(24px, 3vw, 30px);
    color: var(--tks-heading, #1E293B);
    margin: 0 0 8px;
}
.tk-program__intro {
    font-size: 16px;
    line-height: 1.6;
    color: var(--tks-muted, #6F675D);
    max-width: 62ch;
    margin: 0 0 18px;
}
.tk-program__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 2px;
    counter-reset: tkprog;
}
.tk-program__item {
    display: grid;
    grid-template-columns: 34px 1fr;
    gap: 14px;
    align-items: start;
    padding: 13px 16px;
    margin: 0;
    border-radius: 12px;
}
.tk-program__item:nth-child(odd) { background: var(--tks-card, #FFFDF9); }
.tk-program__num {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--tks-green, #223930);
    color: #fff;
    font: 600 13px/1 Inter, system-ui, sans-serif;
}
.tk-program__text {
    font-size: 16px;
    line-height: 1.55;
    color: var(--tks-muted, #6F675D);
    padding-top: 2px;
}
.tk-program__text strong {
    color: var(--tks-ink, #161616);
    font-weight: 600;
}

/* Цена за единицу — приём Baymard: без неё выгоду набора считают в уме. */
.tk-unit-price {
    display: block;
    font-size: 14px;
    font-weight: 400;
    color: var(--tks-muted, #6F675D);
    margin-top: 2px;
}
.woocommerce ul.products li.product .tk-unit-price { font-size: 13px; }
