/*
Theme Name: Тихий лист
Theme URI: https://wp.168.113.156.131.sslip.io/
Author: arsalan.expert
Description: Блочная тема интернет-магазина чая «Тихий лист» на WooCommerce. Светлая палитра, шрифт Manrope, скругление 12 px.
Version: 1.0.0
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: tihiy-list
*/

/* Всё, что нельзя задать в theme.json: сетки, компоненты, блоки WooCommerce.
   Цвета, шрифт, размеры и кнопки лежат в theme.json. Скругление 12 px одно везде. */

:root {
	--tl-radius: 12px;
	--tl-section: var(--wp--preset--spacing--section);
	--tl-gutter: var(--wp--preset--spacing--gutter);
	--tl-line: var(--wp--preset--color--line);
	--tl-line-strong: var(--wp--preset--color--line-strong);
	--tl-soft: var(--wp--preset--color--soft);
	--tl-text: var(--wp--preset--color--text);
	--tl-grey: var(--wp--preset--color--secondary);
	--tl-accent: var(--wp--preset--color--accent);
	--tl-accent-hover: var(--wp--preset--color--accent-hover);
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

/* ---------- Общие правила ---------- */

main > * {
	min-width: 0;
}

.wp-block-group.tl-section {
	margin-top: var(--tl-section);
}

.tl-lead {
	line-height: 1.6;
}

/* Поля ввода везде одинаковые */
input[type="text"],
input[type="search"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="password"],
select,
textarea {
	font: inherit;
	color: var(--tl-text);
	background: var(--wp--preset--color--white);
	border: 1px solid var(--tl-line);
	border-radius: var(--tl-radius);
}

input[type="text"]:focus,
input[type="search"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
input[type="number"]:focus,
select:focus,
textarea:focus {
	border-color: var(--tl-text);
	outline: none;
}

/* ---------- Шапка ---------- */

.wp-block-group.tl-header {
	position: sticky;
	top: 0;
	z-index: 20;
	background: var(--wp--preset--color--white);
	border-bottom: 1px solid var(--tl-line);
}

.admin-bar .tl-header {
	top: var(--wp-admin--admin-bar--height, 32px);
}

.tl-header__bar {
	height: 72px;
	width: 100%;
	flex-wrap: nowrap !important;
	align-items: center;
}

.tl-logo,
.tl-logo a {
	white-space: nowrap;
	margin: 0;
}

/* Знак перед названием: лист одной линией (assets/images/mark.svg), цвет акцента через маску */
.tl-logo a {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	text-decoration: none;
}

.tl-logo a::before {
	content: "";
	flex: none;
	width: 1.5em;
	height: 1.5em;
	margin: -0.15em 0;
	background: var(--wp--preset--color--accent, #8A5A36);
	-webkit-mask: url("assets/images/mark.svg") center / contain no-repeat;
	mask: url("assets/images/mark.svg") center / contain no-repeat;
}

nav.tl-nav {
	margin-left: 64px;
	margin-right: 0;
	min-width: 0;
}

.tl-nav .wp-block-navigation-item__content {
	padding: 0;
}

.tl-header__bar {
	justify-content: flex-start !important;
}

.tl-header__tools {
	flex: none;
	margin-left: auto !important;
	gap: 8px;
}

.tl-header__tools > * {
	margin: 0;
}

.tl-cart-link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	height: 40px;
	padding: 0 12px;
	border: 1px solid var(--tl-line);
	border-radius: var(--tl-radius);
	color: var(--tl-text);
	font-size: 14px;
	font-weight: 500;
	line-height: 1;
}

.tl-cart-link:hover {
	border-color: var(--tl-line-strong);
	color: var(--tl-text);
}

.tl-cart-link svg {
	width: 20px;
	height: 20px;
	fill: currentColor;
}

/* Иконка-кнопка: поиск, корзина, меню, соцсети в подвале */
.tl-icon-btn,
.tl-search .wp-block-search__button,
.tl-header .wc-block-mini-cart__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-width: 40px;
	height: 40px;
	margin: 0;
	padding: 0 10px;
	border: 1px solid var(--tl-line);
	border-radius: var(--tl-radius);
	background: var(--wp--preset--color--white);
	color: var(--tl-text);
	font-size: 14px;
	font-weight: 500;
	line-height: 1;
	transition: border-color 0.2s;
}

.tl-nav .wp-block-navigation__responsive-container-open {
	min-width: 40px;
	height: 40px;
	margin: 0;
	padding: 0 10px;
	border: 1px solid var(--tl-line);
	border-radius: var(--tl-radius);
	background: var(--wp--preset--color--white);
	color: var(--tl-text);
	transition: border-color 0.2s;
}

.tl-icon-btn:hover,
.tl-search .wp-block-search__button:hover,
.tl-header .wc-block-mini-cart__button:hover,
.tl-nav .wp-block-navigation__responsive-container-open:hover {
	border-color: var(--tl-line-strong);
	background: var(--wp--preset--color--white);
	color: var(--tl-text);
}

.tl-icon-btn svg {
	width: 20px;
	height: 20px;
	flex: none;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.5;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.tl-search .wp-block-search__button svg,
.tl-nav .wp-block-navigation__responsive-container-open svg {
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentColor;
}

.tl-search .wp-block-search__button svg {
	fill: currentColor;
	stroke: none;
}

/* Поиск: поле раскрывается под шапкой */
.tl-search {
	position: static;
}

.tl-search .wp-block-search__inside-wrapper {
	position: relative;
	min-width: 0;
	width: auto !important;
}

.tl-search .wp-block-search__input {
	min-width: 0;
	height: 40px;
	padding: 0 14px;
	font-size: 15px;
}

.tl-search.wp-block-search__searchfield-hidden .wp-block-search__input,
.tl-search .wp-block-search__input[hidden] {
	display: none;
}

.tl-search:not(.wp-block-search__searchfield-hidden) .wp-block-search__inside-wrapper {
	position: absolute;
	left: var(--tl-gutter);
	right: var(--tl-gutter);
	top: 0;
	z-index: 3;
	display: flex;
	align-items: center;
	gap: 8px;
	height: 72px;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0;
	background: var(--wp--preset--color--white);
}

.tl-search:not(.wp-block-search__searchfield-hidden) .wp-block-search__input {
	flex: 1 1 auto;
	width: auto;
}

/* Корзина в шапке */
.tl-header .wc-block-mini-cart__button {
	position: relative;
}

.tl-header .wc-block-mini-cart__button {
	padding: 0 12px;
	gap: 0;
}

.tl-header .wc-block-mini-cart__quantity-badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 0;
	padding: 0;
}

.tl-header .wc-block-mini-cart__icon {
	flex: none;
	width: 20px;
	height: 20px;
	margin: 0 !important;
	color: currentColor;
}

.tl-header .wc-block-mini-cart__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	position: static;
	box-sizing: border-box;
	min-width: 20px;
	height: 20px;
	padding: 0 6px;
	border-radius: 10px;
	background: var(--tl-text) !important;
	color: var(--wp--preset--color--white) !important;
	margin: 0 !important;
	font-family: inherit;
	font-size: 12px;
	font-weight: 600;
	font-variant-numeric: lining-nums;
	line-height: 1;
	text-align: center;
	transform: none;
}

