/*
 * Photo Contest — page sections, following the "Friends Through the Lens"
 * design. Values come from the GoNetanya design tokens. Where the design did
 * not reach WCAG AA the agreed corrections apply: dark text on orange, small
 * accent text in dark blue with an orange mark, light blue instead of
 * turquoise for small text on dark blue, stronger white for small captions.
 * Logical properties throughout.
 */

.pc-root,
.pc-hero, .pc-about, .pc-stats, .pc-banner, .pc-gallery, .pc-band, .pc-pagehero,
.pc-steps, .pc-rules, .pc-winners, .pc-header, .pc-footer, .pc-modal {
	--pc-white: #fff;
	--pc-turquoise: #05c7f2;
	--pc-gray-50: #f5f9fb;
	--pc-gray-100: #eaf1f5;
	--pc-gray-500: #63727b;
	--pc-gray-700: #2c363c;
	--pc-border: #d8e2e8;
	--pc-night: #06202d;
	--pc-deep: #0a3c53;
	--pc-radius-md: 10px;
	--pc-gutter: clamp(16px, 2.6vw, 44px);
	box-sizing: border-box;
	font-family: var(--pc-font);
	color: var(--pc-gray-700);
	-webkit-font-smoothing: antialiased;
}

.pc-hero *, .pc-about *, .pc-stats *, .pc-banner *, .pc-gallery *, .pc-band *, .pc-pagehero *,
.pc-steps *, .pc-rules *, .pc-winners *, .pc-header *, .pc-footer *, .pc-modal * {
	box-sizing: border-box;
}

.pc-wrap {
	max-inline-size: 1200px;
	margin-inline: auto;
	padding-inline: var(--pc-gutter);
}

.pc-wrap--wide {
	max-inline-size: 1400px;
}

.pc-section {
	padding-block: clamp(44px, 6vw, 96px);
	background: var(--pc-white);
	scroll-margin-block-start: 90px;
}

.pc-l2 {
	font-style: normal;
}

/* Small accent line: dark blue text, the orange stays as a mark beside it. */
.pc-mark {
	display: inline-block;
	inline-size: 8px;
	block-size: 8px;
	margin-inline-end: 8px;
	border-radius: 50%;
	background: var(--pc-orange-500);
	vertical-align: 0.05em;
}

.pc-eyebrow {
	margin: 0;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--pc-blue-700);
}

.pc-eyebrow--light {
	color: var(--pc-cyan-100);
}

/* ---------- buttons, links, status ---------- */

body a.pc-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-block-size: 48px;
	padding-block: 14px;
	padding-inline: 28px;
	border-radius: var(--pc-radius-pill);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1.2;
	text-decoration: none;
	text-transform: uppercase;
	transition: background-color 160ms ease, color 160ms ease;
}

body a.pc-btn--accent,
body a.pc-btn--accent:focus {
	background: var(--pc-orange-500);
	color: var(--pc-ink);
}

body a.pc-btn--accent:hover {
	background: var(--pc-white);
	color: var(--pc-blue-900);
}

body .pc-band a.pc-btn--accent:hover,
body .pc-pagehero a.pc-btn--accent:hover,
body .pc-hero a.pc-btn--accent:hover {
	background: var(--pc-white);
}

body a.pc-btn--light,
body a.pc-btn--light:focus {
	background: var(--pc-white);
	color: var(--pc-blue-900);
}

body a.pc-btn--light:hover {
	background: var(--pc-orange-500);
	color: var(--pc-ink);
}

a.pc-link {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding-block-end: 5px;
	border-block-end: 1px solid var(--pc-border);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-decoration: none;
	text-transform: uppercase;
	color: var(--pc-blue-900);
}

a.pc-link:hover {
	border-color: var(--pc-blue-900);
}

.pc-status {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--pc-white);
}

.pc-status__dot {
	flex: none;
	inline-size: 8px;
	block-size: 8px;
	border-radius: 50%;
	background: var(--pc-turquoise);
}

.pc-status--voting .pc-status__dot,
.pc-status--winners .pc-status__dot {
	background: var(--pc-orange-500);
}

.pc-status--pill {
	padding-block: 11px;
	padding-inline: 18px;
	border: 1px solid rgba(255, 255, 255, 0.4);
	border-radius: var(--pc-radius-pill);
}

.pc-hero a:focus-visible, .pc-hero button:focus-visible,
.pc-pagehero a:focus-visible, .pc-banner a:focus-visible, .pc-band a:focus-visible,
.pc-footer a:focus-visible, .pc-modal a:focus-visible, .pc-modal button:focus-visible,
.pc-modal input:focus-visible, .pc-modal textarea:focus-visible {
	outline: 3px solid var(--pc-white);
	outline-offset: 3px;
	box-shadow: 0 0 0 7px var(--pc-blue-900);
}

