/*
 * Cart-Power: галерея дизайн-работ.
 * Раскладка: листы макетов в тонких рамках с узлами на углах — тот же мотив, что сетка шапки сайта;
 * подписи экранов — как метки фреймов в Figma (размер · экран); у каждой работы свой цвет (--p, --ink).
 */

.cpd {
	--cpd-ink: #1F3554;
	--cpd-blue: #3C94FD;
	--cpd-line: #DBE4F0;
	--cpd-muted: #5D6F86;
	--cpd-paper: #FFFFFF;
	--cpd-node: #3C94FD;
	--cpd-mono: ui-monospace, "SF Mono", "Cascadia Mono", Menlo, Consolas, "Liberation Mono", monospace;
	--cpd-shadow: 0 34px 70px -34px rgba(9, 18, 32, .55);
	color: var(--cpd-ink);
	font-family: Montserrat, Arial, sans-serif;
	-webkit-font-smoothing: antialiased;
}

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

/* сброс темы; :where() держит его ниже классов галереи, иначе он съедает их отступы */
.cpd :where(h1, h2, h3, p, ul, dl, dd, figure) {
	margin: 0;
	padding: 0;
}

.cpd :where(ul) {
	list-style: none;
}

.cpd :where(li) {
	margin: 0;
	padding: 0;
}

.cpd :where(li)::before {
	content: none;
}

.cpd :where(img) {
	display: block;
	max-width: 100%;
	height: auto;
}

.cpd :where(a) {
	text-decoration: none;
}

.cpd-wrap {
	max-width: 1320px;
	margin-inline: auto;
	padding-left: max(16px, env(safe-area-inset-left, 0px));
	padding-right: max(16px, env(safe-area-inset-right, 0px));
}

/* ---------- узлы на углах: мотив сетки шапки сайта ---------- */

.cpd-card__sheet,
.cpd-sheet,
.cpd-link {
	position: relative;
}

.cpd-card__sheet::after,
.cpd-sheet::after,
.cpd-link::after {
	content: "";
	position: absolute;
	inset: -4px;
	pointer-events: none;
	background:
		radial-gradient(circle, var(--cpd-node) 2.6px, transparent 3.2px) left top / 8px 8px no-repeat,
		radial-gradient(circle, var(--cpd-node) 2.6px, transparent 3.2px) right top / 8px 8px no-repeat,
		radial-gradient(circle, var(--cpd-node) 2.6px, transparent 3.2px) left bottom / 8px 8px no-repeat,
		radial-gradient(circle, var(--cpd-node) 2.6px, transparent 3.2px) right bottom / 8px 8px no-repeat;
}

/* ---------- общие подписи ---------- */

.cpd-eyebrow {
	font-family: var(--cpd-mono);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--cpd-blue);
}

.cpd-size {
	font-family: var(--cpd-mono);
	font-size: 11px;
	letter-spacing: .04em;
	color: var(--cpd-muted);
	font-variant-numeric: tabular-nums;
}

.cpd-tag {
	display: inline-block;
	padding: 4px 9px;
	border-radius: 2px;
	background: rgba(255, 255, 255, .92);
	color: #1F3554;
	font-family: var(--cpd-mono);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	line-height: 1.2;
}

.cpd-h2 {
	color: var(--cpd-ink);
	font-size: clamp(28px, 3vw, 40px);
	font-weight: 800;
	line-height: 1.12;
	letter-spacing: -.012em;
	text-wrap: balance;
}

.cpd-head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 12px 40px;
	margin-bottom: 32px;
}

.cpd-head__note {
	max-width: 52ch;
	color: var(--cpd-muted);
	font-size: 15px;
	line-height: 1.55;
}

.cpd-head__all {
	color: var(--cpd-blue);
	font-size: 15px;
	font-weight: 600;
}

.cpd-head__all::after {
	content: "\00a0→";
}

.cpd-head__all:hover {
	color: var(--cpd-ink);
}

.cpd-sec {
	padding-top: clamp(56px, 7vw, 104px);
}

/* ---------- экраны: окно браузера и телефон ---------- */

.cpd-desk {
	background: #FFFFFF;
	box-shadow: var(--cpd-shadow);
}

.cpd-desk__bar {
	padding: 6px 10px;
	background: #FFFFFF;
	border-bottom: 1px solid #E9EDF2;
}

