/**
 * Кутюр Парфюм — раскладка: шапка, мега-меню, мобильное меню,
 * поисковый оверлей, мини-корзина, подвал, каркас страниц.
 */

.cp-site {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	min-height: 100dvh;
}

.cp-main {
	flex: 1;
}

/* ============================================================== Топбар */

.cp-topbar {
	background: var(--ink);
	color: rgba(236, 238, 240, 0.78);
	font-family: var(--font-mono);
	font-size: var(--fs-2xs);
	letter-spacing: var(--ls-wide);
	text-transform: uppercase;
}

.cp-topbar__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-6);
	min-height: var(--topbar-h);
	padding-block: var(--space-2);
}

.cp-topbar__list {
	display: flex;
	align-items: center;
	gap: var(--space-6);
	margin: 0;
	padding: 0;
	list-style: none;
}

.cp-topbar__list li {
	margin: 0;
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
}

.cp-topbar__list svg {
	width: 14px;
	height: 14px;
	opacity: 0.65;
}

.cp-topbar a:hover {
	color: var(--gold);
}

@media (max-width: 900px) {
	.cp-topbar__inner {
		justify-content: center;
	}

	.cp-topbar__list--secondary {
		display: none;
	}

	.cp-topbar__list--primary li + li {
		display: none;
	}
}

/* ============================================================== Шапка */

.cp-header .cp-container {
	position: relative;
}

.cp-header {
	position: sticky;
	top: 0;
	z-index: var(--z-header);
	background: var(--parchment);
	border-bottom: 1px solid var(--line);
	transition: box-shadow var(--dur) var(--ease-out), background-color var(--dur) var(--ease-out);
}

.cp-header.is-stuck {
	box-shadow: var(--shadow-sm);
	background: rgba(236, 238, 240, 0.94);
	backdrop-filter: blur(10px);
}

.cp-header__inner {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: var(--space-6);
	min-height: var(--header-h);
	transition: min-height var(--dur) var(--ease-out);
}

/* -------------------------------------------------------------- Логотип */

.cp-logo {
	display: inline-flex;
	align-items: center;
	flex-shrink: 0;
	color: var(--ink);
}

.cp-logo:hover {
	color: var(--ink);
	opacity: 0.75;
}

.cp-logo__img {
	max-height: 2.6rem;
	width: auto;
	object-fit: contain;
}

.cp-logo__text {
	display: flex;
	flex-direction: column;
	line-height: 1;
	font-family: var(--font-display);
	letter-spacing: var(--ls-widest);
	margin: 0;
}

.cp-logo__line1 {
	font-size: 1.02rem;
	font-weight: 500;
}

.cp-logo__line2 {
	font-size: 0.62rem;
	font-family: var(--font-mono);
	letter-spacing: 0.42em;
	color: var(--amber);
	margin-top: 0.32rem;
	text-indent: 0.42em;
}

.cp-logo--footer .cp-logo__line1,
.cp-logo--footer .cp-logo__line2 {
	color: var(--parchment);
}

.cp-logo--footer .cp-logo__line2 {
	color: var(--gold);
}

/* ------------------------------------------------------------ Навигация */

.cp-nav {
	justify-self: center;
}

.cp-nav__list {
	display: flex;
	align-items: center;
	gap: clamp(var(--space-3), 1.4vw, var(--space-6));
	margin: 0;
	padding: 0;
	list-style: none;
}

/* Пункт намеренно НЕ позиционирован: мега-панель должна привязываться
   к контейнеру шапки, иначе у крайних правых пунктов она вылезает
   за вьюпорт и появляется горизонтальная прокрутка. */
.cp-nav__list > li {
	margin: 0;
}

.cp-nav__list > li > a {
	display: inline-flex;
	align-items: center;
	gap: var(--space-1);
	padding: var(--space-2) 0;
	font-size: var(--fs-sm);
	font-weight: 400;
	letter-spacing: var(--ls-wide);
	text-transform: uppercase;
	color: var(--ink);
	position: relative;
	white-space: nowrap;
}

/* Подчёркивание раскрывается от центра */
.cp-nav__list > li > a::after {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	bottom: -2px;
	height: 1px;
	background: var(--amber);
	transform: scaleX(0);
	transition: transform var(--dur) var(--ease-out);
}

.cp-nav__list > li > a:hover::after,
.cp-nav__list > li.is-open > a::after,
.cp-nav__list > li.current-menu-item > a::after,
.cp-nav__list > li.current-menu-parent > a::after {
	transform: scaleX(1);
}