.pc-about a:focus-visible, .pc-gallery a:focus-visible, .pc-gallery button:focus-visible,
.pc-winners a:focus-visible, .pc-header a:focus-visible, .pc-header button:focus-visible {
	outline: 3px solid var(--pc-blue-900);
	outline-offset: 3px;
	box-shadow: 0 0 0 7px var(--pc-white);
}

/* ---------- header ---------- */

/* The template is printed inside a builder wrapper, so the wrapper is what sticks. */
.pc-header-slot {
	position: sticky;
	inset-block-start: 0;
	z-index: 60;
}

.admin-bar .pc-header-slot {
	inset-block-start: 32px;
}

.admin-bar .pc-modal {
	inset-block-start: 32px;
}

@media (max-width: 782px) {
	.admin-bar .pc-header-slot,
	.admin-bar .pc-modal {
		inset-block-start: 46px;
	}
}

.pc-header {
	position: sticky;
	inset-block-start: 0;
	z-index: 60;
	border-block-end: 1px solid var(--pc-border);
	background: rgba(255, 255, 255, 0.96);
	backdrop-filter: blur(14px);
}

.admin-bar .pc-header {
	inset-block-start: 32px;
}

.pc-header__inner {
	display: flex;
	align-items: center;
	gap: clamp(12px, 2vw, 32px);
	max-inline-size: 1400px;
	min-block-size: 78px;
	margin-inline: auto;
	padding-inline: clamp(14px, 2.6vw, 44px);
}

a.pc-logo {
	flex: none;
	display: block;
	font-size: clamp(16px, 1.5vw, 20px);
	font-weight: 800;
	letter-spacing: -0.015em;
	line-height: 0.92;
	text-decoration: none;
	text-transform: uppercase;
	color: var(--pc-blue-900);
}

.pc-logo__line {
	display: block;
}

.pc-logo__small {
	font-weight: 700;
	text-transform: lowercase;
	color: var(--pc-orange-500);
}

.pc-logo img {
	display: block;
	max-block-size: 48px;
	inline-size: auto;
}

.pc-header__nav {
	flex: 1;
	min-inline-size: 0;
}

.pc-nav {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px clamp(12px, 1.8vw, 28px);
	margin: 0;
	padding: 0;
	list-style: none;
}

.pc-nav__item {
	display: inline-block;
	padding-block: 6px 4px;
	border-block-end: 2px solid transparent;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-decoration: none;
	text-transform: uppercase;
	color: var(--pc-gray-700);
}

a.pc-nav__item:hover {
	color: var(--pc-blue-900);
	border-color: var(--pc-border);
}

.pc-nav__item.is-current {
	border-color: var(--pc-orange-500);
	color: var(--pc-blue-900);
}

.pc-nav__item.is-disabled {
	color: var(--pc-gray-500);
	cursor: default;
}

.pc-pill {
	flex: none;
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding-block: 9px;
	padding-inline: 16px;
	border: 1px solid var(--pc-border);
	border-radius: var(--pc-radius-pill);
}

.pc-pill__title {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--pc-gray-500);
}

.pc-pill__note {
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--pc-blue-900);
}

@media (max-width: 640px) {
	.pc-header__inner {
		flex-wrap: wrap;
		padding-block: 10px;
		min-block-size: 0;
	}

	.pc-header__nav {
		order: 3;
		flex-basis: 100%;
	}

	.pc-pill {
		margin-inline-start: auto;
	}
}

@media (max-width: 782px) {
	.admin-bar .pc-header {
		inset-block-start: 46px;
	}
}

/* ---------- first screen (diptych) ---------- */

.pc-hero {
	position: relative;
	display: grid;
	grid-template-columns: 1fr 1fr;
	min-block-size: min(92vh, 960px);
	overflow: hidden;
	background: var(--pc-blue-900);
	color: var(--pc-white);
	scroll-margin-block-start: 90px;
}

.pc-hero__half {
	position: relative;
	overflow: hidden;
	background: var(--pc-deep);
}

.pc-hero__layer {
	position: absolute;
	inset: 0;
	opacity: 0;
	transform: scale(1.06);
	transition: opacity 1600ms cubic-bezier(0.4, 0, 0.2, 1);
}

.pc-hero__layer.is-active {
	opacity: 1;
	animation: pc-drift 16s linear both;
}

.pc-hero__half + .pc-hero__half .pc-hero__layer.is-active {
	animation-name: pc-drift-rev;
}

.pc-hero__layer img {
	inline-size: 100%;
	block-size: 100%;
	object-fit: cover;
}