.cpd-desk__bar span {
	display: block;
	max-width: 56%;
	margin: 0 auto;
	padding: 2px 8px;
	border-radius: 3px;
	background: #F1F3F6;
	color: #7C8798;
	font-family: var(--cpd-mono);
	font-size: 10px;
	line-height: 1.5;
	text-align: center;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.cpd-desk__view {
	position: relative;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	container-type: size;
	background: #F4F4F4;
}

.cpd-desk__view img,
.cpd-phone__view img,
.cpd-shot__frame img {
	width: 100%;
	transform: translateY(0);
	transition: transform .9s cubic-bezier(.4, 0, .2, 1);
}

.cpd-phone {
	display: flow-root; /* иначе верхнее поле экрана схлопывается наружу рамки и экран прилипает к верху */
	aspect-ratio: 393 / 852;
	border-radius: 13.5% / 6.2%;
	background: #0D0E11;
	box-shadow: var(--cpd-shadow);
}

/* поля рамки — от ширины самого телефона: отступ 3,2 % ширины = 1,48 % высоты */
.cpd-phone > img,
.cpd-phone__view {
	width: 93.6%;
	height: 97.05%;
	margin: 3.2%;
	border-radius: 11% / 5.1%;
	overflow: hidden;
}

.cpd .cpd-phone > img {
	height: 97.05%;
}

.cpd-phone > img {
	object-fit: cover;
	object-position: top;
}

.cpd-phone__view {
	container-type: size;
	background: #FFFFFF;
}

/* ---------- обложка работы ---------- */

.cpd-cover {
	position: relative;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--p);
	isolation: isolate;
}

.cpd-cover .cpd-desk,
.cpd-cover .cpd-phone,
.cpd-cover .cpd-tag {
	position: absolute;
}

.cpd-cover--site .cpd-desk {
	left: 7%;
	top: 11%;
	width: 70%;
}

.cpd-cover--site .cpd-desk__view {
	aspect-ratio: 1 / 1;
}

.cpd-cover--site .cpd-phone--1 {
	right: 6%;
	top: 27%;
	width: 21%;
}

.cpd-cover--site .cpd-phone--2 {
	display: none;
}

.cpd-cover--desk .cpd-desk {
	left: 9%;
	top: 11%;
	width: 82%;
}

.cpd-cover--desk .cpd-desk__view {
	aspect-ratio: 16 / 12;
}

.cpd-cover--app .cpd-phone--app {
	width: 25%;
}

.cpd-cover--app .cpd-phone--app1 {
	left: 10%;
	top: 17%;
}

.cpd-cover--app .cpd-phone--app2 {
	left: 37.5%;
	top: 9%;
}

.cpd-cover--app .cpd-phone--app3 {
	left: 65%;
	top: 21%;
}

.cpd-cover--concept .cpd-desk--old {
	left: 6%;
	top: 15%;
	width: 54%;
	filter: saturate(.55);
}

.cpd-cover--concept .cpd-desk--old .cpd-desk__view {
	aspect-ratio: 16 / 10;
}

.cpd-cover--concept .cpd-desk--front {
	left: 33%;
	top: 33%;
	width: 61%;
}

.cpd-cover--concept .cpd-desk--front .cpd-desk__view {
	aspect-ratio: 1 / 1;
}

.cpd-cover--concept .cpd-tag--old {
	left: 6%;
	top: 8%;
}

.cpd-cover--concept .cpd-tag--new {
	right: 6%;
	top: 26%;
	z-index: 2;
	background: var(--cpd-blue);
	color: #FFFFFF;
}

.cpd-cover__size {
	position: absolute;
	right: 12px;
	top: 10px;
	z-index: 3;
	color: var(--ink);
	opacity: .7;
	font-family: var(--cpd-mono);
	font-size: 10px;
	letter-spacing: .06em;
}

/* ---------- карточка в сетке ---------- */

.cpd-card__link {
	display: block;
	color: inherit;
}

.cpd-card__sheet {
	padding: 10px;
	border: 1px solid var(--cpd-line);
	background: var(--cpd-paper);
	transition: border-color .2s ease;
}

