/*
Theme Name: Partner Summit
Theme URI:  https://example.com/partner-summit
Author:     Partner Summit
Description: Custom theme for the Partner Summit event site. Homepage content (hero, event highlights, travel) is editable via ACF.
Version:    1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: partner-summit
*/

/* ==========================================================================x
   Tokens + base
   ========================================================================== */
:root {
	--ps-cream:  #efedea;
	--ps-paper:  #efedea;
	--ps-ink:    #414042;
	--ps-muted:  #565656;
	--ps-orange: #DB3000;
	--ps-navy:   #17479e;
	--ps-blue:   #009ada;
	--ps-gray:   #8c8c8c;
	--ps-line:   #414042;
	--ps-wrap:   1440px;
	--ps-font:   "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;
}

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

body {
	margin: 0;
	background: var(--ps-paper);
	color: var(--ps-ink);
	font-family: var(--ps-font);
	font-size: 17px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}

img { max-width: 100%; display: block; }
a { color: var(--ps-orange); }

.ps-wrap {
	max-width: var(--ps-wrap);
	margin-inline: auto;
	padding-inline: 24px;
}

.ps-eyebrow {
	margin: 0 0 14px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--ps-orange);
}

.ps-cta {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	color: var(--ps-orange);
	text-decoration: none;
	font-size: 17px;
	font-weight: 700;
}
.ps-cta span { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1.5px; }
.ps-cta svg { transition: transform 0.18s ease; }
.ps-cta:hover svg, .ps-cta:focus-visible svg { transform: translateX(4px); }

/* ==========================================================================
   Site header
   ========================================================================== */
.ps-site-header {
	position: relative;
	z-index: 20;
	background: var(--ps-cream);
	border-bottom: 1.5px solid rgba(65, 64, 66, 0.28);
}

.ps-site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: clamp(28px, 4vw, 72px);
	min-height: 140px;
	width: 100%;
	padding-inline: clamp(24px, 7.4vw, 144px);
}

.ps-site-header__brand {
	display: inline-flex;
	align-items: center;
	flex: 0 0 auto;
	text-decoration: none;
	color: var(--ps-ink);
}

.ps-site-header__brand img {
	display: block;
	width: clamp(205px, 14vw, 260px);
	height: auto;
	max-width: none;
}

.ps-nav {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	min-width: 0;
}

.ps-nav ul,
.ps-nav__menu {
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: clamp(28px, 3.4vw, 54px);
	margin: 0;
	padding: 0;
}

.ps-nav li {
	margin: 0;
	padding: 0;
	flex: 0 0 auto;
}

.ps-nav a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	text-decoration: none;
	color: #414042;
	font-family: Inter, var(--ps-font);
	font-size: 16px;
	font-style: normal;
	font-weight: 500;
	line-height: 120.962%;
	white-space: nowrap;
	transition: color 0.18s ease, transform 0.18s ease;
}

.ps-nav a:hover,
.ps-nav a:focus-visible {
	color: var(--ps-orange);
}

.ps-nav li:last-child a {
	min-height: 54px;
	padding: 0 34px 0 28px;
	background: #e53000;
	color: #fff;
	font-weight: 700;
	clip-path: polygon(0 0, calc(100% - 22px) 0, 100% 50%, 100% 100%, 0 100%);
}

.ps-nav li:last-child a:hover,
.ps-nav li:last-child a:focus-visible {
	color: #fff;
	transform: translateY(-1px);
}

/* ========================================================================== 
   Hero
   ========================================================================== */
.ps-hero {
	--ps-hero-bg-image: none;
	position: relative;
	overflow: hidden;
	background-color: var(--ps-cream);
	background-image:
		linear-gradient(90deg, rgba(239, 236, 230, 0.94) 0%, rgba(239, 236, 230, 0.86) 48%, rgba(239, 236, 230, 0.78) 100%),
		var(--ps-hero-bg-image);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	color: #414042;
}

.ps-hero__content {
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(320px, 0.92fr);
	align-items: start;
	gap: clamp(44px, 7vw, 112px);
	padding-block: clamp(70px, 8vw, 116px) clamp(54px, 6vw, 88px);
}

.ps-hero__copy {
	max-width: 720px;
}