@keyframes pc-drift {
	from { transform: scale(1.1) translate3d(-2%, 0, 0); }
	to { transform: scale(1.14) translate3d(1.5%, -1%, 0); }
}

@keyframes pc-drift-rev {
	from { transform: scale(1.1) translate3d(2%, 0, 0); }
	to { transform: scale(1.14) translate3d(-1.5%, -1%, 0); }
}

.pc-hero__place {
	position: absolute;
	inset-block-end: clamp(92px, 9vw, 120px);
	z-index: 4;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--pc-white);
	text-shadow: 0 1px 10px rgba(2, 79, 110, 0.95);
}

.pc-hero__place--home {
	inset-inline-start: var(--pc-gutter);
}

.pc-hero__place--partner {
	inset-inline-end: var(--pc-gutter);
}

.pc-hero__shade {
	position: absolute;
	inset: 0;
	z-index: 5;
	background: linear-gradient(180deg, rgba(2, 79, 110, 0.66) 0%, rgba(2, 79, 110, 0.36) 26%, rgba(2, 79, 110, 0.74) 62%, rgba(2, 79, 110, 0.92) 100%);
	pointer-events: none;
}

.pc-hero__content {
	position: absolute;
	inset: 0;
	z-index: 6;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding-block: clamp(28px, 4vw, 64px) clamp(28px, 3.4vw, 52px);
	padding-inline: var(--pc-gutter);
}

.pc-hero__top {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: clamp(10px, 1.6vw, 22px);
}

.pc-hero__series {
	font-size: clamp(15px, 1.9vw, 26px);
	font-weight: 800;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.pc-hero__rule {
	flex: 1;
	min-inline-size: 24px;
	block-size: 1px;
	background: rgba(255, 255, 255, 0.4);
}

.pc-hero__label {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--pc-cyan-100);
}

.pc-hero__label .pc-l2 {
	font-weight: 400;
	letter-spacing: 0.04em;
	text-transform: lowercase;
}

.pc-hero__center {
	text-align: center;
}

.pc-hero .pc-hero__title {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin: 0;
	font-family: var(--pc-font);
	font-size: clamp(38px, 7.6vw, 132px);
	font-weight: 800;
	letter-spacing: -0.04em;
	line-height: 0.88;
	text-transform: uppercase;
	color: var(--pc-white);
	text-shadow: 0 2px 40px rgba(2, 79, 110, 0.5);
}

.pc-hero__arrow {
	padding-block: 0.06em;
	font-size: 0.6em;
	color: var(--pc-orange-500);
}

.pc-hero__tagline {
	max-inline-size: 28ch;
	margin-block: clamp(16px, 2vw, 26px) 0;
	margin-inline: auto;
	font-size: clamp(16px, 1.6vw, 24px);
	font-weight: 500;
	line-height: 1.35;
	color: var(--pc-white);
}

.pc-hero__tagline-l2 {
	display: block;
	margin-block-start: 6px;
	font-size: 0.8em;
	color: var(--pc-cyan-100);
}

.pc-hero__now {
	margin-block: 14px 0;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--pc-cyan-100);
}

.pc-hero__bottom {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: clamp(16px, 2.4vw, 40px);
}

.pc-hero__cta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px;
}

.pc-hero__pairs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

body button.pc-hero__pair,
body button.pc-hero__pair:focus {
	min-block-size: 36px;
	padding-block: 8px;
	padding-inline: 14px;
	border: 1px solid rgba(255, 255, 255, 0.5);
	border-radius: var(--pc-radius-pill);
	background: transparent;
	color: var(--pc-white);
	font-family: var(--pc-font);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color 300ms ease, color 300ms ease;
}

body button.pc-hero__pair:hover {
	border-color: var(--pc-white);
	background: rgba(255, 255, 255, 0.16);
	color: var(--pc-white);
}

body button.pc-hero__pair.is-active,
body button.pc-hero__pair.is-active:focus,
body button.pc-hero__pair.is-active:hover {
	border-color: transparent;
	background: var(--pc-white);
	color: var(--pc-blue-900);
}

@media (max-width: 640px) {
	.pc-hero__place {
		display: none;
	}

	.pc-hero__bottom {
		flex-direction: column;
		align-items: flex-start;
	}
}

/* ---------- about ---------- */

.pc-about__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
	gap: clamp(28px, 5vw, 80px);
}

.pc-about .pc-about__heading {
	margin-block: 16px 0;
	font-family: var(--pc-font);
	font-size: clamp(28px, 3.6vw, 48px);
	font-weight: 800;
	letter-spacing: -0.025em;
	line-height: 1.04;
	color: var(--pc-blue-900);
	text-wrap: balance;
}

