:root {
	/* Базовые фоны */
	--primary-bg: #0a0a0a;
	--secondary-bg: #1a1412;
	--hero-bg: #000000;
	--footer-bg: #1a1512;

	/* Акцентные цвета */
	--accent: #e6b89c;
	/* персиковый */
	--accent-light: #f4d5c5;

	/* Текст */
	--text-primary: #ffffff;
	--text-secondary: #d4c4b8;
	--text-muted: #888888;
	--text: #fff;
	--muted: #fff;

	/* Акцент с прозрачностью */
	--accent-02: rgba(230, 184, 156, 0.02);
	--accent-03: rgba(230, 184, 156, 0.03);
	--accent-05: rgba(230, 184, 156, 0.05);
	--accent-10: rgba(230, 184, 156, 0.1);
	--accent-15: rgba(230, 184, 156, 0.15);
	--accent-20: rgba(230, 184, 156, 0.2);
	--accent-30: rgba(230, 184, 156, 0.3);
	--accent-50: rgba(230, 184, 156, 0.5);

	/* Поверхности (тёмные карточки) */
	--surface-40: rgba(10, 10, 10, 0.4);
	--surface-50: rgba(10, 10, 10, 0.5);
	--surface-70: rgba(10, 10, 10, 0.7);
	--surface-80: rgba(10, 10, 10, 0.8);

	/* Чёрные и белые оверлеи/тени */
	--white-50: rgba(255, 255, 255, 0.5);
	--black-50: rgba(0, 0, 0, 0.5);
	--black-60: rgba(0, 0, 0, 0.6);
}

body {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	min-height: 100vh;
	overflow-x: hidden;
	scroll-behavior: smooth;
	-webkit-tap-highlight-color: transparent;
}

*,
*::before,
*::after {
	box-sizing: inherit;
}

.skip-link {
  position: absolute;
  left: 16px;
  top: -100px;
  background-color: #111;
  color: #fff;
  padding: 10px 14px;
  border-radius: 6px;
  text-decoration: none;
  z-index: 9999;
  transition: top 0.2s ease;
}

.skip-link:focus {
  top: 16px;
}

/* ═══════════════════════════════════════════
   СЕКЦИЯ: HERO — Семейные фотосессии
═══════════════════════════════════════════ */
.family-hero {
	min-height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	background: #FFC1CC;
	overflow: hidden;
	isolation: isolate;
}

/* ═══════════════════════════════════════════
   ДЕСКТОП: Полароиды россыпью
═══════════════════════════════════════════ */
.polaroid-container {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
}

.polaroid {
	position: absolute;
	left: var(--x);
	top: var(--y);
	width: 200px;
	background: #fff;
	padding: 12px 12px 45px;
	box-shadow: 0 10px 30px rgba(92, 36, 52, 0.25);
	opacity: 0;
	transform: rotate(0deg) scale(0.3) translateY(-80px);
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
	contain: layout style paint;
	cursor: default;
	pointer-events: none;
}

.polaroid.is-animating {
	animation: polaroid-drop 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
	pointer-events: none;
}

.polaroid.is-visible {
	opacity: 1;
	transform: rotate(var(--r)) scale(1) translateY(0);
	transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1),
		box-shadow 0.4s ease;
	pointer-events: auto;
}

.polaroid img {
	width: 100%;
	aspect-ratio: 176 / 183;
	object-fit: cover;
	opacity: 0.85;
	display: block;
	transition: opacity 0.4s ease;
	-webkit-user-drag: none;
	user-select: none;
	pointer-events: none;
}

@keyframes polaroid-drop {
	0% {
		opacity: 0;
		transform: rotate(0deg) scale(0.3) translateY(-80px);
	}

	60% {
		opacity: 1;
		transform: rotate(var(--r)) scale(1.05) translateY(10px);
	}

	100% {
		opacity: 1;
		transform: rotate(var(--r)) scale(1) translateY(0);
	}
}

@media (hover: hover) and (pointer: fine) {
	.polaroid.is-visible:hover {
		transform: rotate(0deg) scale(1.08) translateY(-8px);
		box-shadow: 0 20px 50px rgba(92, 36, 52, 0.35);
		z-index: 10;
	}

	.polaroid.is-visible:hover img {
		opacity: 1;
	}
}

@media (hover: none) {
	.polaroid.is-visible {
		transition: none;
	}
}

/* ═══════════════════════════════════════════
   ВИНЬЕТКА: Читаемость текста поверх полароидов
═══════════════════════════════════════════ */
.family-hero--vignette .polaroid-container::after {
	content: '';
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse 50% 45% at center,
			rgba(255, 193, 204, 0.95) 0%,
			rgba(255, 193, 204, 0.6) 50%,
			transparent 100%);
	z-index: 2;
	pointer-events: none;
}