/* Окно мини-корзины */
.wc-block-components-drawer {
	font-family: inherit;
	border-radius: var(--tl-radius) 0 0 var(--tl-radius);
}

/* Кнопка закрытия: иконка без рамки. Общие стили кнопок на неё не распространяются. */
.wc-block-components-drawer .wc-block-components-drawer__close {
	position: absolute;
	top: 8px;
	right: 12px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	min-width: 0;
	min-height: 0;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: var(--tl-radius);
	background: transparent !important;
	box-shadow: none;
	color: var(--tl-text);
	transition: background 0.2s;
}

.wc-block-components-drawer .wc-block-components-drawer__close:hover {
	background: var(--tl-soft) !important;
}

.wc-block-components-drawer .wc-block-components-drawer__close:focus-visible {
	outline: 2px solid var(--tl-text);
	outline-offset: 2px;
}

.wc-block-components-drawer .wc-block-components-drawer__close svg {
	width: 22px;
	height: 22px;
	margin: 0;
	fill: currentColor;
}

.wc-block-mini-cart__title {
	padding-right: 48px;
}

/* Кнопки внизу: одна под другой на любой ширине, текст в одну строку */
.wc-block-mini-cart__footer-actions {
	flex-direction: column;
	gap: 12px;
}

.wc-block-mini-cart__footer-actions .wc-block-mini-cart__footer-cart,
.wc-block-mini-cart__footer-actions .wc-block-mini-cart__footer-checkout {
	width: 100%;
	min-height: 52px;
	justify-content: center;
	text-align: center;
}

.wc-block-mini-cart__footer-actions .wc-block-mini-cart__footer-cart {
	border: 1px solid var(--tl-line-strong) !important;
	background: transparent !important;
	color: var(--tl-text) !important;
}

.wc-block-mini-cart__footer-actions .wc-block-mini-cart__footer-cart:hover {
	border-color: var(--tl-accent) !important;
	background: var(--tl-accent) !important;
	color: var(--wp--preset--color--white) !important;
}

@media (max-width: 600px) {
	.wc-block-components-drawer {
		border-radius: 0;
	}
}

.wc-block-mini-cart__title,
.wc-block-mini-cart__footer .wc-block-components-totals-item__label {
	font-weight: 600;
}

/* Меню на мобиле: оверлей Navigation. Порог 900 px вместо стандартных 600 */
@media (max-width: 899px) {
	.tl-nav .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}

	.tl-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: none;
	}
}

.tl-nav .wp-block-navigation__responsive-container.is-menu-open {
	padding: 20px var(--tl-gutter);
	background: var(--wp--preset--color--white);
	color: var(--tl-text);
}

.tl-nav .is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 56px;
}

.tl-nav .is-menu-open .wp-block-navigation__container {
	align-items: stretch;
	width: 100%;
	gap: 0;
}

.tl-nav .is-menu-open .wp-block-navigation-item {
	display: block;
	width: 100%;
	border-top: 1px solid var(--tl-line);
	font-size: 17px;
	font-weight: 500;
}

.tl-nav .is-menu-open .wp-block-navigation-item:first-child {
	border-top: 0;
}

.tl-nav .is-menu-open .wp-block-navigation-item__content {
	display: block;
	padding: 14px 0;
	color: var(--tl-text);
}

@media (max-width: 899px) {
	nav.tl-nav {
		order: 3;
		margin-left: 8px;
		margin-right: 0;
	}

	.tl-header__tools {
		margin-left: auto;
	}
}

@media (max-width: 639px) {
	.tl-header__bar {
		height: 60px;
	}

	.tl-search:not(.wp-block-search__searchfield-hidden) .wp-block-search__inside-wrapper {
		height: 60px;
	}

	.tl-logo,
	.tl-logo a {
		font-size: 19px;
	}
}

/* ---------- Подвал ---------- */

.wp-block-group.tl-footer {
	padding-top: 80px;
	padding-bottom: 40px;
}

.tl-footer__grid {
	display: grid;
	grid-template-columns: minmax(0, 4fr) minmax(0, 1fr) minmax(0, 2fr) minmax(0, 2fr) minmax(0, 3fr);
	column-gap: 24px;
}

.tl-footer__grid > * {
	min-width: 0;
	margin: 0;
}

.tl-footer__brand {
	grid-column: 1;
}

.tl-footer__brand p {
	max-width: 280px;
}

.tl-footer__col {
	font-size: 15px;
	color: var(--tl-grey);
}

.tl-footer__grid > .tl-footer__col:nth-child(2) {
	grid-column: 3;
}

.tl-footer__grid > .tl-footer__col:nth-child(3) {
	grid-column: 4;
}

.tl-footer__grid > .tl-footer__col:nth-child(4) {
	grid-column: 5;
}

.tl-footer__col h4 {
	margin: 0 0 14px;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0;
	color: var(--tl-text);
}

.tl-footer__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.tl-footer__list li + li {
	margin-top: 10px;
}

.tl-footer__list a {
	color: var(--tl-grey);
	overflow-wrap: anywhere;
}

.tl-footer__list a:hover {
	color: var(--tl-text);
}

.tl-social {
	display: flex;
	gap: 8px;
	margin-top: 8px;
}

.wp-block-paragraph.tl-footer__end,
.tl-footer__end {
	margin-top: 72px;
	padding-top: 24px;
	border-top: 1px solid var(--tl-line-strong);
}

@media (max-width: 899px) {
	.wp-block-group.tl-footer {
		margin-top: var(--tl-section);
	}

	.tl-footer__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		row-gap: 40px;
	}

	.tl-footer__brand {
		grid-column: 1 / -1;
	}

	.tl-footer__grid > .tl-footer__col:nth-child(2) {
		grid-column: 1;
	}

	.tl-footer__grid > .tl-footer__col:nth-child(3) {
		grid-column: 2;
	}

	.tl-footer__grid > .tl-footer__col:nth-child(4) {
		grid-column: 1 / -1;
	}
}