.cpd-card.is-link:hover .cpd-card__sheet,
.cpd-card.is-link .cpd-card__link:focus-visible .cpd-card__sheet {
	border-color: var(--cpd-blue);
}

.cpd-card__link:focus-visible {
	outline: 2px solid var(--cpd-blue);
	outline-offset: 6px;
}

.cpd-card:hover .cpd-desk__view img {
	transform: translateY(min(0px, calc(-100% + 100cqh)));
	transition-duration: 9s;
	transition-timing-function: cubic-bezier(.45, 0, .3, 1);
}

.cpd-card__meta {
	display: grid;
	gap: 6px;
	padding: 22px 2px 0;
}

.cpd-card__title {
	color: var(--cpd-ink);
	font-size: clamp(22px, 2vw, 28px);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -.01em;
}

.cpd-card.is-link .cpd-card__title::after {
	content: "\00a0→";
	color: var(--cpd-blue);
	display: inline-block;
	transition: transform .2s ease;
}

.cpd-card.is-link:hover .cpd-card__title::after {
	transform: translateX(4px);
}

.cpd-card__kind {
	color: var(--cpd-ink);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.45;
}

.cpd-card__facts {
	color: var(--cpd-muted);
	font-family: var(--cpd-mono);
	font-size: 11.5px;
	letter-spacing: .03em;
	line-height: 1.6;
}

.cpd-card__soon {
	justify-self: start;
	margin-top: 6px;
	padding: 3px 8px;
	border: 1px dashed #B9C6D8;
	color: var(--cpd-muted);
	font-family: var(--cpd-mono);
	font-size: 10.5px;
	letter-spacing: .06em;
	text-transform: uppercase;
}

/* ---------- рубрика «Дизайн» ---------- */

.cpd-intro {
	padding-top: 12px;
	padding-bottom: 40px;
}

.cpd-intro__title {
	max-width: 19ch;
	margin-top: 14px;
	color: var(--cpd-ink);
	font-size: clamp(38px, 5.6vw, 76px);
	font-weight: 900;
	line-height: 1.02;
	letter-spacing: -.025em;
	text-wrap: balance;
}

.cpd-intro__row {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px 48px;
	margin-top: 24px;
	padding-bottom: 28px;
	border-bottom: 1px solid var(--cpd-line);
}

.cpd-intro__lead {
	max-width: 60ch;
	color: var(--cpd-ink);
	font-size: 18px;
	font-weight: 500;
	line-height: 1.6;
}

.cpd-intro__count {
	color: var(--cpd-muted);
	font-family: var(--cpd-mono);
	font-size: 12px;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.cpd-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 24px;
}

.cpd-chip {
	padding: 6px 12px;
	border: 1px solid var(--cpd-line);
	background: #FFFFFF;
	color: #2F7DE1;
	font-size: 13px;
	font-weight: 500;
	line-height: 1.3;
	transition: border-color .15s ease, color .15s ease;
}

.cpd-chip:hover,
.cpd-chip:focus-visible {
	border-color: var(--cpd-blue);
	color: #2F7DE1;
}

.cpd-chip.is-current {
	border-color: var(--cpd-blue);
	background: var(--cpd-blue);
	color: #FFFFFF;
}

.cpd-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 64px 40px;
	padding-top: 8px;
}

.cpd-card--wide {
	grid-column: 1 / -1;
}

.cpd-card--wide .cpd-cover {
	aspect-ratio: 2.2 / 1;
}

.cpd-card--wide .cpd-cover--site .cpd-desk {
	left: 5%;
	top: 12%;
	width: 56%;
}

.cpd-card--wide .cpd-cover--site .cpd-desk__view {
	aspect-ratio: 16 / 10;
}

.cpd-card--wide .cpd-cover--site .cpd-phone--1 {
	right: auto;
	left: 65%;
	top: 15%;
	width: 13.5%;
}

.cpd-card--wide .cpd-cover--site .cpd-phone--2 {
	display: block;
	left: 81.5%;
	top: 29%;
	width: 13.5%;
}

.cpd-card--wide .cpd-card__meta {
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: end;
	column-gap: 40px;
}

.cpd-card--wide .cpd-card__title {
	font-size: clamp(26px, 2.6vw, 36px);
}

.cpd-card--wide .cpd-card__facts {
	grid-column: 2;
	grid-row: 1 / span 2;
	align-self: end;
	text-align: right;
}