.family-hero--vignette .hero-content {
	z-index: 3;
}

/* ═══════════════════════════════════════════
   МОБИЛЬНЫЙ ПОЛАРОИД: скрыт на десктопе
═══════════════════════════════════════════ */
.mobile-polaroid {
	display: none;
}

/* ═══════════════════════════════════════════
   КОНТЕНТ ГЕРОЯ
═══════════════════════════════════════════ */
.family-hero .hero-content {
	text-align: center;
	padding: 60px 20px;
	position: relative;
	z-index: 2;
	opacity: 0;
	animation: content-fade 0.8s ease 1.3s forwards;
	pointer-events: none;
}

.family-hero .hero-content h1,
.family-hero .hero-content p,
.family-hero .hero-content a,
.family-hero .hero-content button {
	pointer-events: auto;
}

.family-hero h1 {
	font-family: 'Cinzel', serif;
	font-size: 3.8rem;
	color: #5C2434;
	margin-bottom: 15px;
	letter-spacing: 5px;
	font-weight: 400;
	line-height: 1.1;
}

.family-hero h1 span {
	display: block;
	font-size: 2.2rem;
	margin-top: 10px;
	color: #8B3A52;
	font-weight: 300;
}

.family-hero p {
	font-size: 1.1rem;
	color: #7A4455;
	font-weight: 300;
	margin-top: 30px;
	letter-spacing: 2px;
	text-transform: uppercase;
}