.pc-about__heading-l2 {
	margin-block: 10px 0;
	font-size: clamp(16px, 1.5vw, 20px);
	font-weight: 500;
	color: var(--pc-blue-700);
}

.pc-about__body {
	display: flex;
	flex-direction: column;
	gap: 20px;
	max-inline-size: 62ch;
	font-size: clamp(15.5px, 1.2vw, 17.5px);
	line-height: 1.66;
}

.pc-about__body p {
	margin: 0;
}

.pc-about__body strong {
	color: var(--pc-blue-900);
}

.pc-about__body .pc-l2 {
	color: var(--pc-blue-700);
}

/* ---------- counters ---------- */

.pc-stats {
	background: var(--pc-blue-900);
	color: var(--pc-white);
}

.pc-stats__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	padding-block: clamp(44px, 6vw, 92px);
}

.pc-stats__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding-block: clamp(8px, 1vw, 14px);
	padding-inline: clamp(8px, 3vw, 48px);
	text-align: center;
}

.pc-stats__item + .pc-stats__item {
	border-inline-start: 1px solid rgba(255, 255, 255, 0.18);
}

.pc-stats__number {
	font-size: clamp(64px, 10vw, 150px);
	font-weight: 800;
	font-variant-numeric: tabular-nums;
	letter-spacing: -0.05em;
	line-height: 0.86;
}

.pc-stats__label {
	margin-block-start: clamp(14px, 1.6vw, 22px);
	font-size: clamp(12px, 0.9vw, 13px);
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.pc-stats__label-l2 {
	margin-block-start: 4px;
	font-size: clamp(14px, 1.2vw, 17px);
	font-weight: 500;
	color: var(--pc-cyan-100);
}

/* ---------- banners with a photograph ---------- */

.pc-banner {
	position: relative;
	display: flex;
	min-block-size: min(58vh, 500px);
	overflow: hidden;
	background: var(--pc-deep);
	color: var(--pc-white);
}

.pc-banner--center {
	align-items: center;
	justify-content: center;
	text-align: center;
}

.pc-banner--bottom {
	align-items: flex-end;
}

.pc-banner__image {
	position: absolute;
	inset: 0;
	inline-size: 100%;
	block-size: 100%;
	object-fit: cover;
}

.pc-banner__shade {
	position: absolute;
	inset: 0;
	background: rgba(2, 79, 110, 0.78);
}

.pc-banner__shade--gradient {
	background: linear-gradient(180deg, rgba(2, 79, 110, 0.25) 0%, rgba(2, 79, 110, 0.6) 50%, rgba(2, 79, 110, 0.94) 100%);
}

.pc-banner__inner {
	position: relative;
	inline-size: 100%;
	padding-block: clamp(40px, 5.4vw, 84px);
}

.pc-banner--center .pc-banner__inner {
	max-inline-size: 44ch;
	padding-inline: clamp(20px, 4vw, 60px);
}

.pc-banner .pc-banner__heading {
	max-inline-size: 22ch;
	margin: 0;
	font-family: var(--pc-font);
	font-size: clamp(26px, 4vw, 56px);
	font-weight: 800;
	letter-spacing: -0.03em;
	line-height: 1.02;
	text-transform: uppercase;
	color: var(--pc-white);
}

.pc-banner--center .pc-banner__heading {
	margin-block-start: 18px;
	margin-inline: auto;
	font-size: clamp(28px, 4vw, 52px);
}

.pc-banner__heading-l2 {
	margin-block: 10px 0;
	font-size: clamp(16px, 1.6vw, 22px);
	font-weight: 500;
	color: var(--pc-cyan-100);
}

.pc-banner__text {
	max-inline-size: 48ch;
	margin-block: 16px 0;
	font-size: 16px;
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.9);
}

.pc-banner--center .pc-banner__text {
	margin-inline: auto;
}

.pc-banner__text.pc-l2 {
	margin-block-start: 8px;
	font-size: 14.5px;
	color: var(--pc-cyan-100);
}

.pc-banner .pc-btn {
	margin-block-start: clamp(22px, 3vw, 34px);
}

/* ---------- gallery ---------- */

.pc-gallery {
	padding-block-start: clamp(28px, 3.4vw, 52px);
}

.pc-gallery__head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	padding-block-end: clamp(16px, 2vw, 26px);
}

.pc-gallery .pc-gallery__heading {
	margin: 0;
	font-family: var(--pc-font);
	font-size: clamp(26px, 3.4vw, 44px);
	font-weight: 800;
	letter-spacing: -0.03em;
	text-transform: uppercase;
	color: var(--pc-blue-900);
}