/* ---------- страница работы: первый экран ---------- */

.cpd-hero.cp-case-details__bg {
	margin-top: -300px;
	padding-top: 300px;
	background: linear-gradient(var(--p-deep) calc(100% - 150px), transparent calc(100% - 150px));
	color: var(--ink);
}

.cpd-hero__in {
	padding-top: 40px;
	padding-bottom: 56px;
}

.cpd-hero .cpd-eyebrow {
	color: var(--ink);
	opacity: .72;
}

.cpd-hero__title {
	margin-top: 14px;
	color: var(--ink);
	font-size: clamp(60px, 10vw, 150px);
	font-weight: 900;
	line-height: .9;
	letter-spacing: -.04em;
}

.cpd-hero__lead {
	max-width: 56ch;
	margin-top: 28px;
	color: var(--ink);
	font-size: clamp(17px, 1.5vw, 20px);
	font-weight: 500;
	line-height: 1.6;
	opacity: .92;
}

.cpd-passport {
	--cpd-node: var(--ink);
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	margin-top: 44px;
	border-top: 1px solid color-mix(in srgb, var(--ink) 26%, transparent);
	border-bottom: 1px solid color-mix(in srgb, var(--ink) 26%, transparent);
}

.cpd-passport > div {
	position: relative;
	min-width: 0;
	padding: 16px 18px 18px;
	border-left: 1px solid color-mix(in srgb, var(--ink) 26%, transparent);
}

.cpd-passport > div:first-child {
	padding-left: 0;
	border-left: 0;
}

.cpd-passport > div::before {
	content: "";
	position: absolute;
	left: -4px;
	top: -4px;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--ink);
}

.cpd-passport > div:first-child::before {
	left: -3px;
}

.cpd-passport dt {
	color: var(--ink);
	opacity: .8;
	font-family: var(--cpd-mono);
	font-size: 11px;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.cpd-passport dd {
	margin-top: 8px;
	color: var(--ink);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.45;
}

.cpd-stage {
	position: relative;
	aspect-ratio: 1296 / 600;
}

.cpd-stage .cpd-desk,
.cpd-stage .cpd-phone {
	position: absolute;
}

.cpd-desk--stage {
	left: 0;
	top: 0;
	width: 68%;
}

.cpd-desk--stage .cpd-desk__bar {
	padding: 9px 14px;
}

.cpd-desk--stage .cpd-desk__bar span {
	font-size: 11px;
}

.cpd-desk--stage .cpd-desk__view {
	aspect-ratio: 16 / 10.4;
}

.cpd-desk--stage:hover .cpd-desk__view img {
	transform: translateY(min(0px, calc(-100% + 100cqh)));
	transition-duration: 14s;
	transition-timing-function: cubic-bezier(.45, 0, .3, 1);
}

.cpd-phone--stage1 {
	left: 71%;
	top: 8%;
	width: 13%;
}

.cpd-phone--stage2 {
	left: 86.6%;
	top: 22%;
	width: 13%;
}

/* первый экран без телефонов (концепт) и без десктопа (приложение) */
.cpd-stage--desk {
	aspect-ratio: 1296 / 750;
}

.cpd-stage--desk .cpd-desk--stage {
	left: 8%;
	width: 84%;
}

.cpd-stage--phones {
	aspect-ratio: 1296 / 600;
}

.cpd-stage--phones .cpd-phone {
	width: 16%;
}

.cpd-stage--phones .cpd-phone--stage1 { left: 13%; top: 12%; }
.cpd-stage--phones .cpd-phone--stage2 { left: 32%; top: 2%; }
.cpd-stage--phones .cpd-phone--stage3 { left: 51%; top: 14%; }
.cpd-stage--phones .cpd-phone--stage4 { left: 70%; top: 5%; }

/* ---------- текстовые ряды: подпись слева, текст справа ---------- */

.cpd-split {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: 24px;
	row-gap: 32px;
}

.cpd-split > .cpd-label {
	position: relative;
	grid-column: 1 / span 3;
	padding-top: 22px;
	border-top: 1px solid var(--cpd-ink);
	color: var(--cpd-ink);
	font-family: var(--cpd-mono);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.cpd-split > .cpd-label::before {
	content: "";
	position: absolute;
	left: -3px;
	top: -4px;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--cpd-blue);
}

.cpd-split > :not(.cpd-label) {
	grid-column: 5 / -1;
	min-width: 0;
	padding-top: 22px;
	border-top: 1px solid var(--cpd-line);
}

.cpd-text {
	display: grid;
	gap: 18px;
}

.cpd-text p {
	max-width: 64ch;
	color: var(--cpd-ink);
	font-size: clamp(17px, 1.45vw, 20px);
	font-weight: 500;
	line-height: 1.65;
}

/* ---------- было и стало ---------- */

.cpd-ba {
	position: relative;
	aspect-ratio: 1440 / 900;
	overflow: hidden;
	border: 1px solid var(--cpd-line);
	background: #FFFFFF;
	user-select: none;
}

.cpd-ba__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top;
}

