/* Страницы магазина: товар, корзина, оформление заказа, личный кабинет.
 *
 * WooCommerce приносит свои стили, рассчитанные на светлый фон и синие кнопки.
 * Здесь они подчиняются тем же переменным, что и остальная площадка, — иначе
 * покупатель на полпути попадает будто на другой сайт. */

.woocommerce-page-body { padding-block: 36px; max-width: var(--wrap); }

/* ——— Сообщения ———————————————————————————————————————————————————— */

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	background: var(--surface);
	border: 1px solid var(--line);
	border-top: 3px solid var(--primary);
	border-radius: var(--radius);
	box-shadow: var(--shadow);
	color: var(--ink);
	padding: 14px 18px;
	margin-bottom: 20px;
	list-style: none;
	font-size: 14px;
}

.woocommerce-message { border-top-color: var(--ok); }
.woocommerce-error { border-top-color: var(--danger); }
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before { display: none; }

/* ——— Кнопки ———————————————————————————————————————————————————————— */

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
	background: var(--primary);
	color: var(--primary-ink);
	border-radius: 6px;
	font-family: var(--font-head);
	font-weight: 800;
	font-size: 16px;
	padding: 12px 22px;
	line-height: 1.2;
	border: none;
	text-shadow: none;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover {
	background: var(--primary);
	color: var(--primary-ink);
	opacity: .9;
}

/* Второстепенные действия — «Обновить корзину», «Вернуться в магазин» */
.woocommerce .cart .button[name="update_cart"],
.woocommerce .return-to-shop .button {
	background: transparent;
	color: var(--ink);
	border: 1px solid var(--line);
}

/* ——— Поля ввода ———————————————————————————————————————————————————— */

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-page input[type="text"],
.woocommerce-page input[type="email"],
.woocommerce-page input[type="tel"],
.woocommerce-page input[type="password"] {
	background: var(--surface);
	color: var(--ink);
	border: 1px solid var(--line);
	border-radius: 6px;
	padding: 11px 13px;
	font-family: var(--font-body);
	font-size: 14.5px;
	line-height: 1.4;
}

.woocommerce form .form-row label { font-size: 13px; color: var(--muted); margin-bottom: 5px; display: block; }

/* ——— Таблицы: корзина и состав заказа ————————————————————————————— */

.woocommerce table.shop_table {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	border-collapse: separate;
	border-spacing: 0;
	box-shadow: var(--shadow);
	font-size: 14px;
}

.woocommerce table.shop_table th {
	font-family: var(--font-head);
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: var(--muted);
	border-bottom: 1px solid var(--line);
	padding: 14px 16px;
}

.woocommerce table.shop_table td { border-top: 1px solid var(--line); padding: 14px 16px; }
.woocommerce table.shop_table .amount { font-variant-numeric: tabular-nums; }

/* ——— Оформление заказа ————————————————————————————————————————————
 *
 * Две колонки (шаблон woocommerce/checkout/form-checkout.php темы): слева
 * карточка «Ваши данные», справа закреплённый итог с оплатой и кнопкой.
 * На узком экране итог встаёт под данными. */

/* Странице нужна ширина сайта, а не колонка текста для оферты */
.woocommerce-checkout main.page-body { max-width: var(--wrap); }
.woocommerce-checkout main.page-body > h1 { margin-bottom: 24px; }

/* Сообщения и форма входа над оформлением — шириной с левую колонку */
.woocommerce-checkout .woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-checkout .woocommerce > .woocommerce-info,
.woocommerce-checkout .woocommerce > .woocommerce-message,
.woocommerce-checkout .woocommerce-notices-wrapper,
.woocommerce-checkout .woocommerce-form-login-toggle,
.woocommerce-checkout form.woocommerce-form-login { max-width: calc(100% - 408px); box-sizing: border-box; }
.woocommerce-checkout form.woocommerce-form-login {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 20px 22px;
	margin: -8px 0 20px;
}

.pedpsy-checkout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 380px;
	gap: 28px;
	align-items: start;
}
.pedpsy-checkout::before,
.pedpsy-checkout::after { content: none !important; }

.pedpsy-checkout__card {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	box-shadow: var(--shadow);
	padding: 24px 26px 10px;
}

.pedpsy-checkout h3 {
	font-family: var(--font-head);
	font-size: 18px;
	font-weight: 700;
	margin: 0 0 16px;
}