@keyframes content-fade {
	from {
		opacity: 0;
		transform: translateY(20px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* ═══════════════════════════════════════════
   АДАПТАЦИЯ: Планшеты
═══════════════════════════════════════════ */
@media (max-width: 1024px) {
	.polaroid {
		width: 160px;
		padding: 10px 10px 38px;
	}

	.family-hero h1 {
		font-size: 3.2rem;
		letter-spacing: 4px;
	}

	.family-hero h1 span {
		font-size: 1.9rem;
	}
}

/* ═══════════════════════════════════════════
   АДАПТАЦИЯ: Мобильные — полароид на весь экран
═══════════════════════════════════════════ */
@media (max-width: 768px) {

	.family-hero {
		min-height: auto;
		background: #fff;
		padding: 12px;
		flex-direction: column;
		align-items: stretch;
		justify-content: flex-start;
		gap: 0;
	}

	.polaroid-container {
		display: none;
	}

	.mobile-polaroid {
		display: flex;
		flex-direction: column;
		position: relative;
		z-index: 2;
		opacity: 0;
		animation: mobile-fade-in 1s ease 0.2s forwards;
	}

	.mobile-polaroid__photo {
		overflow: hidden;
		line-height: 0;
	}

	.mobile-polaroid__photo img {
		width: 100%;
		height: auto;
		display: block;
	}

	.mobile-polaroid__bottom {
		flex-shrink: 0;
		padding: 18px 8px 6px;
		text-align: center;
	}

	.mobile-polaroid__title {
		display: block;
		font-family: 'Caveat', 'Segoe Script', cursive;
		font-size: 1.8rem;
		color: #5C2434;
		line-height: 1.2;
	}

	.mobile-polaroid__sub {
		display: block;
		font-family: 'Cormorant Garamond', 'Times New Roman', serif;
		font-size: 0.85rem;
		color: #8B3A52;
		letter-spacing: 2px;
		text-transform: uppercase;
		margin-top: 6px;
	}

	.family-hero .hero-content {
		padding: 10px 16px 0;
		animation: none;
		opacity: 1;
		text-align: center;
		position: relative;
		width: auto;
		height: auto;
		margin: 0;
		overflow: visible;
		clip: auto;
		white-space: normal;
		pointer-events: auto;
	}

	.family-hero h1 {
		font-size: 0.7rem;
		letter-spacing: 1px;
		color: #B8899A;
		margin-bottom: 4px;
		font-weight: 400;
		line-height: 1.3;
	}

	.family-hero h1 span {
		display: inline;
		font-size: inherit;
		color: inherit;
		margin: 0;
		font-weight: inherit;
	}

	.family-hero p {
		font-size: 0.6rem;
		letter-spacing: 0.5px;
		color: #C9A0B0;
		margin-top: 2px;
		text-transform: none;
		font-weight: 300;
	}

	@keyframes mobile-fade-in {
		from {
			opacity: 0;
			transform: scale(0.97);
		}

		to {
			opacity: 1;
			transform: scale(1);
		}
	}
}

/* ═══════════════════════════════════════════
   АДАПТАЦИЯ: Маленькие мобильные (SE, Mini)
═══════════════════════════════════════════ */
@media (max-width: 400px) {
	.family-hero {
		padding: 8px;
	}

	.mobile-polaroid__bottom {
		padding: 14px 6px 4px;
	}

	.mobile-polaroid__title {
		font-size: 1.5rem;
	}

	.mobile-polaroid__sub {
		font-size: 0.75rem;
		letter-spacing: 1.5px;
	}

	.family-hero h1 {
		font-size: 0.6rem;
	}

	.family-hero p {
		font-size: 0.55rem;
	}
}

/* ═══════════════════════════════════════════
   ДОСТУПНОСТЬ: Отключение анимаций
═══════════════════════════════════════════ */
@media (prefers-reduced-motion: reduce) {
	.polaroid {
		opacity: 1;
		transform: rotate(var(--r)) scale(1);
		animation: none;
		transition: none;
		pointer-events: auto;
	}

	.polaroid.is-animating {
		animation: none;
	}

	.polaroid img {
		transition: none;
	}

	.family-hero .hero-content {
		opacity: 1;
		animation: none;
	}

	.mobile-polaroid {
		opacity: 1;
		animation: none;
	}
}


/* ═══════════════════════════════════════════
   СЕКЦИЯ: О семейных фотосессиях
═══════════════════════════════════════════ */
.family-about {
	padding: 120px 0;
	background: var(--primary-bg);
	position: relative;
	overflow: hidden;
}

.family-about::after {
	content: 'FAMILY';
	position: absolute;
	top: 50%;
	right: -100px;
	transform: translateY(-50%) rotate(90deg);
	font-family: 'Cinzel', serif;
	font-size: 15rem;
	color: var(--accent-02);
	font-weight: 700;
	pointer-events: none;
	user-select: none;
}

.family-about-content {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 40px;
}

/* ═══ Вводный блок ═══ */
.intro-section {
	margin-bottom: 80px;
	max-width: 900px;
}

.label {
	display: inline-block;
	padding: 8px 20px;
	background: var(--accent-10);
	border: 1px solid var(--accent);
	border-radius: 30px;
	font-size: 0.85rem;
	color: var(--accent);
	letter-spacing: 2px;
	text-transform: uppercase;
	margin-bottom: 30px;
}

.text-content h2 {
	font-family: 'Cinzel', serif;
	font-size: 3.8rem;
	color: var(--text-primary);
	line-height: 1.2;
	margin-bottom: 35px;
	font-weight: 300;
}

.text-content h2 span {
	color: var(--accent);
	display: inline-block;
	position: relative;
}

.text-content h2 span::after {
	content: '';
	position: absolute;
	bottom: -5px;
	left: 0;
	right: 0;
	height: 2px;
	background: var(--accent);
}

.description {
	font-size: 1.2rem;
	color: var(--text-secondary);
	line-height: 1.8;
	margin-bottom: 25px;
}

/* ═══ Карточки преимуществ ═══ */
.features-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 30px;
}

.feature {
	background: var(--secondary-bg);
	padding: 50px 40px;
	position: relative;
	transition: border-color 0.4s ease;
	border: 1px solid transparent;
	overflow: hidden;
}

.feature::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: var(--accent-05);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.4s ease;
	z-index: 0;
}

.feature:hover::before {
	transform: scaleX(1);
}

.feature:hover {
	border-color: var(--accent-30);
}

.feature>* {
	position: relative;
	z-index: 1;
}

.feature-number {
	font-family: 'Cinzel', serif;
	font-size: 3rem;
	color: var(--accent);
	opacity: 0.3;
	margin-bottom: 20px;
	font-weight: 300;
}

.feature-title {
	font-family: 'Cinzel', serif;
	font-size: 1.4rem;
	color: var(--accent-light);
	margin-bottom: 15px;
	font-weight: 400;
}

.feature-text {
	font-size: 1rem;
	color: var(--text-secondary);
	line-height: 1.7;
}

/* ═══ Адаптация: Планшеты ═══ */
@media (max-width: 968px) {
	.features-grid {
		grid-template-columns: 1fr;
		gap: 20px;
	}

	.family-about::after {
		display: none;
	}
}

/* ═══ Адаптация: Мобильные ═══ */
@media (max-width: 768px) {
	.family-about {
		padding: 80px 0;
	}

	.family-about-content {
		padding: 0 20px;
	}

	.text-content h2 {
		font-size: 2.5rem;
	}

	.description {
		font-size: 1.05rem;
	}

	.feature {
		padding: 35px 25px;
	}
}


/* ═══════════════════════════════════════════
   СЕКЦИЯ: Портфолио семейных фотосессий
═══════════════════════════════════════════ */
.family-gallery {
	padding: 100px 0;
	background: linear-gradient(180deg, var(--secondary-bg) 0%, var(--primary-bg) 15%);
	position: relative;
}

.family-gallery::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 50px;
	background: linear-gradient(180deg, var(--accent-03) 0%, transparent 100%);
	pointer-events: none;
}