.pc-gallery__heading-l2 {
	margin-block: 4px 0;
	font-size: clamp(15px, 1.4vw, 19px);
	font-weight: 500;
	line-height: 1.3;
	color: var(--pc-blue-700);
}

.pc-gallery__intro {
	display: flex;
	flex-direction: column;
	gap: 8px;
	max-inline-size: 52ch;
}

.pc-gallery__intro p {
	margin: 0;
	font-size: 14px;
	line-height: 1.55;
	color: var(--pc-gray-600);
}

.pc-gallery__intro .pc-l2 {
	font-size: 13.5px;
	font-weight: 500;
	color: var(--pc-blue-700);
}

.pc-filters {
	position: sticky;
	inset-block-start: 78px;
	z-index: 40;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: clamp(14px, 2.2vw, 36px);
	padding-block: clamp(14px, 1.8vw, 22px);
	border-block: 1px solid var(--pc-border);
	background: rgba(255, 255, 255, 0.97);
	backdrop-filter: blur(10px);
}

.admin-bar .pc-filters {
	inset-block-start: 110px;
}

.pc-filters__group {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
}

.pc-filters__label {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--pc-gray-500);
}

.pc-filters__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

body button.pc-chip,
body button.pc-chip:focus {
	min-block-size: 36px;
	padding-block: 8px;
	padding-inline: 16px;
	border: 1px solid var(--pc-border);
	border-radius: var(--pc-radius-pill);
	background: transparent;
	color: var(--pc-gray-600);
	font-family: var(--pc-font);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color 160ms ease, color 160ms ease, border-color 160ms ease;
}

body button.pc-chip:hover {
	border-color: var(--pc-blue-900);
	background: transparent;
	color: var(--pc-blue-900);
}

body button.pc-chip.is-active,
body button.pc-chip.is-active:focus,
body button.pc-chip.is-active:hover {
	border-color: var(--pc-blue-900);
	background: var(--pc-blue-900);
	color: var(--pc-white);
}

.pc-chip .pc-l2 {
	font-weight: 500;
	letter-spacing: 0.01em;
	text-transform: none;
}

.pc-filters__count {
	margin-inline-start: auto;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--pc-gray-500);
}

@media (max-width: 782px) {
	.pc-filters {
		position: static;
	}
}

.pc-gallery__grid {
	columns: 4 260px;
	column-gap: clamp(14px, 1.8vw, 26px);
	margin-block-start: clamp(26px, 3.2vw, 44px);
}

.pc-card {
	margin: 0 0 clamp(26px, 3vw, 44px);
	break-inside: avoid;
}

.pc-card[hidden] {
	display: none;
}

body button.pc-card__open,
body button.pc-card__open:hover,
body button.pc-card__open:focus {
	display: block;
	inline-size: 100%;
	padding: 0;
	border: 0;
	border-radius: var(--pc-radius-md);
	background: none;
	cursor: zoom-in;
}

.pc-card__frame {
	display: block;
	overflow: hidden;
	border-radius: var(--pc-radius-md);
	background: var(--pc-gray-100);
}

.pc-card__frame img {
	display: block;
	inline-size: 100%;
	block-size: 100%;
	object-fit: cover;
	transition: transform 500ms ease;
}

.pc-card__open:hover img {
	transform: scale(1.03);
}

.pc-card__caption {
	padding-block-start: 14px;
	padding-inline: 2px;
}

.pc-card__caption p {
	margin: 0;
}

.pc-card__badge {
	margin-block-end: 8px !important;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--pc-blue-900);
}

.pc-card__title {
	font-size: 16.5px;
	font-weight: 800;
	letter-spacing: -0.005em;
	line-height: 1.25;
	text-transform: uppercase;
	color: var(--pc-blue-900);
}

.pc-card__title-l2 {
	margin-block-start: 3px !important;
	font-size: 13.5px;
	font-weight: 500;
	line-height: 1.35;
	color: var(--pc-blue-700);
}

.pc-card__who {
	margin-block-start: 9px !important;
	font-size: 13.5px;
	font-weight: 600;
}

.pc-card__foot {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 12px;
	margin-block-start: 8px;
}

.pc-card__meta {
	flex: 1;
	min-inline-size: 0;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1.5;
	text-transform: uppercase;
	color: var(--pc-gray-500);
}

.pc-card__city {
	display: block;
	color: var(--pc-blue-700);
}

.pc-gallery__empty {
	margin-block: 40px;
	font-size: 15px;
	color: var(--pc-gray-600);
}

.pc-gallery__footnote {
	margin-block: clamp(20px, 3vw, 40px) 0;
	font-size: 12px;
	letter-spacing: 0.04em;
	color: var(--pc-gray-500);
}

.pc-gallery__footnote-l2 {
	display: block;
	margin-block-start: 4px;
}