.cp-nav__list > li > a:hover,
.cp-nav__list > li.current-menu-item > a {
	color: var(--amber);
}

.cp-nav__chevron {
	width: 13px;
	height: 13px;
	opacity: 0.55;
	transition: transform var(--dur) var(--ease-out);
}

.cp-nav__list > li.is-open .cp-nav__chevron {
	transform: rotate(180deg);
}

.cp-nav__accent > a {
	color: var(--wine) !important;
}

@media (max-width: 1100px) {
	.cp-nav {
		display: none;
	}
}

/* ---------------------------------------------------------- Мега-меню */

/* Позиционируется относительно .cp-header .cp-container (см. ниже),
   поэтому занимает ровно ширину контейнера и не выходит за экран. */
.cp-mega {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	transform: translateY(8px);
	z-index: var(--z-megamenu);
	background: var(--paper-pure);
	border: 1px solid var(--line);
	border-top: 2px solid var(--amber);
	box-shadow: var(--shadow-lg);
	padding: var(--space-10);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity var(--dur) var(--ease-out), transform var(--dur) var(--ease-out), visibility var(--dur);
}

.cp-nav__list > li.is-open > .cp-mega {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateY(0);
}

.cp-mega__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--space-10);
}

.cp-mega__col > .cp-eyebrow {
	padding-bottom: var(--space-3);
	border-bottom: 1px solid var(--line);
	margin-bottom: var(--space-4);
}

.cp-mega__links {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
}

.cp-mega__links li {
	margin: 0;
}

.cp-mega__links a {
	display: block;
	padding: var(--space-2) 0;
	font-size: var(--fs-sm);
	color: var(--ink-70);
	transition: color var(--dur) var(--ease-out), padding-left var(--dur) var(--ease-out);
}

.cp-mega__links a:hover {
	color: var(--amber);
	padding-left: var(--space-2);
}

/* Промо-карточка справа в мега-меню */
.cp-mega__promo {
	position: relative;
	display: block;
	background: var(--parchment);
	border: 1px solid var(--line);
	padding: var(--space-6);
	min-height: 15rem;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	overflow: hidden;
}

.cp-mega__promo img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0.9;
	transition: transform var(--dur-slow) var(--ease-out);
}

.cp-mega__promo:hover img {
	transform: scale(1.04);
}

.cp-mega__promo-body {
	position: relative;
	z-index: 1;
}

.cp-mega__promo h3 {
	font-size: var(--fs-lg);
	margin-bottom: var(--space-2);
}

/* ------------------------------------------------------------ Действия */

.cp-header__actions {
	display: flex;
	align-items: center;
	gap: var(--space-1);
	justify-self: end;
}

.cp-header__burger {
	display: none;
}

@media (max-width: 1100px) {
	.cp-header__inner {
		grid-template-columns: auto 1fr auto;
	}

	.cp-header__burger {
		display: inline-flex;
	}

	.cp-logo {
		justify-self: center;
		grid-column: 2;
	}

	.cp-header__actions {
		grid-column: 3;
	}
}

@media (max-width: 560px) {
	.cp-header__action--account {
		display: none;
	}
}

/* ===================================================== Поисковый оверлей */

.cp-search-overlay {
	position: fixed;
	inset: 0;
	z-index: var(--z-modal);
	background: var(--parchment);
	display: flex;
	flex-direction: column;
	opacity: 0;
	transform: translateY(-1.5rem);
	transition: opacity var(--dur) var(--ease-out), transform var(--dur) var(--ease-out);
}

.cp-search-overlay.is-open {
	opacity: 1;
	transform: translateY(0);
}

.cp-search-overlay__head {
	border-bottom: 1px solid var(--line);
	background: var(--parchment);
	flex-shrink: 0;
}

.cp-search-overlay__form {
	display: flex;
	align-items: center;
	gap: var(--space-4);
	min-height: 5.5rem;
}

.cp-search-overlay__form > svg {
	width: 24px;
	height: 24px;
	color: var(--ink-40);
	flex-shrink: 0;
}

.cp-search-overlay__input {
	flex: 1;
	border: 0;
	background: transparent;
	font-family: var(--font-display);
	font-size: var(--fs-2xl);
	letter-spacing: var(--ls-tight);
	color: var(--ink);
	padding: 0;
	min-height: 0;
}

.cp-search-overlay__input::placeholder {
	color: var(--ink-40);
}