/* Поля: имя и фамилия в ряд, остальное во всю ширину */
.pedpsy-checkout .woocommerce-billing-fields__field-wrapper {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 14px;
}
.pedpsy-checkout .woocommerce-billing-fields__field-wrapper > .form-row {
	grid-column: 1 / -1;
	float: none;
	width: auto;
	margin: 0 0 16px;
	padding: 0;
}
.pedpsy-checkout .woocommerce-billing-fields__field-wrapper > .form-row-first { grid-column: 1; }
.pedpsy-checkout .woocommerce-billing-fields__field-wrapper > .form-row-last { grid-column: 2; }
.pedpsy-checkout .form-row input.input-text { width: 100%; box-sizing: border-box; }
.pedpsy-checkout .form-row input.input-text:focus {
	outline: none;
	border-color: var(--primary);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 18%, transparent);
}
.woocommerce .pedpsy-checkout .form-row label { font-size: 13.5px; color: var(--ink); font-weight: 500; }
.woocommerce .pedpsy-checkout .form-row .required { color: var(--danger); text-decoration: none; }
.woocommerce .pedpsy-checkout .form-row .optional { color: var(--muted); font-weight: 400; }
.woocommerce .pedpsy-checkout .woocommerce-invalid input.input-text { border-color: var(--danger); }
.woocommerce .pedpsy-checkout .woocommerce-account-fields { margin-bottom: 8px; }
.woocommerce .pedpsy-checkout .create-account .form-row { float: none; width: auto; margin: 0 0 16px; padding: 0; }

/* Что будет после кнопки */
.pedpsy-checkout__next {
	list-style: none;
	margin: 18px 4px 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
	font-size: 13.5px;
	color: var(--muted);
}
.pedpsy-checkout__next li { position: relative; padding-left: 24px; margin: 0; }
.pedpsy-checkout__next li::before {
	content: "";
	position: absolute; left: 0; top: .2em;
	width: 14px; height: 14px; border-radius: 50%;
	background: var(--ok-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M4 7.2 6 9.2 10 5' fill='none' stroke='%233F8C6E' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 14px no-repeat;
}

/* Итог: одна карточка — заказ, сумма, способ оплаты, согласие, кнопка */
.pedpsy-checkout__side {
	position: sticky;
	top: 20px;
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	box-shadow: var(--shadow);
	padding: 24px 22px 22px;
}

.woocommerce .pedpsy-checkout table.shop_table {
	border: 0;
	box-shadow: none;
	border-radius: 0;
	margin: 0 0 18px;
	width: 100%;
}
.pedpsy-checkout table.shop_table thead { display: none; }
.woocommerce .pedpsy-checkout table.shop_table td,
.woocommerce .pedpsy-checkout table.shop_table th { padding: 12px 0; border: 0; vertical-align: top; }
.woocommerce .pedpsy-checkout table.shop_table tbody td { border-bottom: 1px solid var(--line); padding: 0 0 14px; }
.pedpsy-checkout table.shop_table .product-total { text-align: right; white-space: nowrap; font-size: 15px; }
.pedpsy-co-item { display: block; font-size: 15px; font-weight: 500; line-height: 1.35; }
.pedpsy-co-meta { display: block; margin-top: 4px; font-size: 13px; color: var(--muted); }

/* Подытог равен итогу, пока нет скидки, — второй раз ту же цифру не показываем */
.pedpsy-checkout table.shop_table:not(:has(.cart-discount, .fee)) .cart-subtotal { display: none; }
.woocommerce .pedpsy-checkout table.shop_table tfoot th {
	font-family: var(--font-body);
	text-transform: none;
	letter-spacing: 0;
	font-size: 14px;
	color: var(--muted);
	font-weight: 400;
	text-align: left;
}
.woocommerce .pedpsy-checkout table.shop_table tfoot td { text-align: right; }
.woocommerce .pedpsy-checkout table.shop_table .order-total th { color: var(--ink); font-size: 16px; font-weight: 600; padding-top: 16px; }
.woocommerce .pedpsy-checkout table.shop_table .order-total td { padding-top: 12px; }
.pedpsy-checkout .order-total .amount { font-family: var(--font-head); font-size: 26px; font-weight: 700; color: var(--ink); }

/* Остаток прежнего пакета — под суммой, как приятная прибавка */
.woocommerce .pedpsy-checkout table.shop_table tr.pedpsy-carry td {
	text-align: left;
	padding: 10px 12px;
	background: var(--ok-soft);
	color: var(--ink);
	border-radius: 8px;
	font-size: 13.5px;
	font-weight: 400;
	line-height: 1.5;
}
.woocommerce .pedpsy-checkout table.shop_table tr.pedpsy-carry + tr td,
.pedpsy-checkout table.shop_table tfoot tr:last-child td { padding-bottom: 0; }

/* Способы оплаты — карточки-переключатели */
.woocommerce-checkout .pedpsy-checkout #payment {
	background: none;
	border: 0;
	box-shadow: none;
	border-radius: 0;
}
.woocommerce-checkout .pedpsy-checkout #payment ul.payment_methods {
	border: 0;
	padding: 0;
	margin: 0 0 16px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.woocommerce-checkout .pedpsy-checkout #payment ul.payment_methods::before { content: "Способ оплаты"; display: block; font-size: 13.5px; font-weight: 500; margin-bottom: 2px; }