@media (max-width: 639px) {
	.wp-block-group.tl-footer {
		padding-top: 64px;
		padding-bottom: 32px;
	}

	.tl-footer__grid {
		grid-template-columns: minmax(0, 1fr);
		row-gap: 32px;
	}

	.tl-footer__grid > .tl-footer__col:nth-child(2),
	.tl-footer__grid > .tl-footer__col:nth-child(3),
	.tl-footer__grid > .tl-footer__col:nth-child(4) {
		grid-column: 1;
	}

	.tl-footer__end {
		margin-top: 48px;
	}
}

/* ---------- Первый экран ---------- */

.wp-block-group.tl-hero {
	padding-top: 72px;
}

.tl-hero__grid {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: 24px;
	align-items: center;
}

.tl-hero__grid > * {
	margin: 0;
	min-width: 0;
}

.tl-hero__text {
	grid-column: 1 / span 6;
}

.tl-hero__text .tl-lead {
	max-width: 480px;
}

.tl-hero__img {
	grid-column: 7 / span 6;
}

.tl-hero__img img,
.tl-about__img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 1 / 1;
	border-radius: var(--tl-radius);
	background: var(--tl-soft);
}

.tl-hero__btns .wp-block-button__link {
	height: 52px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

ul.tl-facts {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	column-gap: 24px;
	margin: 72px 0 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--tl-line);
	border-bottom: 1px solid var(--tl-line);
}

.tl-facts li {
	padding: 22px 0;
	margin: 0;
}

@media (max-width: 899px) {
	.wp-block-group.tl-hero {
		padding-top: 48px;
	}

	.tl-hero__text,
	.tl-hero__img {
		grid-column: 1 / -1;
	}

	.tl-hero__img {
		margin-top: 48px;
	}

	ul.tl-facts {
		margin-top: 48px;
	}
}

@media (max-width: 639px) {
	.wp-block-group.tl-hero {
		padding-top: 32px;
	}

	.tl-hero .tl-lead {
		font-size: 17px;
	}

	.tl-hero__btns {
		flex-direction: column;
		align-items: stretch;
	}

	.tl-hero__btns .wp-block-button,
	.tl-hero__btns .wp-block-button__link {
		width: 100%;
	}

	.tl-hero__img {
		margin-top: 40px;
	}

	ul.tl-facts {
		grid-template-columns: minmax(0, 1fr);
		margin-top: 40px;
	}

	.tl-facts li {
		padding: 16px 0;
		border-top: 1px solid var(--tl-line);
	}

	.tl-facts li:first-child {
		border-top: 0;
	}
}

/* ---------- Подбор чая ---------- */

.wp-block-group.tl-picker {
	padding: 64px 48px;
	border-radius: var(--tl-radius);
	background: var(--tl-soft);
}

.tl-picker__head {
	max-width: 720px;
	margin: 0 auto;
	text-align: center;
}

.tl-picker__form {
	max-width: 720px;
	margin: 32px auto 0;
}

.tl-picker__label {
	display: block;
	margin-bottom: 10px;
	font-size: 15px;
	font-weight: 500;
}

.tl-picker__row,
.tl-ask__row {
	display: flex;
	gap: 12px;
}

.tl-picker__input,
.tl-ask__input {
	flex: 1 1 auto;
	min-width: 0;
	height: 56px;
	padding: 0 20px;
	font-size: 16px;
}

.tl-picker__input::placeholder,
.tl-ask__input::placeholder {
	color: var(--tl-grey);
	opacity: 1;
}

.tl-picker__submit,
.tl-ask__submit {
	flex: none;
	height: 56px;
	padding: 0 28px;
	border: 1px solid var(--tl-accent);
	border-radius: var(--tl-radius);
	background: var(--tl-accent);
	color: var(--wp--preset--color--white);
	font: 500 16px/1 var(--wp--preset--font-family--manrope);
	cursor: pointer;
	transition: background 0.2s, border-color 0.2s;
}

.tl-picker__submit:hover {
	background: var(--tl-accent-hover);
	border-color: var(--tl-accent-hover);
}

.tl-picker__chips,
.tl-ask__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 16px;
}

.tl-picker__chips {
	justify-content: center;
}

.tl-picker__chip,
.tl-ask__chip {
	height: 40px;
	padding: 0 16px;
	border: 1px solid var(--tl-line-strong);
	border-radius: var(--tl-radius);
	background: transparent;
	color: var(--tl-grey);
	font: 500 14px/1 var(--wp--preset--font-family--manrope);
	cursor: pointer;
	transition: border-color 0.2s, color 0.2s;
}

.tl-picker__chip:hover,
.tl-ask__chip:hover {
	border-color: var(--tl-text);
	color: var(--tl-text);
}

@media (max-width: 1199px) {
	.wp-block-group.tl-picker {
		padding: 56px 32px;
	}
}

@media (max-width: 639px) {
	.wp-block-group.tl-picker {
		padding: 40px 20px;
	}

	.tl-picker__head .tl-lead {
		font-size: 17px;
	}

	.tl-picker__form {
		margin-top: 28px;
	}

	.tl-picker__row,
	.tl-ask__row {
		flex-direction: column;
	}

	.tl-picker__submit,
	.tl-ask__submit {
		width: 100%;
	}

	.tl-picker__chips {
		justify-content: flex-start;
	}

}

/* ---------- Категории ---------- */

.tl-categories {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: 24px;
}

.tl-categories > * {
	margin: 0;
	min-width: 0;
}

.tl-categories__head {
	grid-column: 1 / span 5;
}

.tl-categories__head .tl-lead {
	max-width: 360px;
}

ul.tl-cats {
	grid-column: 7 / span 6;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tl-cats a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 22px 0;
	border-top: 1px solid var(--tl-line);
	transition: padding 0.2s;
}

.tl-cats li:last-child a {
	border-bottom: 1px solid var(--tl-line);
}

.tl-cats a:hover {
	padding-left: 8px;
	color: var(--tl-text);
}

.tl-cats b {
	font-size: 19px;
	font-weight: 500;
	letter-spacing: -0.01em;
}

.tl-cats span {
	font-size: 15px;
	color: var(--tl-grey);
	white-space: nowrap;
}