/* ═══ Контейнер: sidebar + сетка ═══ */
.gallery-container {
	max-width: 1400px;
	margin: 0 auto;
	padding: 0 20px;
	display: grid;
	grid-template-columns: 350px 1fr;
	gap: 60px;
	align-items: start;
}

/* ═══ Боковая панель ═══ */
.gallery-sidebar {
	position: sticky;
	top: 100px;
}

.section-title {
	font-family: 'Cinzel', serif;
	font-size: 2.5rem;
	color: var(--accent);
	margin-bottom: 20px;
	letter-spacing: 1px;
	font-weight: 300;
	line-height: 1.2;
}

.gallery-text {
	margin-bottom: 30px;
}

.gallery-text h3 {
	font-family: 'Cinzel', serif;
	font-size: 1.2rem;
	color: var(--accent-light);
	margin-bottom: 15px;
	font-weight: 400;
}

.gallery-text p {
	font-size: 0.95rem;
	color: var(--text-secondary);
	line-height: 1.7;
	margin-bottom: 15px;
}

/* ═══ Список локаций ═══ */
.gallery-locations {
	list-style: none;
	padding: 0;
	margin: 0;
}

.gallery-locations li {
	font-size: 0.95rem;
	color: var(--text-secondary);
	line-height: 1.7;
	padding-left: 20px;
	position: relative;
	margin-bottom: 8px;
}

.gallery-locations li::before {
	content: '·';
	position: absolute;
	left: 0;
	color: var(--accent);
	font-weight: 700;
	font-size: 1.4rem;
	line-height: 1.3;
}

/* ═══ Сетка фотографий ═══ */
.gallery-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 25px;
}

.gallery-item {
	position: relative;
	overflow: hidden;
	aspect-ratio: 3 / 4;
	cursor: pointer;
	display: block;
}

.gallery-item::before {
	content: '';
	position: absolute;
	inset: 0;
	background: var(--black-50);
	opacity: 0;
	transition: opacity 0.3s ease;
	z-index: 1;
}

.gallery-item:hover::before {
	opacity: 1;
}

.gallery-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s ease;
}

.gallery-item:hover img {
	transform: scale(1.05);
}

/* ═══ Адаптация: Планшеты ═══ */
@media (max-width: 1024px) {
	.gallery-container {
		grid-template-columns: 1fr;
		gap: 40px;
	}

	.gallery-sidebar {
		position: static;
		text-align: center;
	}

	.gallery-locations {
		display: inline-block;
		text-align: left;
	}
}

/* ═══ Адаптация: Мобильные ═══ */
@media (max-width: 768px) {
	.family-gallery {
		padding: 60px 0;
	}

	.section-title {
		font-size: 2rem;
	}

	.gallery-grid {
		grid-template-columns: 1fr;
		gap: 15px;
	}
}

/* ═══════════════════════════════════════════
   СЕКЦИЯ: Что входит в фотосессию
═══════════════════════════════════════════ */
.services-included {
	padding: 120px 0;
	background: linear-gradient(180deg, var(--primary-bg) 0%, var(--secondary-bg) 15%);
	position: relative;
}

.services-included::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 50px;
	background: linear-gradient(180deg, var(--accent-03) 0%, transparent 100%);
	pointer-events: none;
}

.services-included__inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}

/* ═══ Заголовок ═══ */
.services-included__header {
	text-align: center;
	margin-bottom: 70px;
}

.services-included__title {
	font-family: 'Cinzel', serif;
	font-size: 3rem;
	color: var(--accent);
	letter-spacing: 2px;
	font-weight: 300;
	margin-bottom: 20px;
}

.services-included__subtitle {
	color: var(--text-secondary);
	font-size: 1.1rem;
	font-style: italic;
}

/* ═══ Сетка карточек ═══ */
.services-included__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px;
	list-style: none;
	padding: 0;
	margin: 0;
}

/* ═══ Карточка ═══ */
.services-included__item {
	padding: 50px 35px;
	background: var(--surface-50);
	position: relative;
	transition: background-color 0.4s ease;
}

/* Угловые рамки — статичные */
.services-included__item::before,
.services-included__item::after {
	content: '';
	position: absolute;
	width: 40px;
	height: 40px;
	border: 2px solid var(--accent);
	opacity: 0.4;
	transition: opacity 0.4s ease;
}

.services-included__item::before {
	top: 0;
	left: 0;
	border-right: none;
	border-bottom: none;
}

.services-included__item::after {
	bottom: 0;
	right: 0;
	border-left: none;
	border-top: none;
}