.woocommerce-checkout .pedpsy-checkout #payment ul.payment_methods::after { content: none; }
.woocommerce-checkout .pedpsy-checkout #payment ul.payment_methods li {
	margin: 0;
	padding: 12px 14px;
	border: 1px solid var(--line);
	border-radius: 8px;
	background: var(--surface);
	cursor: pointer;
	transition: border-color .12s ease, box-shadow .12s ease;
}
.woocommerce-checkout .pedpsy-checkout #payment ul.payment_methods li:hover { border-color: var(--muted); }
.woocommerce-checkout .pedpsy-checkout #payment ul.payment_methods li:has(input:checked) {
	border-color: var(--primary);
	box-shadow: 0 0 0 1px var(--primary);
}
/* Если способ один, выбирать нечего: без рамки-переключателя */
.woocommerce-checkout .pedpsy-checkout #payment ul.payment_methods li:only-child { cursor: default; }
.woocommerce-checkout .pedpsy-checkout #payment ul.payment_methods li input.input-radio { margin: 0 8px 0 0; accent-color: var(--primary); vertical-align: -1px; }
.woocommerce-checkout .pedpsy-checkout #payment ul.payment_methods label { display: inline; cursor: pointer; font-size: 14.5px; }
.woocommerce-checkout .pedpsy-checkout #payment ul.payment_methods label img { max-height: 22px; width: auto; vertical-align: middle; margin-left: 6px; border-radius: 4px; }
.woocommerce-checkout .pedpsy-checkout #payment div.payment_box {
	background: none;
	padding: 4px 0 0 24px;
	margin: 0;
	font-size: 13px;
	line-height: 1.45;
	color: var(--muted);
}
.woocommerce-checkout .pedpsy-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout .pedpsy-checkout #payment div.payment_box p { margin: 0; }

.woocommerce-checkout .pedpsy-checkout #payment div.form-row.place-order { padding: 0; margin: 0; }
.pedpsy-checkout .woocommerce-privacy-policy-text p { font-size: 12.5px; line-height: 1.5; color: var(--muted); margin: 0 0 10px; }
.pedpsy-checkout .woocommerce-terms-and-conditions-wrapper .form-row { margin: 0 0 16px; padding: 0; }
.pedpsy-checkout .woocommerce-terms-and-conditions-wrapper label { position: relative; display: block; padding-left: 26px; font-size: 13.5px; color: var(--ink); line-height: 1.45; cursor: pointer; }
.pedpsy-checkout .woocommerce-terms-and-conditions-wrapper input[type="checkbox"] { position: absolute; left: 0; top: 1px; margin: 0; accent-color: var(--primary); width: 16px; height: 16px; }
.pedpsy-checkout .woocommerce-terms-and-conditions-wrapper abbr.required { color: var(--danger); text-decoration: none; }
.woocommerce .pedpsy-checkout #place_order {
	float: none;
	width: 100%;
	padding: 15px 22px;
	font-size: 17px;
}

@media (max-width: 900px) {
	.pedpsy-checkout { grid-template-columns: 1fr; }
	.pedpsy-checkout__side { position: static; }
	.woocommerce-checkout .woocommerce > .woocommerce-info,
	.woocommerce-checkout .woocommerce > .woocommerce-message,
	.woocommerce-checkout .woocommerce-notices-wrapper,
	.woocommerce-checkout .woocommerce-form-login-toggle,
	.woocommerce-checkout form.woocommerce-form-login { max-width: none; }
}
@media (max-width: 480px) {
	.pedpsy-checkout__card { padding: 20px 16px 6px; }
	.pedpsy-checkout__side { padding: 20px 16px; }
	.pedpsy-checkout .woocommerce-billing-fields__field-wrapper { grid-template-columns: 1fr; }
	.pedpsy-checkout .woocommerce-billing-fields__field-wrapper > .form-row-first,
	.pedpsy-checkout .woocommerce-billing-fields__field-wrapper > .form-row-last { grid-column: 1; }
}

/* ——— Корзина ——————————————————————————————————————————————————————
 *
 * Шаблон woocommerce/cart/cart.php темы: слева карточка товаров, справа итог.
 * Та же сетка и карточки, что у оформления заказа. */

.woocommerce-cart main.page-body { max-width: var(--wrap); }
.woocommerce-cart main.page-body > h1 { margin-bottom: 24px; }
.woocommerce-cart .woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-cart .woocommerce-notices-wrapper { max-width: calc(100% - 408px); }

.pedpsy-cart {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 380px;
	gap: 28px;
	align-items: start;
}

.pedpsy-cart__items,
.pedpsy-cart__side {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	box-shadow: var(--shadow);
}
.pedpsy-cart__items { padding: 6px 26px 18px; }