@media (max-width: 899px) {
	.tl-categories__head,
	ul.tl-cats {
		grid-column: 1 / -1;
	}

	ul.tl-cats {
		margin-top: 40px;
	}
}

@media (max-width: 639px) {
	.tl-cats a {
		padding: 18px 0;
	}

	.tl-cats b {
		font-size: 17px;
	}
}

/* ---------- Витрина и карточки товаров ---------- */

.tl-shelf__head {
	gap: 16px 24px;
}

.tl-more {
	margin: 0;
	padding-bottom: 2px;
	border-bottom: 1px solid var(--tl-line-strong);
}

.tl-more a {
	color: var(--tl-grey);
	font-weight: 500;
}

.tl-more:hover {
	border-color: var(--tl-text);
}

.tl-more a:hover {
	color: var(--tl-text);
}

.tl-shelf .tl-products,
.tl-related .tl-products {
	margin-top: 56px;
}

.tl-products ul.wc-block-product-template {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	gap: 56px 24px !important;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tl-products .wc-block-product-template > li,
.tl-products .wc-block-product {
	width: auto !important;
	min-width: 0;
	margin: 0 !important;
	padding: 0;
	max-width: none;
}

.tl-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	min-width: 0;
}

.tl-card > * {
	margin-block-start: 0;
	margin-block-end: 0;
}

.tl-card .wc-block-components-product-image,
.tl-card__img {
	margin: 0 !important;
}

.tl-card .wc-block-components-product-image a {
	display: block;
}

.tl-card .wc-block-components-product-image img,
.tl-card__img img {
	display: block;
	width: 100%;
	height: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: var(--tl-radius);
	background: var(--tl-soft);
}

.tl-card__img a {
	display: block;
	overflow: hidden;
	border-radius: var(--tl-radius);
	background: var(--tl-soft);
}

.tl-card .wp-block-post-title.tl-card__title,
.tl-card__title {
	margin: 16px 0 0;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.35;
	letter-spacing: -0.01em;
	text-wrap: pretty;
}

.tl-card__note {
	margin: 6px 0 0;
	font-size: 14px;
	line-height: 1.5;
	color: var(--tl-grey);
}

.tl-card__note p {
	display: -webkit-box;
	margin: 0;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	line-clamp: 3;
}

.tl-card .tl-card__bottom {
	margin-top: auto;
	padding-top: 16px;
	margin-bottom: 12px;
	font-size: 15px;
	color: var(--tl-grey);
}

.tl-card__bottom > * {
	margin: 0;
	min-width: 0;
}

.tl-weight {
	margin: 0;
	font-size: 15px;
	color: var(--tl-grey);
}

.tl-card .wc-block-components-product-price,
.tl-card .wp-block-woocommerce-product-price {
	margin: 0;
	font-size: 15px;
	font-weight: 600;
	color: var(--tl-text);
	white-space: nowrap;
}

.tl-card .wc-block-components-product-button,
.tl-card .wp-block-woocommerce-product-button {
	margin: 0;
}

.tl-card .wc-block-components-product-button .wp-block-button__link,
.tl-card .wc-block-components-product-button .wp-element-button,
.tl-card .wp-block-button__link {
	width: 100%;
	height: 40px;
	margin: 0;
	padding: 0 8px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--tl-line-strong);
	border-radius: var(--tl-radius);
	background: transparent;
	color: var(--tl-text);
	font-size: 15px;
	font-weight: 500;
	transition: background 0.2s, border-color 0.2s, color 0.2s;
}

.tl-card .wc-block-components-product-button .wp-block-button__link:hover,
.tl-card .wc-block-components-product-button .wp-element-button:hover,
.tl-card .wp-block-button__link:hover {
	border-color: var(--tl-accent);
	background: var(--tl-accent);
	color: var(--wp--preset--color--white);
}

.tl-card .added_to_cart {
	display: block;
	margin-top: 8px;
	font-size: 14px;
	color: var(--tl-grey);
	text-align: center;
}

@media (max-width: 1199px) {
	.tl-products ul.wc-block-product-template {
		gap: 48px 20px !important;
	}
}

@media (max-width: 899px) {
	.tl-products ul.wc-block-product-template {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}

	.tl-shelf .tl-products,
	.tl-related .tl-products {
		margin-top: 48px;
	}
}

@media (max-width: 639px) {
	.tl-products ul.wc-block-product-template {
		gap: 40px 12px !important;
	}

	.tl-shelf .tl-products,
	.tl-related .tl-products {
		margin-top: 40px;
	}

	.tl-card .wp-block-post-title.tl-card__title {
		margin-top: 12px;
		font-size: 15px;
	}

	.tl-card__note {
		font-size: 13px;
	}

	.tl-card .tl-card__bottom,
	.tl-weight {
		font-size: 14px;
	}
}

/* ---------- Как отбираем, доставка ---------- */

.tl-about {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: 24px;
	align-items: center;
}

.tl-about > * {
	margin: 0;
	min-width: 0;
}

.tl-about__img {
	grid-column: 1 / span 6;
}

.tl-about__text {
	grid-column: 8 / span 5;
}

ul.tl-serv,
.tl-serv {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	column-gap: 24px;
	margin-top: 56px;
}

.tl-serv__item {
	padding-top: 24px;
	border-top: 1px solid var(--tl-line);
}

.tl-serv__item > * {
	margin: 0;
}

.tl-serv__item > * + * {
	margin-top: 10px;
}

.tl-serv__item h3 {
	font-size: 20px;
}

@media (max-width: 899px) {
	.tl-about__img,
	.tl-about__text {
		grid-column: 1 / -1;
	}

	.tl-about__text {
		margin-top: 48px;
	}

	.tl-serv {
		grid-template-columns: minmax(0, 1fr);
		margin-top: 40px;
	}

	.tl-serv__item {
		padding: 24px 0 28px;
	}
}

@media (max-width: 639px) {
	.tl-about__text p {
		font-size: 16px;
	}
}

/* ---------- Каталог ---------- */

.tl-page-head {
	padding-top: 48px;
}

.tl-page-head > * {
	margin: 0;
}

.tl-crumbs,
.wc-block-breadcrumbs,
.woocommerce-breadcrumb {
	font-size: 14px;
	color: var(--tl-grey);
}

.tl-crumbs a {
	color: var(--tl-grey);
}

.tl-crumbs a:hover {
	color: var(--tl-text);
}

.single-product main > .tl-crumbs {
	padding-top: 48px;
}

.tl-toolbar {
	margin-top: 40px;
	margin-bottom: 40px;
	gap: 16px 24px;
}