.services-included__item:hover::before,
.services-included__item:hover::after {
	opacity: 1;
}

.services-included__item:hover {
	background-color: var(--surface-80);
}

/* ═══ Контент карточки ═══ */
.services-included__item-title {
	font-family: 'Cinzel', serif;
	font-size: 1.3rem;
	color: var(--accent-light);
	margin-bottom: 20px;
	font-weight: 400;
	text-align: center;
}

.services-included__item-description {
	color: var(--text-secondary);
	line-height: 1.8;
	text-align: center;
	font-size: 0.95rem;
}

/* ═══ Адаптация: Планшеты ═══ */
@media (max-width: 1024px) {
	.services-included__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* ═══ Адаптация: Мобильные ═══ */
@media (max-width: 768px) {
	.services-included {
		padding: 80px 0;
	}

	.services-included__header {
		margin-bottom: 50px;
	}

	.services-included__title {
		font-size: 2.2rem;
	}

	.services-included__grid {
		grid-template-columns: 1fr;
		gap: 25px;
	}

	.services-included__item {
		padding: 40px 30px;
	}
}

/* ═══════════════════════════════════════════
   СЕКЦИЯ: Как проходит съёмка
═══════════════════════════════════════════ */
.shooting-process {
	padding: 120px 0;
	background: linear-gradient(180deg, var(--secondary-bg) 0%, var(--primary-bg) 15%);
	position: relative;
}

.shooting-process::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 50px;
	background: linear-gradient(180deg, var(--accent-03) 0%, transparent 100%);
	pointer-events: none;
}

.shooting-process__inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}

/* ═══ Заголовок ═══ */
.shooting-process__title {
	font-family: 'Cinzel', serif;
	font-size: 3rem;
	color: var(--accent);
	text-align: center;
	margin-bottom: 70px;
	letter-spacing: 2px;
	font-weight: 300;
}

/* ═══ Timeline ═══ */
.shooting-process__timeline {
	position: relative;
	list-style: none;
	padding: 0;
	margin: 0;
}

.shooting-process__line {
	position: absolute;
	top: 80px;
	left: 50%;
	transform: translateX(-50%);
	width: 2px;
	bottom: 80px;
	background: linear-gradient(180deg,
			var(--accent-20) 0%,
			var(--accent) 50%,
			var(--accent-20) 100%);
	z-index: 1;
}

/* ═══ Шаг ═══ */
.shooting-process__step {
	display: flex;
	align-items: center;
	margin-bottom: 60px;
	position: relative;
}

.shooting-process__step:nth-child(even) {
	flex-direction: row-reverse;
}

.shooting-process__step:last-child {
	margin-bottom: 0;
}

/* ═══ Контент шага ═══ */
.shooting-process__content {
	flex: 1;
	max-width: 45%;
	padding: 40px;
	background: var(--surface-40);
	border: 1px solid var(--accent-10);
	transition:
		background-color 0.4s ease,
		border-color 0.4s ease,
		box-shadow 0.4s ease;
}

.shooting-process__content:hover {
	background-color: var(--surface-70);
	border-color: var(--accent-30);
	box-shadow: 0 10px 30px var(--black-20);
}

.shooting-process__step-title {
	font-family: 'Cinzel', serif;
	font-size: 1.5rem;
	color: var(--accent-light);
	margin-bottom: 15px;
	font-weight: 400;
}

.shooting-process__description {
	color: var(--text-secondary);
	line-height: 1.8;
	font-size: 1rem;
}

/* ═══ Номер шага ═══ */
.shooting-process__number-wrapper {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	z-index: 2;
}

.shooting-process__number {
	width: 80px;
	height: 80px;
	background: var(--primary-bg);
	border: 3px solid var(--accent);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: 'Cinzel', serif;
	font-size: 1.5rem;
	color: var(--accent);
	font-weight: 600;
	transition: transform 0.4s ease;
	will-change: transform;
}

.shooting-process__step:hover .shooting-process__number {
	transform: scale(1.1);
}

/* ═══ Адаптация: Планшеты ═══ */
@media (max-width: 768px) {
	.shooting-process {
		padding: 80px 0;
	}

	.shooting-process__title {
		font-size: 2.2rem;
		margin-bottom: 60px;
	}

	.shooting-process__line {
		left: 40px;
	}

	.shooting-process__step,
	.shooting-process__step:nth-child(even) {
		flex-direction: row;
		padding-left: 100px;
	}

	.shooting-process__number-wrapper {
		left: 40px;
	}

	.shooting-process__content {
		max-width: 100%;
		padding: 30px 25px;
	}

	.shooting-process__number {
		width: 60px;
		height: 60px;
		font-size: 1.2rem;
	}

	.shooting-process__step-title {
		font-size: 1.3rem;
	}

	.shooting-process__description {
		font-size: 0.95rem;
	}
}

