/**
 * Components - Переиспользуемые компоненты темы АртроКлиника
 *
 * Общие стили для кнопок, заголовков, форм и других повторяющихся элементов.
 * Использует переменные из variables.css
 */

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

/* Базовые стили кнопки */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-primary);
	font-weight: 500;
	text-decoration: none;
	border-radius: var(--radius-pill);
	transition: all var(--transition-base);
	cursor: pointer;
	border: 2px solid transparent;
}

/* Основная кнопка (оранжевая) */
.btn-primary {
	padding: 12px 24px;
	background-color: var(--color-accent);
	color: var(--color-white);
	border-color: var(--color-accent);
	font-size: var(--font-size-xl);
	line-height: var(--line-height-base);
}

.btn-primary:hover {
	background-color: var(--color-accent-hover);
	border-color: var(--color-accent-hover);
	transform: translateY(-2px);
	box-shadow: 0 4px 12px rgba(var(--color-accent-rgb), 0.3);
}

/* Кнопка с обводкой (белая на синем фоне) */
.btn-outline {
	padding: 10px 16px;
	background-color: transparent;
	color: var(--color-white);
	border-color: var(--color-white);
	font-size: var(--font-size-md);
}

.btn-outline:hover {
	background-color: rgba(255, 255, 255, 0.1);
}

/* Кнопка с обводкой (синяя на белом фоне) */
.btn-outline-primary {
	padding: 10px 20px;
	background-color: transparent;
	color: var(--color-primary);
	border-color: var(--color-primary);
	font-size: var(--font-size-sm);
	font-weight: 700;
	text-transform: uppercase;
}

.btn-outline-primary:hover {
	background-color: rgba(var(--color-primary-rgb), 0.1);
}

.btn-outline-primary.active {
	background-color: var(--color-primary);
	color: var(--color-white);
}

/* Кнопка-ссылка */
.btn-link {
	padding: 0;
	background: none;
	border: none;
	color: rgba(255, 255, 255, 0.7);
	font-size: var(--font-size-xl);
}

.btn-link:hover {
	color: var(--color-white);
}

/* Размеры кнопок */
.btn-sm {
	padding: 8px 16px;
	font-size: var(--font-size-sm);
}

.btn-lg {
	padding: 14px 28px;
	font-size: var(--font-size-xl);
}

/* ============================================
   Заголовки секций
   ============================================ */

.section-title {
	font-family: var(--font-heading);
	font-size: var(--font-size-4xl);
	font-weight: 400;
	line-height: var(--line-height-tight);
	color: var(--color-primary);
	text-transform: uppercase;
	margin: 0;
}

.section-title--white {
	color: var(--color-white);
}

/* ============================================
   Формы
   ============================================ */

/* Контейнер поля */
.form-field {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

/* Метка */
.form-label {
	font-family: var(--font-primary);
	font-size: var(--font-size-base);
	font-weight: 500;
	color: var(--color-gray);
	line-height: var(--line-height-relaxed);
}

/* Поле ввода */
.form-input {
	width: 100%;
	padding: 14px 20px;
	background-color: var(--color-white);
	border: 1px solid var(--color-white);
	border-radius: var(--radius-pill);
	font-family: var(--font-primary);
	font-size: var(--font-size-base);
	font-weight: 500;
	color: var(--color-text-dark);
	outline: none;
	transition: box-shadow var(--transition-base), border-color var(--transition-base);
}

.form-input:focus {
	border-color: var(--color-accent);
	box-shadow: 0 0 0 3px rgba(var(--color-accent-rgb), 0.3);
}

/* Кнопка отправки формы */
.form-submit {
	width: 100%;
	padding: 12px 24px;
	background-color: var(--color-accent);
	border: 2px solid var(--color-accent);
	border-radius: var(--radius-pill);
	font-family: var(--font-primary);
	font-size: var(--font-size-xl);
	font-weight: 500;
	color: var(--color-white);
	cursor: pointer;
	transition: all var(--transition-base);
	line-height: var(--line-height-base);
}

.form-submit:hover {
	background-color: var(--color-accent-hover);
	border-color: var(--color-accent-hover);
	transform: translateY(-2px);
}

/* Чекбокс согласия */
.form-consent {
	display: flex;
	align-items: flex-start;
	gap: 12px;
}

.form-consent label {
	font-family: var(--font-primary);
	font-size: var(--font-size-base);
	font-weight: 500;
	color: var(--color-white);
	line-height: var(--line-height-relaxed);
	cursor: pointer;
}

.form-consent input[type="checkbox"] {
	width: 20px;
	height: 20px;
	min-width: 20px;
	margin: 0;
	margin-top: 2px;
	cursor: pointer;
	accent-color: var(--color-accent);
	border-radius: 4px;
	border: 1px solid var(--color-accent);
	background: var(--color-white);
}

/* Сообщения об ошибках */
.form-error {
	font-size: var(--font-size-xs);
	color: var(--color-error);
	margin-top: 4px;
}

/* ============================================
   Карточки
   ============================================ */

.card {
	background-color: var(--color-white);
	border-radius: var(--radius-md);
	overflow: hidden;
}

.card--gray {
	background-color: var(--color-bg-card);
}

.card--light {
	background-color: var(--color-bg-light);
}

/* ============================================
   Ссылки
   ============================================ */

.link-accent {
	color: var(--color-accent);
	text-decoration: none;
	transition: opacity var(--transition-base);
}

.link-accent:hover {
	opacity: 0.8;
}

.link-underline {
	text-decoration: underline;
	text-underline-offset: 4px;
}

.link-underline:hover {
	opacity: 0.7;
}

/* ============================================
   Иконки/Кнопки действий
   ============================================ */

.action-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	background-color: var(--color-white);
	border: 2px solid var(--color-gray);
	border-radius: 50%;
	cursor: pointer;
	transition: all var(--transition-base);
}