.pedpsy-cart__item {
	display: grid;
	grid-template-columns: 76px minmax(0, 1fr) auto;
	gap: 18px;
	align-items: start;
	padding: 20px 0;
	border-bottom: 1px solid var(--line);
}
.pedpsy-cart__thumb img {
	display: block;
	width: 76px;
	height: 76px;
	object-fit: cover;
	border-radius: 8px;
	border: 1px solid var(--line);
	background: var(--bg);
}
.pedpsy-cart__info h2 { font-family: var(--font-head); font-size: 17px; font-weight: 600; line-height: 1.35; margin: 2px 0 0; }
.pedpsy-cart__info h2 a { color: var(--ink); text-decoration: none; }
.pedpsy-cart__info h2 a:hover { text-decoration: underline; }
.pedpsy-cart__meta { margin: 4px 0 0; font-size: 13.5px; color: var(--muted); }
.pedpsy-cart__remove {
	display: inline-block;
	margin-top: 10px;
	font-size: 13px;
	color: var(--muted);
	text-decoration: underline;
	text-underline-offset: 2px;
}
.pedpsy-cart__remove:hover,
.pedpsy-cart__remove:focus-visible { color: var(--danger); }
.pedpsy-cart__price { text-align: right; white-space: nowrap; font-size: 16px; font-weight: 500; padding-top: 2px; }
.pedpsy-cart__price small { display: block; font-size: 12.5px; color: var(--muted); font-weight: 400; }

.pedpsy-cart__back { margin: 16px 0 0; font-size: 14px; }
.pedpsy-cart__back a { color: var(--muted); text-decoration: none; }
.pedpsy-cart__back a:hover { color: var(--ink); }

.pedpsy-cart__side { position: sticky; top: 20px; padding: 24px 22px 22px; }
.pedpsy-cart__side h2 { font-family: var(--font-head); font-size: 18px; font-weight: 700; margin: 0 0 14px; }
.pedpsy-cart__row { display: flex; justify-content: space-between; gap: 12px; font-size: 14px; color: var(--muted); margin: 0 0 10px; }
.pedpsy-cart__total {
	display: flex; justify-content: space-between; align-items: baseline; gap: 12px;
	margin: 0 0 16px; padding-top: 14px; border-top: 1px solid var(--line);
	font-size: 16px; font-weight: 600;
}
.pedpsy-cart__total .amount { font-family: var(--font-head); font-size: 26px; font-weight: 700; }
.pedpsy-cart__carry {
	margin: 0 0 16px; padding: 10px 12px;
	background: var(--ok-soft); border-radius: 8px;
	font-size: 13.5px; line-height: 1.5;
}
.pedpsy-cart__go { width: 100%; box-sizing: border-box; padding: 15px 22px; font-size: 17px; }
.pedpsy-cart__pay { margin: 12px 0 0; font-size: 12.5px; line-height: 1.5; color: var(--muted); text-align: center; }

.pedpsy-cart-empty {
	max-width: 560px;
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	box-shadow: var(--shadow);
	padding: 36px 32px;
	text-align: center;
}
.pedpsy-cart-empty svg { color: var(--muted); margin-bottom: 10px; }
.pedpsy-cart-empty h2 { font-family: var(--font-head); font-size: 21px; margin: 0 0 8px; }
.pedpsy-cart-empty p { margin: 0 0 20px; color: var(--muted); }
.pedpsy-cart-empty__actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }

@media (max-width: 900px) {
	.pedpsy-cart { grid-template-columns: 1fr; }
	.pedpsy-cart__side { position: static; }
	.woocommerce-cart .woocommerce-notices-wrapper { max-width: none; }
}
@media (max-width: 480px) {
	.pedpsy-cart__items { padding: 2px 16px 14px; }
	.pedpsy-cart__side { padding: 20px 16px; }
	.pedpsy-cart__item { grid-template-columns: 56px minmax(0, 1fr) auto; gap: 12px; }
	.pedpsy-cart__thumb img { width: 56px; height: 56px; }
	.pedpsy-cart__info h2 { font-size: 16px; }
}

/* ——— Личный кабинет ———————————————————————————————————————————————
 *
 * Меню слева с иконками, разделы справа: карточки на белом, как на витрине.
 * На телефоне меню становится рядом вкладок над содержимым. Разметку дают
 * шаблоны плагина pedpsy-tools (templates/myaccount), классы — pedpsy-cab-*. */

/* Заголовок страницы темы для вошедшего не нужен: у каждого раздела свой. */
.pedpsy-cabinet .page-body > h1,
.pedpsy-cabinet .woocommerce-page-body > h1 { display: none; }

/* Страницы темы узкие ради длинного текста; кабинету нужна вся ширина сайта. */
.pedpsy-cabinet main.page-body { max-width: none; }