.tl-chips ul {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tl-chip {
	display: inline-flex;
	align-items: center;
	height: 40px;
	padding: 0 16px;
	border: 1px solid var(--tl-line-strong);
	border-radius: var(--tl-radius);
	color: var(--tl-grey);
	font-size: 14px;
	font-weight: 500;
	transition: border-color 0.2s, color 0.2s;
}

.tl-chip:hover {
	border-color: var(--tl-text);
	color: var(--tl-text);
}

.tl-chip[aria-current="page"] {
	border-color: var(--tl-text);
	background: var(--tl-text);
	color: var(--wp--preset--color--white);
}

.wc-block-catalog-sorting,
.woocommerce-ordering {
	margin: 0;
}

.wc-block-catalog-sorting select,
.woocommerce-ordering select {
	height: 40px;
	padding: 0 36px 0 14px;
	font-size: 14px;
	font-weight: 500;
	color: var(--tl-grey);
	border-color: var(--tl-line-strong);
}

.tl-products--catalog {
	margin-bottom: 0;
}

.tl-pagination {
	margin-top: 64px;
	gap: 8px;
}

.tl-pagination .page-numbers,
.tl-pagination .wp-block-query-pagination-previous,
.tl-pagination .wp-block-query-pagination-next {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 12px;
	border: 1px solid var(--tl-line);
	border-radius: var(--tl-radius);
	font-size: 14px;
	font-weight: 500;
	color: var(--tl-grey);
	margin: 0;
}

.tl-pagination .wp-block-query-pagination-numbers {
	display: flex;
	gap: 8px;
}

.tl-pagination .page-numbers.current {
	border-color: var(--tl-text);
	background: var(--tl-text);
	color: var(--wp--preset--color--white);
}

.tl-pagination a:hover {
	border-color: var(--tl-text);
	color: var(--tl-text);
}

.tl-empty > * {
	margin-top: 0;
}

.tl-page-title,
.wp-block-post-title.tl-page-title {
	margin-top: 48px;
	margin-bottom: 0;
	font-size: clamp(30px, 3.2vw, 40px);
	line-height: 1.12;
	letter-spacing: -0.03em;
}

@media (max-width: 639px) {
	.tl-page-head {
		padding-top: 32px;
	}

	.single-product main > .tl-crumbs {
		padding-top: 32px;
	}

	.tl-toolbar {
		margin-top: 28px;
		margin-bottom: 32px;
	}

	.tl-pagination {
		margin-top: 48px;
	}
}

/* ---------- Карточка товара ---------- */

.tl-pdp {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: 24px;
	align-items: start;
	margin-top: 32px;
}

.tl-pdp > * {
	margin: 0;
	min-width: 0;
}

.tl-pdp__gallery {
	grid-column: 1 / span 6;
	position: sticky;
	top: 104px;
}

.tl-pdp__info {
	grid-column: 8 / span 5;
}

.tl-pdp__info > * {
	margin-block-start: 0;
}

.tl-pdp .woocommerce-product-gallery {
	margin: 0;
}

.tl-pdp .woocommerce-product-gallery__wrapper,
.tl-pdp .woocommerce-product-gallery__image {
	margin: 0;
}

.tl-pdp .woocommerce-product-gallery__image img,
.tl-pdp .woocommerce-product-gallery img.wp-post-image {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: var(--tl-radius);
	background: var(--tl-soft);
}

.tl-pdp .woocommerce-product-gallery__image {
	border-radius: var(--tl-radius);
	background: var(--tl-soft);
	overflow: hidden;
}

.tl-pdp .flex-viewport {
	border-radius: var(--tl-radius);
	overflow: hidden;
}

.tl-pdp .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	margin: 12px 0 0;
	padding: 0;
	list-style: none;
}

.tl-pdp .flex-control-thumbs li {
	width: auto !important;
	float: none !important;
	margin: 0;
}

.tl-pdp .flex-control-thumbs img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border: 1px solid transparent;
	border-radius: var(--tl-radius);
	background: var(--tl-soft);
	opacity: 1;
	cursor: pointer;
}

.tl-pdp .flex-control-thumbs img.flex-active {
	border-color: var(--tl-text);
}

.tl-pdp .woocommerce-product-gallery__trigger {
	display: none;
}

.tl-pdp__gallery .woocommerce-product-gallery,
.tl-pdp__gallery .wp-block-woocommerce-product-image-gallery,
.woocommerce div.product .tl-pdp__gallery div.images {
	margin: 0 !important;
	padding-bottom: 0;
}

.tl-pdp__info > .wp-block-post-title {
	margin-top: 0 !important;
}

.wp-block-post-title.tl-pdp__title {
	font-size: clamp(30px, 3.2vw, 40px);
	line-height: 1.12;
	letter-spacing: -0.03em;
}

.tl-pdp__price,
.tl-pdp__info .wc-block-components-product-price {
	margin-top: 24px;
	font-size: 28px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -0.02em;
}

.tl-pdp__buy {
	margin-top: 32px;
}

/* clearfix WooCommerce (::before/::after display:table) во flex-контейнере
   становится flex-элементом и добавляет лишний gap по краям */
.woocommerce div.product form.cart::before,
.woocommerce div.product form.cart::after,
.tl-pdp__buy form.cart::before,
.tl-pdp__buy form.cart::after,
.tl-pdp .flex-control-thumbs::before,
.tl-pdp .flex-control-thumbs::after,
.tl-products ul.wc-block-product-template::before,
.tl-products ul.wc-block-product-template::after {
	content: none !important;
	display: none !important;
}

.tl-pdp__buy form.cart {
	display: flex;
	width: 100%;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0;
	padding: 0;
}

.tl-pdp__buy .quantity {
	margin: 0;
	display: inline-flex;
	align-items: center;
	height: 52px;
	margin: 0;
}

.tl-pdp__buy .quantity input.qty,
.tl-pdp__buy .wc-block-components-quantity-selector {
	width: 88px;
	height: 52px;
	padding: 0 8px;
	border: 1px solid var(--tl-line-strong);
	border-radius: var(--tl-radius);
	text-align: center;
	font-weight: 500;
}

.tl-pdp__buy .wc-block-components-quantity-selector {
	display: inline-flex;
	width: auto;
	min-width: 120px;
}