.pc-band {
	padding-block: clamp(44px, 6vw, 88px);
	background: var(--pc-blue-900);
	color: var(--pc-white);
}

.pc-band__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}

.pc-band .pc-band__heading {
	max-inline-size: 24ch;
	margin: 0;
	font-family: var(--pc-font);
	font-size: clamp(26px, 3.6vw, 48px);
	font-weight: 800;
	letter-spacing: -0.03em;
	line-height: 1.04;
	text-transform: uppercase;
	color: var(--pc-white);
}

.pc-band__heading-l2 {
	margin-block: 8px 0;
	color: var(--pc-cyan-100);
}

/* ---------- photo window ---------- */

.pc-modal {
	position: fixed;
	inset: 0;
	z-index: 99990;
	display: flex;
	flex-direction: column;
	overflow-y: auto;
	background: var(--pc-night);
	color: var(--pc-white);
	animation: pc-fade 200ms ease both;
}

@keyframes pc-fade {
	from { opacity: 0; }
	to { opacity: 1; }
}

html.pc-modal-open {
	overflow: hidden;
}

.pc-modal__bar {
	flex: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding-block: 16px;
	padding-inline: clamp(14px, 2.4vw, 36px);
	border-block-end: 1px solid rgba(255, 255, 255, 0.14);
}

.pc-modal__series {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.72);
}

.pc-modal__nav {
	display: flex;
	align-items: center;
	gap: 8px;
}

body button.pc-modal__btn,
body button.pc-modal__btn:focus {
	inline-size: 44px;
	block-size: 44px;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, 0.4);
	border-radius: 50%;
	background: none;
	color: var(--pc-white);
	font-size: 16px;
	line-height: 1;
	cursor: pointer;
}

body button.pc-modal__btn:hover {
	border-color: var(--pc-white);
	background: var(--pc-white);
	color: var(--pc-night);
}

.pc-modal__btn--close {
	margin-inline-start: 6px;
}

.pc-modal__body {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr));
	align-items: start;
	gap: clamp(20px, 3vw, 48px);
	inline-size: 100%;
	max-inline-size: 1500px;
	margin-inline: auto;
	padding-block: clamp(20px, 3vw, 44px);
	padding-inline: clamp(14px, 2.4vw, 36px);
}

.pc-modal__frame {
	overflow: hidden;
	max-block-size: 78vh;
	border-radius: var(--pc-radius-md);
	background: var(--pc-deep);
}

.pc-modal__frame img {
	display: block;
	inline-size: 100%;
	block-size: 100%;
	max-block-size: 78vh;
	object-fit: contain;
}

.pc-modal__text {
	max-inline-size: 62ch;
}

.pc-modal__text p {
	margin: 0;
}

.pc-modal__badge {
	margin-block-end: 12px !important;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--pc-orange-500);
}

.pc-modal__meta {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--pc-turquoise);
}

.pc-modal__byline {
	margin-block-start: 18px !important;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.72);
}

.pc-modal__who {
	margin-block-start: 4px !important;
	font-size: clamp(18px, 1.6vw, 22px);
	font-weight: 600;
}

.pc-modal__main {
	margin-block-start: 22px;
	padding-block-start: 22px;
	border-block-start: 1px solid rgba(255, 255, 255, 0.16);
}

.pc-modal .pc-modal__title {
	margin: 0;
	font-family: var(--pc-font);
	font-size: clamp(22px, 2.3vw, 32px);
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1.06;
	text-transform: uppercase;
	color: var(--pc-white);
	text-wrap: balance;
}

.pc-modal__title-l2 {
	margin-block-start: 8px !important;
	font-size: clamp(17px, 1.6vw, 22px);
	font-weight: 500;
	line-height: 1.25;
	color: var(--pc-turquoise);
}

.pc-modal__desc {
	margin-block-start: 20px !important;
	font-size: 15.5px;
	line-height: 1.7;
	color: rgba(255, 255, 255, 0.9);
}

.pc-modal__desc.pc-l2 {
	margin-block-start: 10px !important;
	font-size: 14.5px;
	color: var(--pc-turquoise);
}

.pc-modal__foot {
	margin-block-start: 20px !important;
	font-size: 12px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.72);
}

.pc-modal__vote {
	margin-block-start: clamp(24px, 3vw, 34px);
}

.pc-modal__note {
	max-inline-size: 46ch;
	margin-block-start: 12px !important;
	font-size: 12px;
	line-height: 1.55;
	color: rgba(255, 255, 255, 0.72);
}

.pc-modal__note .pc-l2 {
	display: block;
}