.ps-hero__eyebrow {
	display: flex;
	align-items: center;
	gap: 16px;
	margin: 0 0 10px;
	color: #414042;
	font-family: Inter, var(--ps-font);
	font-size: 18.789px;
	font-style: normal;
	font-weight: 600;
	line-height: normal;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.ps-hero__date-block {
	flex: 0 1 auto;
}

.ps-hero__date {
	flex: 0 0 auto;
}

.ps-date-range {
	display: inline-flex;
	align-items: center;
	gap: clamp(10px, 1.15vw, 16px);
	min-width: 0;
	max-width: 100%;
	white-space: nowrap;
	color: #414042;
	font-family: Inter, var(--ps-font);
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.04em;
	text-transform: uppercase;
}

.ps-date-range__start,
.ps-date-range__end {
	flex: 0 0 auto;
}

.ps-date-range__divider {
	display: block;
	flex: 0 1 clamp(70px, 8vw, 112px);
	width: clamp(70px, 8vw, 112px);
	height: 2px;
	background: currentColor;
}

.ps-date-range--hero {
	font-size: clamp(18px, 1.45vw, 22px);
}


.ps-hero__eyebrow-rule {
	display: none;
}

.ps-hero__title {
	margin: 0 0 10px;
	color: #414042;
	font-family: Inter, var(--ps-font);
	font-size: clamp(44px, 5.15vw, 68px);
	font-style: normal;
	font-weight: 600;
	line-height: 1;
	letter-spacing: -2.72px;
}

.ps-hero__subhead {
	margin: 0;
	max-width: 660px;
	color: #414042;
	font-family: Inter, var(--ps-font);
	font-size: clamp(21px, 2.35vw, 29.783px);
	font-style: normal;
	font-weight: 400;
	line-height: 1.125;
	letter-spacing: -0.893px;
}

.ps-hero__side {
	padding-top: 12px;
}

.ps-hero__rule {
	width: min(400px, 100%);
	height: 2.242px;
	margin: 0 0 28px;
	background: #414042;
}

.ps-hero__side-text {
	margin: 0;
	max-width: 470px;
	color: #414042;
	font-family: Inter, var(--ps-font);
	font-size: 20px;
	font-style: normal;
	font-weight: 400;
	line-height: 24px;
	letter-spacing: -0.6px;
}

.ps-hero__full-image {
	width: 100%;
	margin: 0;
	padding: 0;
	background: var(--ps-gray);
}

.ps-hero__full-image img {
	width: 100%;
	height: auto;
	max-width: none;
	display: block;
	object-fit: contain;
	object-position: center;
}

/* ==========================================================================
   Events highlights
   ========================================================================== */
.ps-events {
	padding-block: clamp(64px, 7vw, 104px);
}

.ps-events__head {
	display: flex;
	align-items: center;
	gap: clamp(18px, 2.6vw, 34px);
	width: 100%;
	margin: 0 0 clamp(36px, 4.6vw, 64px);
	color: #414042;
}

.ps-events__mark {
	flex: 0 0 auto;
	display: grid;
	place-items: center;
	width: clamp(54px, 5vw, 72px);
	height: clamp(54px, 5vw, 72px);
}

.ps-events__mark img,
.ps-events__mark svg {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.ps-events__mark-fallback {
	position: relative;
	display: block;
	width: 64px;
	height: 64px;
}

.ps-events__mark-fallback span {
	position: absolute;
	display: block;
}

.ps-events__mark-fallback span:nth-child(1) {
	left: 0;
	top: 0;
	width: 29px;
	height: 29px;
	background: #ff5a1f;
}

.ps-events__mark-fallback span:nth-child(2) {
	right: 0;
	top: 1px;
	width: 29px;
	height: 29px;
	background: #0097d7;
	clip-path: polygon(100% 0, 100% 100%, 0 100%);
}

.ps-events__mark-fallback span:nth-child(3) {
	left: 1px;
	bottom: 0;
	width: 30px;
	height: 30px;
	border-radius: 999px;
	background: #17498d;
}

.ps-events__title {
	flex: 0 0 auto;
	margin: 0;
	color: #414042;
	font-family: Inter, var(--ps-font);
	font-size: clamp(40px, 4.5vw, 62px);
	font-style: normal;
	font-weight: 600;
	line-height: 0.98;
	letter-spacing: -0.058em;
}

.ps-events__lines {
	flex: 1 1 auto;
	display: flex;
	min-width: 140px;
	flex-direction: column;
	justify-content: center;
	gap: clamp(13px, 1.5vw, 20px);
	padding-top: 8px;
}

.ps-events__line {
	display: block;
	height: 1px;
	background: #414042;
}

.ps-events__line--long {
	width: 100%;
}

.ps-events__line--short {
	width: min(140px, 32%);
}

.ps-events__list {
	display: flex;
	flex-direction: column;
	gap: 40px;
}

/* ===========================================================================
   Travel tabs
   ========================================================================== */
.ps-travel {
	--ps-travel-bg: #EFEDEA;
	--ps-travel-ink: #414042;
	--ps-travel-border: #000000;
	--ps-travel-red: #e53000;
	--ps-travel-blue-1: #256AB4;
	--ps-travel-blue-2: #009ADA;
	--ps-travel-blue-3: #17479E;
	background: var(--ps-travel-bg);
	color: var(--ps-travel-ink);
	padding-block: clamp(48px, 5.5vw, 82px);
	overflow-x: clip;
}

.ps-travel__inner {
	display: block;
	max-width: var(--ps-wrap);
}

.ps-travel__head {
	display: grid;
	grid-template-columns: minmax(220px, 0.72fr) minmax(0, 1.28fr);
	align-items: end;
	gap: clamp(24px, 4vw, 56px);
	margin-bottom: 30px;
}

.ps-travel__heading {
	min-width: 0;
}

.ps-travel__kicker-row {
	display: flex;
	align-items: center;
	gap: 18px;
	margin-bottom: 10px;
}

.ps-travel__mini-mark {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	flex: 0 0 auto;
}

.ps-travel__mini-mark span {
	display: block;
	width: 30px;
	height: 15px;
}

.ps-travel__mini-mark span:nth-child(1) {
	background: linear-gradient(90deg, var(--ps-travel-blue-1) 0 50%, var(--ps-travel-blue-2) 50% 100%);
}

.ps-travel__mini-mark span:nth-child(2) {
	width: 15px;
	background: var(--ps-travel-blue-3);
}

.ps-travel__mini-mark span:nth-child(3) {
	background: #f35a1e;
}

.ps-travel__eyebrow {
	margin: 0;
	color: #414042;
	font-family: Inter, var(--ps-font);
	font-size: 20px;
	font-style: normal;
	font-weight: 500;
	line-height: 22px;
	letter-spacing: -0.4px;
	text-transform: uppercase;
}

.ps-travel__title {
	margin: 0;
	color: #414042;
	font-family: Inter, var(--ps-font);
	font-size: clamp(36px, 4vw, 46.075px);
	font-style: normal;
	font-weight: 600;
	line-height: 1;
	letter-spacing: -1.843px;
}

.ps-travel__tabs {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: clamp(14px, 1.9vw, 28px);
	max-width: 100%;
	min-width: 0;
	overflow-x: auto;
	overflow-y: hidden;
	padding: 4px 2px 6px;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
}

.ps-travel__tab {
	position: relative;
	isolation: isolate;
	flex: 0 0 auto;
	min-width: clamp(132px, 10vw, 166px);
	height: clamp(50px, 4vw, 58px);
	border: 0;
	background: transparent;
	padding: 0 24px 0 20px;
	cursor: pointer;
	clip-path: polygon(0 0, calc(100% - 28px) 0, 100% 50%, 100% 100%, 0 100%);
	color: #414042;
	font-family: Inter, var(--ps-font);
	font-size: clamp(18px, 1.7vw, 22px);
	font-style: normal;
	font-weight: 600;
	line-height: 24px;
	text-align: center;
	transition: transform 0.18s ease;
}

.ps-travel__tab::before,
.ps-travel__tab::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -2;
	clip-path: inherit;
}

.ps-travel__tab::before {
	background: var(--ps-travel-border);
}

.ps-travel__tab::after {
	inset: 2px;
	z-index: -1;
	background: var(--ps-travel-bg);
}

.ps-travel__tab span {
	position: relative;
	z-index: 1;
}

.ps-travel__tab:hover,
.ps-travel__tab:focus-visible {
	transform: translateY(-2px);
}

.ps-travel__tab:focus-visible {
	outline: 3px solid rgba(65, 64, 66, 0.35);
	outline-offset: 4px;
}

.ps-travel__tab.is-active {
	color: #fff;
}

.ps-travel__tab.is-active::before,
.ps-travel__tab.is-active::after {
	background: var(--ps-travel-red);
}

.ps-travel__panels {
	border: 2px solid var(--ps-travel-border);
	background: transparent;
}

.ps-travel__panel[hidden] {
	display: none;
}

.ps-travel__content {
	padding: clamp(28px, 3.5vw, 46px) clamp(24px, 3.6vw, 40px);
	min-height: clamp(220px, 20vw, 320px);
	color: var(--ps-travel-ink);
	font-family: Inter, var(--ps-font);
}

.ps-travel__content > *:first-child {
	margin-top: 0;
}

.ps-travel__content > *:last-child {
	margin-bottom: 0;
}

.ps-travel__content h1,
.ps-travel__content h2,
.ps-travel__content h3,
.ps-travel__content h4 {
	max-width: 1040px;
	margin: 0 0 24px;
	color: #414042;
	font-family: Inter, var(--ps-font);
	font-size: clamp(25px, 2.4vw, 29px);
	font-style: normal;
	font-weight: 600;
	line-height: 32px;
	letter-spacing: -0.87px;
}

.ps-travel__content p,
.ps-travel__content li {
	color: #414042;
	font-family: Inter, var(--ps-font);
	font-size: clamp(18px, 1.85vw, 22px);
	font-style: normal;
	font-weight: 400;
	line-height: 32px;
	letter-spacing: -0.66px;
}

.ps-travel__content p {
	margin: 0 0 18px;
}

.ps-travel__content strong,
.ps-travel__content b {
	font-weight: 700;
}

.ps-travel__content a {
	color: var(--ps-travel-red);
	font-weight: 700;
	text-decoration-thickness: 1.5px;
	text-underline-offset: 4px;
}

.ps-travel__content ul,
.ps-travel__content ol {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ps-travel__content li {
	position: relative;
	padding-left: 44px;
	margin: 0 0 20px;
}

.ps-travel__content li:last-child {
	margin-bottom: 0;
}

.ps-travel__content li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.08em;
	width: 22px;
	height: 22px;
	display: block;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 22 22' fill='none'%3E%3Cpath d='M10.956 5.06528C12.1609 7.65366 14.2584 9.75114 16.8468 10.9561C14.2584 12.161 12.1609 14.2585 10.956 16.8469C9.75107 14.2585 7.65359 12.161 5.06521 10.9561C7.65359 9.75114 9.75107 7.65366 10.956 5.06528ZM10.956 8.65459e-05C10.956 6.04708 6.047 10.9561 9.53674e-07 10.9561C6.047 10.9561 10.956 15.8651 10.956 21.9121C10.956 15.8651 15.865 10.9561 21.912 10.9561C15.865 10.9561 10.956 6.04708 10.956 8.65459e-05Z' fill='%23414042'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
}

/* ==========================================================================
   Site footer
   ========================================================================== */
.ps-site-footer {
	background: var(--ps-ink);
	color: var(--ps-cream);
	padding-block: 48px;
}
.ps-site-footer__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
}
.ps-site-footer__brand { font-weight: 800; font-size: 18px; }
.ps-site-footer__nav ul { list-style: none; display: flex; gap: 24px; margin: 0; padding: 0; }
.ps-site-footer a { color: var(--ps-cream); text-decoration: none; opacity: 0.85; }
.ps-site-footer a:hover { opacity: 1; color: #fff; }
.ps-site-footer__copy { width: 100%; font-size: 14px; opacity: 0.6; margin: 0; }

/* ==========================================================================
   Reception card  (the banner you designed, now a reusable template part)
   ========================================================================== */
.partner-reception {
	--pr-cut: 90px; /* size of the bottom-right chamfer */
	--pr-outline-progress: 0;
	position: relative;
	isolation: isolate;
	box-sizing: border-box;
	background: rgba(65, 64, 66, 0.16);
	padding: 1.5px;
	clip-path: polygon(
		0 0, 100% 0,
		100% calc(100% - var(--pr-cut)),
		calc(100% - var(--pr-cut)) 100%,
		0 100%
	);
}
.partner-reception *, .partner-reception *::before, .partner-reception *::after { box-sizing: border-box; }

.partner-reception__outline {
	position: absolute;
	inset: 0;
	z-index: 6;
	display: block;
	width: 100%;
	height: 100%;
	pointer-events: none;
	overflow: visible;
}

.partner-reception__outline-path {
	fill: none;
	stroke: var(--ps-ink);
	stroke-width: 1.5;
	stroke-linecap: square;
	stroke-linejoin: miter;
	vector-effect: non-scaling-stroke;
	stroke-dasharray: 1;
	stroke-dashoffset: calc(1 - var(--pr-outline-progress));
	filter: drop-shadow(0 0 0 rgba(65, 64, 66, 0));
}

.partner-reception__inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
	background: var(--ps-cream);
	color: var(--ps-ink);
	overflow: hidden;
	clip-path: polygon(
		0 0, 100% 0,
		100% calc(100% - var(--pr-cut)),
		calc(100% - var(--pr-cut)) 100%,
		0 100%
	);
}