.tl-pdp__buy .single_add_to_cart_button,
.tl-pdp__buy .wp-block-button__link {
	flex: 1 1 200px;
	height: 52px;
	margin: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* строку наличия выводит блок темы, штатную подпись WooCommerce скрываем */
.tl-pdp__buy .stock {
	display: none;
}

.tl-stock {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 16px;
	margin: 14px 0 0;
	font-size: 14px;
	color: var(--tl-grey);
}

.wp-block-post-excerpt.tl-pdp__desc {
	margin-top: 32px;
	font-size: 16px;
	line-height: 1.6;
	color: var(--tl-grey);
}

.tl-pdp__specs {
	margin-top: 32px;
	border-bottom: 1px solid var(--tl-line);
}

.tl-pdp__specs table,
.tl-pdp__info .woocommerce-product-attributes {
	table-layout: fixed;
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
}

.tl-pdp__specs tr,
.tl-pdp__specs .wc-block-product-specifications__item {
	border-top: 1px solid var(--tl-line);
}

.tl-pdp__specs th,
.tl-pdp__specs td {
	padding: 14px 0;
	border: 0;
	background: none;
	font-size: 15px;
	text-align: left;
	vertical-align: top;
}

.tl-pdp__specs th {
	width: 140px;
	padding-right: 16px;
	font-weight: 400;
	color: var(--tl-grey);
}

.tl-pdp__specs td {
	font-weight: 500;
}

.tl-pdp__specs td p {
	margin: 0;
}

.tl-pdp__specs h2,
.tl-pdp__specs h3 {
	display: none;
}

.wp-block-group.tl-ask {
	margin-top: 40px;
	border-radius: var(--tl-radius);
}

/* Отступ под заголовком задаётся явно: общий сброс margin-top у детей карточки товара съедает blockGap */
.wp-block-group.tl-ask > .wp-block-heading {
	margin: 0 0 16px;
}

.tl-ask__form {
	margin: 0;
}

.tl-ask__input {
	height: 48px;
	padding: 0 16px;
}

.tl-ask__submit {
	height: 48px;
	padding: 0 20px;
	background: transparent;
	color: var(--tl-text);
	border-color: var(--tl-line-strong);
}

.tl-ask__submit:hover {
	background: var(--tl-accent);
	border-color: var(--tl-accent);
	color: var(--wp--preset--color--white);
}

.tl-ask__chips {
	margin-top: 12px;
}

.wp-block-group.tl-related {
	margin-top: var(--tl-section);
}

.tl-related .tl-products {
	margin-top: 48px;
}

@media (max-width: 899px) {
	.tl-pdp__gallery,
	.tl-pdp__info {
		grid-column: 1 / -1;
		position: static;
	}

	.tl-pdp__info {
		margin-top: 40px;
	}
}

@media (max-width: 639px) {
	.tl-pdp {
		margin-top: 24px;
	}

	.tl-pdp__info {
		margin-top: 32px;
	}

	.tl-pdp__price {
		font-size: 26px;
	}

	.wp-block-group.tl-ask {
		padding: 20px !important;
	}

	.tl-pdp__specs th {
		width: 112px;
	}

	.tl-pdp__info {
		margin-top: 20px !important;
	}

	.tl-pdp__buy .quantity input.qty {
		width: 72px;
	}

	.tl-pdp__buy .single_add_to_cart_button {
		flex: 1 1 140px;
		min-width: 0;
	}
}

/* ---------- Корзина и оформление заказа ---------- */

.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout {
	margin-top: 40px;
	font-family: inherit;
}

.wc-block-cart,
.wc-block-checkout,
.wc-block-components-sidebar-layout {
	font-family: inherit;
}

.wc-block-components-text-input input,
.wc-block-components-textarea,
.wc-block-components-combobox .components-combobox-control input,
.wc-block-components-country-input select,
.wc-block-components-state-input select,
.wc-block-components-form .wc-block-components-text-input input[type="text"],
.wc-block-components-form .wc-block-components-text-input input[type="email"],
.wc-block-components-form .wc-block-components-text-input input[type="tel"],
.wc-block-components-text-input input[type="text"],
.wc-block-components-text-input input[type="email"],
.wc-block-components-text-input input[type="tel"],
.wc-block-components-text-input input[type="password"],
.wc-block-components-text-input input[type="number"],
.wc-block-components-text-input input[type="url"] {
	min-height: 56px;
	border: 1px solid var(--tl-line);
	border-radius: var(--tl-radius);
	background: var(--wp--preset--color--white);
	color: var(--tl-text);
	font-family: inherit;
	font-size: 16px;
}

.wc-block-components-text-input input:focus,
.wc-block-components-combobox .components-combobox-control input:focus {
	border-color: var(--tl-text);
	box-shadow: none;
	outline: none;
}

.wc-block-components-text-input label,
.wc-block-components-select-input label {
	color: var(--tl-grey);
}

.wc-block-components-select-input select {
	border-radius: var(--tl-radius);
	border-color: var(--tl-line);
}

.wc-block-components-button:not(.is-link),
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
	min-height: 52px;
	padding: 0 28px;
	border: 1px solid var(--tl-accent);
	border-radius: var(--tl-radius);
	background: var(--tl-accent);
	color: var(--wp--preset--color--white);
	font-family: inherit;
	font-size: 16px;
	font-weight: 500;
	transition: background 0.2s, border-color 0.2s;
}

.wc-block-components-button:not(.is-link):hover,
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover {
	border-color: var(--tl-accent-hover);
	background: var(--tl-accent-hover);
	color: var(--wp--preset--color--white);
}

.wc-block-components-button.outlined:not(.is-link) {
	background: transparent;
	color: var(--tl-text);
	border-color: var(--tl-line-strong);
}

.wc-block-components-button.outlined:not(.is-link):hover {
	background: var(--tl-accent);
	border-color: var(--tl-accent);
	color: var(--wp--preset--color--white);
}

.wc-block-components-totals-coupon__button,
.wc-block-components-panel__button {
	font-family: inherit;
}

.wc-block-cart-items,
.wc-block-cart-items th,
.wc-block-cart-items td {
	border-color: var(--tl-line);
}

.wc-block-cart__main .wc-block-cart-items__header th,
.wc-block-cart-items__header-image,
.wc-block-cart-items__header-product,
.wc-block-cart-items__header-total {
	font-size: 13px;
	font-weight: 500;
	text-transform: none;
	color: var(--tl-grey);
}