.pedpsy-cabinet .woocommerce { display: grid; grid-template-columns: 232px minmax(0, 1fr); gap: 40px; align-items: start; }
.pedpsy-cabinet .woocommerce::before,
.pedpsy-cabinet .woocommerce::after { content: none; }
.pedpsy-cabinet .woocommerce-MyAccount-navigation,
.pedpsy-cabinet .woocommerce-MyAccount-content { width: auto; float: none; }
.pedpsy-cabinet .woocommerce-MyAccount-content { display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.pedpsy-cabinet .woocommerce-MyAccount-content > * { margin-top: 0; margin-bottom: 0; }
.pedpsy-cabinet .woocommerce-notices-wrapper:empty { display: none; }

.pedpsy-cab-nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.pedpsy-cab-nav li a {
	display: flex; align-items: center; gap: 12px;
	padding: 11px 14px; border-radius: 8px;
	color: var(--ink); text-decoration: none; font-size: 14.5px;
}
.pedpsy-cab-nav li a:hover { background: var(--surface); }
.pedpsy-cab-nav li.is-active a { background: var(--primary); color: var(--primary-ink); font-weight: 500; }
.pedpsy-cab-nav li.pedpsy-cab-nav__aux a { color: var(--muted); }
.pedpsy-cab-nav li.pedpsy-cab-nav__aux.is-active a { color: var(--primary-ink); }
.pedpsy-cab-nav li.pedpsy-cab-nav__aux:first-of-type,
.pedpsy-cab-nav li.woocommerce-MyAccount-navigation-link--idei { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); }
.pedpsy-cab-nav svg { flex: none; }

.pedpsy-cab-title { font-family: var(--font-head); font-size: 32px; font-weight: 700; letter-spacing: -0.01em; margin: 0; }
.pedpsy-cab-hello .pedpsy-cab-title { margin-bottom: 6px; }
.pedpsy-cab-hello p { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.pedpsy-cab-muted { color: var(--muted); font-size: 14.5px; }
/* История замеров: на телефоне таблица прокручивается внутри карточки, а не всей страницей */
.pedpsy-cab-card:has(> .pedpsy-cab-table) { overflow-x: auto; }
.pedpsy-cab-table { width: 100%; border-collapse: collapse; font-size: 14.5px; font-variant-numeric: tabular-nums; }
.pedpsy-cab-table th { text-align: left; font-weight: 600; color: var(--muted); padding: 8px 12px 8px 0; border-bottom: 1px solid var(--line); white-space: nowrap; }
.pedpsy-cab-table td { padding: 10px 12px 10px 0; border-bottom: 1px solid var(--line); white-space: nowrap; }
.pedpsy-cab-table tr:last-child td { border-bottom: 0; }
.pedpsy-cab-note { color: var(--muted); font-size: 13.5px; line-height: 1.55; }
.pedpsy-cab-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.pedpsy-cab-card {
	background: var(--surface); border: 1px solid var(--line); border-radius: 12px;
	padding: 24px 28px; display: flex; flex-direction: column; gap: 14px;
}
.pedpsy-cab-card h2 { font-family: var(--font-head); font-size: 18px; font-weight: 700; margin: 0; }
.pedpsy-cab-card p { margin: 0; }
.pedpsy-cab-card--main { padding: 28px 32px; gap: 22px; box-shadow: var(--shadow); }
.pedpsy-cab-card--main h2 { font-size: 24px; }
.pedpsy-cab-card__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 24px; }
.pedpsy-cab-card__head p { margin-top: 6px; }
.pedpsy-cab-card__bar { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.pedpsy-cab-card__bar a { font-size: 14px; }
.pedpsy-cab-eyebrow { font-size: 13px; color: var(--muted); font-weight: 500; text-transform: uppercase; letter-spacing: .06em; margin-bottom: 6px; }
.pedpsy-cab-tag { flex: none; padding: 5px 12px; border-radius: 999px; border: 1px solid var(--line); font-family: var(--font-head); font-size: 13px; font-weight: 600; }

.pedpsy-cab-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.pedpsy-cab-stats > div { background: var(--surface); padding: 16px 20px; display: flex; flex-direction: column; gap: 2px; }
.pedpsy-cab-stats b { font-family: var(--font-head); font-size: 28px; font-weight: 700; font-variant-numeric: tabular-nums; }
.pedpsy-cab-stats small { font-size: 16px; color: var(--muted); font-weight: 600; }
.pedpsy-cab-stats span { font-size: 13.5px; color: var(--muted); }
.pedpsy-cab-progress { height: 8px; border-radius: 999px; background: var(--line); overflow: hidden; }
.pedpsy-cab-progress span { display: block; height: 100%; background: var(--ok); border-radius: 999px; }

.pedpsy-cab-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 0; }
.pedpsy-cab-btn,
.woocommerce .pedpsy-cab-btn {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 13px 24px; border-radius: 8px; border: 1px solid var(--primary);
	background: var(--primary); color: var(--primary-ink); text-decoration: none;
	font-family: var(--font-head); font-weight: 600; font-size: 15px; line-height: 1.2; cursor: pointer;
}
.pedpsy-cab-btn:hover, .pedpsy-cab-btn:focus-visible { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); }
.pedpsy-cab-btn--ghost { background: transparent; color: var(--primary); }
.pedpsy-cab-btn--small { padding: 8px 14px; font-size: 14px; }
.pedpsy-cab-link { margin-left: 8px; font-size: 14.5px; }