.partner-reception__left {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 560px;
	padding: 52px 44px 52px 88px;
	border-right: 1.5px solid var(--ps-ink);
}
.partner-reception__rail {
	position: absolute;
	left: 28px;
	top: 50%;
	transform: translateY(-50%);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 24px;
}
.partner-reception__eyebrow {
	transform: rotate(180deg);
	writing-mode: vertical-rl;
	text-orientation: mixed;
	margin: 0;
	font-size: 16px;
	font-weight: 400;
	letter-spacing: -0.4px;
	text-transform: uppercase;
	color: var(--ps-ink);
	white-space: nowrap;
}
.partner-reception__badge {
	display: block;
	width: 16px;
	height: 110px;
	flex: 0 0 auto;
	background: transparent !important;
}
.partner-reception__badge svg {
	display: block;
	width: 100%;
	height: 100%;
}
.partner-reception__content { max-width: 440px; }
.partner-reception__title-row {
	display: block;
	margin: 0 0 10px;
}
.partner-reception__title {
	margin: 0;
	font-size: clamp(34px, 3.2vw, 46.075px);
	line-height: 1;
	font-weight: 600;
	letter-spacing: -1.843px;
}
.partner-reception__badge--mobile {
	display: none;
}
.partner-reception__meta {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 14px;
	margin: 0;
	color: #414042;
	font-family: Inter, var(--ps-font);
	font-size: 17px;
	font-style: normal;
	font-weight: 600;
	line-height: normal;
	text-transform: uppercase;
}