.wc-block-cart-item__image img,
.wc-block-components-order-summary-item__image img {
	border-radius: var(--tl-radius);
	background: var(--tl-soft);
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

.wc-block-components-product-name {
	font-weight: 500;
	color: var(--tl-text);
}

.wc-block-components-quantity-selector {
	border-radius: var(--tl-radius);
	border: 1px solid var(--tl-line-strong);
}

.wc-block-components-quantity-selector::after {
	display: none;
}

.wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input {
	font-family: inherit;
	font-weight: 500;
}

.wc-block-cart__sidebar,
.wc-block-checkout__sidebar {
	align-self: start;
}

.wc-block-components-totals-wrapper,
.wc-block-components-totals-item {
	border-color: var(--tl-line);
}

.wc-block-cart__totals-title,
.wc-block-components-checkout-step__title,
.wc-block-components-title.wc-block-components-title {
	font-size: 20px;
	font-weight: 600;
	letter-spacing: -0.015em;
	text-transform: none;
}

.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-size: 22px;
	font-weight: 600;
}

.wc-block-components-radio-control__option,
.wc-block-components-radio-control-accordion-option,
.wc-block-components-checkbox .wc-block-components-checkbox__mark {
	border-radius: var(--tl-radius);
}

.wc-block-components-radio-control--highlight-checked
	.wc-block-components-radio-control__option-checked {
	border-radius: var(--tl-radius);
}

.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"] {
	border-radius: 6px;
	border-color: var(--tl-line-strong);
}

.wc-block-components-notice-banner,
.woocommerce-message,
.woocommerce-error,
.woocommerce-info {
	border-radius: var(--tl-radius);
	font-family: inherit;
}

.wc-block-components-order-summary {
	font-family: inherit;
}

.wp-block-woocommerce-empty-cart-block {
	text-align: center;
}

.wc-block-checkout__form {
	min-width: 0;
}

@media (max-width: 639px) {
	.wp-block-woocommerce-cart,
	.wp-block-woocommerce-checkout {
		margin-top: 24px;
	}

	.wc-block-components-sidebar-layout {
		display: block;
	}

	.wc-block-components-main,
	.wc-block-components-sidebar {
		width: 100%;
		padding: 0;
	}
}

/* ---------- Текстовые страницы ---------- */

.tl-prose {
	margin-top: 40px;
	max-width: 720px;
}

.tl-posts {
	margin-top: 40px;
	list-style: none;
	padding: 0;
}

.tl-posts > li + li {
	margin-top: 32px;
}

.tl-search-page {
	margin-top: 32px;
}

.tl-search-page .wp-block-search__input {
	height: 56px;
	padding: 0 20px;
}

.tl-search-page .wp-block-search__button {
	height: 56px;
	margin-left: 12px;
	padding: 0 28px;
	border-radius: var(--tl-radius);
	background: var(--tl-accent);
	color: var(--wp--preset--color--white);
	border: 1px solid var(--tl-accent);
}

.tl-404 {
	padding-top: 96px;
}

.tl-404 > * {
	margin: 0;
}

@media (max-width: 639px) {
	.tl-404 {
		padding-top: 56px;
	}
}

/* Защита от горизонтального переполнения */
.wp-site-blocks,
main {
	min-width: 0;
	max-width: 100%;
}

img,
svg,
video {
	max-width: 100%;
}

/* WordPress даёт is-layout-flow отступ сверху всем детям, кроме первого.
   В сетках колонки должны стоять на одной линии, поэтому обнуляем его. */
.tl-serv,
.tl-hero__grid,
.tl-categories,
.tl-about,
.tl-footer__grid,
.tl-pdp {
	align-items: start;
}

.tl-serv > *,
.tl-hero__grid > *,
.tl-categories > *,
.tl-about > *,
.tl-footer__grid > *,
.tl-pdp > * {
	margin-block-start: 0 !important;
}

.tl-hero__grid,
.tl-about {
	align-items: center;
}


/* ---------- Окно помощника (assets/js/picker.js) ---------- */

html.tl-modal-open,
html.tl-modal-open body {
	overflow: hidden;
}

.tl-modal {
	--tl-modal-h: min(760px, calc(100dvh - 48px));
	width: min(640px, calc(100% - 32px));
	max-width: none;
	max-height: var(--tl-modal-h);
	margin: auto;
	padding: 0;
	border: 0;
	border-radius: var(--tl-radius);
	background: var(--wp--preset--color--white);
	color: var(--tl-text);
	box-shadow: 0 24px 64px rgba(22, 22, 22, 0.18);
	overflow: hidden;
	opacity: 0;
	transform: translateY(12px);
	transition: opacity 0.22s ease, transform 0.22s ease, overlay 0.22s allow-discrete, display 0.22s allow-discrete;
}

.tl-modal[open] {
	opacity: 1;
	transform: none;
}

@starting-style {
	.tl-modal[open] {
		opacity: 0;
		transform: translateY(12px);
	}
}

.tl-modal::backdrop {
	background: rgba(22, 22, 22, 0.4);
	opacity: 0;
	transition: opacity 0.22s ease, overlay 0.22s allow-discrete, display 0.22s allow-discrete;
}

.tl-modal[open]::backdrop {
	opacity: 1;
}

@starting-style {
	.tl-modal[open]::backdrop {
		opacity: 0;
	}
}

.tl-modal__panel {
	display: flex;
	flex-direction: column;
	max-height: var(--tl-modal-h);
	min-width: 0;
}

.tl-modal__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	padding: 20px 20px 16px 24px;
	border-bottom: 1px solid var(--tl-line);
}

.tl-modal__titles {
	min-width: 0;
}

.tl-modal__kicker {
	margin: 0 0 4px;
	font-size: 13px;
	color: var(--tl-grey);
}

.tl-modal__title {
	margin: 0;
	font-size: 22px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -0.02em;
	overflow-wrap: anywhere;
}

.tl-modal__close {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 1px solid var(--tl-line);
	border-radius: var(--tl-radius);
	background: var(--wp--preset--color--white);
	color: var(--tl-text);
	cursor: pointer;
	transition: border-color 0.2s;
}

.tl-modal__close:hover {
	border-color: var(--tl-line-strong);
}

.tl-modal__close svg {
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.5;
	stroke-linecap: round;
}

.tl-modal__body {
	flex: 1 1 auto;
	min-height: 0;
	padding: 24px;
	overflow-y: auto;
	overscroll-behavior: contain;
}

.tl-modal:focus {
	outline: none;
}

.tl-modal [hidden] {
	display: none !important;
}

.tl-modal__turn {
	scroll-margin-top: 24px;
}

.tl-modal__turn + .tl-modal__turn {
	margin-top: 32px;
	padding-top: 32px;
	border-top: 1px solid var(--tl-line);
}