.cp-search-overlay__input:focus {
	outline: none;
	box-shadow: none;
	border: 0;
}

.cp-search-overlay__body {
	flex: 1;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding-block: var(--space-8) var(--space-16);
}

.cp-search-suggest {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2);
	margin-bottom: var(--space-10);
}

.cp-search-results {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr));
	gap: var(--space-6);
	list-style: none;
	margin: 0;
	padding: 0;
}

.cp-search-results li {
	margin: 0;
}

.cp-search-hit {
	display: flex;
	align-items: center;
	gap: var(--space-4);
	padding: var(--space-3);
	border: 1px solid transparent;
	border-radius: var(--radius-sm);
	transition: border-color var(--dur) var(--ease-out), background-color var(--dur) var(--ease-out);
}

.cp-search-hit:hover,
.cp-search-hit:focus-visible {
	border-color: var(--line);
	background: var(--paper-pure);
}

.cp-search-hit__media {
	width: 4.5rem;
	height: 5.5rem;
	flex-shrink: 0;
	background: var(--paper-pure);
	border: 1px solid var(--line);
	position: relative;
	overflow: hidden;
}

.cp-search-hit__media img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	padding: var(--space-2);
	mix-blend-mode: multiply;
}

.cp-search-hit__brand {
	font-family: var(--font-mono);
	font-size: var(--fs-3xs);
	letter-spacing: var(--ls-wider);
	text-transform: uppercase;
	color: var(--ink-55);
	display: block;
}

.cp-search-hit__title {
	font-family: var(--font-display);
	font-size: var(--fs-base);
	color: var(--ink);
	margin: var(--space-1) 0;
	display: block;
}

.cp-search-hit__price {
	font-family: var(--font-mono);
	font-size: var(--fs-xs);
	color: var(--ink-70);
}

.cp-search-status {
	font-family: var(--font-mono);
	font-size: var(--fs-2xs);
	letter-spacing: var(--ls-wider);
	text-transform: uppercase;
	color: var(--ink-55);
	margin-bottom: var(--space-6);
}

@media (max-width: 720px) {
	.cp-search-overlay__form {
		min-height: 4.5rem;
	}

	.cp-search-overlay__input {
		font-size: var(--fs-xl);
	}

	.cp-search-results {
		grid-template-columns: 1fr;
		gap: var(--space-1);
	}
}

/* ==================================================== Мобильное меню */

.cp-mobile-nav__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.cp-mobile-nav__list li {
	margin: 0;
	border-bottom: 1px solid var(--line);
}

.cp-mobile-nav__list a,
.cp-mobile-nav__toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-3);
	width: 100%;
	padding: var(--space-4) 0;
	font-family: var(--font-display);
	font-size: var(--fs-lg);
	letter-spacing: var(--ls-tight);
	color: var(--ink);
	text-align: left;
}

.cp-mobile-nav__toggle svg {
	width: 18px;
	height: 18px;
	color: var(--ink-55);
	transition: transform var(--dur) var(--ease-out);
}

.cp-mobile-nav__toggle[aria-expanded='true'] svg {
	transform: rotate(180deg);
}

.cp-mobile-nav__sub {
	list-style: none;
	margin: 0 0 var(--space-4);
	padding: 0 0 0 var(--space-4);
	border-left: 1px solid var(--line);
}

.cp-mobile-nav__sub li {
	border: 0;
}

.cp-mobile-nav__sub a {
	font-family: var(--font-body);
	font-size: var(--fs-base);
	color: var(--ink-70);
	padding: var(--space-2) 0;
}