.partner-reception__date-start,
.partner-reception__date-end,
.partner-reception__time {
	display: inline-flex;
	align-items: center;
	color: #414042;
	font-family: Inter, var(--ps-font);
	font-size: 17px;
	font-style: normal;
	font-weight: 600;
	line-height: normal;
	text-transform: uppercase;
	white-space: nowrap;
}

.partner-reception__meta-divider {
	display: inline-block;
	width: clamp(48px, 5vw, 76px);
	height: 2px;
	background: #414042;
	flex: 0 0 auto;
}

.partner-reception__time--secondary {
	width: 100%;
	margin-top: 4px;
}

.partner-reception__right {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	min-height: 560px;
	padding: 52px 52px 0;
	overflow: hidden;
}
.partner-reception__copy {
	position: relative;
	z-index: 2;
	order: 1;
	max-width: 520px;
	padding-bottom: 32px;
}
.partner-reception__body {
	margin: 0 0 24px;
	font-size: clamp(16px, 1.3vw, 18px);
	line-height: 1.55;
	color: var(--ps-muted);
}
.partner-reception__body p,
.partner-reception__body ul,
.partner-reception__body ol {
	margin: 0 0 16px;
}
.partner-reception__body p:last-child,
.partner-reception__body ul:last-child,
.partner-reception__body ol:last-child {
	margin-bottom: 0;
}
.partner-reception__body ul,
.partner-reception__body ol {
	padding-left: 1.15em;
}
.partner-reception__body strong { color: var(--ps-ink); font-weight: 700; }
.partner-reception__image {
	position: relative;
	left: auto;
	right: auto;
	bottom: auto;
	width: calc(100% + 104px);
	max-width: none;
	height: clamp(300px, 26vw, 360px);
	order: 3;
	margin: auto -52px 0;
	display: block;
	object-fit: cover;
	object-position: center;
	background-color: var(--ps-gray);
	z-index: 0;
	flex: 0 0 auto;
}