.action-btn:hover {
	border-color: var(--color-primary);
}

.action-btn--primary {
	border-color: var(--color-primary);
}

.action-btn--primary:hover {
	border-color: var(--color-accent);
	background-color: rgba(var(--color-accent-rgb), 0.1);
}

/* ============================================
   Навигационные стрелки слайдеров
   ============================================ */

.slider-nav-btn {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: transparent;
	border: 2px solid rgba(255, 255, 255, 0.3);
	color: var(--color-white);
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all var(--transition-base);
}

.slider-nav-btn:hover {
	background: rgba(255, 255, 255, 0.1);
	border-color: rgba(255, 255, 255, 0.5);
}

.slider-nav-btn svg {
	width: 24px;
	height: 24px;
}

/* ============================================
   Хлебные крошки (Rank Math Breadcrumbs)
   ============================================ */

.page-breadcrumbs {
	padding: 10px var(--spacing-4xl) 4px;
	background: var(--color-white);
}

.page-breadcrumbs__container {
	max-width: var(--container-content-width);
	margin: 0 auto;
}

/* Стили для Rank Math Breadcrumbs */
.page-breadcrumbs .rank-math-breadcrumb {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 4px;
}

/* Иконка домика (первая ссылка) */
.page-breadcrumbs .rank-math-breadcrumb a:first-child {
	display: inline-flex;
	align-items: center;
	width: 14px;
	height: 16px;
	margin-bottom: -2px;
	background-image: url('https://artro.vitmax.pro/app/uploads/2026/01/rectangle-26.svg');
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
}

.page-breadcrumbs .rank-math-breadcrumb a,
.page-breadcrumbs .rank-math-breadcrumb span {
	font-family: var(--font-primary);
	font-size: var(--font-size-15);
	font-weight: 500;
	line-height: var(--line-height-relaxed);
	color: var(--color-gray-breadcrumb);
	text-decoration: none;
}

.page-breadcrumbs .rank-math-breadcrumb a:hover {
	color: var(--color-primary);
}

.page-breadcrumbs .rank-math-breadcrumb .separator {
	color: var(--color-gray-breadcrumb);
	margin: 0 2px;
}

/* ============================================
   Адаптивность компонентов
   ============================================ */

@media (max-width: 1280px) {
	.page-breadcrumbs {
		padding: 10px var(--spacing-2xl) 4px;
	}
}

@media (max-width: 1024px) {
	.section-title {
		font-size: 32px;
	}

	.btn-primary {
		font-size: var(--font-size-lg);
	}
}

@media (max-width: 768px) {
	.page-breadcrumbs {
		padding: var(--spacing-10) var(--spacing-xs) var(--spacing-4);
	}

	.page-breadcrumbs .rank-math-breadcrumb a,
	.page-breadcrumbs .rank-math-breadcrumb span {
		font-size: var(--font-size-13);
	}

	.section-title {
		font-size: 28px;
	}

	.btn-primary {
		font-size: var(--font-size-md);
		padding: 10px 20px;
	}

	.form-submit {
		font-size: var(--font-size-md);
	}

	.form-consent label {
		font-size: var(--font-size-sm);
	}
}

@media (max-width: 480px) {
	.section-title {
		font-size: 24px;
	}

	.btn-primary {
		font-size: var(--font-size-base);
	}

	.form-submit {
		font-size: var(--font-size-base);
		padding: 14px 20px;
	}

	.form-consent label {
		font-size: var(--font-size-xs);
	}

	.slider-nav-btn {
		width: 40px;
		height: 40px;
	}
}