.cpd .cpd-ba__img {
	height: 100%;
}

.cpd-ba__old {
	clip-path: inset(0 calc(100% - var(--x)) 0 0);
}

.cpd-ba__line {
	position: absolute;
	top: 0;
	bottom: 0;
	left: var(--x);
	width: 2px;
	margin-left: -1px;
	background: var(--cpd-blue);
	pointer-events: none;
}

.cpd-ba__line::after {
	content: "‹ ›";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 44px;
	height: 44px;
	margin: -22px 0 0 -22px;
	border-radius: 50%;
	background: var(--cpd-blue);
	color: #FFFFFF;
	font-size: 18px;
	font-weight: 700;
	line-height: 42px;
	text-align: center;
	letter-spacing: .1em;
	box-shadow: 0 6px 20px rgba(31, 53, 84, .35);
}

.cpd-ba__tag {
	position: absolute;
	top: 16px;
	z-index: 2;
	box-shadow: 0 2px 8px rgba(31, 53, 84, .18);
}

.cpd-ba__tag--old {
	left: 16px;
}

.cpd-ba__tag--new {
	right: 16px;
	background: var(--cpd-blue);
	color: #FFFFFF;
}

.cpd-ba__range {
	position: absolute;
	inset: 0;
	z-index: 3;
	width: 100%;
	height: 100%;
	margin: 0;
	opacity: 0;
	cursor: ew-resize;
}

.cpd-ba:has(.cpd-ba__range:focus-visible) {
	outline: 2px solid var(--cpd-blue);
	outline-offset: 4px;
}

/* ---------- длинный экран с заметками ---------- */

.cpd-long {
	display: grid;
	grid-template-columns: minmax(0, 4fr) minmax(0, 7fr);
	gap: 56px;
	align-items: start;
}

.cpd-long__notes {
	position: sticky;
	top: 110px;
}

.cpd-notes {
	margin-top: 28px;
	border-top: 1px solid var(--cpd-line);
}

.cpd-notes li {
	position: relative;
	padding: 16px 0 16px 22px;
	border-bottom: 1px solid var(--cpd-line);
	color: var(--cpd-ink);
	font-size: 16px;
	line-height: 1.55;
}

.cpd .cpd-notes li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 24px;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--cpd-blue);
}

.cpd-sheet {
	padding: 12px;
	border: 1px solid var(--cpd-line);
	background: var(--cpd-paper);
}

.cpd-sheet .cpd-size {
	display: block;
	padding: 0 2px 12px;
}

.cpd-zoom {
	display: block;
	width: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	cursor: zoom-in;
	appearance: none;
	-webkit-appearance: none;
}

.cpd-zoom:focus-visible {
	outline: 2px solid var(--cpd-blue);
	outline-offset: 3px;
}

/* ---------- путь покупателя ---------- */

.cpd-trio {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 32px;
}

.cpd-trio--2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cpd-trio--4 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px;
}

.cpd-trio--tall .cpd-shot__frame {
	aspect-ratio: 390 / 848;
}

.cpd-shot {
	min-width: 0;
}

.cpd-shot .cpd-size {
	display: block;
	margin-bottom: 10px;
}

.cpd-shot__frame {
	display: flex; /* кадр короче рамки прижат к верху, а не висит по центру кнопки */
	align-items: flex-start;
	aspect-ratio: 3 / 4;
	overflow: hidden;
	container-type: size;
	border: 1px solid var(--cpd-line);
	background: #FFFFFF;
	transition: border-color .2s ease;
}