.cp-mobile-extra {
	margin-top: var(--space-8);
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.cp-mobile-contacts {
	margin-top: var(--space-8);
	padding-top: var(--space-6);
	border-top: 1px solid var(--line);
	font-size: var(--fs-sm);
	color: var(--ink-70);
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.cp-mobile-contacts a {
	display: inline-flex;
	align-items: center;
	gap: var(--space-3);
}

.cp-mobile-contacts svg {
	width: 17px;
	height: 17px;
	color: var(--amber);
}

/* ====================================================== Мини-корзина */

/* Обёртка фрагмента WooCommerce должна наследовать flex-колонку шторки,
   иначе шапка/подвал корзины перестают прилипать к краям. */
.cp-minicart {
	display: flex;
	flex-direction: column;
	flex: 1;
	min-height: 0;
}

.cp-minicart__items {
	list-style: none;
	margin: 0;
	padding: 0;
}

.cp-minicart__item {
	display: grid;
	grid-template-columns: 4.5rem 1fr auto;
	gap: var(--space-4);
	padding-block: var(--space-5);
	border-bottom: 1px solid var(--line);
	margin: 0;
	align-items: start;
}

.cp-minicart__item:first-child {
	padding-top: 0;
}

.cp-minicart__media {
	background: var(--paper-pure);
	border: 1px solid var(--line);
	aspect-ratio: 4 / 5;
	position: relative;
	overflow: hidden;
}

.cp-minicart__media img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	padding: var(--space-2);
	mix-blend-mode: multiply;
}

.cp-minicart__brand {
	font-family: var(--font-mono);
	font-size: var(--fs-3xs);
	letter-spacing: var(--ls-wider);
	text-transform: uppercase;
	color: var(--ink-55);
}

.cp-minicart__title {
	font-family: var(--font-display);
	font-size: var(--fs-base);
	line-height: var(--lh-snug);
	margin: var(--space-1) 0;
	display: block;
}

.cp-minicart__variation {
	font-family: var(--font-mono);
	font-size: var(--fs-2xs);
	color: var(--ink-55);
	margin-bottom: var(--space-2);
}

.cp-minicart__line {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-3);
	font-family: var(--font-mono);
	font-size: var(--fs-xs);
	color: var(--ink-70);
}

.cp-minicart__remove {
	color: var(--ink-40);
	width: 2rem;
	height: 2rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: color var(--dur) var(--ease-out);
}

.cp-minicart__remove:hover {
	color: var(--wine);
}

.cp-minicart__remove svg {
	width: 16px;
	height: 16px;
}

.cp-minicart__totals {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	margin-bottom: var(--space-4);
	font-family: var(--font-mono);
	letter-spacing: var(--ls-wide);
}

.cp-minicart__totals dt {
	font-size: var(--fs-2xs);
	text-transform: uppercase;
	color: var(--ink-55);
}

.cp-minicart__totals dd {
	margin: 0;
	font-size: var(--fs-lg);
	color: var(--ink);
}

.cp-minicart__actions {
	display: grid;
	gap: var(--space-2);
}

.cp-minicart__note {
	margin-top: var(--space-3);
	font-size: var(--fs-2xs);
	color: var(--ink-40);
	text-align: center;
	font-family: var(--font-mono);
	letter-spacing: var(--ls-wide);
}

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

.cp-footer {
	background: var(--ink);
	color: rgba(236, 238, 240, 0.72);
	padding-top: var(--space-20);
	margin-top: var(--section-y);
}

.cp-footer a {
	color: rgba(236, 238, 240, 0.72);
}

.cp-footer a:hover {
	color: var(--gold);
}

.cp-footer__top {
	display: grid;
	grid-template-columns: 1.4fr repeat(3, 1fr);
	gap: var(--space-10);
	padding-bottom: var(--space-16);
}

.cp-footer__about p {
	margin-top: var(--space-6);
	max-width: 34ch;
	font-size: var(--fs-sm);
	line-height: var(--lh-relaxed);
}

.cp-footer__col-title {
	font-family: var(--font-mono);
	font-size: var(--fs-2xs);
	letter-spacing: var(--ls-widest);
	text-transform: uppercase;
	color: var(--gold);
	margin-bottom: var(--space-5);
}

.cp-footer__menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	font-size: var(--fs-sm);
}

.cp-footer__menu li {
	margin: 0;
}

.cp-footer__contacts {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	font-size: var(--fs-sm);
	margin-top: var(--space-6);
}

.cp-footer__contacts a,
.cp-footer__contacts span {
	display: inline-flex;
	align-items: flex-start;
	gap: var(--space-3);
}

.cp-footer__contacts svg {
	width: 17px;
	height: 17px;
	color: var(--gold);
	margin-top: 2px;
}

.cp-social {
	display: flex;
	gap: var(--space-2);
	margin-top: var(--space-6);
}

.cp-social a {
	width: 2.5rem;
	height: 2.5rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(236, 238, 240, 0.18);
	border-radius: var(--radius-pill);
	font-family: var(--font-mono);
	font-size: var(--fs-2xs);
	letter-spacing: var(--ls-wide);
	transition: all var(--dur) var(--ease-out);
}

.cp-social a:hover {
	border-color: var(--gold);
	color: var(--gold);
	background: rgba(217, 164, 65, 0.08);
}