/* ═══ Адаптация: Мобильные ═══ */
@media (max-width: 480px) {
	.shooting-process {
		padding: 60px 0;
	}

	.shooting-process__title {
		font-size: 1.8rem;
		margin-bottom: 50px;
	}

	.shooting-process__step {
		padding-left: 80px;
		margin-bottom: 50px;
	}

	.shooting-process__number-wrapper {
		left: 30px;
	}

	.shooting-process__line {
		left: 30px;
	}

	.shooting-process__content {
		padding: 25px 20px;
	}
}

/* ═══════════════════════════════════════════
   СЕКЦИЯ: Отзывы клиентов
═══════════════════════════════════════════ */
.reviews {
	padding: 120px 0;
	background: linear-gradient(180deg, var(--primary-bg) 0%, var(--secondary-bg) 15%);
	position: relative;
}

.reviews::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 50px;
	background: linear-gradient(180deg, var(--accent-03) 0%, transparent 100%);
	pointer-events: none;
}

.reviews__inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}

/* ═══ Заголовок ═══ */
.reviews__title {
	font-family: 'Cinzel', serif;
	font-size: 3rem;
	color: var(--accent);
	text-align: center;
	margin-bottom: 70px;
	letter-spacing: 2px;
	font-weight: 300;
}

/* ═══ Сетка ═══ */
.reviews__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px;
}

/* ═══ Карточка отзыва ═══ */
.review-card {
	background: var(--surface-50);
	padding: 50px 40px;
	position: relative;
	border: 1px solid var(--accent-10);
	transition:
		background-color 0.4s ease,
		border-color 0.4s ease,
		box-shadow 0.4s ease;
}

/* Декоративная кавычка */
.review-card::before {
	content: '\201C';
	position: absolute;
	top: -10px;
	left: 30px;
	font-family: 'Cinzel', serif;
	font-size: 6rem;
	color: var(--accent-15);
	line-height: 1;
	font-weight: 300;
	pointer-events: none;
	aria-hidden: true;
}

.review-card:hover {
	background-color: var(--surface-80);
	border-color: var(--accent-30);
	box-shadow: 0 10px 30px var(--black-20);
}

/* ═══ Текст отзыва ═══ */
.review-card__text {
	margin: 0 0 30px;
	padding: 0;
	position: relative;
	z-index: 1;
}

.review-card__text p {
	color: var(--text-secondary);
	line-height: 1.8;
	font-size: 1rem;
	font-style: italic;
}

/* ═══ Автор ═══ */
.review-card__author {
	padding-top: 25px;
	border-top: 1px solid var(--accent-20);
}

.review-card__name {
	font-family: 'Cinzel', serif;
	color: var(--accent-light);
	font-size: 1.1rem;
	margin-bottom: 8px;
	font-weight: 400;
}

.review-card__info {
	color: var(--accent-50);
	font-size: 0.9rem;
}

/* ═══ Адаптация: Планшеты ═══ */
@media (max-width: 1024px) {
	.reviews__grid {
		grid-template-columns: 1fr;
		max-width: 700px;
		margin: 0 auto;
	}
}

/* ═══ Адаптация: Мобильные ═══ */
@media (max-width: 768px) {
	.reviews {
		padding: 80px 0;
	}

	.reviews__title {
		font-size: 2.2rem;
		margin-bottom: 50px;
	}

	.review-card {
		padding: 40px 30px;
	}
}

/* ═══════════════════════════════════════════
   СЕКЦИЯ: FAQ
═══════════════════════════════════════════ */
.faq {
	padding: 120px 0;
	background: var(--secondary-bg);
	position: relative;
}

/* ═══ Градиентный переход сверху ═══ */
.faq::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 220px;
	background: linear-gradient(180deg,
			var(--primary-bg) 0%,
			var(--secondary-bg) 100%);
	pointer-events: none;
}

.faq__inner {
	max-width: 820px;
	margin: 0 auto;
	padding: 0 20px;
	position: relative;
	z-index: 1;
}

/* ═══ Заголовок ═══ */
.faq__title {
	font-family: 'Cinzel', serif;
	font-size: 3rem;
	color: var(--accent);
	text-align: center;
	margin-bottom: 20px;
	font-weight: 300;
	letter-spacing: 2px;
}

.faq__subtitle {
	text-align: center;
	color: var(--text-secondary);
	font-size: 1.05rem;
	line-height: 1.6;
	margin-bottom: 70px;
}

/* ═══ Список вопросов ═══ */
.faq__list {
	display: flex;
	flex-direction: column;
}