.tl-modal__who {
	margin: 0 0 8px;
	font-size: 13px;
	color: var(--tl-grey);
}

.tl-modal__bubble {
	width: fit-content;
	max-width: 100%;
	margin: 0 0 0 auto;
	padding: 14px 18px;
	border: 1px solid var(--tl-line);
	border-radius: var(--tl-radius);
	background: var(--tl-soft);
	overflow-wrap: anywhere;
}

.tl-modal__reply {
	margin-top: 24px;
}

.tl-modal__text {
	margin: 0;
	font-size: 17px;
	line-height: 1.6;
}

.tl-modal__pending {
	margin: 0;
	color: var(--tl-grey);
}

.tl-modal__pending::before {
	content: "";
	display: inline-block;
	width: 14px;
	height: 14px;
	margin-right: 10px;
	border: 2px solid var(--tl-line-strong);
	border-top-color: var(--tl-accent);
	border-radius: 50%;
	vertical-align: -2px;
	animation: tl-spin 0.8s linear infinite;
}

@keyframes tl-spin {
	to {
		transform: rotate(360deg);
	}
}

.tl-modal__link {
	display: inline-block;
	margin-top: 12px;
	color: var(--tl-accent);
	font-weight: 500;
	border-bottom: 1px solid currentColor;
}

.tl-modal__pick {
	margin-top: 24px;
}

.tl-modal__reason {
	margin: 0 0 12px;
	font-size: 15px;
	line-height: 1.55;
	color: var(--tl-grey);
}

.tl-modal__reason strong {
	font-weight: 600;
	color: var(--tl-text);
}

.tl-modal .tl-products ul.wc-block-product-template {
	display: block !important;
	grid-template-columns: none !important;
	gap: 0 !important;
}

.tl-modal__cardwrap .tl-products {
	margin: 0;
}

.tl-modal .tl-card {
	display: grid;
	grid-template-columns: 96px minmax(0, 1fr);
	column-gap: 16px;
	align-items: start;
	height: auto;
	padding: 12px;
	border: 1px solid var(--tl-line);
	border-radius: var(--tl-radius);
	background: var(--wp--preset--color--white);
}

.tl-modal .tl-card__img {
	grid-row: 1 / span 4;
	margin: 0;
}

.tl-modal .tl-card > *:not(.tl-card__img) {
	grid-column: 2;
}

.tl-modal .tl-card .wp-block-post-title.tl-card__title {
	margin-top: 2px;
}

.tl-modal .tl-card .tl-card__bottom {
	margin-top: 8px;
	padding-top: 0;
	margin-bottom: 10px;
}

.tl-modal__form {
	flex: none;
	margin: 0;
	padding: 16px 24px 20px;
	border-top: 1px solid var(--tl-line);
	background: var(--wp--preset--color--white);
}

.tl-modal__row {
	display: flex;
	gap: 12px;
}

.tl-modal__input {
	flex: 1 1 auto;
	min-width: 0;
	height: 48px;
	padding: 0 16px;
	font-size: 16px;
}

.tl-modal__submit {
	flex: none;
	height: 48px;
	padding: 0 20px;
	border: 1px solid var(--tl-accent);
	border-radius: var(--tl-radius);
	background: var(--tl-accent);
	color: var(--wp--preset--color--white);
	font: 500 16px/1 var(--wp--preset--font-family--manrope);
	cursor: pointer;
	transition: background 0.2s, border-color 0.2s;
}

.tl-modal__submit:hover:not(:disabled) {
	background: var(--tl-accent-hover);
	border-color: var(--tl-accent-hover);
}

.tl-modal__submit:disabled,
.tl-modal__input:disabled {
	opacity: 0.5;
	cursor: default;
}

.tl-modal__note {
	margin: 0;
	font-size: 14px;
	color: var(--tl-grey);
}

.tl-reopen-wrap {
	margin: 16px 0 0;
}

.tl-picker .tl-reopen-wrap {
	text-align: center;
}

.tl-reopen {
	padding: 0 0 2px;
	border: 0;
	border-bottom: 1px solid var(--tl-line-strong);
	background: none;
	color: var(--tl-grey);
	font: 500 14px/1.4 var(--wp--preset--font-family--manrope);
	cursor: pointer;
	transition: color 0.2s, border-color 0.2s;
}

.tl-reopen:hover {
	color: var(--tl-text);
	border-color: var(--tl-text);
}

@media (max-width: 600px) {
	.tl-modal {
		--tl-modal-h: 100dvh;
		width: 100%;
		height: 100dvh;
		border-radius: 0;
		transform: translateY(100%);
	}

	.tl-modal[open] {
		transform: none;
	}

	@starting-style {
		.tl-modal[open] {
			transform: translateY(100%);
		}
	}

	.tl-modal__panel {
		height: 100dvh;
	}

	.tl-modal__head {
		padding: 16px 16px 12px 20px;
	}

	.tl-modal__body {
		padding: 20px;
	}

	.tl-modal__form {
		padding: 12px 20px calc(16px + env(safe-area-inset-bottom));
	}

	.tl-modal__row {
		flex-direction: column;
	}

	.tl-modal__submit {
		width: 100%;
	}

	.tl-modal .tl-card {
		grid-template-columns: 80px minmax(0, 1fr);
		column-gap: 12px;
		padding: 10px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tl-modal,
	.tl-modal::backdrop {
		transition: none;
		transform: none;
	}

	.tl-modal__pending::before {
		animation: none;
	}
}

/* ---------- Сообщение под кнопкой «В корзину» ---------- */

.tl-cart-note {
	margin: 12px 0 0;
	padding: 0; /* WooCommerce добавляет 0 4px всем соседним элементам блока формы */
	text-align: left;
	font-size: 14px;
	line-height: 1.5;
	color: var(--tl-grey);
}

.tl-cart-note a {
	color: var(--tl-accent);
	font-weight: 500;
	border-bottom: 1px solid currentColor;
}

.tl-cart-note--error {
	color: #9b2c2c;
}

.tl-modal .tl-card .tl-cart-note {
	grid-column: 2;
	margin-top: 0;
}

/* «В корзине ✓»: полный цвет, не приглушённое disabled-состояние. Белый на #8A5A36 даёт контраст около 5,8:1. */
.single_add_to_cart_button.tl-added:disabled,
.tl-card .wc-block-components-product-button__button.tl-added:disabled {
	opacity: 1;
	border-color: var(--tl-accent);
	background: var(--tl-accent);
	color: var(--wp--preset--color--white);
	cursor: default;
}