.cp-footer__bottom {
	border-top: 1px solid rgba(236, 238, 240, 0.14);
	padding-block: var(--space-6);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-6);
	flex-wrap: wrap;
	font-family: var(--font-mono);
	font-size: var(--fs-2xs);
	letter-spacing: var(--ls-wide);
	color: rgba(236, 238, 240, 0.5);
}

.cp-footer__legal {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-5);
	list-style: none;
	margin: 0;
	padding: 0;
}

.cp-footer__legal li {
	margin: 0;
}

@media (max-width: 1000px) {
	.cp-footer__top {
		grid-template-columns: 1fr 1fr;
		gap: var(--space-10) var(--space-8);
	}

	.cp-footer__about {
		grid-column: 1 / -1;
	}
}

@media (max-width: 600px) {
	.cp-footer__top {
		grid-template-columns: 1fr;
	}

	.cp-footer__bottom {
		flex-direction: column;
		align-items: flex-start;
	}
}

/* ==================================================== Каркас страницы */

.cp-page-head {
	padding-block: var(--space-10) var(--space-8);
	border-bottom: 1px solid var(--line);
}

.cp-page-head__title {
	margin: 0;
	font-size: var(--fs-3xl);
}

.cp-page-head__lede {
	margin-top: var(--space-4);
	max-width: 60ch;
	color: var(--ink-55);
}

.cp-page-body {
	padding-block: var(--space-12) var(--space-20);
}

.cp-page__media {
	margin-bottom: var(--space-10);
	border: 1px solid var(--line);
	background: var(--paper-pure);
	overflow: hidden;
}

.cp-page__media img {
	width: 100%;
	height: auto;
	object-fit: cover;
}

.cp-page-body .cp-prose {
	margin-inline: auto;
}

/* --------------------------------------------------- Карточка записи */

.cp-post-card {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.cp-post-card__media {
	display: block;
	aspect-ratio: 4 / 3;
	margin-bottom: var(--space-4);
	background: var(--paper-pure);
	border: 1px solid var(--line);
	overflow: hidden;
}

.cp-post-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--dur-slow) var(--ease-out);
}

.cp-post-card:hover .cp-post-card__media img {
	transform: scale(1.04);
}

.cp-post-card__title {
	font-size: var(--fs-lg);
	margin-bottom: var(--space-2);
}

/* ================================================================ 404 */

.cp-404 {
	padding-block: clamp(3rem, 2rem + 6vw, 7rem);
}

.cp-404__inner {
	max-width: 44rem;
	margin-inline: auto;
	text-align: center;
}

.cp-404__code {
	display: block;
	font-size: clamp(4rem, 3rem + 8vw, 9rem);
	line-height: 1;
	color: var(--line-strong);
	letter-spacing: var(--ls-wider);
	margin-bottom: var(--space-6);
}

.cp-404__title {
	font-size: var(--fs-3xl);
	margin-bottom: var(--space-4);
}

.cp-404__text {
	color: var(--ink-55);
	max-width: 46ch;
	margin-inline: auto;
	margin-bottom: var(--space-8);
}

.cp-404__search {
	display: flex;
	gap: var(--space-2);
	max-width: 30rem;
	margin: 0 auto var(--space-6);
}

.cp-404__search .cp-input {
	flex: 1;
}

.cp-404__actions {
	display: flex;
	gap: var(--space-3);
	justify-content: center;
	flex-wrap: wrap;
	margin-bottom: var(--space-12);
}

.cp-404__group {
	margin-bottom: var(--space-8);
}

.cp-404__group .cp-eyebrow {
	margin-bottom: var(--space-4);
}

.cp-404__links {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2);
	justify-content: center;
	list-style: none;
	margin: 0;
	padding: 0;
}

.cp-404__links li {
	margin: 0;
}

@media (max-width: 480px) {
	.cp-404__search {
		flex-direction: column;
	}
}

/* Липкая нижняя панель (мобильная карточка товара) */
.cp-sticky-bar {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: var(--z-sticky);
	background: rgba(236, 238, 240, 0.96);
	backdrop-filter: blur(10px);
	border-top: 1px solid var(--line);
	padding: var(--space-3) var(--gutter);
	padding-bottom: calc(var(--space-3) + env(safe-area-inset-bottom, 0px));
	transform: translateY(110%);
	transition: transform var(--dur) var(--ease-out);
	display: none;
}

.cp-sticky-bar.is-visible {
	transform: translateY(0);
}

@media (max-width: 900px) {
	.cp-sticky-bar {
		display: block;
	}
}