/* ═══ Элемент FAQ ═══ */
.faq__item {
	border-bottom: 1px solid var(--accent-10);
}

.faq__item:first-child {
	border-top: 1px solid var(--accent-10);
}

/* ═══ Кнопка-триггер ═══ */
.faq__trigger {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 28px 0;
	background: none;
	border: none;
	cursor: pointer;
	text-align: left;
	font-family: 'Cinzel', serif;
	font-size: 1.1rem;
	font-weight: 400;
	color: var(--text-primary);
	line-height: 1.4;
	gap: 20px;
	transition: color 0.3s ease;
}

.faq__trigger:hover {
	color: var(--accent);
}

.faq__trigger:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: 4px;
}

/* ═══ Иконка + / − ═══ */
.faq__icon {
	position: relative;
	width: 20px;
	height: 20px;
	flex-shrink: 0;
}

.faq__icon::before,
.faq__icon::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	background: var(--accent-50);
	transition:
		transform 0.3s ease,
		background-color 0.3s ease;
}

/* Горизонтальная линия */
.faq__icon::before {
	width: 20px;
	height: 1px;
	transform: translate(-50%, -50%);
}

/* Вертикальная линия */
.faq__icon::after {
	width: 1px;
	height: 20px;
	transform: translate(-50%, -50%);
}

/* Открытое состояние — плюс → минус */
.faq__trigger[aria-expanded="true"] .faq__icon::after {
	transform: translate(-50%, -50%) rotate(90deg);
}

.faq__trigger[aria-expanded="true"] .faq__icon::before,
.faq__trigger[aria-expanded="true"] .faq__icon::after {
	background-color: var(--accent);
}

/* ═══ Ответ ═══ */
.faq__answer {
	overflow: hidden;
	transition:
		max-height 0.4s ease,
		padding 0.4s ease;
	max-height: 0;
	padding: 0;
}

.faq__answer:not([hidden]) {
	max-height: 500px;
	padding: 0 0 28px;
}

.faq__answer[hidden] {
	display: block;
	max-height: 0;
	padding: 0;
	visibility: hidden;
}

.faq__answer p {
	color: var(--text-secondary);
	font-size: 1rem;
	line-height: 1.8;
	margin-bottom: 12px;
}

.faq__answer p:last-child {
	margin-bottom: 0;
}

.faq__answer a {
	color: var(--accent);
	text-decoration: underline;
	text-underline-offset: 3px;
	transition: color 0.3s ease;
}

.faq__answer a:hover {
	color: var(--accent-light);
}

.faq__answer a:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

/* ═══ Адаптация: Планшеты ═══ */
@media (max-width: 1024px) {
	.faq__inner {
		max-width: 700px;
	}
}

/* ═══ Адаптация: Мобильные ═══ */
@media (max-width: 768px) {
	.faq {
		padding: 80px 0;
	}

	.faq__title {
		font-size: 2.2rem;
	}

	.faq__subtitle {
		margin-bottom: 50px;
	}

	.faq__trigger {
		font-size: 1rem;
		padding: 22px 0;
	}

	.faq__answer:not([hidden]) {
		padding: 0 0 22px;
	}
}


/* ═══════════════════════════════════════════
   СЕКЦИЯ: Контакты
═══════════════════════════════════════════ */
.contact {
	padding: 100px 0 140px;
	background: var(--primary-bg);
}

.contact__inner {
	display: grid;
	grid-template-columns: 0.9fr 1.1fr;
	gap: 80px;
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 20px;
	align-items: center;
}

/* ═══ Информация ═══ */
.contact__info {
	text-align: right;
	padding-right: 40px;
	border-right: 1px solid var(--accent-10);
}

.contact__title {
	font-family: 'Cinzel', serif;
	font-size: 3.2rem;
	color: var(--accent);
	margin-bottom: 25px;
	font-weight: 300;
	line-height: 1.2;
}

.contact__text {
	color: var(--text-secondary);
	font-size: 1.05rem;
	line-height: 1.9;
}

/* ═══ Список ссылок ═══ */
.contact__links {
	padding-left: 40px;
	list-style: none;
	margin: 0;
}

.contact__links li {
	margin-bottom: 30px;
}

.contact__links li:last-child {
	margin-bottom: 0;
}

/* ═══ Ссылка ═══ */
.contact__link {
	display: flex;
	align-items: center;
	color: var(--text-secondary);
	text-decoration: none;
	font-size: 1.1rem;
	transition:
		color 0.3s ease;
}

/* Декоративная линия */
.contact__link::before {
	content: '';
	width: 40px;
	height: 1px;
	background: var(--accent-30);
	margin-right: 20px;
	flex-shrink: 0;
	transition:
		width 0.3s ease,
		background-color 0.3s ease;
}