.pc-modal__closed {
	margin-block-start: clamp(24px, 3vw, 34px) !important;
	padding-inline-start: 14px;
	border-inline-start: 2px solid rgba(255, 255, 255, 0.3);
	font-size: 13px;
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.78);
}

/* ---------- inner page hero ---------- */

.pc-pagehero {
	padding-block: clamp(44px, 6vw, 96px);
	background: var(--pc-blue-900);
	color: var(--pc-white);
}

.pc-pagehero__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr));
	align-items: end;
	gap: clamp(28px, 4vw, 72px);
}

.pc-pagehero__top {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--pc-cyan-100);
}

.pc-pagehero__rule {
	inline-size: 26px;
	block-size: 1px;
	background: rgba(255, 255, 255, 0.4);
}

.pc-pagehero__label {
	color: rgba(255, 255, 255, 0.8);
}

.pc-pagehero .pc-pagehero__heading {
	margin-block: clamp(16px, 2.2vw, 26px) 0;
	font-family: var(--pc-font);
	font-size: clamp(36px, 5.4vw, 78px);
	font-weight: 800;
	letter-spacing: -0.03em;
	line-height: 0.96;
	text-transform: uppercase;
	color: var(--pc-white);
}

.pc-pagehero__heading-l2 {
	margin-block: 10px 0;
	font-size: clamp(18px, 1.8vw, 24px);
	font-weight: 500;
	color: var(--pc-cyan-100);
}

.pc-pagehero__intro {
	max-inline-size: 46ch;
	margin-block: 18px 0;
	font-size: clamp(16px, 1.4vw, 19px);
	line-height: 1.55;
	color: var(--pc-white);
}

.pc-pagehero__intro.pc-l2 {
	margin-block-start: 8px;
	font-size: 15px;
	color: var(--pc-cyan-100);
}

.pc-pagehero__side {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 14px;
}

.pc-pagehero__note {
	margin: 0;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.1em;
	line-height: 1.7;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.78);
}

/* ---------- steps and rules ---------- */

.pc-steps {
	padding-block-end: clamp(28px, 4vw, 56px);
}

.pc-steps__list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
	gap: clamp(22px, 3vw, 48px);
	margin: 0;
	padding: 0;
	list-style: none;
}

.pc-step__frame {
	overflow: hidden;
	aspect-ratio: 4 / 3;
	border-radius: var(--pc-radius-lg);
	background: var(--pc-gray-100);
}

.pc-step__frame img {
	display: block;
	inline-size: 100%;
	block-size: 100%;
	object-fit: cover;
}

.pc-step__num {
	margin-block: 20px 10px;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0.2em;
	color: var(--pc-blue-900);
}

.pc-steps .pc-step__title {
	margin: 0;
	font-family: var(--pc-font);
	font-size: clamp(20px, 2vw, 26px);
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1.1;
	text-transform: uppercase;
	color: var(--pc-blue-900);
}

.pc-step__title-l2 {
	margin-block: 6px 0;
	font-weight: 500;
	color: var(--pc-blue-700);
}

.pc-step__body {
	max-inline-size: 42ch;
	margin-block: 12px 0;
	font-size: 15.5px;
	line-height: 1.65;
}

.pc-step__body.pc-l2,
.pc-rule__body.pc-l2 {
	margin-block-start: 6px;
	font-size: 14.5px;
	color: var(--pc-blue-700);
}

.pc-rules {
	padding-block-start: 0;
}

.pc-rules__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
	gap: clamp(24px, 4vw, 72px);
	padding-block-start: clamp(28px, 3.6vw, 52px);
	border-block-start: 1px solid var(--pc-border);
}

.pc-rules .pc-rules__heading {
	margin: 0;
	font-family: var(--pc-font);
	font-size: clamp(24px, 3vw, 38px);
	font-weight: 800;
	letter-spacing: -0.025em;
	text-transform: uppercase;
	color: var(--pc-blue-900);
}

.pc-rules__heading-l2 {
	margin-block: 6px 0;
	font-weight: 500;
	color: var(--pc-blue-700);
}

.pc-rules__intro {
	max-inline-size: 40ch;
	margin-block: 16px 0;
	font-size: 15px;
	line-height: 1.65;
	color: var(--pc-gray-600);
}

.pc-rules__intro.pc-l2 {
	margin-block-start: 6px;
	color: var(--pc-blue-700);
}