.partner-reception__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	padding: 0 48px 0 28px;
	background: var(--ps-orange);
	color: var(--ps-cream);
	text-decoration: none;
	font-family: Inter, var(--ps-font);
	font-size: 16px;
	font-style: normal;
	font-weight: 600;
	line-height: 19px;
	letter-spacing: -0.44px;
	clip-path: polygon(0 0, calc(100% - 24px) 0, 100% 28px, 100% 100%, 0 100%);
	transition: transform 0.18s ease, background-color 0.18s ease;
}

.partner-reception__cta:hover,
.partner-reception__cta:focus-visible {
	color: #fff;
	background: #d52c00;
	transform: translateY(-2px);
}

.partner-reception__cta:focus-visible {
	outline: 3px solid rgba(229, 48, 0, 0.28);
	outline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {
	.partner-reception {
		--pr-outline-progress: 1;
	}
}


/* ========================================================================
   Interaction + scroll animations
   ======================================================================== */
html.ps-anim-ready .ps-hero__eyebrow,
html.ps-anim-ready .ps-hero__title,
html.ps-anim-ready .ps-hero__subhead,
html.ps-anim-ready .ps-hero__rule,
html.ps-anim-ready .ps-hero__side-text,
html.ps-anim-ready .ps-hero__full-image,
html.ps-anim-ready .ps-events__mark,
html.ps-anim-ready .ps-events__title,
html.ps-anim-ready .ps-travel__kicker-row,
html.ps-anim-ready .ps-travel__title,
html.ps-anim-ready .ps-travel__tabs,
html.ps-anim-ready .ps-travel__panels,
html.ps-anim-ready .partner-reception__eyebrow,
html.ps-anim-ready .partner-reception__badge,
html.ps-anim-ready .partner-reception__title-row,
html.ps-anim-ready .partner-reception__meta,
html.ps-anim-ready .partner-reception__body,
html.ps-anim-ready .partner-reception__cta {
	opacity: 0;
	transform: translateY(18px);
	transition:
		opacity 0.72s cubic-bezier(0.22, 1, 0.36, 1),
		transform 0.72s cubic-bezier(0.22, 1, 0.36, 1);
}

html.ps-anim-ready .ps-hero__full-image {
	transform: translateY(22px) scale(1.015);
	transition-duration: 0.95s;
}

html.ps-anim-ready .partner-reception__image {
	opacity: 0;
	transform: scale(1.035);
	transition:
		opacity 0.86s cubic-bezier(0.22, 1, 0.36, 1),
		transform 1s cubic-bezier(0.22, 1, 0.36, 1);
}

html.ps-anim-ready .ps-date-range__divider,
html.ps-anim-ready .ps-hero__rule,
html.ps-anim-ready .ps-events__line,
html.ps-anim-ready .partner-reception__meta-divider {
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 0.74s cubic-bezier(0.22, 1, 0.36, 1);
}

html.ps-anim-ready .ps-hero.is-visible .ps-hero__eyebrow,
html.ps-anim-ready .ps-hero.is-visible .ps-hero__title,
html.ps-anim-ready .ps-hero.is-visible .ps-hero__subhead,
html.ps-anim-ready .ps-hero.is-visible .ps-hero__rule,
html.ps-anim-ready .ps-hero.is-visible .ps-hero__side-text,
html.ps-anim-ready .ps-hero.is-visible .ps-hero__full-image,
html.ps-anim-ready .ps-events.is-visible .ps-events__mark,
html.ps-anim-ready .ps-events.is-visible .ps-events__title,
html.ps-anim-ready .ps-travel.is-visible .ps-travel__kicker-row,
html.ps-anim-ready .ps-travel.is-visible .ps-travel__title,
html.ps-anim-ready .ps-travel.is-visible .ps-travel__tabs,
html.ps-anim-ready .ps-travel.is-visible .ps-travel__panels,
html.ps-anim-ready .partner-reception.is-visible .partner-reception__eyebrow,
html.ps-anim-ready .partner-reception.is-visible .partner-reception__badge,
html.ps-anim-ready .partner-reception.is-visible .partner-reception__title-row,
html.ps-anim-ready .partner-reception.is-visible .partner-reception__meta,
html.ps-anim-ready .partner-reception.is-visible .partner-reception__body,
html.ps-anim-ready .partner-reception.is-visible .partner-reception__cta,
html.ps-anim-ready .partner-reception.is-visible .partner-reception__image {
	opacity: 1;
	transform: none;
}

html.ps-anim-ready .ps-hero.is-visible .ps-date-range__divider,
html.ps-anim-ready .ps-hero.is-visible .ps-hero__rule,
html.ps-anim-ready .ps-events.is-visible .ps-events__line,
html.ps-anim-ready .partner-reception.is-visible .partner-reception__meta-divider {
	transform: scaleX(1);
}

html.ps-anim-ready .ps-hero.is-visible .ps-hero__eyebrow { transition-delay: 0.08s; }
html.ps-anim-ready .ps-hero.is-visible .ps-date-range__divider { transition-delay: 0.18s; }
html.ps-anim-ready .ps-hero.is-visible .ps-hero__title { transition-delay: 0.18s; }
html.ps-anim-ready .ps-hero.is-visible .ps-hero__subhead { transition-delay: 0.28s; }
html.ps-anim-ready .ps-hero.is-visible .ps-hero__rule { transition-delay: 0.28s; }
html.ps-anim-ready .ps-hero.is-visible .ps-hero__side-text { transition-delay: 0.38s; }
html.ps-anim-ready .ps-hero.is-visible .ps-hero__full-image { transition-delay: 0.24s; }

html.ps-anim-ready .ps-events.is-visible .ps-events__mark { transition-delay: 0.04s; }
html.ps-anim-ready .ps-events.is-visible .ps-events__title { transition-delay: 0.12s; }
html.ps-anim-ready .ps-events.is-visible .ps-events__line--long { transition-delay: 0.22s; }
html.ps-anim-ready .ps-events.is-visible .ps-events__line--short { transition-delay: 0.34s; }

html.ps-anim-ready .partner-reception.is-visible .partner-reception__eyebrow,
html.ps-anim-ready .partner-reception.is-visible .partner-reception__badge { transition-delay: 0.08s; }
html.ps-anim-ready .partner-reception.is-visible .partner-reception__title-row { transition-delay: 0.16s; }
html.ps-anim-ready .partner-reception.is-visible .partner-reception__meta { transition-delay: 0.24s; }
html.ps-anim-ready .partner-reception.is-visible .partner-reception__meta-divider { transition-delay: 0.34s; }
html.ps-anim-ready .partner-reception.is-visible .partner-reception__body { transition-delay: 0.22s; }
html.ps-anim-ready .partner-reception.is-visible .partner-reception__cta { transition-delay: 0.32s; }
html.ps-anim-ready .partner-reception.is-visible .partner-reception__image { transition-delay: 0.18s; }

html.ps-anim-ready .ps-travel.is-visible .ps-travel__kicker-row { transition-delay: 0.04s; }
html.ps-anim-ready .ps-travel.is-visible .ps-travel__title { transition-delay: 0.12s; }
html.ps-anim-ready .ps-travel.is-visible .ps-travel__tabs { transition-delay: 0.18s; }
html.ps-anim-ready .ps-travel.is-visible .ps-travel__panels { transition-delay: 0.26s; }

.ps-travel__tab::after {
	transition: background-color 0.22s ease, inset 0.22s ease;
}

.ps-travel__panel.is-active .ps-travel__content {
	animation: ps-panel-in 0.34s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes ps-panel-in {
	from {
		opacity: 0;
		transform: translateY(10px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@media (prefers-reduced-motion: reduce) {
	html.ps-anim-ready .ps-hero__eyebrow,
	html.ps-anim-ready .ps-hero__title,
	html.ps-anim-ready .ps-hero__subhead,
	html.ps-anim-ready .ps-hero__rule,
	html.ps-anim-ready .ps-hero__side-text,
	html.ps-anim-ready .ps-hero__full-image,
	html.ps-anim-ready .ps-events__mark,
	html.ps-anim-ready .ps-events__title,
	html.ps-anim-ready .ps-travel__kicker-row,
	html.ps-anim-ready .ps-travel__title,
	html.ps-anim-ready .ps-travel__tabs,
	html.ps-anim-ready .ps-travel__panels,
	html.ps-anim-ready .partner-reception__eyebrow,
	html.ps-anim-ready .partner-reception__badge,
	html.ps-anim-ready .partner-reception__title-row,
	html.ps-anim-ready .partner-reception__meta,
	html.ps-anim-ready .partner-reception__body,
	html.ps-anim-ready .partner-reception__cta,
	html.ps-anim-ready .partner-reception__image,
	html.ps-anim-ready .ps-date-range__divider,
	html.ps-anim-ready .ps-events__line,
	html.ps-anim-ready .partner-reception__meta-divider {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
		animation: none !important;
	}

	.partner-reception {
		--pr-outline-progress: 1;
	}
}

@media (max-width: 1100px) {
	.ps-site-header__inner {
		min-height: 118px;
		padding-inline: clamp(24px, 5vw, 72px);
	}

	.ps-site-header__brand img {
		width: clamp(190px, 22vw, 230px);
	}

	.ps-nav ul,
	.ps-nav__menu {
		gap: 28px;
	}
}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 900px) {
	.ps-hero__content { grid-template-columns: 1fr; gap: 36px; padding-block: 60px; }
	.ps-hero__side { padding-top: 0; }
	.ps-hero__side-text { max-width: 620px; }
	.ps-events { padding-block: 64px; }

	.ps-travel__head {
		grid-template-columns: 1fr;
		align-items: start;
		gap: 24px;
	}

	.ps-travel__tabs {
		justify-content: flex-start;
		width: 100%;
		margin-inline: 0;
		padding: 4px 2px 8px;
	}
}

@media (max-width: 820px) {
	.ps-main,
	.ps-events,
	.ps-events .ps-wrap,
	.ps-events__list {
		max-width: 100%;
		overflow-x: hidden;
	}

	.partner-reception { --pr-cut: 52px; }
	.partner-reception,
	.partner-reception__inner,
	.partner-reception__left,
	.partner-reception__right,
	.partner-reception__content,
	.partner-reception__copy {
		width: 100%;
		max-width: 100%;
		min-width: 0;
	}

	.partner-reception__inner { grid-template-columns: 1fr; }
	.partner-reception__left {
		display: block; min-height: 0;
		padding: 36px 28px;
		border-right: 0; border-bottom: 1.5px solid var(--ps-ink);
	}
	.partner-reception__rail {
		position: static; transform: none;
		flex-direction: row; align-items: center; gap: 14px; margin-bottom: 22px;
	}
	.partner-reception__eyebrow { transform: none; writing-mode: horizontal-tb; font-size: 12px; letter-spacing: 0.18em; }
	.partner-reception__content { max-width: none; }
	.partner-reception__title-row {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 14px;
		margin-bottom: 20px;
	}
	.partner-reception__title { font-size: clamp(26px, 7.5vw, 38px); }
	.partner-reception__badge--desktop { display: none; }
	.partner-reception__badge--mobile {
		display: block;
		position: relative;
		width: 110px;
		height: 16px;
		overflow: visible;
		flex: 0 0 auto;
	}
	.partner-reception__badge--mobile svg { position: absolute; left: 50%; top: 50%; width: 16px; height: 110px; transform: translate(-50%, -50%) rotate(-90deg); transform-origin: center; }
	.partner-reception__meta {
		max-width: 100%;
		min-width: 0;
		flex-wrap: wrap;
		gap: 12px;
	}
	.partner-reception__meta-divider { width: clamp(48px, 16vw, 76px); }
	.partner-reception__right {
		min-height: 0;
		padding: 36px 28px 0;
		gap: 28px;
		overflow: hidden;
	}
	.partner-reception__copy { order: 1; max-width: none; padding-bottom: 0; }
	.partner-reception__title,
	.partner-reception__body,
	.partner-reception__body p {
		overflow-wrap: break-word;
		word-break: normal;
	}
	.partner-reception__body { font-size: clamp(15px, 4.2vw, 18px); }
	.partner-reception__image {
		position: relative; order: 2; left: auto; right: auto; bottom: auto;
		height: 260px; width: calc(100% + 56px); max-width: none; margin: 0 -28px;
	}
	.partner-reception__slashes { display: none; }
}

@media (max-width: 640px) {
	.ps-site-header__inner {
		min-height: auto;
		padding-block: 22px 18px;
		align-items: flex-start;
		flex-direction: column;
		gap: 18px;
	}

	.ps-site-header__brand img {
		width: 205px;
	}

	.ps-nav {
		width: calc(100% + 48px);
		margin-inline: -24px;
		overflow-x: auto;
		justify-content: flex-start;
		padding-inline: 24px;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}

	.ps-nav::-webkit-scrollbar {
		display: none;
	}

	.ps-nav ul,
	.ps-nav__menu {
		justify-content: flex-start;
		gap: 24px;
	}

	.ps-nav a {
		font-size: 15px;
	}

	.ps-nav li:last-child a {
		min-height: 48px;
		padding-inline: 22px 28px;
	}
	.ps-hero__content { padding-block: 48px; }
	.ps-hero__eyebrow { font-size: 15px; margin-bottom: 10px; }
	.ps-date-range { gap: 10px; letter-spacing: -0.035em; }
	.ps-date-range--hero { font-size: 17px; }
	.ps-date-range__divider { flex-basis: 48px; width: 48px; }
	.ps-hero__title { font-size: clamp(38px, 12vw, 50px); letter-spacing: -1.9px; }
	.ps-hero__subhead { font-size: 20px; line-height: 1.18; letter-spacing: -0.55px; }
	.ps-hero__side-text { font-size: 18px; line-height: 23px; letter-spacing: -0.45px; }

	.ps-travel {
		padding-block: 52px;
	}

	.ps-travel__kicker-row {
		align-items: flex-start;
		gap: 14px;
	}

	.ps-travel__mini-mark {
		gap: 10px;
		padding-top: 2px;
	}

	.ps-travel__mini-mark span {
		width: 28px;
		height: 14px;
	}

	.ps-travel__mini-mark span:nth-child(2) {
		width: 14px;
	}

	.ps-travel__tabs {
		justify-content: flex-start;
		width: 100%;
		overflow-x: auto;
		overflow-y: hidden;
		padding: 4px 2px 16px;
		scrollbar-width: auto;
		scrollbar-color: #414042 rgba(65, 64, 66, 0.18);
		-webkit-overflow-scrolling: touch;
	}

	.ps-travel__tabs::-webkit-scrollbar {
		display: block;
		height: 7px;
	}

	.ps-travel__tabs::-webkit-scrollbar-track {
		background: rgba(65, 64, 66, 0.18);
		border-radius: 999px;
	}

	.ps-travel__tabs::-webkit-scrollbar-thumb {
		background: #414042;
		border-radius: 999px;
	}

	.ps-travel__tab {
		min-width: 142px;
	}

}

@media (max-width: 420px) {
	.partner-reception { --pr-cut: 40px; }
	.partner-reception__left { padding: 28px 22px; }
	.partner-reception__right { padding: 28px 22px 0; overflow: hidden; }
	.partner-reception__rule { display: none; }
	.partner-reception__image { width: calc(100% + 44px); max-width: none; margin: 0 -22px; height: 220px; }
}

@media (max-width: 760px) {
	.ps-events__head {
		flex-wrap: wrap;
		gap: 16px 18px;
	}

	.ps-events__mark {
		width: 52px;
		height: 52px;
	}

	.ps-events__title {
		font-size: clamp(34px, 11vw, 46px);
		letter-spacing: -0.045em;
	}

	.ps-events__lines {
		flex-basis: 100%;
		min-width: 0;
		padding-top: 0;
		gap: 10px;
	}

	.ps-events__line--short {
		width: 112px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ps-cta svg, .partner-reception__cta { transition: none; }
}