.cpd-shot__frame:hover {
	border-color: var(--cpd-blue);
}

.cpd-shot__frame:hover img {
	transform: translateY(min(0px, calc(-100% + 100cqh)));
	transition-duration: 10s;
	transition-timing-function: cubic-bezier(.45, 0, .3, 1);
}

.cpd-shot__title {
	margin-top: 18px;
	color: var(--cpd-ink);
	font-size: 18px;
	font-weight: 700;
	line-height: 1.3;
}

.cpd-shot__text {
	margin-top: 6px;
	color: var(--cpd-muted);
	font-size: 15px;
	line-height: 1.55;
}

/* ---------- мобильная версия на цвете работы ---------- */

.cpd-band {
	margin-top: clamp(56px, 7vw, 104px);
	padding-block: clamp(56px, 6vw, 88px);
	background: var(--p-deep);
	color: var(--ink);
}

.cpd-head--on .cpd-h2,
.cpd-head--on .cpd-head__note {
	color: var(--ink);
}

.cpd-head--on .cpd-head__note {
	opacity: .82;
}

.cpd-phones {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(20px, 3vw, 44px);
	padding-inline: clamp(0px, 3vw, 40px);
}

.cpd-phones:focus-visible {
	outline: 2px solid var(--ink);
	outline-offset: 8px;
}

.cpd-phones--3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	padding-inline: clamp(0px, 10vw, 160px);
}

.cpd-phones--5 {
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: clamp(16px, 2vw, 28px);
	padding-inline: 0;
}

.cpd-phones__item {
	min-width: 0;
}

.cpd-phone--tall:hover .cpd-phone__view img {
	transform: translateY(min(0px, calc(-100% + 100cqh)));
	transition-duration: 8s;
	transition-timing-function: cubic-bezier(.45, 0, .3, 1);
}

.cpd-phones .cpd-size {
	display: block;
	margin-top: 16px;
	color: var(--ink);
	opacity: .74;
	text-align: center;
}

/* ---------- концепты, цвета, ссылки ---------- */

.cpd-sheet--wide .cpd-zoom img {
	width: 100%;
}

.cpd-split > .cpd-concepts {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
	grid-column: 1 / -1;
	padding-top: 8px;
	border-top: 0;
}

.cpd-split > .cpd-concepts--3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.cpd-split > .cpd-concepts--4 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.cpd-split > .cpd-concepts--1 {
	grid-template-columns: minmax(0, 1fr);
}

.cpd-concepts--1 .cpd-concept__frame {
	aspect-ratio: auto;
}

.cpd-concepts--1 .cpd-concept__frame img {
	height: auto;
}

.cpd-concept .cpd-size {
	display: block;
	margin-bottom: 10px;
}

.cpd-concept__frame {
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border: 1px solid var(--cpd-line);
}

.cpd-concept__frame img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: left top;
	transition: transform .6s cubic-bezier(.4, 0, .2, 1);
}

.cpd-concept__frame:hover img {
	transform: scale(1.03);
}

.cpd-swatches {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 16px;
}

.cpd-swatches {
	align-items: start;
}

.cpd-swatch {
	display: grid;
	align-content: start;
	gap: 6px;
}

.cpd-swatch__chip {
	aspect-ratio: 5 / 4;
	margin-bottom: 6px;
	border: 1px solid var(--cpd-line);
	background: var(--c);
}

.cpd-swatch__hex {
	color: var(--cpd-ink);
	font-family: var(--cpd-mono);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .04em;
}

.cpd-swatch__role {
	color: var(--cpd-muted);
	font-size: 13.5px;
	line-height: 1.45;
}

.cpd-links {
	display: grid;
	gap: 16px;
}

.cpd-link {
	display: grid;
	gap: 6px;
	padding: 22px 24px;
	border: 1px solid var(--cpd-line);
	background: var(--cpd-paper);
	transition: border-color .2s ease;
}

.cpd-link:hover,
.cpd-link:focus-visible {
	border-color: var(--cpd-blue);
}

.cpd-link__label {
	color: var(--cpd-ink);
	font-size: 20px;
	font-weight: 700;
	line-height: 1.3;
}