.pc-rules__list {
	display: flex;
	flex-direction: column;
	gap: 18px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pc-rule {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding-block-end: 16px;
	border-block-end: 1px solid var(--pc-border);
}

.pc-rule__tick {
	flex: none;
	inline-size: 24px;
	block-size: 24px;
	border-radius: 50%;
	background: var(--pc-orange-500);
	color: var(--pc-ink);
	font-size: 14px;
	font-weight: 700;
	line-height: 24px;
	text-align: center;
}

.pc-rule p {
	margin: 0;
}

.pc-rule__title {
	font-size: 16px;
	font-weight: 700;
	color: var(--pc-blue-900);
}

.pc-rule__title-l2 {
	font-size: 14.5px;
	font-weight: 500;
	color: var(--pc-blue-700);
}

.pc-rule__body {
	max-inline-size: 62ch;
	margin-block-start: 6px !important;
	font-size: 14.5px;
	line-height: 1.6;
}

/* ---------- winners ---------- */

.pc-winners__list {
	display: flex;
	flex-direction: column;
	gap: clamp(48px, 7vw, 124px);
}

.pc-winner {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
	align-items: center;
	gap: clamp(24px, 4vw, 72px);
}

@media (min-width: 760px) {
	.pc-winner--flip .pc-winner__photo {
		order: 2;
	}
}

.pc-winner__frame {
	display: block;
	overflow: hidden;
	border-radius: var(--pc-radius-lg);
	background: var(--pc-gray-100);
}

.pc-winner__frame img {
	display: block;
	inline-size: 100%;
	block-size: 100%;
	object-fit: cover;
}

.pc-winner__text {
	max-inline-size: 52ch;
}

.pc-winner__text p {
	margin: 0;
}

.pc-winner__badge {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--pc-blue-900);
}

.pc-winners .pc-winner__title {
	margin-block: 14px 0;
	font-family: var(--pc-font);
	font-size: clamp(26px, 3.4vw, 46px);
	font-weight: 800;
	letter-spacing: -0.03em;
	line-height: 1.02;
	text-transform: uppercase;
	color: var(--pc-blue-900);
}

.pc-winner__title-l2 {
	margin-block-start: 8px !important;
	font-size: clamp(15px, 1.4vw, 19px);
	font-weight: 500;
	line-height: 1.3;
	color: var(--pc-blue-700);
}

.pc-winner__who {
	margin-block-start: 12px !important;
	font-size: 17px;
	font-weight: 500;
}

.pc-winner__meta {
	margin-block-start: 8px !important;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--pc-blue-700);
}

.pc-winner__story {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
	gap: 20px 28px;
	margin-block: 20px 22px;
	padding-block-start: 18px;
	border-block-start: 1px solid var(--pc-border);
	font-size: 15px;
	line-height: 1.68;
}

.pc-winner__lang {
	margin-block-end: 8px !important;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--pc-gray-500);
}

.pc-admin-note {
	padding: 16px 20px;
	border-radius: var(--pc-radius-md);
	background: var(--pc-cyan-100);
	color: var(--pc-blue-900);
	font-weight: 500;
}

/* ---------- footer ---------- */

.pc-footer {
	padding-block: clamp(40px, 5vw, 72px);
	background: var(--pc-blue-900);
	color: rgba(255, 255, 255, 0.86);
}

.pc-footer__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
	align-items: start;
	gap: clamp(24px, 3vw, 48px);
	max-inline-size: 1400px;
	margin-inline: auto;
	padding-inline: var(--pc-gutter);
}

.pc-footer p {
	margin: 0;
}

.pc-footer a.pc-logo,
.pc-footer a.pc-logo:hover {
	font-size: 20px;
	line-height: 0.94;
	color: var(--pc-white);
}

.pc-footer__about {
	max-inline-size: 34ch;
	margin-block-start: 16px !important;
	font-size: 13px;
	line-height: 1.6;
}

.pc-footer .pc-nav {
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
}

.pc-footer .pc-nav__item,
.pc-footer .pc-nav__item.is-current,
.pc-footer .pc-nav__item.is-disabled {
	padding: 0;
	border: 0;
	color: rgba(255, 255, 255, 0.86);
}

.pc-footer a.pc-nav__item:hover {
	color: var(--pc-white);
	text-decoration: underline;
}

.pc-footer__contact {
	font-size: 13px;
	line-height: 1.7;
}

.pc-footer__contact a {
	color: var(--pc-cyan-100);
}

.pc-footer__legal {
	font-size: 12px;
	letter-spacing: 0.08em;
	line-height: 1.7;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.78);
}

/* ---------- motion ---------- */

@media (prefers-reduced-motion: reduce) {
	.pc-hero__layer,
	.pc-hero__layer.is-active,
	.pc-modal,
	.pc-card__frame img {
		animation: none !important;
		transition: none !important;
	}
}

html.pc-still .pc-hero__layer,
html.pc-still .pc-hero__layer.is-active,
html.pc-still .pc-modal,
html.pc-still .pc-card__frame img {
	animation: none !important;
	transition: none !important;
}