.pedpsy-cab-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.pedpsy-cab-row { display: flex; align-items: center; gap: 14px; padding-top: 12px; border-top: 1px solid var(--line); }
.pedpsy-cab-row__main { flex-grow: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.pedpsy-cab-row__main b { font-size: 14.5px; font-weight: 500; }
.pedpsy-cab-row__main b a { color: inherit; }
.pedpsy-cab-row__main small { font-size: 13px; color: var(--muted); }
.pedpsy-cab-row > a { font-size: 14px; font-weight: 500; }
.pedpsy-cab-file { flex: none; width: 38px; height: 38px; border-radius: 8px; background: var(--bg); color: var(--muted); display: flex; align-items: center; justify-content: center; font-size: 10.5px; font-weight: 600; }

.pedpsy-cab-pill { flex: none; display: inline-flex; align-items: center; gap: 5px; padding: 4px 10px; border-radius: 999px; font-size: 13px; font-weight: 500; }
.pedpsy-cab-pill--ok { background: var(--ok-soft); color: var(--ok); }
.pedpsy-cab-pill--wait { background: color-mix(in srgb, var(--accent) 18%, var(--surface)); color: color-mix(in srgb, var(--accent) 55%, var(--ink)); }
.pedpsy-cab-pill--muted { background: var(--bg); color: var(--muted); }

.pedpsy-cab-help { display: flex; align-items: center; gap: 14px; padding: 16px 20px; border-radius: 10px; background: var(--surface); border: 1px solid var(--line); font-size: 14.5px; color: var(--ink); }
.pedpsy-cab-help svg { flex: none; color: var(--primary); }
.pedpsy-cab-links { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 8px; }

.pedpsy-cab-orders { padding: 0; gap: 0; overflow: hidden; }
.pedpsy-cab-orders__head,
.pedpsy-cab-orders__row { display: grid; grid-template-columns: 90px 100px minmax(0, 1fr) 100px 150px 120px; gap: 16px; align-items: center; padding: 14px 24px; }
.pedpsy-cab-orders__head { font-size: 13px; color: var(--muted); font-weight: 500; background: var(--bg); }
.pedpsy-cab-orders__row { border-top: 1px solid var(--line); font-size: 14.5px; }
.pedpsy-cab-orders__num { font-family: var(--font-head); font-weight: 600; }
.pedpsy-cab-orders__sum { font-weight: 500; font-variant-numeric: tabular-nums; }
.pedpsy-cab-orders__act { text-align: right; }
.pedpsy-cab-pages { display: flex; gap: 16px; }

.pedpsy-cab-form { display: flex; flex-direction: column; gap: 24px; max-width: 720px; }
/* Столбиком только абзацы с полем: в текстовых абзацах есть ссылки посреди строки. */
.pedpsy-cab-form p:has(> label) { display: flex; flex-direction: column; gap: 6px; }
.pedpsy-cab-form label { font-size: 13.5px; color: var(--muted); font-weight: 500; }
.pedpsy-cab-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.pedpsy-cab-inline { display: flex; align-items: center; gap: 12px; }
.pedpsy-cab-inline input { flex-grow: 1; }
.pedpsy-cab-form .pedpsy-cab-actions { flex-direction: row; }

/* ——— Идеи и пожелания (feedback.php) ——— */
.pedpsy-cab-nav__badge { margin-left: auto; font-size: 11px; font-weight: 600; padding: 1px 7px; border-radius: 999px; background: var(--accent); color: var(--accent-ink); }
.pedpsy-cab-card .pedpsy-cab-lead { margin-top: 6px; max-width: 64ch; }
.pedpsy-cab-idea-form { display: flex; flex-direction: column; gap: 16px; }
.pedpsy-cab-idea-form p { margin: 0; }
.pedpsy-cab-chips { display: flex; flex-wrap: wrap; gap: 8px; border: 0; padding: 0; margin: 0; min-width: 0; }
.pedpsy-cab-chips legend { font-size: 13.5px; color: var(--muted); font-weight: 500; padding: 0; margin-bottom: 8px; }
.pedpsy-cab-chip { position: relative; }
.pedpsy-cab-chip input { position: absolute; opacity: 0; pointer-events: none; }
.pedpsy-cab-chip span { display: inline-flex; padding: 8px 14px; border-radius: 999px; border: 1px solid var(--line); background: var(--surface); font-size: 14px; cursor: pointer; }
.pedpsy-cab-chip input:checked + span { background: var(--primary); border-color: var(--primary); color: var(--primary-ink); }
.pedpsy-cab-chip input:focus-visible + span { outline: 2px solid var(--accent); outline-offset: 2px; }
.pedpsy-cab-field { display: flex; flex-direction: column; gap: 6px; }
.pedpsy-cab-field label { font-size: 13.5px; color: var(--muted); font-weight: 500; }
.pedpsy-cab-idea-form textarea,
.pedpsy-cab-invite textarea { width: 100%; font: inherit; font-size: 15px; line-height: 1.5; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: 8px; padding: 11px 13px; resize: vertical; }
.pedpsy-cab-privacy { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border-radius: 8px; background: var(--bg); font-size: 13.5px; color: var(--muted); }
.pedpsy-cab-privacy svg { flex: none; margin-top: 2px; color: var(--primary); }
.pedpsy-cab-check { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; }
.pedpsy-cab-check input { margin-top: 3px; accent-color: var(--primary); }
.pedpsy-cab-sent,
.pedpsy-cab-error { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border-radius: 10px; font-size: 14.5px; }
.pedpsy-cab-sent { background: var(--ok-soft); }
.pedpsy-cab-sent svg { flex: none; color: var(--ok); }
.pedpsy-cab-error { background: color-mix(in srgb, var(--danger) 12%, var(--surface)); }
.pedpsy-cab-msg { display: flex; flex-direction: column; gap: 8px; padding-top: 14px; border-top: 1px solid var(--line); }
.pedpsy-cab-msg:first-of-type { padding-top: 0; border-top: 0; }
.pedpsy-cab-msg__head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 13px; color: var(--muted); }
.pedpsy-cab-msg__head b { color: var(--ink); font-weight: 600; }
.pedpsy-cab-msg p { font-size: 14.5px; overflow-wrap: anywhere; }
.pedpsy-cab-msg__reply { padding: 10px 14px; border-radius: 8px; background: var(--bg); font-size: 14px; overflow-wrap: anywhere; }
.pedpsy-cab-msg__reply small { display: block; font-size: 12.5px; font-weight: 600; color: var(--muted); margin-bottom: 2px; }
.pedpsy-cab-pill--new { background: var(--bg); color: var(--muted); border: 1px solid var(--line); }
.pedpsy-cab-pill--plan { background: color-mix(in srgb, var(--primary) 12%, var(--surface)); color: var(--primary); }
.pedpsy-cab-done { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.pedpsy-cab-done li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; font-size: 14.5px; }
.pedpsy-cab-done svg { color: var(--ok); margin-top: 3px; }
.pedpsy-cab-done small { display: block; color: var(--muted); font-size: 13px; }
.pedpsy-cab-invite { border-color: color-mix(in srgb, var(--accent) 55%, var(--line)); }
.pedpsy-cab-invite__head { display: flex; gap: 14px; align-items: flex-start; }
.pedpsy-cab-invite__head p { margin-top: 4px; }
.pedpsy-cab-invite__icon { flex: none; width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; background: color-mix(in srgb, var(--accent) 22%, var(--surface)); color: color-mix(in srgb, var(--accent) 55%, var(--ink)); }
.pedpsy-cab-invite__row { display: flex; gap: 10px; align-items: flex-end; }
.pedpsy-cab-invite__row textarea { flex: 1; min-height: 52px; }
.pedpsy-cab-invite__link, .pedpsy-cab-invite__news { font-size: 14px; }