.cpd-link__label::after {
	content: "\00a0→";
	color: var(--cpd-blue);
}

.cpd-link__text {
	color: var(--cpd-muted);
	font-size: 15px;
	line-height: 1.5;
}

.cpd-grid--more {
	padding-top: 0;
}

/* ---------- ранние работы прежней рубрики ---------- */

.cpd-early__list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 32px 24px;
}

.cpd-early__item {
	display: grid;
	gap: 12px;
	color: var(--cpd-ink);
}

.cpd-early__img {
	display: block;
	aspect-ratio: 925 / 400;
	overflow: hidden;
	border: 1px solid var(--cpd-line);
	background: #FFFFFF;
}

.cpd .cpd-early__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .5s cubic-bezier(.4, 0, .2, 1);
}

.cpd-early__item:hover .cpd-early__img img {
	transform: scale(1.03);
}

.cpd-early__name {
	font-size: 16px;
	font-weight: 700;
	line-height: 1.35;
}

.cpd-early__item:hover .cpd-early__name {
	color: var(--cpd-blue);
}

/* ---------- смежные услуги, отзывы, форма ---------- */

.cpd-services {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 16px;
	margin-top: 28px;
}

.cpd-service {
	display: block;
	height: 100%;
	padding: 20px 22px;
	border: 1px solid var(--cpd-line);
	background: #FFFFFF;
	transition: border-color .15s ease, box-shadow .15s ease;
}

.cpd-service:hover,
.cpd-service:focus-visible {
	border-color: var(--cpd-blue);
	box-shadow: 0 6px 18px rgba(31, 53, 84, .08);
}

.cpd-service__name {
	display: block;
	color: var(--cpd-ink);
	font-size: 17px;
	font-weight: 700;
	line-height: 1.3;
}

.cpd-service__name::after {
	content: "\00a0→";
	color: var(--cpd-blue);
}

.cpd-service__note {
	display: block;
	margin-top: 6px;
	color: var(--cpd-muted);
	font-size: 14px;
	line-height: 1.45;
}

.cpd-form {
	margin-top: clamp(56px, 7vw, 104px);
	padding-top: 0;
}

/* ---------- макет во весь размер ---------- */

.cpd-lb {
	width: 100vw;
	max-width: none;
	height: 100vh;
	max-height: none;
	margin: 0;
	padding: 64px max(16px, 4vw) 48px;
	border: 0;
	background: rgba(12, 21, 35, .96);
	overflow: auto;
}

.cpd-lb::backdrop {
	background: rgba(12, 21, 35, .6);
}

.cpd .cpd-lb__img {
	width: auto;
	max-width: min(1440px, 100%);
	height: auto;
	margin: 0 auto;
	box-shadow: 0 30px 80px rgba(0, 0, 0, .5);
}

.cpd-lb__close {
	position: fixed;
	top: calc(14px + env(safe-area-inset-top, 0px));
	right: max(16px, env(safe-area-inset-right, 0px));
	z-index: 2;
	padding: 9px 16px;
	border: 1px solid rgba(255, 255, 255, .35);
	border-radius: 2px;
	background: rgba(12, 21, 35, .7);
	color: #FFFFFF;
	font-family: var(--cpd-mono);
	font-size: 12px;
	letter-spacing: .08em;
	text-transform: uppercase;
	cursor: pointer;
}

.cpd-lb__close:hover,
.cpd-lb__close:focus-visible {
	border-color: #FFFFFF;
}

/* ---------- шапка темы над цветным первым экраном ---------- */

.cpd-body--dark .cp-breadcumb-area .breadcumbs,
.cpd-body--dark .cp-breadcumb-area .breadcumbs a,
.cpd-body--dark .cp-breadcumb-area .breadcumbs span {
	color: rgba(255, 255, 255, .78);
}

.cpd-body--light .cp-breadcumb-area .breadcumbs,
.cpd-body--light .cp-breadcumb-area .breadcumbs a,
.cpd-body--light .cp-breadcumb-area .breadcumbs span {
	color: rgba(31, 42, 55, .82);
}

/* ---------- адаптив ---------- */