.contact__link:hover {
	color: var(--accent);
}

.contact__link:hover::before {
	width: 60px;
	background-color: var(--accent);
}

/* ═══ Фокус для клавиатуры ═══ */
.contact__link:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: 4px;
}

/* ═══ Адаптация: Мобильные ═══ */
@media (max-width: 768px) {
	.contact {
		padding: 80px 0;
	}

	.contact__inner {
		grid-template-columns: 1fr;
		gap: 50px;
	}

	.contact__info {
		text-align: center;
		border-right: none;
		border-bottom: 1px solid var(--accent-10);
		padding-right: 0;
		padding-bottom: 40px;
	}

	.contact__title {
		font-size: 2.3rem;
	}

	.contact__links {
		padding-left: 0;
	}

	.contact__link {
		justify-content: center;
	}
}

/* ========================================
            FOOTER
 ======================================== */
.footer {
	background: linear-gradient(135deg, var(--primary-bg) 0%, var(--secondary-bg) 50%, var(--primary-bg) 100%);
	padding: 0 20px 20px;
	position: relative;
}

.footer::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--accent-30), transparent);
}

.footer::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: radial-gradient(ellipse at center top, var(--accent-05) 0%, transparent 70%);
	pointer-events: none;
}

.footer-bottom {
	max-width: 1200px;
	margin: 0 auto;
	padding-top: 40px;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 24px;
	flex-wrap: wrap;
	position: relative;
	z-index: 1;
}

/* === Лого === */
.footer-logo {
	font-family: 'Times New Roman', Times, serif;
	font-size: 1.15rem;
	letter-spacing: 0.05em;
	text-transform: lowercase;
	font-weight: 400;
	text-decoration: none;
	transition: all 0.3s ease;
	display: inline-block;
	flex: 1;
}

.logo-memei {
	color: rgba(224, 224, 224, 0.9);
	font-weight: 500;
}

.logo-photo {
	color: var(--accent);
	opacity: 0.8;
	margin-left: 2px;
	transition: opacity 0.3s ease;
}

.footer-logo:hover .logo-photo {
	opacity: 1;
}

.footer-logo:hover {
	transform: translateY(-2px);
}

.footer-nav {
	display: flex;
	gap: 32px;
	flex: 1;
	justify-content: flex-end;
}

.footer-nav a {
	font-size: 0.85rem;
	color: rgba(224, 224, 224, 0.7);
	text-decoration: none;
	transition: color 0.3s ease;
}

.footer-nav a:hover {
	color: var(--accent);
}

/* Соцсети в футере */
.footer-social {
	display: flex;
	justify-content: center;
	flex: 1;
}

.social-icons {
	display: flex;
	gap: 18px;
	align-items: center;
	justify-content: center;
}

.social-icons a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--accent-15);
	border: 1px solid var(--accent-30);
	transition: transform 0.3s ease, background 0.3s ease, border-color 0.3s ease;
}

.social-icons a:hover {
	transform: scale(1.12);
	background: var(--accent-20);
	border-color: var(--accent);
}

.social-icons img {
	width: 20px;
	height: 20px;
}

/* Адаптив */
@media (max-width: 768px) {
	.footer {
		padding: 0 20px 40px;
	}

	.footer-bottom {
		flex-direction: column;
		gap: 24px;
		text-align: center;
		margin-top: 0;
	}

	.footer-logo,
	.footer-social,
	.footer-nav {
		flex: none;
	}

	.footer-logo {
		font-size: 1.05rem;
		order: 1;
	}

	.footer-social {
		order: 2;
	}

	.footer-nav {
		order: 3;
		flex-wrap: wrap;
		justify-content: center;
		gap: 20px;
	}

	.social-icons {
		gap: 16px;
	}
}

@media (max-width: 480px) {
	.footer {
		padding: 0 15px 30px;
	}

	.footer-logo {
		font-size: 0.95rem;
		letter-spacing: 0.03em;
	}
}

/* === Powered by / Site credits === */
.site-footer {
	background: #050505;
	padding: 16px 20px 16px;
	border-top: 1px solid var(--accent-30);
}

.site-footer__content {
	max-width: 1200px;
	margin: 0 auto;
	display: flex;
	justify-content: center;
	align-items: center;
}

.site-footer__credits {
	text-align: center;
	width: 100%;
}

.site-footer__credits p {
	margin: 0;
	font-size: 0.8rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: rgba(224, 224, 224, 0.5);
	text-align: center;
}

.site-footer__credits span {
	color: var(--accent);
	font-weight: 500;
}

@media (max-width: 480px) {
	.site-footer {
		padding: 14px 15px 24px;
	}

	.site-footer__credits p {
		font-size: 0.75rem;
		letter-spacing: 0.12em;
	}
}