@media (max-width: 899px) {
	.pedpsy-cab-invite__row { flex-direction: column; align-items: stretch; }
	.pedpsy-cab-nav__badge { margin-left: 6px; }
	.pedpsy-cabinet .woocommerce { display: block; }
	.pedpsy-cab-nav { margin: 0 -16px 20px; padding: 0 16px 12px; border-bottom: 1px solid var(--line); overflow-x: auto; }
	.pedpsy-cab-nav ul { flex-direction: row; gap: 8px; width: max-content; }
	.pedpsy-cab-nav li a { padding: 9px 14px; border-radius: 999px; border: 1px solid var(--line); background: var(--surface); font-size: 14px; }
	.pedpsy-cab-nav li a svg { display: none; }
	.pedpsy-cab-nav li.pedpsy-cab-nav__aux:first-of-type,
	.pedpsy-cab-nav li.woocommerce-MyAccount-navigation-link--idei { margin-top: 0; padding-top: 0; border-top: 0; }
	.pedpsy-cab-title { font-size: 26px; }
	.pedpsy-cab-card, .pedpsy-cab-card--main { padding: 20px; }
	.pedpsy-cab-card__head { flex-direction: column; gap: 10px; }
	.pedpsy-cab-stats { grid-template-columns: minmax(0, 1fr); }
	.pedpsy-cab-stats > div { flex-direction: row; align-items: baseline; justify-content: space-between; }
	.pedpsy-cab-stats b { font-size: 22px; }
	.pedpsy-cab-actions .pedpsy-cab-btn { width: 100%; justify-content: center; }
	.pedpsy-cab-link { margin-left: 0; }
	.pedpsy-cab-grid, .pedpsy-cab-fields { grid-template-columns: minmax(0, 1fr); }
	.pedpsy-cab-orders__head { display: none; }
	.pedpsy-cab-orders__row { grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; padding: 14px 20px; }
	.pedpsy-cab-orders__row > span:nth-child(3) { grid-column: 1 / -1; }
	.pedpsy-cab-orders__act { text-align: left; grid-column: 1 / -1; }
	.pedpsy-cab-inline { flex-direction: column; align-items: stretch; }
}

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