@media (max-width: 1100px) {
	.cpd-passport {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.cpd-passport > div:nth-child(4) {
		padding-left: 0;
		border-left: 0;
	}

	.cpd-passport > div:nth-child(n + 4) {
		border-top: 1px solid color-mix(in srgb, var(--ink) 26%, transparent);
	}

	.cpd-swatches {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 900px) {
	.cpd-grid,
	.cpd-split > .cpd-concepts {
		grid-template-columns: minmax(0, 1fr);
	}

	.cpd-card--wide .cpd-cover {
		aspect-ratio: 4 / 3;
	}

	.cpd-card--wide .cpd-cover--site .cpd-desk {
		left: 7%;
		top: 11%;
		width: 70%;
	}

	.cpd-card--wide .cpd-cover--site .cpd-desk__view {
		aspect-ratio: 1 / 1;
	}

	.cpd-card--wide .cpd-cover--site .cpd-phone--1 {
		left: auto;
		right: 6%;
		top: 27%;
		width: 21%;
	}

	.cpd-card--wide .cpd-cover--site .cpd-phone--2 {
		display: none;
	}

	.cpd-card--wide .cpd-card__meta {
		grid-template-columns: minmax(0, 1fr);
	}

	.cpd-card--wide .cpd-card__facts {
		grid-column: auto;
		grid-row: auto;
		text-align: left;
	}

	.cpd-long {
		grid-template-columns: minmax(0, 1fr);
		gap: 32px;
	}

	.cpd-long__notes {
		position: static;
	}

	.cpd-trio,
	.cpd-trio--2 {
		grid-template-columns: minmax(0, 1fr);
		gap: 44px;
	}

	.cpd-trio--4,
	.cpd-split > .cpd-concepts--3,
	.cpd-split > .cpd-concepts--4,
	.cpd-early__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 24px 16px;
	}

	.cpd-stage--phones .cpd-phone {
		width: 22%;
	}

	.cpd-stage--phones .cpd-phone--stage1 { left: 2%; }
	.cpd-stage--phones .cpd-phone--stage2 { left: 26.5%; }
	.cpd-stage--phones .cpd-phone--stage3 { left: 51%; }
	.cpd-stage--phones .cpd-phone--stage4 { left: 75.5%; }

	.cpd-stage--phones {
		aspect-ratio: 1296 / 760;
	}

	.cpd-shot__frame {
		aspect-ratio: 4 / 3;
	}

	.cpd-split > .cpd-label,
	.cpd-split > :not(.cpd-label) {
		grid-column: 1 / -1;
	}

	.cpd-split > :not(.cpd-label):not(.cpd-concepts) {
		padding-top: 0;
		border-top: 0;
	}

	.cpd-phones {
		grid-template-columns: none;
		grid-auto-flow: column;
		grid-auto-columns: minmax(180px, 46%);
		overflow-x: auto;
		padding: 4px 4px 12px;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
	}

	.cpd-phones__item {
		scroll-snap-align: start;
	}

	.cpd-stage--site {
		aspect-ratio: 1296 / 760;
	}

	.cpd-stage--site .cpd-desk--stage {
		width: 76%;
	}

	.cpd-stage--site .cpd-phone--stage1 {
		left: 79%;
		top: 14%;
		width: 19%;
	}

	.cpd-stage--site .cpd-phone--stage2 {
		display: none;
	}
}

@media (max-width: 600px) {
	.cpd-passport {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.cpd-passport > div:nth-child(n) {
		padding-left: 14px;
		border-left: 1px solid color-mix(in srgb, var(--ink) 26%, transparent);
	}

	.cpd-passport > div:nth-child(odd) {
		padding-left: 0;
		border-left: 0;
	}

	.cpd-passport > div:nth-child(n + 3) {
		border-top: 1px solid color-mix(in srgb, var(--ink) 26%, transparent);
	}

	.cpd-swatches {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.cpd-hero__title {
		letter-spacing: -.03em;
	}

	.cpd-ba {
		aspect-ratio: 4 / 3;
	}
}

@media (prefers-reduced-motion: reduce) {
	.cpd *,
	.cpd *::before,
	.cpd *::after {
		transition: none !important;
	}

	.cpd-card:hover .cpd-desk__view img,
	.cpd-desk--stage:hover .cpd-desk__view img,
	.cpd-shot__frame:hover img,
	.cpd-phone--tall:hover .cpd-phone__view img {
		transform: none;
	}
}