.woocommerce div.product .product_title { font-family: var(--font-head); }
.woocommerce div.product p.price { font-family: var(--font-head); font-size: 26px; font-weight: 600; color: var(--ink); font-variant-numeric: tabular-nums; }
.woocommerce div.product .woocommerce-tabs ul.tabs { border-bottom: 1px solid var(--line); padding-left: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { background: transparent; border: none; border-radius: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { color: var(--muted); font-family: var(--font-head); font-weight: 500; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--ink); }

/* ——— Корзина: миниатюра и лишние столбцы ——————————————————————————
 *
 * Миниатюра показывается: у каждого тарифа своя иллюстрация с числом
 * обработок, и в корзине сразу видно, что лежит — 1, 10 или 100.
 * Столбец количества скрыт: тариф берут один раз, а не штуками. */

.woocommerce table.shop_table td.product-thumbnail { width: 76px; padding-right: 0; }
.woocommerce table.shop_table td.product-thumbnail a { display: block; line-height: 0; }
.woocommerce table.shop_table td.product-thumbnail img {
	width: 60px;
	height: 60px;
	max-width: none;
	object-fit: cover;
	border: 1px solid var(--line);
	border-radius: 8px;
	background: var(--surface);
}

/* Заголовок столбца картинки пустой — ему не нужна подпись */
.woocommerce table.shop_table th.product-thumbnail { width: 76px; }

/* На телефоне WooCommerce прячет миниатюру целиком. Здесь она нужнее, чем
   на компьютере: на узком экране таблица превращается в столбик строк,
   и картинка — самый быстрый способ понять, какой тариф в корзине.
   Префикс body нужен, чтобы перебить правило WooCommerce по весу. */
@media (max-width: 768px) {
	body .woocommerce table.shop_table_responsive tr td.product-thumbnail {
		display: block;
		width: auto;
		padding: 16px 16px 4px;
		text-align: left;
	}
	body .woocommerce table.shop_table_responsive tr td.product-thumbnail::before { display: none; }
}

.woocommerce table.shop_table .product-quantity,
.woocommerce table.shop_table th.product-quantity { display: none; }

.woocommerce table.shop_table td.product-remove { width: 40px; }
.woocommerce table.shop_table td.product-remove a.remove {
	color: var(--muted) !important;
	font-size: 20px;
	line-height: 1;
}
.woocommerce table.shop_table td.product-remove a.remove:hover {
	color: var(--danger) !important;
	background: transparent;
}

/* Итог корзины — той же карточкой, что и остальное */
.woocommerce .cart_totals h2 { font-family: var(--font-head); font-size: 18px; }

/* Подсказка под полем оформления заказа. WooCommerce рисует её синей всплывающей
   плашкой со стрелкой, которая выезжает только при фокусе и наезжает на поле ниже.
   Здесь это обычная приглушённая строка, видимая всегда: !important перебивает
   display:none, который скрипт WooCommerce ставит при потере фокуса. */
.woocommerce form .form-row .woocommerce-input-wrapper .description {
	display: block !important;
	position: static;
	background: none;
	color: var(--muted);
	font-size: 13px;
	line-height: 1.45;
	padding: 0;
	margin: 6px 0 0;
	border-radius: 0;
}
.woocommerce form .form-row .woocommerce-input-wrapper .description::before { content: none; }

/* Под почтой — не мелкая подпись, а предупреждение: ошибка в адресе закрывает
   доступ к покупке. Та же охряная плашка, что «честная оговорка» на карточке
   материала (.material-note), — заметно, но в общем оформлении. */
.woocommerce form #billing_email_field .woocommerce-input-wrapper .description {
	background: color-mix(in srgb, var(--accent) 16%, var(--surface));
	border-left: 3px solid var(--accent);
	border-radius: 6px;
	color: var(--ink);
	font-size: 14px;
	line-height: 1.5;
	padding: 10px 14px;
	margin-top: 8px;
}
.woocommerce form #billing_email_field .description strong { font-weight: 600; }
