/* ============================================================
   PAYROLL UNIVERSITY 2027 — brand styles for YOOtheme
   Ported from the Next.js/Sanity site (conference/src/app.css and
   src/modules/*). Part 1 applies the brand site-wide (fonts, colours,
   buttons, links). Part 2 styles the pu-* classes used by the
   builder elements on the "Test" page.
   Loaded after YOOtheme's theme CSS (see functions.php).
   ============================================================ */

/* ------------------------------------------------------------
   FONTS
   ------------------------------------------------------------ */
/* From the 2027 design system (_ds/.../colors_and_type.css), files in assets/pu2027/fonts-2027 */
@font-face { font-family:"Varsity Impact"; src:url("../assets/pu2027/fonts-2027/Varsity-Impact-Thin.woff") format("woff");                                                 font-weight:100; font-style:normal; font-display:swap; }
@font-face { font-family:"Varsity Impact"; src:url("../assets/pu2027/fonts-2027/Varsity-Impact-Extralight.woff") format("woff");                                           font-weight:200; font-style:normal; font-display:swap; }
@font-face { font-family:"Varsity Impact"; src:url("../assets/pu2027/fonts-2027/Varsity-Impact-Light.woff") format("woff"),     url("../assets/pu2027/fonts-2027/Varsity-Impact-Light.otf") format("opentype");     font-weight:300; font-style:normal; font-display:swap; }
@font-face { font-family:"Varsity Impact"; src:url("../assets/pu2027/fonts-2027/Varsity-Impact-Regular.woff") format("woff"),   url("../assets/pu2027/fonts-2027/Varsity-Impact-Regular.otf") format("opentype");   font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:"Varsity Impact"; src:url("../assets/pu2027/fonts-2027/Varsity-Impact-Medium.woff") format("woff"),    url("../assets/pu2027/fonts-2027/Varsity-Impact-Medium.otf") format("opentype");    font-weight:500; font-style:normal; font-display:swap; }
@font-face { font-family:"Varsity Impact"; src:url("../assets/pu2027/fonts-2027/Varsity-Impact-Semibold.woff") format("woff"),  url("../assets/pu2027/fonts-2027/Varsity-Impact-Semibold.otf") format("opentype");  font-weight:600; font-style:normal; font-display:swap; }
@font-face { font-family:"Varsity Impact"; src:url("../assets/pu2027/fonts-2027/Varsity-Impact-Bold.woff") format("woff"),      url("../assets/pu2027/fonts-2027/Varsity-Impact-Bold.otf") format("opentype");      font-weight:700; font-style:normal; font-display:swap; }
@font-face { font-family:"Varsity Impact"; src:url("../assets/pu2027/fonts-2027/Varsity-Impact-Extrabold.woff") format("woff"), url("../assets/pu2027/fonts-2027/Varsity-Impact-Extrabold.otf") format("opentype"); font-weight:800; font-style:normal; font-display:swap; }
@font-face { font-family:"Varsity Impact"; src:url("../assets/pu2027/fonts-2027/Varsity-Impact-Black.woff") format("woff"),     url("../assets/pu2027/fonts-2027/Varsity-Impact-Black.otf") format("opentype");     font-weight:900; font-style:normal; font-display:swap; }
@font-face { font-family:"Gotham"; src:url("../assets/pu2027/fonts-2027/Gotham-Light.otf") format("opentype");       font-weight:300; font-style:normal; font-display:swap; }
@font-face { font-family:"Gotham"; src:url("../assets/pu2027/fonts-2027/Gotham-Book.otf") format("opentype");        font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:"Gotham"; src:url("../assets/pu2027/fonts-2027/Gotham-BookItalic.otf") format("opentype");  font-weight:400; font-style:italic; font-display:swap; }
@font-face { font-family:"Gotham"; src:url("../assets/pu2027/fonts-2027/Gotham-Medium.otf") format("opentype");      font-weight:500; font-style:normal; font-display:swap; }
@font-face { font-family:"Gotham"; src:url("../assets/pu2027/fonts-2027/Gotham-MediumItalic.otf") format("opentype");font-weight:500; font-style:italic; font-display:swap; }
@font-face { font-family:"Gotham"; src:url("../assets/pu2027/fonts-2027/Gotham-Bold.otf") format("opentype");        font-weight:700; font-style:normal; font-display:swap; }
@font-face { font-family:"Gotham"; src:url("../assets/pu2027/fonts-2027/Gotham-Black.otf") format("opentype");       font-weight:900; font-style:normal; font-display:swap; }
@font-face { font-family:"Gotham Condensed"; src:url("../assets/pu2027/fonts-2027/GothamCond-Thin.otf") format("opentype");          font-weight:100; font-style:normal; font-display:swap; }
@font-face { font-family:"Gotham Condensed"; src:url("../assets/pu2027/fonts-2027/GothamCond-ThinItalic.otf") format("opentype");    font-weight:100; font-style:italic; font-display:swap; }
@font-face { font-family:"Gotham Condensed"; src:url("../assets/pu2027/fonts-2027/GothamCond-XLight.otf") format("opentype");        font-weight:200; font-style:normal; font-display:swap; }
@font-face { font-family:"Gotham Condensed"; src:url("../assets/pu2027/fonts-2027/GothamCond-XLightItalic.otf") format("opentype");  font-weight:200; font-style:italic; font-display:swap; }
@font-face { font-family:"Gotham Condensed"; src:url("../assets/pu2027/fonts-2027/GothamCond-Light.otf") format("opentype");         font-weight:300; font-style:normal; font-display:swap; }
@font-face { font-family:"Gotham Condensed"; src:url("../assets/pu2027/fonts-2027/GothamCond-LightItalic.otf") format("opentype");   font-weight:300; font-style:italic; font-display:swap; }
@font-face { font-family:"Gotham Condensed"; src:url("../assets/pu2027/fonts-2027/GothamCond-Book.otf") format("opentype");          font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:"Gotham Condensed"; src:url("../assets/pu2027/fonts-2027/GothamCond-BookItalic.otf") format("opentype");    font-weight:400; font-style:italic; font-display:swap; }
@font-face { font-family:"Gotham Condensed"; src:url("../assets/pu2027/fonts-2027/GothamCond-Medium.otf") format("opentype");        font-weight:500; font-style:normal; font-display:swap; }
@font-face { font-family:"Gotham Condensed"; src:url("../assets/pu2027/fonts-2027/GothamCond-MediumItalic.otf") format("opentype");  font-weight:500; font-style:italic; font-display:swap; }
@font-face { font-family:"Gotham Condensed"; src:url("../assets/pu2027/fonts-2027/GothamCond-Bold.otf") format("opentype");          font-weight:600; font-style:normal; font-display:swap; } /* Semibold substitution */
@font-face { font-family:"Gotham Condensed"; src:url("../assets/pu2027/fonts-2027/GothamCond-BoldItalic.otf") format("opentype");    font-weight:600; font-style:italic; font-display:swap; } /* Semibold substitution */
@font-face { font-family:"Gotham Condensed"; src:url("../assets/pu2027/fonts-2027/GothamCond-Bold.otf") format("opentype");          font-weight:700; font-style:normal; font-display:swap; }
@font-face { font-family:"Gotham Condensed"; src:url("../assets/pu2027/fonts-2027/GothamCond-BoldItalic.otf") format("opentype");    font-weight:700; font-style:italic; font-display:swap; }
@font-face { font-family:"Gotham Condensed"; src:url("../assets/pu2027/fonts-2027/GothamCond-Black.otf") format("opentype");         font-weight:900; font-style:normal; font-display:swap; }
@font-face { font-family:"Gotham Condensed"; src:url("../assets/pu2027/fonts-2027/GothamCond-BlackItalic.otf") format("opentype");   font-weight:900; font-style:italic; font-display:swap; }
@font-face { font-family:"Gotham Condensed"; src:url("../assets/pu2027/fonts-2027/GothamCond-XBlack.otf") format("opentype");        font-weight:950; font-style:normal; font-display:swap; }
@font-face { font-family:"Gotham Condensed"; src:url("../assets/pu2027/fonts-2027/GothamCond-XBlackItalic.otf") format("opentype");  font-weight:950; font-style:italic; font-display:swap; }
@font-face { font-family:"Gotham Condensed"; src:url("../assets/pu2027/fonts-2027/GothamCond-Ultra.otf") format("opentype");         font-weight:1000; font-style:normal; font-display:swap; }
@font-face { font-family:"Gotham Condensed"; src:url("../assets/pu2027/fonts-2027/GothamCond-UltraItalic.otf") format("opentype");   font-weight:1000; font-style:italic; font-display:swap; }

/* ------------------------------------------------------------
   TOKENS
   ------------------------------------------------------------ */
:root {
	--pu-font-display: 'Varsity Impact', 'Georgia', serif;
	--pu-font-body: 'Gotham', 'Figtree', system-ui, sans-serif;
	--pu-font-cond: 'Gotham Condensed', 'Gotham', 'Figtree', sans-serif;

	--pu-primary: #00362c;
	--pu-primary-900: #002b22;
	--pu-secondary-900: #014345;
	--pu-secondary-800: #056b72;
	--pu-secondary-700: #058288;
	--pu-secondary: #079ea5;
	--pu-secondary-300: #9ac4c8;
	--pu-secondary-100: #dde9ea;
	--pu-accent-800: #8f4715;
	--pu-accent-700: #ad561c;
	--pu-accent: #f77e2d;
	--pu-accent-300: #fab59d;
	--pu-accent-100: #fde4de;
	--pu-mist-800: #576374;
	--pu-mist-700: #6f7e93;
	--pu-mist-500: #a1b5d3;
	--pu-mist-300: #c6d1e2;
	--pu-mist-100: #eaedf4;
	--pu-white: #ffffff;
	--pu-black: #000000;
	--pu-bg: #e0e0e1;
	--pu-text: #3c3c3c;
	--pu-link: #005a8b;
	--pu-link-700: #004267;
	--pu-slate: #6b6b6c;
	--pu-hairline: #c3c3c4;
	--pu-cloud: #d9d9da;

	/* .container-max side padding */
	--pu-gutter: clamp(24px, 5vw, 88px);
}

/* ============================================================
   PART 1 — SITE-WIDE BRAND
   ============================================================ */
body {
	font-family: var(--pu-font-body);
	color: var(--pu-text);
	-webkit-font-smoothing: antialiased;
}

a,
.uk-link {
	color: var(--pu-link);
}
a:hover,
.uk-link:hover {
	color: var(--pu-link-700);
}

h1, h2, h3, h4, h5, h6,
.uk-h1, .uk-h2, .uk-h3, .uk-h4, .uk-h5, .uk-h6 {
	color: var(--pu-primary);
}

.uk-text-primary { color: var(--pu-primary) !important; }
.uk-text-secondary { color: var(--pu-secondary-800) !important; }
.uk-text-danger { color: var(--pu-accent-700) !important; }

/* Section and tile styles */
.uk-section-muted,
.uk-tile-muted { background-color: var(--pu-mist-100); }
.uk-section-primary,
.uk-tile-primary,
.uk-card-primary { background-color: var(--pu-primary); background-image: none; }
.uk-section-secondary,
.uk-tile-secondary,
.uk-card-secondary { background-color: var(--pu-secondary-800); background-image: none; }

/* Header menu bar (was navy #001f3c; custom.css sets it with !important) */
.uk-navbar-container.uk-navbar-primary,
.tm-header-mobile .uk-navbar-container {
	background-color: var(--pu-primary) !important;
	background-image: none;
}
.tm-header-mobile .uk-navbar-toggle,
.tm-header-mobile .uk-navbar-nav > li > a {
	color: var(--pu-white);
}
.tm-header-mobile .uk-navbar-toggle:hover,
.tm-header-mobile .uk-navbar-nav > li > a:hover {
	color: var(--pu-mist-300);
}

/* Buttons (2027 design): primary/danger = City Warmth CTA, secondary/default = ghost forest.
   Sizes follow the page designs: default 15px, large 17px at 56px tall (the "Register Now" CTA). */
.uk-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 44px;
	padding: 14px 26px;
	border: none;
	border-radius: 6px;
	font-family: var(--pu-font-body);
	font-weight: 700;
	font-size: 15px;
	line-height: 1.2;
	letter-spacing: normal;
	text-transform: none;
	text-decoration: none;
	transition: background 150ms ease-out, color 150ms ease-out, box-shadow 150ms ease-out;
}
.uk-button-large {
	min-height: 56px;
	padding: 0 28px;
	font-size: 17px;
}
.uk-button-small {
	min-height: 36px;
	padding: 10px 18px;
	font-size: 13px;
}

.uk-button-primary,
.uk-button-danger {
	background: var(--pu-accent);
	background-image: none;
	color: var(--pu-primary);
}
.uk-button-primary:hover,
.uk-button-primary:focus,
.uk-button-danger:hover,
.uk-button-danger:focus {
	background: var(--pu-accent-700);
	background-image: none;
	color: var(--pu-white);
}

.uk-button-secondary,
.uk-button-default {
	background: transparent;
	background-image: none;
	color: var(--pu-primary);
	box-shadow: inset 0 0 0 2px var(--pu-primary);
}
.uk-button-secondary:hover,
.uk-button-secondary:focus,
.uk-button-default:hover,
.uk-button-default:focus {
	background: #E3F3F4;
	background-image: none;
	color: var(--pu-primary);
}

/* On Deep Forest grounds: ghost-light */
.uk-light .uk-button-secondary,
.uk-light .uk-button-default,
.uk-section-primary .uk-button-secondary,
.uk-section-primary .uk-button-default,
.pu-bg-primary .uk-button-secondary,
.pu-bg-primary .uk-button-default {
	color: var(--pu-white);
	box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.55);
}
.uk-light .uk-button-secondary:hover,
.uk-light .uk-button-default:hover,
.uk-section-primary .uk-button-secondary:hover,
.uk-section-primary .uk-button-default:hover,
.pu-bg-primary .uk-button-secondary:hover,
.pu-bg-primary .uk-button-default:hover {
	background: rgba(255, 255, 255, 0.1);
	color: var(--pu-white);
	box-shadow: inset 0 0 0 2px var(--pu-white);
}

.uk-button:focus-visible {
	outline: 2px solid var(--pu-accent);
	outline-offset: 2px;
}

/* Icons after button labels (Button element classes), drawn in the text colour:
   pu-btn-ticket = ticket on every button; pu-btn-icons = ticket on primary, arrow on secondary */
:root {
	--pu-icon-ticket: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8V6a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v2a2 2 0 0 0 0 8v2a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-2a2 2 0 0 0 0-8z'/%3E%3Cpath d='M12 6.5v2M12 11v2M12 15.5v2'/%3E%3C/svg%3E");
	--pu-icon-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='M13 6l6 6-6 6'/%3E%3C/svg%3E");
}
.pu-btn-ticket .uk-button::after,
.pu-btn-icons .uk-button-primary::after,
.pu-btn-icons .uk-button-secondary::after {
	content: '';
	flex: none;
	width: 20px;
	height: 20px;
	background: currentColor;
	-webkit-mask: var(--pu-icon-ticket) center / contain no-repeat;
	mask: var(--pu-icon-ticket) center / contain no-repeat;
}
.pu-btn-icons .uk-button-secondary::after {
	-webkit-mask-image: var(--pu-icon-arrow);
	mask-image: var(--pu-icon-arrow);
}

/* Reusable typography classes (usable on any element via its Class field) */
.pu-display {
	font-family: var(--pu-font-display) !important;
	font-weight: 900 !important;
	letter-spacing: -0.02em;
	line-height: 0.86;
	text-transform: uppercase;
}
.pu-eyebrow,
.pu-eyebrow p {
	font-family: var(--pu-font-cond);
	font-weight: 700;
	font-size: clamp(12px, 1.05vw, 14px);
	text-transform: uppercase;
	letter-spacing: 0.16em;
	line-height: 1.6;
}
.pu-section-heading {
	font-family: var(--pu-font-body) !important;
	font-weight: 900 !important;
	font-size: clamp(28px, 3.6vw, 44px) !important;
	line-height: 1.12 !important;
	letter-spacing: -0.015em;
	text-transform: none;
}
.pu-subsection {
	font-family: var(--pu-font-body) !important;
	font-weight: 700 !important;
	font-size: clamp(25px, 2.9vw, 38px) !important;
	line-height: 1.15 !important;
	letter-spacing: -0.01em;
	text-transform: none;
}

/* ============================================================
   PART 2 — PAGE COMPONENTS (pu-* classes on builder elements)
   ============================================================ */

/* ---------- Section base: neutralise UIkit spacing ---------- */
.pu-sec {
	position: relative;
	font-family: var(--pu-font-body);
	font-size: 16px;
	line-height: 1.65;
	color: var(--pu-text);
}
.pu-sec > .uk-container {
	box-sizing: border-box;
	max-width: 1440px;
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--pu-gutter);
	padding-right: var(--pu-gutter);
}
.pu-sec .uk-grid {
	margin-left: 0;
	flex-wrap: wrap;
}
.pu-sec .uk-grid > * {
	padding-left: 0;
	position: static;
}
.pu-sec .uk-grid + .uk-grid,
.pu-sec .uk-grid > .uk-grid-margin {
	margin-top: 0;
}
.pu-sec p,
.pu-sec ul,
.pu-sec h1, .pu-sec h2, .pu-sec h3, .pu-sec h4, .pu-sec h5, .pu-sec h6 {
	margin: 0;
	text-wrap: pretty;
}
.pu-sec h1, .pu-sec h2, .pu-sec h3, .pu-sec h4, .pu-sec h5, .pu-sec h6 {
	font-family: var(--pu-font-body);
	color: var(--pu-primary);
	text-transform: none;
}
.pu-sec .pu-display {
	letter-spacing: -0.02em;
	line-height: 0.86;
	text-transform: uppercase;
}
.pu-sec .uk-panel > :last-child { margin-bottom: 0; }
.pu-sec .uk-list > li,
.pu-sec .uk-list > li:nth-child(n+2) { margin: 0; }
.pu-sec .uk-list > li::before { display: none; }
.pu-sec a:not(.uk-button) {
	color: var(--pu-link);
	text-decoration: none;
	border-bottom: 1px solid rgba(0, 90, 139, 0.35);
	transition: color 150ms, border-color 150ms;
}
.pu-sec a:not(.uk-button):hover {
	color: var(--pu-link-700);
	border-bottom-color: var(--pu-link-700);
}
.pu-sec img { max-width: 100%; }

/* Backgrounds */
.pu-bg-white { background-color: var(--pu-white); }
.pu-bg-primary { background-color: var(--pu-primary); }
.pu-bg-accent { background-color: var(--pu-accent); }
.pu-bg-mist { background-color: var(--pu-mist-100); }
.pu-bg-secondary-100 { background-color: var(--pu-secondary-100); }

/* Cover image helper: fill the wrapper div YOOtheme renders around <picture> */
.pu-hero-img,
.pu-fl-img,
.pu-ib-img,
.pu-hotel-img {
	position: relative;
	overflow: hidden;
}
.pu-hero-img picture,
.pu-fl-img picture,
.pu-ib-img picture,
.pu-hotel-img picture {
	display: contents;
}
.pu-hero-img img,
.pu-fl-img img,
.pu-ib-img img,
.pu-hotel-img img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
}

/* ---------- Hero ---------- */
.pu-hero {
	z-index: 2;
	overflow: hidden;
	overflow: clip;
	overflow-clip-margin: 0;
}
.pu-hero > .uk-container {
	position: relative;
	padding: clamp(52px, 7vw, 104px) var(--pu-gutter) clamp(132px, 17vw, 236px);
}
.pu-hero-mark {
	position: absolute;
	right: -7%;
	top: -12%;
	width: min(52vw, 660px);
	opacity: 0.042;
	pointer-events: none;
}
.pu-hero-mark img { width: 100%; height: auto; }
.pu-hero .pu-hero-eyebrow { position: relative; color: var(--pu-secondary-300); }
.pu-hero-eyebrow p { max-width: 58ch; }
.pu-hero-dates {
	position: relative;
	margin-top: clamp(30px, 3.4vw, 48px);
	max-width: min(44ch, 100%);
	color: var(--pu-mist-500);
	font-family: var(--pu-font-cond);
	font-weight: 500;
	font-size: clamp(19px, 2.4vw, 32px);
	line-height: 1.3;
	letter-spacing: 0.005em;
}
.pu-hero-dates .pu-sep { padding: 0 0.45em; color: var(--pu-secondary-300); }
.pu-sec .pu-hero-title {
	position: relative;
	margin-top: clamp(72px, 10vw, 136px);
	color: var(--pu-white);
	font-size: clamp(2.35rem, 8.2vw, 6.9rem);
}
.pu-outline {
	color: transparent;
	-webkit-text-stroke: clamp(1.4px, 0.22vw, 3px) white;
	paint-order: stroke fill;
}
.pu-sec .uk-grid.pu-hero-bottom {
	align-items: flex-end;
	gap: 40px;
	margin-top: clamp(52px, 7vw, 104px);
}
.pu-sec .pu-hero-sub {
	flex: 1 1 300px;
	width: auto;
	max-width: 34ch;
	font-size: clamp(17px, 1.5vw, 21px);
}
.pu-hero-subtext {
	color: var(--pu-mist-500);
	font-size: clamp(17px, 1.5vw, 21px);
	line-height: 1.6;
}
.pu-sec .pu-hero-media {
	position: relative;
	z-index: 10;
	flex: 1 1 420px;
	width: auto;
	height: clamp(220px, 30vw, 400px);
	margin-right: calc(-1 * var(--pu-gutter));
	margin-bottom: calc(-1 * clamp(132px, 17vw, 236px));
	background: rgba(255, 255, 255, 0.05);
	overflow: hidden;
}
.pu-hero-media .pu-hero-img { height: 100%; }

/* ---------- Intro ---------- */
.pu-intro { z-index: 1; }
.pu-intro > .uk-container {
	padding: clamp(132px, 17vw, 236px) var(--pu-gutter) clamp(104px, 14vw, 184px);
}
.pu-sec.pu-intro .uk-grid.pu-row,
.pu-sec.pu-fl .uk-grid.pu-row { gap: 48px; }
.pu-sec .pu-intro-head {
	flex: 1 1 280px;
	width: auto;
	max-width: 420px;
}
.pu-intro-heading::after {
	content: '';
	display: block;
	width: 88px;
	height: 2px;
	margin-top: clamp(22px, 2.6vw, 34px);
	background: var(--pu-accent);
}
.pu-sec .pu-intro-content {
	flex: 1 1 460px;
	width: auto;
	max-width: 58ch;
}
.pu-intro-lead p {
	color: var(--pu-primary);
	font-size: clamp(20px, 1.9vw, 26px);
	line-height: 1.5;
}
.pu-intro-body p {
	margin-top: clamp(30px, 3.4vw, 48px);
	color: var(--pu-text);
	font-size: clamp(16px, 1.15vw, 17.5px);
	line-height: 1.75;
}
.pu-em {
	color: var(--pu-primary);
	font-size: 1.08em;
	font-weight: 500;
}

/* ---------- Tagline ---------- */
.pu-tagline > .uk-container {
	padding: clamp(104px, 14vw, 184px) var(--pu-gutter);
}
.pu-sec .pu-tagline-text {
	font-size: clamp(1.85rem, 6.2vw, 5.1rem);
	line-height: 0.94;
}
.pu-tagline-text .pu-line { display: block; }
.pu-tagline-left .pu-tagline-text .pu-line:nth-child(2) { margin-left: clamp(0px, 4vw, 88px); }
.pu-tagline-left .pu-tagline-text .pu-line:nth-child(3) { margin-left: clamp(0px, 8vw, 176px); }
.pu-tagline-right .pu-tagline-text { text-align: right; }
.pu-tagline-cta { margin-top: clamp(40px, 5vw, 72px); }
.pu-tagline-left .pu-tagline-cta { margin-left: clamp(0px, 8vw, 176px); }
.pu-tagline-right .pu-tagline-cta { text-align: right; }
.pu-tagline-mist { background-color: var(--pu-mist-100); }
.pu-tagline-mist .pu-tagline-text { color: var(--pu-primary); }
.pu-tagline-mist .pu-highlight { color: var(--pu-accent-700); }
.pu-tagline-primary { background-color: var(--pu-primary); }
.pu-sec.pu-tagline-primary .pu-tagline-text { color: var(--pu-white); }
.pu-tagline-primary .pu-highlight { color: var(--pu-secondary-300); }

/* ---------- Large centred heading ---------- */
.pu-heading-xl { border-bottom: 1px solid var(--pu-hairline); }
.pu-heading-xl > .uk-container { max-width: none; padding: clamp(72px, 10vw, 136px) 0; }
.pu-sec .pu-heading-xl-text {
	font-size: clamp(2.35rem, 8.2vw, 6.9rem);
	line-height: 0.94;
	letter-spacing: normal;
	text-transform: none;
	text-align: center;
	color: var(--pu-primary);
}

/* ---------- Feature list ---------- */
.pu-fl > .uk-container {
	padding: clamp(72px, 10vw, 136px) var(--pu-gutter) clamp(104px, 14vw, 184px);
}
.pu-sec .pu-fl-head {
	flex: 0 0 clamp(200px, 26vw, 340px);
	width: auto;
	align-self: flex-start;
}
@media (min-width: 768px) {
	.pu-sec .pu-fl-head {
		position: sticky;
		top: clamp(88px, 11vh, 132px);
	}
}
/* The original's mb-4 loses to its global p { margin: 0 }, so no gap here */
.pu-sec .pu-fl-num {
	margin-bottom: 0;
	color: var(--pu-secondary-800);
	font-size: clamp(22px, 2.4vw, 32px);
	line-height: 1;
}
.pu-bg-accent .pu-fl-num { color: var(--pu-primary); }
.pu-sec .pu-fl-heading { color: var(--pu-primary); }
.pu-sec .pu-fl-content {
	flex: 1 1 460px;
	width: auto;
	max-width: 66ch;
}
.pu-sec .pu-fl-list {
	padding: 0;
	border-bottom: 1px solid var(--pu-hairline);
}
.pu-sec .pu-fl-list > li {
	border-top: 1px solid var(--pu-hairline);
	padding: clamp(22px, 2.6vw, 34px) 0;
	color: var(--pu-primary);
	font-size: clamp(19px, 1.85vw, 25px);
	line-height: 1.4;
}
.pu-sec .pu-fl-list-sm > li {
	padding: clamp(14px, 1.8vw, 22px) 0;
	font-size: clamp(15px, 1.35vw, 18px);
}
.pu-fl-list + .pu-fl-group-label { margin-top: clamp(52px, 7vw, 104px); }
.pu-fl-topics + .pu-fl-group-label { margin-top: clamp(40px, 5vw, 72px); }
.pu-fl-group-label p {
	border-top: 2px solid var(--pu-primary);
	padding-top: clamp(14px, 1.6vw, 22px);
	color: var(--pu-secondary-800);
	font-weight: 900;
	font-size: clamp(15.5px, 1.25vw, 19px);
	line-height: 1.3;
	letter-spacing: 0.005em;
}
.pu-sec .pu-fl-topics {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
	column-gap: 32px;
	margin-top: clamp(22px, 2.6vw, 34px);
	padding: 0;
	border-bottom: 1px solid var(--pu-cloud);
}
.pu-sec .pu-fl-topics > li {
	border-top: 1px solid var(--pu-cloud);
	padding: clamp(14px, 1.6vw, 22px) 0;
	color: var(--pu-text);
	font-size: clamp(16px, 1.15vw, 18.5px);
	line-height: 1.4;
}
.pu-fl-closing { margin-top: clamp(52px, 7vw, 104px); }
.pu-fl-closing.pu-fl-closing-only { margin-top: 0; }
.pu-fl-closing p {
	max-width: 36ch;
	color: var(--pu-primary);
	font-size: clamp(19px, 1.85vw, 25px);
	line-height: 1.5;
}
.pu-fl-closing-large p { font-size: clamp(24px, 2.5vw, 36px); }
.pu-sec .pu-fl-media {
	flex: 1 1 360px;
	width: auto;
	height: clamp(280px, 42vw, 600px);
	margin-right: calc(-1 * var(--pu-gutter));
	background: var(--pu-bg);
	overflow: hidden;
}
.pu-fl-media .pu-fl-img { height: 100%; }

/* ---------- Image break ---------- */
.pu-ib > .uk-container { max-width: none; padding: 0; }
.pu-ib-img {
	height: clamp(400px, 54vw, 780px);
	background: var(--pu-bg);
}
/* Spacer above an anchored image break (on the container: UIkit forces section padding to 0) */
.pu-ib.pu-ib-headline > .uk-container { padding-top: clamp(56px, 10vw, 140px); }
.pu-ib-headline .uk-grid > * { position: relative; }
.pu-ib-headline .pu-ib-img::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(to bottom, rgba(0, 54, 44, 0.8), transparent);
}
.pu-sec .pu-ib-title {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	padding: clamp(32px, 6vw, 80px) clamp(24px, 5vw, 88px) 0 270px;
	color: var(--pu-white);
	font-size: clamp(48px, 10vw, 100px);
}

/* ---------- Pricing ---------- */
.pu-pricing { scroll-margin-top: 116px; }
.pu-pricing > .uk-container { padding: clamp(104px, 14vw, 184px) var(--pu-gutter); }
.pu-pricing-eyebrow { color: var(--pu-secondary-800); }
.pu-sec .pu-pricing-heading { max-width: 24ch; }
.pu-pricing-table { margin-top: clamp(52px, 7vw, 104px); }
.pu-price-table {
	width: 100%;
	border-collapse: collapse;
	table-layout: fixed;
	color: var(--pu-primary);
}
.pu-price-table thead th {
	padding: 0 12px 16px 0;
	border-bottom: 2px solid var(--pu-primary);
	text-align: left;
	vertical-align: bottom;
	color: var(--pu-secondary-800);
	font-family: var(--pu-font-body);
	font-weight: 600;
	font-size: clamp(14px, 1.15vw, 18px);
	letter-spacing: 0.03em;
	text-transform: none;
}
.pu-price-table thead th:first-child { color: var(--pu-primary); }
.pu-price-table thead th:last-child {
	padding: 0 12px 16px;
	text-align: center;
	font-weight: 700;
	font-size: clamp(13px, 1.15vw, 17px);
	letter-spacing: 0.05em;
	line-height: 1.2;
}
.pu-price-table tbody tr { transition: background-color 150ms; }
.pu-price-table tbody tr:hover { background-color: rgba(255, 255, 255, 0.6); }
.pu-price-table tbody th,
.pu-price-table tbody td {
	border-bottom: 1px solid var(--pu-hairline);
	vertical-align: top;
}
.pu-price-table tbody th {
	padding: clamp(30px, 3.4vw, 48px) 12px clamp(30px, 3.4vw, 48px) 0;
	text-align: left;
	font-weight: 400;
	text-transform: none;
}
.pu-price-table tbody td {
	padding: clamp(30px, 3.4vw, 48px) 12px;
	text-align: center;
	color: var(--pu-primary);
	font-weight: 700;
	font-size: clamp(24px, 3vw, 40px);
	line-height: 1;
	font-variant-numeric: tabular-nums;
}
.pu-price-table tr.pu-current th,
.pu-price-table tr.pu-current td { border-top: 2px solid var(--pu-primary); }
.pu-badge {
	display: inline-block;
	margin-bottom: 12px;
	padding: 6px 10px;
	border-radius: 0.25rem;
	background: var(--pu-primary);
	color: var(--pu-white);
	font-size: 12px;
	line-height: 16px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.pu-tier-name {
	display: block;
	color: var(--pu-primary);
	font-weight: 700;
	font-size: clamp(17px, 1.6vw, 23px);
	line-height: 1.2;
	letter-spacing: -0.01em;
}
.pu-current .pu-tier-name { font-weight: 900; font-size: clamp(18px, 1.75vw, 25px); }
.pu-tier-deadline {
	display: block;
	margin-top: 10px;
	color: var(--pu-secondary-800);
	font-weight: 500;
	font-size: clamp(13px, 1.05vw, 15px);
	line-height: 1.65;
	letter-spacing: 0.02em;
}
.pu-price { display: block; }
.pu-savings {
	display: block;
	margin-top: 12px;
	color: var(--pu-secondary-800);
	font-weight: 600;
	font-size: clamp(12.5px, 1vw, 14px);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	line-height: 1.3;
}
.pu-sec .uk-grid.pu-pricing-cta-row { margin-top: clamp(30px, 3.4vw, 48px); }
.pu-sec .pu-pricing-cta-col {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 24px;
}
.pu-pricing-note p {
	max-width: 30ch;
	color: var(--pu-primary);
	font-weight: 600;
	font-size: clamp(14px, 1.15vw, 16.5px);
	letter-spacing: 0.03em;
	line-height: 1.45;
}
.pu-pricing-footnote { margin-top: clamp(30px, 3.4vw, 48px); }
.pu-pricing-footnote p {
	color: var(--pu-mist-800);
	font-weight: 500;
	font-size: clamp(13px, 1.05vw, 15px);
	letter-spacing: 0.02em;
}

/* Pricing cards on mobile (same table, restyled) */
@media (max-width: 767px) {
	.pu-price-table,
	.pu-price-table tbody { display: block; }
	.pu-price-table thead { display: none; }
	.pu-price-table tbody tr {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 16px;
		padding: 24px;
		border: 1px solid var(--pu-hairline);
		border-radius: 0.625rem;
		background: var(--pu-white);
	}
	.pu-price-table tbody tr + tr { margin-top: 24px; }
	.pu-price-table tbody tr:hover { background: var(--pu-white); }
	.pu-price-table tr.pu-current { border: 2px solid var(--pu-primary); }
	.pu-price-table tbody th,
	.pu-price-table tbody td,
	.pu-price-table tr.pu-current th,
	.pu-price-table tr.pu-current td {
		padding: 0;
		border: 0;
	}
	.pu-price-table tbody th { grid-column: 1 / -1; }
	.pu-price-table tbody td {
		border-radius: 0.625rem;
		background: var(--pu-mist-100);
		font-size: 24px;
		line-height: 32px;
	}
	.pu-price-table tr.pu-current td { background: var(--pu-secondary-100); font-size: 30px; line-height: 36px; }
	.pu-price-table tbody td::before {
		content: attr(data-label);
		display: block;
		margin-bottom: 8px;
		color: var(--pu-mist-800);
		font-size: 12px;
		line-height: 16px;
		font-weight: 700;
		letter-spacing: 0.025em;
		text-transform: uppercase;
	}
	.pu-price-table tr.pu-current td::before { color: var(--pu-secondary-800); }
	.pu-tier-name { font-size: 18px; line-height: 28px; }
	.pu-current .pu-tier-name { font-size: 20px; line-height: 28px; }
	.pu-tier-deadline { margin-top: 8px; font-size: 14px; line-height: 20px; letter-spacing: normal; }
	.pu-savings { margin-top: 4px; font-size: 12px; line-height: 16px; letter-spacing: 0.025em; }
}

/* ---------- Content containers (Travel & Stay) ---------- */
.pu-ct > .uk-container {
	padding: clamp(32px, 5vw, 64px) clamp(16px, 3vw, 32px);
}
.pu-sec .pu-ct-row {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(32px, 4vw, 48px);
	align-items: start;
}
.pu-sec .pu-ct-row > * { width: auto; }
@media (min-width: 768px) {
	.pu-sec .pu-ct-row { grid-template-columns: 1fr 1fr; }
	.pu-sec.pu-ct-sidebar .pu-ct-row { grid-template-columns: 2fr 1fr; }
}

.pu-sub-heading { margin-left: clamp(32px, 5vw, 64px); }
.pu-sub-heading > .uk-container { padding: clamp(16px, 3vw, 32px) 0; }
.pu-sub-heading .uk-grid { padding: clamp(32px, 4vw, 48px) 0; }
.pu-sub-heading-bottom .uk-grid { border-bottom: 1px solid var(--pu-hairline); }
.pu-sub-heading-top .uk-grid { border-top: 1px solid var(--pu-primary); }
.pu-sec .pu-sub-heading-text {
	color: var(--pu-primary);
	font-weight: 700;
	font-size: clamp(1.25rem, 2.5vw, 2rem);
	line-height: 1.2;
}

/* Rich text */
.pu-sec .pu-rt-heading {
	color: var(--pu-primary);
	font-weight: 500;
	font-size: clamp(1.25rem, 2.2vw, 1.6rem);
	line-height: 1.25;
}
.pu-rt-heading + .pu-rt { margin-top: 16px; }
.pu-rt p {
	margin-top: clamp(16px, 2vw, 24px);
	color: var(--pu-text);
	font-size: clamp(16px, 1.15vw, 17.5px);
	line-height: 1.75;
}
.pu-sec .pu-rt p.pu-medium {
	margin-top: clamp(14px, 1.75vw, 20px);
	font-size: clamp(14px, 1vw, 16px);
	line-height: 1.7;
}
.pu-sec .pu-rt p.pu-small {
	margin-top: clamp(12px, 1.5vw, 18px);
	color: var(--pu-slate);
	font-size: clamp(13px, 0.9vw, 14px);
	line-height: 1.6;
}
.pu-rt strong { color: var(--pu-primary); font-weight: 700; }
.pu-rt-border {
	border-top: 1px solid var(--pu-hairline);
	padding-top: 24px;
}

/* Hotel cards */
.pu-sec .pu-hotel {
	border-top: 1px solid var(--pu-hairline);
	padding-top: clamp(22px, 2.6vw, 34px);
}
.pu-hotel-img {
	height: clamp(190px, 24vw, 260px);
	margin-bottom: 24px;
	background: var(--pu-mist-100);
	transition: transform 150ms, box-shadow 150ms;
}
.pu-hotel-img:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
}
.pu-sec .pu-hotel-name {
	color: var(--pu-primary);
	font-weight: 500;
	font-size: clamp(21px, 2.1vw, 28px);
	line-height: 1.2;
	letter-spacing: -0.005em;
}
.pu-hotel-rows,
.pu-hotel-contacts { margin-top: clamp(22px, 2.6vw, 34px); }
.pu-hotel-row,
.pu-hotel-contact {
	border-top: 1px solid var(--pu-hairline);
	padding: clamp(14px, 1.6vw, 22px) 0;
}
.pu-hotel-contact { border-top-color: var(--pu-cloud); }
.pu-hotel-label,
.pu-hotel-contact-label {
	display: block;
	color: var(--pu-secondary-800);
	font-weight: 600;
	font-size: 13.5px;
	letter-spacing: 0.04em;
	line-height: 1.5;
}
.pu-hotel-contact-label { color: var(--pu-mist-800); font-size: 13px; }
.pu-hotel-period {
	display: block;
	margin-top: 4px;
	color: var(--pu-primary);
	font-size: clamp(16px, 1.15vw, 17.5px);
	line-height: 1.5;
}
.pu-hotel-rate {
	display: block;
	margin-top: 6px;
	color: var(--pu-primary);
	font-weight: 700;
	font-size: clamp(28px, 3vw, 40px);
	line-height: 1;
	font-variant-numeric: tabular-nums;
}
.pu-hotel-note {
	display: block;
	margin-top: 8px;
	color: var(--pu-mist-800);
	font-size: clamp(13.5px, 1vw, 14.5px);
	line-height: 1.55;
}
.pu-hotel-cutoff {
	display: block;
	margin-top: 6px;
	color: var(--pu-primary);
	font-weight: 700;
	font-size: clamp(21px, 2vw, 28px);
	line-height: 1.1;
	font-variant-numeric: tabular-nums;
}
.pu-hotel-contact-value {
	display: block;
	margin-top: 4px;
	color: var(--pu-text);
	font-size: clamp(14.5px, 1.02vw, 15.5px);
	line-height: 1.5;
}
.pu-hotel-cta { margin-top: clamp(22px, 2.6vw, 34px); }

/* ---------- Mobile ---------- */
@media (max-width: 767px) {
	.pu-sec .pu-hero-media,
	.pu-sec .pu-fl-media {
		margin-left: 0;
		margin-right: 0;
		border-radius: 0.5rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.pu-sec *,
	.pu-sec *::before,
	.pu-sec *::after {
		transition-duration: 0.01ms !important;
	}
}

/* ============================================================
   PART 3 — 2027 DESIGN PAGES (from "PU2027 Conference Website")
   ============================================================ */

/* ---------- Pages without site chrome (custom field pu_hide_chrome) ---------- */
.pu-hide-chrome .tm-toolbar,
.pu-hide-chrome .tm-header,
.pu-hide-chrome .tm-header-mobile,
.pu-hide-chrome .tm-bottom,
.pu-hide-chrome .tm-page > footer {
	display: none !important;
}
.pu-hide-chrome { background: var(--pu-white); }

/* ---------- Splash (index page) — PU Splash.dc.html ---------- */
.pu-splash {
	--pu-strip-h: clamp(120px, 22vh, 240px);
	background: var(--pu-white);
}
.pu-splash > .uk-container {
	box-sizing: border-box;
	max-width: none;
	min-height: calc(100vh - var(--pu-strip-h));
	padding: clamp(48px, 8vh, 120px) clamp(20px, 8vw, 240px);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: clamp(48px, 9vh, 120px);
}
.admin-bar .pu-splash > .uk-container { min-height: calc(100vh - var(--pu-strip-h) - 32px); }
.pu-sec .pu-splash-brand,
.pu-sec .pu-splash-nav { width: 100%; }
.pu-sec .pu-splash-nav { max-width: 1440px; }
/* Logo pair (two Image elements) with the kicker text wrapped onto its own line below */
.pu-sec .pu-splash-logos {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	column-gap: clamp(16px, 3vw, 56px);
	row-gap: clamp(20px, 2.4vw, 36px);
}
.pu-splash-logo { min-width: 0; }
.pu-splash-logo img {
	display: block;
	height: clamp(36px, 5.4vw, 100px);
	width: auto;
	max-width: none;
}
/* Divider between the logos: drawn before the second logo, same gap on both sides */
.pu-splash-logo-pair {
	display: flex;
	align-items: stretch;
	gap: clamp(16px, 3vw, 56px);
}
.pu-splash-logo-pair::before {
	content: '';
	flex: none;
	width: 2px;
	background: var(--pu-black);
}
.pu-sec .pu-splash-kicker { flex-basis: 100%; }

/* Visually hidden, still read by screen readers */
.pu-visually-hidden {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}
.pu-sec .pu-splash-kicker p {
	margin: 0;
	text-align: center;
	color: var(--pu-primary);
	font-family: var(--pu-font-cond);
	font-weight: 700;
	font-size: clamp(16px, 1vw, 18px);
	line-height: 1.65;
	letter-spacing: 0.24em;
	text-transform: uppercase;
}

/* Event tiles (Grid element, one card per event; Card Primary = featured) */
.pu-sec .pu-tiles > .uk-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	grid-auto-rows: 1fr;
	gap: clamp(12px, 2vw, 32px);
	margin: 0;
}
.pu-sec .pu-tiles > .uk-grid > * {
	width: auto;
	margin: 0;
	padding: 0;
}
.pu-tiles .el-item { height: 100%; }
.pu-sec .pu-tiles a.uk-card {
	flex: 1;
	box-sizing: border-box;
	min-width: 0;
	min-height: clamp(104px, 14vw, 260px);
	padding: clamp(20px, 2.4vw, 40px);
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 16px;
	/* !important: YOOtheme's card styles are more specific */
	border: 2px solid var(--pu-primary) !important;
	border-radius: 6px;
	background: var(--pu-white) !important;
	box-shadow: none !important;
	color: var(--pu-primary) !important;
	text-decoration: none;
	transition: background 150ms ease-out, color 150ms ease-out;
}
/* Hover and keyboard focus: Deep Forest tile, white label, orange arrow */
.pu-sec .pu-tiles a.uk-card:hover,
.pu-sec .pu-tiles a.uk-card:focus-visible {
	background: var(--pu-primary) !important;
	color: var(--pu-white) !important;
}
.pu-sec .pu-tiles a.uk-card:focus-visible {
	outline: 2px solid var(--pu-accent);
	outline-offset: 2px;
}
.pu-tiles .el-image {
	flex: none;
	align-self: flex-end;
	box-sizing: border-box;
	width: clamp(44px, 3vw, 56px);
	height: clamp(44px, 3vw, 56px);
	border: 2px solid var(--pu-primary);
	border-radius: 999px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--pu-primary);
	transition: background 150ms ease-out, border-color 150ms ease-out;
}
.pu-tiles a.uk-card:hover .el-image,
.pu-tiles a.uk-card:focus-visible .el-image {
	border-color: var(--pu-accent);
	background: var(--pu-accent);
	color: var(--pu-primary);
}
.pu-sec .pu-tiles .el-title {
	margin: 0 !important;
	color: inherit !important;
	font-family: var(--pu-font-display);
	font-weight: 700;
	font-size: clamp(32px, 3vw, 56px);
	line-height: 0.92;
	letter-spacing: normal;
	text-transform: uppercase;
}
@media (min-width: 900px) and (max-width: 1199px) {
	.pu-sec .pu-tiles .el-title { font-size: clamp(24px, 2.6vw, 32px); }
}
@media (max-width: 899px) {
	.pu-sec .pu-tiles > .uk-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 767px) {
	.pu-sec .pu-tiles a.uk-card {
		flex-direction: row-reverse;
		align-items: center;
		gap: 12px;
		padding: 16px 16px 16px 20px;
	}
	.pu-tiles .el-image { align-self: center; }
	.pu-sec .pu-tiles .el-title {
		flex: 1 1 0;
		min-width: 0;
		font-size: clamp(22px, 7.5vw, 30px);
	}
}

/* Harbour photo strip (section background image) */
.pu-splash-strip > .uk-background-cover {
	position: relative;
	height: var(--pu-strip-h, clamp(120px, 22vh, 240px));
	background-color: var(--pu-primary);
	background-position: center 58% !important;
	filter: saturate(0.88) contrast(1.03);
}
.pu-splash-strip { --pu-strip-h: clamp(120px, 22vh, 240px); }
.pu-splash-strip > .uk-background-cover::before {
	content: '';
	position: absolute;
	inset: 0;
	background: rgba(0, 54, 44, 0.14);
}

/* ---------- 2027 page shell: 1600px container, design gutter ---------- */
.pu-lab-hero > .uk-container,
.pu-lab-intro > .uk-container,
.pu-lab-outcomes > .uk-container {
	max-width: 1600px;
	padding-left: clamp(20px, 5vw, 80px);
	padding-right: clamp(20px, 5vw, 80px);
}

/* Shared: condensed kicker and outlined pill (on Deep Forest) */
.pu-kicker {
	font-family: var(--pu-font-cond);
	font-weight: 700;
	font-size: 15px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--pu-mist-500);
}
.pu-pill {
	display: inline-flex;
	align-items: center;
	box-sizing: border-box;
	min-height: 30px;
	padding: 0 12px;
	border: 1.5px solid var(--pu-mist-500);
	border-radius: 999px;
	font-family: var(--pu-font-cond);
	font-weight: 700;
	font-size: 14px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--pu-white);
}

/* ---------- Leadership Lab — PU Leadership Lab.dc.html ---------- */
.pu-lab-hero { color: var(--pu-white); }
.pu-lab-hero > .uk-container {
	padding-top: clamp(72px, 8vw, 160px);
	padding-bottom: clamp(64px, 7vw, 128px);
}
.pu-lab-hero .uk-grid > * > * + * { margin-top: clamp(28px, 2.6vw, 44px); }
.pu-lab-kicker p {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 20px;
}
.pu-sec .pu-lab-title {
	display: flex;
	flex-direction: column;
	gap: clamp(16px, 1.6vw, 28px);
	max-width: 1280px;
	color: var(--pu-white);
}
.pu-lab-title-main {
	position: relative;
	font-family: var(--pu-font-display);
	font-weight: 700;
	font-size: clamp(56px, 8.4vw, 168px);
	line-height: 0.84;
	letter-spacing: -0.015em;
	text-transform: uppercase;
}
.pu-lab-subtitle {
	font-family: var(--pu-font-body);
	font-weight: 700;
	font-size: clamp(24px, 2.2vw, 40px);
	line-height: 1.2;
	letter-spacing: normal;
	text-transform: none;
}
.pu-sec.pu-lab-hero .pu-lab-hero-cta { margin-top: calc(clamp(28px, 2.6vw, 44px) + 8px); }

.pu-lab-intro > .uk-container { padding-top: clamp(80px, 9vw, 180px); }
.pu-sec .pu-lab-intro-row {
	align-items: flex-start;
	gap: 56px clamp(48px, 7vw, 140px);
}
.pu-sec .pu-lab-lead-col { flex: 1 1 560px; width: auto; max-width: 980px; }
.pu-sec .pu-lab-details-col { flex: 0 1 380px; width: auto; }
.pu-lab-lead p {
	color: var(--pu-primary);
	font-weight: 500;
	font-size: clamp(22px, 1.8vw, 32px);
	line-height: 1.42;
}
.pu-sec .pu-lab-details {
	display: flex;
	flex-direction: column;
	padding: 0;
	border-top: 2px solid var(--pu-primary);
	font-family: var(--pu-font-cond);
}
.pu-sec .pu-lab-details > li {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 18px 0;
	border-bottom: 1px solid var(--pu-cloud);
}
.pu-lab-details .el-title {
	color: var(--pu-secondary-800);
	font-weight: 700;
	font-size: 14px;
	line-height: normal;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.pu-lab-details .el-content {
	color: var(--pu-primary);
	font-weight: 500;
	font-size: clamp(18px, 1.2vw, 22px);
	line-height: normal;
	font-variant-numeric: tabular-nums;
}

.pu-lab-outcomes > .uk-container {
	padding-top: clamp(80px, 9vw, 160px);
	padding-bottom: clamp(96px, 10vw, 200px);
}
.pu-sec .pu-lab-outcomes-title {
	color: var(--pu-primary);
	font-weight: 700 !important;
	font-size: clamp(40px, 4.4vw, 84px);
	line-height: 0.88;
	letter-spacing: normal;
}
.pu-lab-outcomes-intro { margin-top: 16px; }
.pu-lab-outcomes-intro p {
	color: var(--pu-text);
	font-size: clamp(18px, 1.2vw, 21px);
	line-height: 1.55;
}

/* Check list (List element with a check icon) */
.pu-sec .pu-checklist {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
	column-gap: clamp(32px, 4vw, 80px);
	margin-top: clamp(32px, 3vw, 56px);
	padding: 0;
	border-top: 2px solid var(--pu-primary);
}
.pu-sec .pu-checklist > li {
	padding: clamp(22px, 1.8vw, 30px) 0;
	border-bottom: 1px solid var(--pu-cloud);
}
.pu-sec .pu-checklist > li > .uk-grid {
	flex-wrap: nowrap;
	align-items: flex-start;
	gap: 20px;
}
.pu-sec .pu-checklist > li > .uk-grid > * { width: auto; }
.pu-sec .pu-checklist > li > .uk-grid > :last-child { flex: 1; min-width: 0; }
.pu-checklist .el-image {
	flex: none;
	width: 32px;
	height: 32px;
	border-radius: 999px;
	background: #E3F3F4;
	color: var(--pu-secondary-800);
	display: flex;
	align-items: center;
	justify-content: center;
}
.pu-checklist .el-content {
	padding-top: 2px;
	color: var(--pu-primary);
	font-weight: 500;
	font-size: clamp(19px, 1.3vw, 24px);
	line-height: 1.4;
}
.pu-sec.pu-lab-outcomes .pu-lab-outcomes-cta { margin-top: calc(clamp(32px, 3vw, 56px) + clamp(16px, 2vw, 32px)); }

/* Full-width CTAs on phones (design: [data-cta]) */
@media (max-width: 767px) {
	.pu-cta .uk-button {
		width: 100%;
		box-sizing: border-box;
		justify-content: center;
		text-align: center;
	}
}

/* ============================================================
   PART 4 — 2027 SITE HEADER AND FOOTER (inc/pu2027-chrome.php)
   SiteHeader.dc.html / SiteFooter.dc.html. Body class pu-2027.
   ============================================================ */
.pu-2027 .tm-toolbar,
.pu-2027 .tm-header,
.pu-2027 .tm-header-mobile,
.pu-2027 .tm-bottom,
.pu-2027 .tm-page > footer,
.pu-2027 > .uk-notification { display: none !important; }
.pu-2027 { background: var(--pu-white); }

.pu27-header,
.pu27-footer {
	font-family: var(--pu-font-body);
	-webkit-font-smoothing: antialiased;
}
.pu27-header ul,
.pu27-footer ul { list-style: none; margin: 0; padding: 0; }
.pu27-header a,
.pu27-footer a { text-decoration: none; }
.pu27-header :focus-visible,
.pu27-footer :focus-visible {
	outline: 2px solid var(--pu-accent);
	outline-offset: 2px;
}
.pu27-icon { display: block; flex: none; }

/* ---------- Header ---------- */
.pu27-header {
	position: relative;
	z-index: 980;
	background: var(--pu-white);
	border-bottom: 1px solid var(--pu-cloud);
	transition: box-shadow 200ms ease-out;
}
.pu27-skip {
	position: absolute;
	left: 16px;
	top: -60px;
	z-index: 60;
	padding: 12px 16px;
	border-radius: 4px;
	background: var(--pu-primary);
	color: var(--pu-white) !important;
}
.pu27-skip:focus { top: 12px; }
.pu27-header-bar {
	box-sizing: border-box;
	max-width: 1600px;
	min-height: 76px;
	margin: 0 auto;
	padding: 0 clamp(14px, 5vw, 80px);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	transition: min-height 200ms ease-out;
}
.pu27-header-logo {
	display: flex;
	flex: none;
	padding: 8px 0;
	border-radius: 2px;
}
.pu27-header-logo:focus-visible { outline-offset: 4px; }
.pu27-header-logo img {
	display: block;
	width: clamp(140px, 40vw, 180px);
	height: auto;
	transition: width 200ms ease-out;
}

.pu27-nav { display: none; align-items: center; gap: 40px; }
.pu27-nav-list { display: flex; align-items: center; gap: 4px; }
.pu27-nav-item { position: relative; }
.pu27-nav-link {
	box-sizing: border-box;
	height: 48px;
	margin: 0;
	padding: 0 16px;
	border: 0;
	border-radius: 4px;
	background: transparent;
	display: flex;
	align-items: center;
	gap: 8px;
	color: var(--pu-primary) !important;
	font-family: var(--pu-font-body);
	font-weight: 500;
	font-size: 17px;
	line-height: 1;
	text-transform: none;
	cursor: pointer;
}
.pu27-nav-link:hover { background: #E3F3F4; }
/* Current section: Teal 800 underline (never colour alone) */
.pu27-in-section > .pu27-nav-link { box-shadow: inset 0 -2px 0 var(--pu-secondary-800); }
.pu27-chevron { display: flex; transition: transform 130ms ease-out; }
[aria-expanded="true"] > .pu27-chevron { transform: rotate(180deg); }

.pu27-dropdown {
	position: absolute;
	top: 56px;
	left: 0;
	min-width: 260px;
	box-sizing: border-box;
	padding: 8px !important;
	background: var(--pu-white);
	border: 1px solid var(--pu-cloud);
	border-radius: 6px;
	box-shadow: 0 12px 32px rgba(0, 54, 44, 0.12);
}
.pu27-dropdown[hidden] { display: none; }
.pu27-dropdown a {
	display: flex;
	align-items: center;
	min-height: 48px;
	padding: 0 16px;
	border-radius: 4px;
	color: var(--pu-primary) !important;
	font-size: 16px;
	font-weight: 400;
}
.pu27-dropdown a[aria-current="page"] { font-weight: 700; }
.pu27-dropdown a:hover { background: #E3F3F4; }
.pu27-dropdown a:focus-visible { outline-offset: -2px; }

.pu27-register {
	box-sizing: border-box;
	height: 48px;
	padding: 0 28px;
	display: flex;
	align-items: center;
	gap: 10px;
	border-radius: 6px;
	background: var(--pu-accent);
	color: var(--pu-primary) !important;
	font-weight: 700;
	font-size: 16px;
	transition: background 150ms ease-out, color 150ms ease-out;
}
.pu27-register:hover { background: var(--pu-accent-700); color: var(--pu-white) !important; }

.pu27-menu-toggle {
	flex: none;
	box-sizing: border-box;
	width: 48px;
	height: 48px;
	margin: 0;
	padding: 0;
	border: 2px solid var(--pu-primary);
	border-radius: 6px;
	background: var(--pu-white);
	color: var(--pu-primary);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
}
.pu27-menu-toggle .pu27-icon-x,
.pu27-menu-toggle[aria-expanded="true"] .pu27-icon-menu { display: none; }
.pu27-menu-toggle[aria-expanded="true"] .pu27-icon-x { display: block; }

/* Mobile menu */
.pu27-mobile {
	border-top: 1px solid var(--pu-cloud);
	background: var(--pu-white);
	padding: 8px clamp(20px, 5vw, 80px) 28px;
	box-shadow: 0 16px 32px rgba(0, 54, 44, 0.12);
}
.pu27-mobile[hidden] { display: none; }
.pu27-mobile-list { display: flex; flex-direction: column; }
.pu27-mobile-list > li { border-bottom: 1px solid var(--pu-cloud); }
.pu27-mobile-link {
	box-sizing: border-box;
	width: 100%;
	min-height: 56px;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	display: flex;
	align-items: center;
	justify-content: space-between;
	color: var(--pu-primary) !important;
	font-family: var(--pu-font-body);
	font-weight: 700;
	font-size: 18px;
	line-height: 1.2;
	text-transform: none;
	cursor: pointer;
}
.pu27-mobile-sub { display: flex; flex-direction: column; margin: 0 0 12px !important; }
.pu27-mobile-sub[hidden] { display: none; }
.pu27-mobile-sub a {
	display: flex;
	align-items: center;
	min-height: 48px;
	padding: 0 16px;
	border-radius: 4px;
	color: var(--pu-primary) !important;
	font-size: 17px;
	font-weight: 400;
}
.pu27-mobile-sub a[aria-current="page"] { font-weight: 700; }
.pu27-mobile-sub a:hover { background: #E3F3F4; }
.pu27-mobile-sub a:focus-visible { outline-offset: -2px; }
.pu27-register-mobile {
	height: auto;
	min-height: 56px;
	margin-top: 24px;
	padding: 0 24px;
	justify-content: center;
	font-size: 17px;
}
.pu27-experiences {
	margin-top: 12px;
	min-height: 48px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	color: var(--pu-primary) !important;
	font-weight: 500;
	font-size: 16px;
}
.pu27-experiences:hover { text-decoration: underline; }

/* Desktop: full nav, sticky bar that compacts after scrolling */
@media (min-width: 1100px) {
	.pu27-header {
		position: sticky;
		top: 0;
	}
	.admin-bar .pu27-header { top: 32px; }
	.pu27-header-bar { min-height: 112px; }
	.pu27-header-logo img { width: 220px; }
	.pu27-nav { display: flex; }
	.pu27-menu-toggle,
	.pu27-mobile { display: none !important; }
	.pu27-scrolled { box-shadow: 0 6px 20px rgba(0, 54, 44, 0.08); }
	.pu27-scrolled .pu27-header-bar { min-height: 80px; }
	.pu27-scrolled .pu27-header-logo img { width: 176px; }
}

/* ---------- Footer ---------- */
.pu27-footer {
	position: relative;
	overflow: hidden;
	background: var(--pu-primary);
	color: var(--pu-white);
}
.pu27-footer-inner {
	position: relative;
	box-sizing: border-box;
	max-width: 1600px;
	margin: 0 auto;
	padding: clamp(72px, 7vw, 120px) clamp(20px, 5vw, 80px) clamp(48px, 5vw, 88px);
	display: flex;
	flex-direction: column;
	gap: clamp(64px, 8vw, 160px);
}
.pu27-footer-brand {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: clamp(28px, 2.6vw, 44px);
}
.pu27-footer-logo { display: flex; border-radius: 2px; }
.pu27-footer-logo:focus-visible { outline-offset: 6px; }
.pu27-footer-logo img {
	display: block;
	width: clamp(140px, 12vw, 220px);
	height: auto;
}
.pu27-footer-line {
	width: 100%;
	max-width: 480px;
	display: flex;
	align-items: center;
	gap: 24px;
}
.pu27-footer-line > span[aria-hidden] {
	flex: 1;
	height: 1px;
	background: rgba(161, 181, 211, 0.4);
}
.pu27-footer-line-text {
	padding-left: 0.32em;
	white-space: nowrap;
	color: var(--pu-mist-500);
	font-family: var(--pu-font-cond);
	font-weight: 700;
	font-size: 15px;
	letter-spacing: 0.32em;
	text-transform: uppercase;
}
.pu27-footer-bottom {
	display: flex;
	flex-wrap: wrap;
	flex-direction: column;
	align-items: center;
	justify-content: space-between;
	gap: 32px 48px;
	padding-top: clamp(40px, 4vw, 64px);
	border-top: 1px solid rgba(255, 255, 255, 0.14);
	text-align: center;
}
.pu27-footer-npi {
	flex: 0 0 auto;
	display: block;
	width: clamp(180px, 14vw, 240px);
	height: auto;
}
.pu27-footer-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 4px clamp(24px, 3vw, 56px);
}
.pu27-footer-links a {
	min-height: 44px;
	display: flex;
	align-items: center;
	gap: 8px;
	color: var(--pu-mist-500) !important;
	font-size: 17px;
}
.pu27-footer-links a:hover { color: var(--pu-white) !important; text-decoration: underline; }
.pu27-social { display: flex; gap: 12px; }
.pu27-social a {
	box-sizing: border-box;
	width: 52px;
	height: 52px;
	border: 1.5px solid rgba(161, 181, 211, 0.6);
	border-radius: 999px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--pu-mist-500) !important;
}
.pu27-social a:hover { border-color: var(--pu-white); color: var(--pu-white) !important; }
@media (min-width: 768px) {
	.pu27-footer-bottom { flex-direction: row; text-align: left; }
}

/* ---------- Shared 2027 page pieces ---------- */
.pu-bg-teal-100 { background-color: #E3F3F4; }
.pu-bg-fog { background-color: var(--pu-bg); }
.pu-home-hero > .uk-container,
.pu-countdown > .uk-container,
.pu-home-intro > .uk-container,
.pu-home-close > .uk-container {
	max-width: 1600px;
	padding-left: clamp(20px, 5vw, 80px);
	padding-right: clamp(20px, 5vw, 80px);
}
/* Button groups (Button element with several items) */
.pu-sec .pu-cta > .uk-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 16px;
	margin: 0;
}
.pu-sec .pu-cta > .uk-grid > * { padding: 0; margin: 0; }
@media (max-width: 767px) {
	.pu-sec .pu-cta > .uk-grid > * { width: 100%; }
}

/* ---------- Home (Virtual Home uses the In-person Home design: PU Home.dc.html) ---------- */
.pu-home-hero > .uk-container { padding-top: clamp(48px, 7vw, 120px); }
.pu-sec .pu-home-hero-row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 560px), 1fr));
	gap: clamp(40px, 5vw, 80px);
	align-items: end;
}
.pu-sec .pu-home-hero-row > * { width: auto; }
.pu-home-hero-text { display: flex; flex-direction: column; gap: clamp(28px, 3vw, 48px); }
.pu-home-kicker p {
	color: var(--pu-secondary-800);
	font-family: var(--pu-font-cond);
	font-weight: 700;
	font-size: 15px;
	line-height: 1.65;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}
.pu-sec .pu-home-title {
	color: var(--pu-primary);
	font-family: var(--pu-font-display);
	font-weight: 700;
	font-size: clamp(40px, 5.6vw, 108px);
	line-height: 0.9;
	letter-spacing: -0.015em;
	text-transform: uppercase;
}
.pu-home-meta p {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 20px;
	color: var(--pu-primary);
	font-weight: 500;
	font-size: clamp(19px, 1.35vw, 24px);
	line-height: 1.65;
}
.pu-meta-sep { width: 1px; height: 22px; background: var(--pu-hairline); }
.pu-home-hero-ctas .uk-button-large,
.pu-home-intro-cta .uk-button-large,
.pu-home-close-cta .uk-button-large { padding: 0 32px; }

/* Hero video (Video element) */
.pu-home-hero-media {
	position: relative;
	min-height: clamp(300px, 36vw, 640px);
	overflow: hidden;
	background: var(--pu-primary);
}
.pu-home-hero-media video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	filter: saturate(0.88) contrast(1.03);
}
.pu-home-hero-media::after {
	content: '';
	position: absolute;
	inset: 0;
	background: rgba(0, 54, 44, 0.14);
	pointer-events: none;
}
/* Pause/play button added by js/pu2027-chrome.js to Video elements with class pu-video-pause */
.pu-video-toggle {
	position: absolute;
	z-index: 1;
	right: clamp(12px, 2vw, 24px);
	bottom: clamp(12px, 2vw, 24px);
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, 0.5);
	border-radius: 999px;
	background: rgba(0, 54, 44, 0.72);
	color: var(--pu-white);
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 4px;
	cursor: pointer;
	transition: background 150ms ease-out;
}
.pu-video-toggle:hover { background: var(--pu-primary); }
.pu-video-toggle:focus-visible { outline: 2px solid var(--pu-accent); outline-offset: 2px; }
.pu-video-toggle .pu-bar { width: 4px; height: 14px; background: var(--pu-white); }
.pu-video-toggle .pu-play {
	width: 0;
	height: 0;
	margin-left: 3px;
	border-left: 12px solid var(--pu-white);
	border-top: 8px solid transparent;
	border-bottom: 8px solid transparent;
}
.pu-video-toggle[aria-pressed="false"] .pu-play,
.pu-video-toggle[aria-pressed="true"] .pu-bar { display: none; }

/* Countdown (Countdown element) */
.pu-countdown { margin-top: clamp(72px, 8vw, 140px); }
.pu-countdown > .uk-container { padding-top: clamp(56px, 6vw, 104px); padding-bottom: clamp(56px, 6vw, 104px); }
.pu-sec .pu-countdown-timer {
	max-width: 1100px;
	margin: 0 auto !important;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(8px, 4vw, 112px);
}
.pu-sec .pu-countdown-timer > * {
	width: auto;
	min-width: 0;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
}
.pu-countdown-timer .uk-countdown-number {
	color: var(--pu-primary);
	font-family: var(--pu-font-display);
	font-weight: 700;
	font-size: clamp(32px, 4.6vw, 88px);
	line-height: 0.9;
	font-variant-numeric: tabular-nums;
}
.pu-countdown-timer .uk-countdown-label {
	margin: 0 !important;
	color: var(--pu-secondary-800);
	font-family: var(--pu-font-cond);
	font-weight: 700;
	font-size: 14px;
	line-height: 1.65;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

/* Introduction */
.pu-home-intro > .uk-container { padding-top: clamp(80px, 9vw, 168px); padding-bottom: clamp(80px, 9vw, 168px); }
.pu-sec .pu-home-intro-row {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 40px clamp(48px, 8vw, 160px);
}
.pu-sec .pu-home-intro-lead { flex: 1 1 440px; width: auto; max-width: 640px; }
.pu-sec .pu-home-intro-body {
	flex: 1 1 440px;
	width: auto;
	max-width: 680px;
	padding-top: clamp(0px, 0.6vw, 12px);
}
.pu-home-lead p {
	color: var(--pu-primary);
	font-weight: 500;
	font-size: clamp(28px, 2.8vw, 52px);
	line-height: 1.18;
	letter-spacing: -0.01em;
}
.pu-home-body p {
	color: var(--pu-text);
	font-size: clamp(17px, 1.1vw, 20px);
	line-height: 1.7;
}
.pu-home-body p + p { margin-top: clamp(20px, 1.8vw, 28px); }
.pu-home-intro-cta { margin-top: calc(clamp(20px, 1.8vw, 28px) + clamp(12px, 1.4vw, 20px)); }

/* Closing statement */
.pu-home-close > .uk-container {
	padding-top: clamp(96px, 10vw, 200px);
	padding-bottom: clamp(88px, 9vw, 180px);
	text-align: center;
}
.pu-sec .pu-home-close-title {
	max-width: 1300px;
	margin: 0 auto;
	color: var(--pu-primary);
	font-family: var(--pu-font-display);
	font-weight: 700;
	font-size: clamp(40px, 5.6vw, 108px);
	line-height: 0.88;
	letter-spacing: -0.015em;
	text-transform: uppercase;
	text-wrap: balance;
}
.pu-home-close-lead { margin-top: clamp(24px, 2.4vw, 40px); }
.pu-home-close-lead p {
	color: var(--pu-primary);
	font-weight: 500;
	font-size: clamp(22px, 1.8vw, 32px);
	line-height: 1.3;
}
.pu-home-close-cta { margin-top: clamp(40px, 3.5vw, 64px); display: flex; justify-content: center; }

/* ---------- Page title (kicker + big H1), e.g. Agenda ---------- */
.pu-page-title > .uk-container,
.pu-agenda-days > .uk-container,
.pu-agenda-day > .uk-container,
.pu-next > .uk-container {
	max-width: 1600px;
	padding-left: clamp(20px, 5vw, 80px);
	padding-right: clamp(20px, 5vw, 80px);
}
.pu-page-title > .uk-container {
	padding-top: clamp(56px, 8vw, 140px);
	padding-bottom: clamp(40px, 5vw, 80px);
}
.pu-page-title .uk-grid > * > * + * { margin-top: clamp(20px, 2vw, 32px); }
.pu-sec .pu-page-title-h1 {
	color: var(--pu-primary);
	font-family: var(--pu-font-display);
	font-weight: 700;
	font-size: clamp(44px, 7.6vw, 144px);
	line-height: 0.86;
	letter-spacing: -0.015em;
	text-transform: uppercase;
}

/* ---------- Agenda — PU Agenda.dc.html ---------- */
/* Day pills: sticky under the compact header on desktop */
.pu-agenda-days {
	z-index: 20;
	border-top: 1px solid var(--pu-cloud);
	border-bottom: 1px solid var(--pu-cloud);
}
.pu-agenda-days > .uk-container { padding-top: 12px; padding-bottom: 12px; }
@media (min-width: 1100px) {
	.pu-agenda-days { position: sticky; top: 81px; }
	.admin-bar .pu-agenda-days { top: 113px; }
}
.pu-sec .pu-agenda-pills ul {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.pu-sec .pu-agenda-pills a {
	box-sizing: border-box;
	min-height: 48px;
	padding: 0 20px;
	display: flex;
	align-items: center;
	gap: 10px;
	border: 1.5px solid var(--pu-primary);
	border-radius: 999px;
	background: var(--pu-white);
	color: var(--pu-primary);
	font-family: var(--pu-font-cond);
	font-weight: 500;
	font-size: 18px;
	line-height: 1.2;
	text-decoration: none;
	transition: background-color 150ms ease-out, color 150ms ease-out;
}
.pu-sec .pu-agenda-pills a:hover { border-color: var(--pu-secondary-800); color: var(--pu-primary); }
.pu-sec .pu-agenda-pills a[aria-current="location"] {
	border-color: var(--pu-secondary-800);
	background: var(--pu-secondary-800);
	color: var(--pu-white);
}
.pu-sec .pu-agenda-pills a:focus-visible { outline: 2px solid var(--pu-accent); outline-offset: 2px; }
.pu-agenda-pill-n { font-weight: 700; }

/* Day sections */
.pu-agenda-day { scroll-margin-top: 24px; }
@media (min-width: 1100px) {
	.pu-agenda-day { scroll-margin-top: 180px; }
	.admin-bar .pu-agenda-day { scroll-margin-top: 212px; }
}
.pu-agenda-days + .pu-agenda-day > .uk-container { padding-top: clamp(48px, 5vw, 96px); }
.pu-agenda-day + .pu-agenda-day > .uk-container { padding-top: clamp(72px, 8vw, 140px); }
.pu-agenda-day:has(+ :not(.pu-agenda-day)) > .uk-container { padding-bottom: clamp(96px, 10vw, 200px); }
.pu-sec .pu-agenda-day-row {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 32px clamp(40px, 6vw, 120px);
}
.pu-sec .pu-agenda-day-head { flex: 0 1 360px; width: auto; }
.pu-sec .pu-agenda-day-body { flex: 1 1 560px; width: auto; min-width: 0; }
.pu-sec .pu-agenda-day-title {
	display: flex;
	flex-direction: column;
	gap: 12px;
	color: var(--pu-primary);
}
.pu-agenda-day-n {
	font-family: var(--pu-font-display);
	font-weight: 700;
	font-size: clamp(36px, 4.6vw, 88px);
	line-height: 0.86;
	text-transform: uppercase;
}
.pu-agenda-day-date {
	font-family: var(--pu-font-body);
	font-weight: 700;
	font-size: clamp(22px, 1.8vw, 32px);
	line-height: 1.2;
}
.pu-agenda-today {
	align-self: flex-start;
	display: flex;
	align-items: center;
	gap: 8px;
	min-height: 30px;
	padding: 0 12px;
	border-radius: 999px;
	background: var(--pu-secondary-800);
	color: var(--pu-white);
	font-family: var(--pu-font-cond);
	font-weight: 700;
	font-size: 14px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.pu-agenda-today::before {
	content: '';
	width: 8px;
	height: 8px;
	border-radius: 999px;
	background: var(--pu-accent);
}

/* Program heading above each table (Virtual: French / English program) */
.pu-sec .pu-agenda-program {
	margin-bottom: 20px;
	color: var(--pu-primary);
	font-weight: 700;
	font-size: clamp(20px, 1.4vw, 26px);
	line-height: 1.3;
}
.pu-agenda-table + .pu-agenda-program { margin-top: clamp(48px, 4vw, 72px); }

/* Agenda table (Table element: Meta = start, Title = end, Content = session) */
.pu-sec .pu-agenda-table table {
	width: 100%;
	margin: 0;
	border-collapse: collapse;
	font-family: var(--pu-font-cond);
	font-variant-numeric: tabular-nums;
}
.pu-sec .pu-agenda-table thead tr { border-bottom: 2px solid var(--pu-primary); text-align: left; }
.pu-sec .pu-agenda-table th {
	padding: 0 16px 14px 0;
	vertical-align: bottom;
	color: var(--pu-secondary-800);
	font-family: var(--pu-font-cond);
	font-weight: 700;
	font-size: 14px;
	line-height: 1.65;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.pu-sec .pu-agenda-table th:nth-child(-n+2),
.pu-sec .pu-agenda-table td:nth-child(-n+2) { width: clamp(84px, 10vw, 160px); }
.pu-sec .pu-agenda-table th:last-child { padding-right: 0; }
.pu-sec .pu-agenda-table tbody tr {
	border-bottom: 1px solid var(--pu-cloud);
	vertical-align: baseline;
	transition: background-color 150ms ease-out;
}
.pu-sec .pu-agenda-table td {
	padding: 20px 16px 20px 0;
	vertical-align: baseline;
	color: var(--pu-primary);
	font-weight: 500;
	font-size: clamp(17px, 1.1vw, 20px);
	line-height: 1.65;
	white-space: nowrap;
}
.pu-sec .pu-agenda-table td:nth-child(2) { color: var(--pu-text); }
.pu-sec .pu-agenda-table td:last-child {
	padding-right: 0;
	font-family: var(--pu-font-body);
	line-height: 1.4;
	white-space: normal;
}
.pu-sec .pu-agenda-table td a {
	border-bottom: 0;
	color: var(--pu-link);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.pu-sec .pu-agenda-table td a:hover { color: var(--pu-primary); }
.pu-sec .pu-agenda-table tr.pu-now { background: #E3F3F4; }
.pu-agenda-now {
	display: inline-flex;
	align-items: center;
	min-height: 24px;
	margin-left: 8px;
	padding: 0 10px;
	border-radius: 999px;
	background: var(--pu-secondary-800);
	color: var(--pu-white);
	font-family: var(--pu-font-cond);
	font-weight: 700;
	font-size: 14px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	vertical-align: middle;
}

/* ---------- "Next page" link ---------- */
.pu-next > .uk-container { padding-bottom: clamp(80px, 8vw, 140px); }
.pu-sec a.pu-next-link {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 24px;
	padding: clamp(28px, 3vw, 44px) 0;
	border-top: 2px solid var(--pu-primary);
	border-bottom: 1px solid var(--pu-hairline);
	color: var(--pu-primary);
	text-decoration: none;
	transition: color 150ms ease-out;
}
.pu-sec a.pu-next-link:hover { color: var(--pu-secondary-800); border-bottom-color: var(--pu-hairline); }
.pu-sec a.pu-next-link:focus-visible { outline: 2px solid var(--pu-accent); outline-offset: 4px; }
.pu-next-text { display: flex; flex-direction: column; gap: 10px; }
.pu-next-kicker {
	color: var(--pu-secondary-800);
	font-family: var(--pu-font-cond);
	font-weight: 700;
	font-size: 15px;
	line-height: 1.65;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.pu-next-title {
	font-family: var(--pu-font-display);
	font-weight: 700;
	font-size: clamp(32px, 3vw, 56px);
	line-height: 0.9;
	text-transform: uppercase;
}
.pu-next-arrow {
	flex: none;
	box-sizing: border-box;
	width: 56px;
	height: 56px;
	border: 2px solid currentColor;
	border-radius: 999px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.pu-next-arrow::before {
	content: '';
	width: 24px;
	height: 24px;
	background: currentColor;
	-webkit-mask: var(--pu-icon-arrow) center / contain no-repeat;
	mask: var(--pu-icon-arrow) center / contain no-repeat;
}

/* ---------- Education Sessions — PU Education Sessions.dc.html ---------- */
.pu-sessions-bar > .uk-container,
.pu-sessions-group > .uk-container {
	max-width: 1600px;
	padding-left: clamp(20px, 5vw, 80px);
	padding-right: clamp(20px, 5vw, 80px);
}
.pu-page-title + .pu-sessions-bar { margin-top: calc(clamp(40px, 5vw, 72px) - clamp(40px, 5vw, 80px)); }

/* Filter bar (built by js/pu2027-chrome.js) — sticky from 1280px as in the design */
.pu-sessions-bar {
	z-index: 20;
	border-top: 1px solid var(--pu-cloud);
	border-bottom: 1px solid var(--pu-cloud);
}
.pu-sessions-bar > .uk-container { padding-top: 16px; padding-bottom: 16px; }
@media (min-width: 1280px) {
	.pu-sessions-bar { position: sticky; top: 81px; }
	.admin-bar .pu-sessions-bar { top: 113px; }
}
.pu-filterbar {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 12px 32px;
	align-items: end;
}
.pu-filters {
	min-width: 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px 16px;
}
.pu-filter { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.pu-filter label {
	color: var(--pu-secondary-800);
	font-family: var(--pu-font-cond);
	font-weight: 700;
	font-size: 14px;
	line-height: 1.65;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.pu-filter-select { position: relative; min-width: 0; }
.pu-filter select {
	box-sizing: border-box;
	width: 100%;
	height: 48px;
	margin: 0;
	padding: 0 44px 0 14px;
	-webkit-appearance: none;
	appearance: none;
	border: 1.5px solid var(--pu-primary);
	border-radius: 6px;
	background: var(--pu-white);
	color: var(--pu-primary);
	font-family: var(--pu-font-body);
	font-weight: 500;
	font-size: 16px;
	text-overflow: ellipsis;
	cursor: pointer;
	transition: background-color 150ms ease-out, border-color 150ms ease-out;
}
.pu-filter select:hover { border-color: var(--pu-secondary-900); }
.pu-filter select:focus { outline: none; box-shadow: 0 0 0 2px var(--pu-white), 0 0 0 4px var(--pu-link); }
.pu-filter select.pu-filter-on { border-width: 2px; background: #E3F3F4; }
.pu-filter-select::after {
	content: '';
	position: absolute;
	right: 14px;
	top: 50%;
	width: 20px;
	height: 20px;
	transform: translateY(-50%);
	background: var(--pu-primary);
	pointer-events: none;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
}
.pu-filter-status { display: flex; align-items: center; gap: 20px; min-height: 48px; }
.pu-filter-count {
	color: var(--pu-text);
	font-family: var(--pu-font-cond);
	font-weight: 500;
	font-size: 17px;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
.pu-link-button {
	min-height: 44px;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--pu-link);
	font-family: var(--pu-font-body);
	font-weight: 700;
	font-size: 16px;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
	white-space: nowrap;
}
.pu-link-button:hover { color: var(--pu-primary); }
.pu-link-button:focus-visible { outline: 2px solid var(--pu-accent); outline-offset: 2px; }
.pu-link-button[hidden] { display: none; }
@media (max-width: 1099px) {
	.pu-filterbar { grid-template-columns: minmax(0, 1fr); }
	.pu-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 519px) {
	.pu-filters { grid-template-columns: minmax(0, 1fr); }
}

/* Groups (one per language) and blocks (Live / Recording) */
.pu-sessions-bar + .pu-sessions-group > .uk-container { padding-top: clamp(48px, 5vw, 96px); }
.pu-sessions-group + .pu-sessions-group > .uk-container { padding-top: clamp(64px, 7vw, 120px); }
.pu-sessions-group:has(+ :not(.pu-sessions-group)) > .uk-container { padding-bottom: clamp(96px, 10vw, 200px); }
.pu-sessions-group[hidden],
.pu-sessions-block[hidden],
.pu-session-list > li[hidden] { display: none !important; }
.pu-sec .pu-sessions-group-title {
	color: var(--pu-primary);
	font-family: var(--pu-font-display);
	font-weight: 700;
	font-size: clamp(36px, 4.6vw, 88px);
	line-height: 0.88;
	text-transform: uppercase;
}
.pu-sec .uk-grid.pu-sessions-block {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 20px clamp(40px, 5vw, 96px);
	margin-top: clamp(32px, 3vw, 56px);
}
.pu-sec .pu-sessions-block-head { flex: 0 1 300px; width: auto; }
.pu-sec .pu-sessions-block-body { flex: 1 1 600px; width: auto; min-width: 0; }
.pu-sec .pu-sessions-block-title {
	padding-top: 24px;
	border-top: 2px solid var(--pu-primary);
	color: var(--pu-primary);
	font-family: var(--pu-font-cond);
	font-weight: 700;
	font-size: clamp(22px, 1.8vw, 32px);
	line-height: 1.2;
}
.pu-sec .pu-session-list { margin: 0; padding: 0; }
.pu-sec .pu-session-list > li {
	padding: 24px 0 28px;
	border-top: 1px solid var(--pu-hairline);
}
.pu-session { display: flex; flex-direction: column; gap: 14px; }
.pu-session-tags { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.pu-session-tags:empty { display: none; }
.pu-session-when {
	color: var(--pu-secondary-800);
	font-family: var(--pu-font-cond);
	font-weight: 700;
	font-size: 15px;
	letter-spacing: 0.1em;
	font-variant-numeric: tabular-nums;
}
.pu-tag {
	display: inline-block;
	padding: 5px 11px;
	border-radius: 999px;
	font-family: var(--pu-font-cond);
	font-weight: 700;
	font-size: 11px;
	line-height: 1.2;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	white-space: nowrap;
}
.pu-tag-teal { background: var(--pu-secondary-100); color: var(--pu-secondary-800); }
.pu-sec .pu-session-title {
	color: var(--pu-primary);
	font-weight: 700;
	font-size: clamp(20px, 1.4vw, 26px);
	line-height: 1.3;
}
.pu-session-by { color: var(--pu-text); font-size: 16px; line-height: 1.5; }
.pu-session-speaker { color: var(--pu-primary); font-weight: 500; }
.pu-sessions-empty {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
	margin: clamp(48px, 5vw, 96px) 0 0;
	padding-top: 24px;
	border-top: 2px solid var(--pu-primary);
}
.pu-sessions-empty[hidden] { display: none; }
.pu-sessions-empty p { font-size: 18px; line-height: 1.5; color: var(--pu-text); }

/* ---------- Keynotes — PU Keynotes.dc.html ---------- */
.pu-keynote > .uk-container {
	max-width: 1600px;
	padding-left: clamp(20px, 5vw, 80px);
	padding-right: clamp(20px, 5vw, 80px);
}
.pu-keynotes-title > .uk-container { padding-bottom: clamp(56px, 6vw, 120px); }
.pu-keynote + .pu-keynote > .uk-container { padding-top: clamp(80px, 9vw, 180px); }
.pu-keynote:has(+ :not(.pu-keynote)) > .uk-container { padding-bottom: clamp(96px, 10vw, 200px); }
.pu-sec .pu-keynote-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 40px clamp(48px, 7vw, 140px);
}
.pu-sec.pu-keynote-reverse .pu-keynote-row { flex-direction: row-reverse; }
.pu-sec .pu-keynote-media { flex: 1 1 380px; width: auto; max-width: 640px; }
.pu-sec .pu-keynote-text {
	flex: 1 1 480px;
	width: auto;
	max-width: 760px;
	display: flex;
	flex-direction: column;
	gap: clamp(20px, 2vw, 32px);
}
/* Headshot: a photo fills the 4:5 frame; the placeholder shows the PU mark on teal */
.pu-keynote-photo {
	position: relative;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	border-radius: 6px;
	background: var(--pu-secondary);
}
.pu-keynote-photo img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
}
.pu-keynote-placeholder { display: flex; align-items: center; justify-content: center; }
.pu-keynote-placeholder img {
	position: static;
	width: 128px;
	height: auto;
	object-fit: contain;
}
.pu-keynote-slot p {
	color: var(--pu-secondary-800);
	font-family: var(--pu-font-cond);
	font-weight: 700;
	font-size: 15px;
	line-height: 1.65;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.pu-sec .pu-keynote-title {
	text-indent: 0;
	color: var(--pu-primary);
	font-family: var(--pu-font-display);
	font-weight: 700;
	font-size: clamp(36px, 4.6vw, 88px);
	line-height: 0.88;
	letter-spacing: -0.01em;
	text-transform: uppercase;
}
.pu-keynote-name p {
	color: var(--pu-primary);
	font-weight: 900;
	font-size: clamp(20px, 1.4vw, 26px);
	line-height: 1.3;
}
.pu-keynote-body p {
	font-size: clamp(17px, 1.1vw, 20px);
	line-height: 1.7;
}

/* ---------- Sponsors — PU Sponsors.dc.html ---------- */
.pu-sponsor-tier > .uk-container {
	max-width: 1600px;
	padding-left: clamp(20px, 5vw, 80px);
	padding-right: clamp(20px, 5vw, 80px);
}
.pu-sponsors-title > .uk-container { padding-bottom: clamp(48px, 5vw, 96px); }
.pu-sec .pu-sponsor-pills ul {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0;
	padding: clamp(12px, 1.5vw, 24px) 0 0;
	list-style: none;
}
.pu-sec .pu-sponsor-pills a {
	box-sizing: border-box;
	min-height: 48px;
	padding: 0 20px;
	display: flex;
	align-items: center;
	border: 1.5px solid var(--pu-primary);
	border-radius: 999px;
	color: var(--pu-primary);
	font-family: var(--pu-font-cond);
	font-weight: 500;
	font-size: 18px;
	line-height: 1.2;
	text-decoration: none;
}
.pu-sec .pu-sponsor-pills a:hover { background: #E3F3F4; color: var(--pu-primary); border-color: var(--pu-primary); }
.pu-sec .pu-sponsor-pills a:focus-visible { outline: 2px solid var(--pu-accent); outline-offset: 2px; }

.pu-sponsor-tier { scroll-margin-top: 24px; }
@media (min-width: 1100px) {
	.pu-sponsor-tier { scroll-margin-top: 104px; }
	.admin-bar .pu-sponsor-tier { scroll-margin-top: 136px; }
}
.pu-sponsor-tier + .pu-sponsor-tier > .uk-container { padding-top: clamp(64px, 7vw, 128px); }
.pu-sponsor-tier:last-child > .uk-container,
.pu-sponsor-tier:has(+ :not(.pu-sponsor-tier)) > .uk-container { padding-bottom: clamp(96px, 10vw, 200px); }
.pu-sec.pu-sponsor-tier > .uk-container > .uk-grid > * {
	display: flex;
	flex-direction: column;
	gap: clamp(24px, 2.4vw, 40px);
	padding-top: 28px;
	border-top: 2px solid var(--pu-primary);
}
.pu-sec .pu-sponsor-tier-title {
	color: var(--pu-primary);
	font-weight: 900;
	font-size: clamp(28px, 2.2vw, 42px);
	line-height: 1.2;
}

/* Tier grid: one box per sponsor; the box sizes follow the design per tier */
.pu-sponsor-grid { --pu-sponsor-w: 200px; --pu-sponsor-h: 120px; --pu-sponsor-max: calc(50% - 12px); }
.pu-sponsor-grid-diamond { --pu-sponsor-w: 520px; --pu-sponsor-h: clamp(200px, 15vw, 280px); --pu-sponsor-max: 100%; }
.pu-sponsor-grid-platinum { --pu-sponsor-w: 320px; --pu-sponsor-h: 200px; --pu-sponsor-max: 100%; }
.pu-sponsor-grid-gold { --pu-sponsor-w: 260px; --pu-sponsor-h: 160px; }
.pu-sec .pu-sponsor-grid > .uk-grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: clamp(16px, 1.6vw, 24px);
	margin: 0;
}
.pu-sec .pu-sponsor-grid > .uk-grid > * {
	flex: 0 1 min(var(--pu-sponsor-w), var(--pu-sponsor-max));
	width: min(var(--pu-sponsor-w), var(--pu-sponsor-max));
	margin: 0;
	padding: 0;
}
.pu-sponsor-grid .el-item {
	box-sizing: border-box;
	height: var(--pu-sponsor-h);
	padding: 16px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 10px;
	text-align: center;
}
/* Placeholder (no logo yet): dashed box with the item title */
.pu-sponsor-grid .el-item:not(:has(.el-image)) { border: 1.5px dashed var(--pu-hairline); }
.pu-sponsor-grid .el-title {
	margin: 0 !important;
	color: var(--pu-mist-700);
	font-family: var(--pu-font-cond);
	font-weight: 700;
	font-size: 14px;
	line-height: 1.4;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
/* Sponsor logo */
.pu-sponsor-grid .el-image {
	display: block;
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
	margin: 0 !important;
}
.pu-sponsor-grid .el-item:has(.el-image) .el-title { display: none; }

/* ---------- Register — PU Register.dc.html ---------- */
.pu-reg > .uk-container,
.pu-reg-policy > .uk-container {
	max-width: 1600px;
	padding-left: clamp(20px, 5vw, 80px);
	padding-right: clamp(20px, 5vw, 80px);
}
.pu-reg-title > .uk-container { padding-bottom: clamp(48px, 5vw, 96px); }
.pu-reg-title .uk-grid > * > * + * { margin-top: clamp(24px, 2.4vw, 40px); }

/* Heading row: eyebrow + name on the left, Register Now on the right */
.pu-sec .pu-reg-head {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-end;
	gap: 16px 48px;
	padding-top: 24px;
	border-top: 2px solid var(--pu-primary);
}
.pu-sec .pu-reg-head > * { width: auto; }
.pu-reg-head-text { display: flex; flex-direction: column; gap: 8px; }
.pu-sec .pu-reg-eyebrow {
	color: var(--pu-secondary-800);
	font-family: var(--pu-font-cond);
	font-weight: 700;
	font-size: 15px;
	line-height: 1.65;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.pu-reg-name p {
	color: var(--pu-primary);
	font-weight: 900;
	font-size: clamp(28px, 2.2vw, 42px);
	line-height: 1.2;
}
.pu-reg-cpe p {
	color: var(--pu-text);
	font-family: var(--pu-font-cond);
	font-weight: 500;
	font-size: 18px;
	line-height: 1.5;
}
.pu-reg-cpe-label { color: var(--pu-secondary-800); font-weight: 700; }
.pu-reg-cta .uk-button-large { padding: 0 32px; }

/* Fee cards (Grid element) */
.pu-sec .uk-grid.pu-reg-cards { margin-top: clamp(28px, 3vw, 48px); }
.pu-reg:has(+ .pu-reg-policy) > .uk-container { padding-bottom: 0; }
.pu-sec .pu-reg-tiers > .uk-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr));
	gap: clamp(16px, 2vw, 32px);
	margin: 0;
}
.pu-sec .pu-reg-tiers > .uk-grid > * { width: auto; margin: 0; padding: 0; }
.pu-reg-tiers .el-item {
	position: relative;
	height: 100%;
	box-sizing: border-box;
	padding: calc(6px + clamp(24px, 2.4vw, 40px)) clamp(24px, 2.4vw, 40px) clamp(24px, 2.4vw, 40px);
	display: flex;
	flex-direction: column;
	border: 1px solid var(--pu-cloud);
	border-radius: 10px;
	overflow: hidden;
	background: var(--pu-white);
}
.pu-reg-tiers .el-item::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 6px;
	background: var(--pu-cloud);
}
.pu-reg-tiers .el-item.pu-reg-active { box-shadow: 0 12px 32px rgba(0, 54, 44, 0.14); }
.pu-reg-tiers .el-item.pu-reg-active::before { background: var(--pu-accent); }
.pu-reg-badge-slot { min-height: 30px; display: flex; align-items: center; margin-bottom: 8px; }
.pu-reg-badge {
	display: flex;
	align-items: center;
	gap: 8px;
	min-height: 30px;
	padding: 0 12px;
	border-radius: 999px;
	font-family: var(--pu-font-cond);
	font-weight: 700;
	font-size: 14px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.pu-reg-badge-current { background: var(--pu-primary); color: var(--pu-white); }
.pu-reg-badge-current::before {
	content: '';
	width: 8px;
	height: 8px;
	border-radius: 999px;
	background: var(--pu-accent);
}
.pu-reg-badge-ended { border: 1.5px solid var(--pu-mist-700); color: var(--pu-text); }
.pu-sec .pu-reg-tiers .el-title {
	margin: 0 !important;
	color: var(--pu-primary);
	font-weight: 700;
	font-size: clamp(20px, 1.4vw, 26px);
	line-height: 1.3;
}
.pu-reg-tiers .el-meta {
	margin: 8px 0 0 !important;
	color: var(--pu-text);
	font-family: var(--pu-font-cond);
	font-weight: 500;
	font-size: 18px;
	line-height: 1.4;
}
.pu-reg-tiers .el-content { margin-top: 28px !important; }
.pu-reg-prices { margin: 0; display: flex; flex-direction: column; border-top: 1px solid var(--pu-cloud); }
.pu-reg-prices > div { padding: 18px 0; display: flex; flex-direction: column; gap: 6px; }
.pu-reg-prices > div + div { border-top: 1px solid var(--pu-cloud); }
.pu-reg-prices dt {
	color: var(--pu-secondary-800);
	font-family: var(--pu-font-cond);
	font-weight: 700;
	font-size: 14px;
	line-height: 1.65;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.pu-reg-prices dd {
	margin: 0;
	color: var(--pu-primary);
	font-family: var(--pu-font-display);
	font-weight: 700;
	font-size: clamp(32px, 3vw, 56px);
	line-height: 0.9;
	font-variant-numeric: tabular-nums;
}
.pu-reg-ended .pu-reg-prices dd { color: var(--pu-mist-700); text-decoration: line-through; }

/* Cancellation policy */
.pu-reg-policy > .uk-container {
	padding-top: clamp(80px, 8vw, 160px);
	padding-bottom: clamp(96px, 10vw, 200px);
}
.pu-sec .pu-reg-policy-row {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 32px clamp(48px, 7vw, 140px);
}
.pu-sec .pu-reg-policy-head { flex: 0 1 380px; width: auto; }
.pu-sec .pu-reg-policy-text { flex: 1 1 560px; width: auto; max-width: 880px; }
.pu-sec .pu-reg-policy-title {
	padding-top: 24px;
	border-top: 2px solid var(--pu-primary);
	color: var(--pu-primary);
	font-weight: 900;
	font-size: clamp(28px, 2.2vw, 42px);
	line-height: 1.15;
}
.pu-reg-policy-body { font-size: clamp(17px, 1.1vw, 20px); line-height: 1.7; }
.pu-reg-policy-body > * + * { margin-top: 20px !important; }
.pu-sec .pu-reg-policy-body ul { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--pu-cloud); }
.pu-sec .pu-reg-policy-body li { margin: 0; padding: 16px 0; border-bottom: 1px solid var(--pu-cloud); }
.pu-sec .pu-reg-head > .pu-reg-head-cta { margin-left: auto; }
.pu-sec .pu-reg-head > .pu-reg-head-text { flex: 1 1 auto; }
.pu-sec .pu-reg-head > .pu-reg-head-cta { flex: 0 0 auto; }
@media (max-width: 767px) {
	.pu-sec .pu-reg-head > .pu-reg-head-cta { flex: 1 1 100%; margin-left: 0; }
}

/* ---------- In-person Home extra sections — PU Home.dc.html ---------- */
.pu-home-edu > .uk-container,
.pu-home-keynotes > .uk-container,
.pu-home-net > .uk-container,
.pu-home-fun .uk-container {
	max-width: 1600px;
	padding-left: clamp(20px, 5vw, 80px);
	padding-right: clamp(20px, 5vw, 80px);
}
/* Intro rule before Education Sessions (design) */
.pu-home-intro-rule > .uk-container { padding-bottom: 0; }
.pu-home-intro-rule .pu-home-intro-row {
	padding-bottom: clamp(80px, 9vw, 168px);
	border-bottom: 1px solid var(--pu-hairline);
}

/* Shared: display H2, lead line, ruled list */
.pu-sec .pu-display-h2 {
	color: var(--pu-primary);
	font-family: var(--pu-font-display);
	font-weight: 700;
	font-size: clamp(40px, 5.6vw, 108px);
	line-height: 0.88;
	letter-spacing: -0.01em;
	text-transform: uppercase;
}
.pu-home-edu-lead p {
	max-width: 620px;
	color: var(--pu-primary);
	font-weight: 500;
	font-size: clamp(22px, 1.8vw, 32px);
	line-height: 1.3;
}
.pu-sec .pu-rule-list {
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--pu-cloud);
	font-size: clamp(17px, 1.1vw, 20px);
	line-height: 1.6;
}
.pu-sec .pu-rule-list > li { padding: 20px 0; border-bottom: 1px solid var(--pu-cloud); }
.pu-sec .pu-rule-list-tight > li { padding: 18px 0; }

/* Education Sessions */
.pu-home-edu > .uk-container { padding-top: clamp(80px, 9vw, 168px); }
.pu-sec .pu-home-edu-row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 480px), 1fr));
	gap: 48px clamp(48px, 7vw, 140px);
	align-items: start;
}
.pu-sec .pu-home-edu-row > * { width: auto; }
.pu-home-edu-head { display: flex; flex-direction: column; gap: clamp(24px, 2.4vw, 36px); }
.pu-home-edu-points { display: flex; flex-direction: column; gap: 28px; }
.pu-home-edu-note p { font-size: clamp(17px, 1.1vw, 20px); line-height: 1.65; }

/* Topic chip cards */
.pu-sec .uk-grid.pu-chips-row {
	display: flex;
	flex-wrap: wrap;
	gap: clamp(16px, 2vw, 32px);
	margin-top: clamp(56px, 5vw, 96px);
}
.pu-sec .pu-chips-row > .pu-chips-card {
	flex: 1 1 440px;
	width: auto;
	box-sizing: border-box;
	padding: clamp(28px, 3vw, 48px);
	display: flex;
	flex-direction: column;
	gap: 24px;
	border-radius: 10px;
	background: #E3F3F4;
}
.pu-sec .pu-chips-title {
	color: var(--pu-primary);
	font-weight: 700;
	font-size: clamp(18px, 1.2vw, 22px);
	line-height: 1.3;
}
.pu-sec .pu-chips {
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
.pu-sec .pu-chips > li {
	box-sizing: border-box;
	min-height: 40px;
	padding: 6px 18px;
	display: flex;
	align-items: center;
	border: 1.5px solid var(--pu-primary);
	border-radius: 999px;
	background: var(--pu-white);
	color: var(--pu-primary);
	font-family: var(--pu-font-cond);
	font-weight: 500;
	font-size: clamp(17px, 1.1vw, 20px);
	line-height: 1.2;
}

/* Sample sessions */
.pu-sec .uk-grid.pu-home-sessions-row { margin-top: clamp(56px, 5vw, 96px); }
.pu-sec .pu-home-sessions { margin: 0; padding: 0; }
.pu-sec .pu-home-sessions > li { padding: 32px 0; border-top: 1px solid var(--pu-hairline); }
.pu-home-session {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 16px 40px;
}
.pu-home-session-when {
	flex: 0 0 220px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-family: var(--pu-font-cond);
	font-variant-numeric: tabular-nums;
}
.pu-home-session-day {
	color: var(--pu-secondary-800);
	font-weight: 700;
	font-size: 15px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.pu-home-session-time { color: var(--pu-primary); font-weight: 500; font-size: 18px; }
.pu-sec .pu-home-session-title {
	flex: 1 1 420px;
	color: var(--pu-primary);
	font-weight: 700;
	font-size: clamp(20px, 1.4vw, 26px);
	line-height: 1.3;
}
.pu-home-session-by {
	flex: 1 1 300px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	font-size: 16px;
	line-height: 1.45;
}
.pu-level {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 28px;
	padding: 0 12px;
	border: 1.5px solid;
	border-radius: 999px;
	font-family: var(--pu-font-cond);
	font-weight: 700;
	font-size: 14px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	white-space: nowrap;
}
.pu-level::before {
	content: '';
	flex: none;
	box-sizing: border-box;
	width: 10px;
	height: 10px;
	border: 1.5px solid currentColor;
	border-radius: 999px;
}
.pu-level-senior-leaders { border-color: var(--pu-primary); background: #E3F3F4; color: var(--pu-primary); }
.pu-level-senior-leaders::before { background: currentColor; }
.pu-level-mid-level-leaders { border-color: var(--pu-secondary-800); background: var(--pu-white); color: var(--pu-secondary-800); }
.pu-level-mid-level-leaders::before { background: linear-gradient(90deg, currentColor 50%, transparent 50%); }
.pu-level-all-levels { border-color: var(--pu-mist-700); background: var(--pu-white); color: var(--pu-text); }
.pu-sec .uk-grid.pu-home-edu-foot {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 24px 48px;
	padding-top: 36px;
	border-top: 1px solid var(--pu-hairline);
}
.pu-sec .pu-home-edu-foot > * { width: auto; }
.pu-sec .pu-home-edu-foot > .pu-home-edu-foot-cta { flex: 0 0 auto; align-self: flex-start; }
.pu-home-edu-closing p { max-width: 880px; font-size: clamp(17px, 1.1vw, 20px); line-height: 1.6; }
.pu-home-edu-cta .uk-button-large,
.pu-home-keynotes-cta .uk-button-large { padding: 0 24px; }
/* Outline buttons that fill Deep Forest on hover (Education Sessions, keynote speakers) */
.pu-btn-dark-hover .uk-button-secondary:hover,
.pu-btn-dark-hover .uk-button-secondary:focus-visible { background: var(--pu-primary); color: var(--pu-white); }

/* Keynotes band */
.pu-home-keynotes { margin-top: clamp(96px, 12vw, 240px); }
.pu-home-keynotes > .uk-container {
	padding-top: clamp(80px, 9vw, 180px);
	padding-bottom: clamp(88px, 10vw, 200px);
}
.pu-home-keynotes-lead { margin-top: 20px; }
.pu-home-keynotes-lead p { color: var(--pu-primary); font-weight: 500; font-size: clamp(22px, 1.8vw, 32px); line-height: 1.3; }
.pu-sec .uk-grid.pu-home-keynotes-head + .uk-grid { margin-top: clamp(48px, 5vw, 96px); }
.pu-sec .pu-home-keynote-grid > .uk-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
	gap: clamp(40px, 3vw, 48px);
	margin: 0;
	align-items: start;
}
.pu-sec .pu-home-keynote-grid > .uk-grid > * { width: auto; margin: 0; padding: 0; }
.pu-home-keynote-grid .el-item { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 14px; }
.pu-home-keynote-grid .el-image {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	margin-bottom: 14px;
	border-radius: 6px;
	object-fit: cover;
}
/* Placeholder headshot: the PU mark centred on teal */
.pu-home-keynote-grid .el-image[src$="PU_Mark_Forest.svg"] {
	box-sizing: border-box;
	padding: 0 calc(50% - 48px);
	object-fit: contain;
	background: var(--pu-secondary);
}
.pu-home-keynote-grid .el-meta {
	margin: 0 !important;
	color: var(--pu-secondary-800);
	font-family: var(--pu-font-cond);
	font-weight: 700;
	font-size: 15px;
	line-height: 1.5;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.pu-sec .pu-home-keynote-grid .el-title {
	margin: 0 !important;
	color: var(--pu-primary);
	font-weight: 700;
	font-size: clamp(22px, 1.6vw, 28px);
	line-height: 1.25;
	text-wrap: balance;
}
.pu-home-keynote-grid .el-content { margin: 0 !important; }
.pu-home-keynote-grid .el-content p { color: var(--pu-primary); font-weight: 700; font-size: clamp(20px, 1.4vw, 26px); line-height: 1.3; }
.pu-sec .uk-grid.pu-home-keynotes-foot { margin-top: clamp(48px, 5vw, 96px); }
.pu-home-keynotes-foot .pu-cta { display: flex; justify-content: center; }

/* Networking */
.pu-home-net > .uk-container { padding-top: clamp(96px, 12vw, 240px); }
.pu-sec .pu-home-net-row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 480px), 1fr));
	gap: 48px clamp(48px, 7vw, 140px);
	align-items: center;
}
.pu-sec .pu-home-net-row > * { width: auto; }
.pu-home-net-img {
	position: relative;
	min-height: clamp(300px, 34vw, 600px);
	overflow: hidden;
	background: var(--pu-primary);
}
.pu-home-net-img picture { display: contents; }
.pu-home-net-img img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: 64% 35%;
	filter: saturate(0.88) contrast(1.03);
}
.pu-home-net-img::after { content: ''; position: absolute; inset: 0; background: rgba(0, 54, 44, 0.14); }
.pu-home-net-text { display: flex; flex-direction: column; gap: 32px; max-width: 560px; }

/* Fun Night: photo background with a Deep Forest gradient, text at the bottom */
.pu-home-fun { margin-top: clamp(96px, 12vw, 240px); background: #17493F; color: var(--pu-white); }
.pu-home-fun > .uk-background-cover {
	position: relative;
	min-height: clamp(600px, 44vw, 820px);
	display: flex;
	background-position: center 40% !important;
}
.pu-home-fun > .uk-background-cover::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, rgba(0, 54, 44, 0.94) 0%, rgba(0, 54, 44, 0.85) 45%, rgba(0, 54, 44, 0.6) 62%, rgba(0, 54, 44, 0) 85%);
}
.pu-home-fun .uk-container {
	position: relative;
	width: 100%;
	box-sizing: border-box;
	padding-top: clamp(28px, 3vw, 48px);
	padding-bottom: clamp(64px, 7vw, 140px);
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
}
/* Title and lead on their own lines; the date line and the button share the last row */
.pu-home-fun .uk-grid > * {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: clamp(24px, 2.4vw, 40px) 48px;
}
.pu-home-fun .pu-home-fun-title,
.pu-home-fun .pu-home-fun-lead { flex-basis: 100%; }
.pu-sec .pu-home-fun-title {
	color: var(--pu-white);
	font-family: var(--pu-font-display);
	font-weight: 700;
	font-size: clamp(72px, 10.4vw, 200px);
	line-height: 0.84;
	letter-spacing: -0.015em;
	text-transform: uppercase;
}
.pu-home-fun-lead p {
	max-width: 760px;
	color: var(--pu-white);
	font-weight: 500;
	font-size: clamp(22px, 1.8vw, 32px);
	line-height: 1.35;
}
.pu-home-fun-meta p {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 20px;
	color: var(--pu-white);
	font-family: var(--pu-font-cond);
	font-weight: 500;
	font-size: clamp(18px, 1.2vw, 22px);
	font-variant-numeric: tabular-nums;
}
.pu-home-fun-meta .pu-meta-sep { height: 20px; background: rgba(255, 255, 255, 0.4); }
.pu-home-fun-cta .uk-button-large { padding: 0 32px; }
/* White outline button on dark photos */
.pu-btn-light .uk-button-secondary { color: var(--pu-white); box-shadow: inset 0 0 0 2px var(--pu-white); background: transparent; }
.pu-btn-light .uk-button-secondary:hover,
.pu-btn-light .uk-button-secondary:focus-visible { background: var(--pu-white); color: var(--pu-primary); }

/* Closing: the last sentence on its own line in Teal 800 */
.pu-home-close-accent { display: block; color: var(--pu-secondary-800); }

/* The design system sets every <p> to 16px / 1.65 (max 68ch) unless the page gives it an
   inline size; these paragraphs have none, so they don't inherit their container's size. */
.pu-home-body p,
.pu-reg-policy-body p {
	font-size: 16px;
	line-height: 1.65;
	max-width: 68ch;
}
@media (max-width: 767px) {
	.pu-home-fun .pu-cta,
	.pu-home-edu-foot > .pu-home-edu-foot-cta { flex-basis: 100%; }
}
@media (max-width: 767px) {
	.pu-sec .pu-home-edu-foot > .pu-home-edu-foot-cta { flex: 1 1 100%; }
}
/* Agenda cells: normal line height in the design (only the session column sets 1.4) */
.pu-sec .pu-agenda-table th,
.pu-sec .pu-agenda-table td { line-height: normal; }
.pu-sec .pu-agenda-table td:last-child { line-height: 1.4; }

/* ---------- In-person Education Sessions (per-session details) ---------- */
@media (min-width: 1100px) { html:has(.pu-sessions-bar) { scroll-padding-top: 200px; } }
.pu-sec .pu-sessions-block-title-time {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.pu-sessions-block-time {
	font-family: var(--pu-font-cond);
	font-weight: 700;
	font-size: clamp(22px, 1.8vw, 32px);
	line-height: 1.2;
	font-variant-numeric: tabular-nums;
}
.pu-sessions-block-label {
	font-family: var(--pu-font-body);
	font-weight: 500;
	font-size: 16px;
	line-height: 1.4;
}
.pu-session-code {
	color: var(--pu-secondary-800);
	font-family: var(--pu-font-cond);
	font-weight: 700;
	font-size: 15px;
	letter-spacing: 0.1em;
}
.pu-session-topic {
	color: var(--pu-text);
	font-family: var(--pu-font-cond);
	font-weight: 500;
	font-size: 15px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.pu-session-desc summary {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	color: var(--pu-link);
	font-weight: 700;
	font-size: 16px;
	cursor: pointer;
	list-style: none;
}
.pu-session-desc summary::-webkit-details-marker { display: none; }
.pu-session-desc summary::after {
	content: '';
	width: 20px;
	height: 20px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform 130ms ease-out;
}
.pu-session-desc[open] summary::after { transform: rotate(180deg); }
.pu-session-desc summary:hover { color: var(--pu-primary); }
.pu-session-desc summary:focus-visible { outline: 2px solid var(--pu-accent); outline-offset: 2px; }
.pu-session-desc-body {
	max-width: 68ch;
	margin-top: 12px;
	padding-bottom: 8px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	color: var(--pu-text);
	font-size: 17px;
	line-height: 1.65;
}
.pu-sec .pu-session-desc-body p { font-size: 17px; line-height: 1.65; }
.pu-sec .pu-session-desc-body ul,
.pu-sec .pu-session-desc-body ol { margin: 0; padding-left: 1.4em; display: flex; flex-direction: column; gap: 6px; }
.pu-sec .pu-session-desc-body ul { list-style: disc; }
.pu-sec .pu-session-desc-body ol { list-style: decimal; padding-left: 1.6em; }
.pu-sec .pu-session-desc-body li { padding-left: 4px; }
.pu-sessions-group[hidden] + .pu-sessions-group > .uk-container { padding-top: clamp(48px, 5vw, 96px); }
.pu-sessions-empty + .pu-sessions-group > .uk-container { padding-top: clamp(48px, 5vw, 96px); }

/* ---------- Fun Night — PU Fun Night.dc.html ---------- */
.pu-fun-hero { background: #17493F; color: var(--pu-white); }
.pu-fun-hero > .uk-background-cover {
	position: relative;
	min-height: clamp(560px, 46vw, 880px);
	display: flex;
	background-position: center 40% !important;
}
.pu-fun-hero > .uk-background-cover::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, rgba(0, 54, 44, 0.94) 0%, rgba(0, 54, 44, 0.85) 45%, rgba(0, 54, 44, 0.6) 62%, rgba(0, 54, 44, 0) 85%);
}
.pu-fun-hero .uk-container {
	position: relative;
	width: 100%;
	max-width: 1600px;
	box-sizing: border-box;
	padding: clamp(28px, 3vw, 48px) clamp(20px, 5vw, 80px) clamp(56px, 6vw, 120px);
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
}
.pu-fun-hero .uk-grid > * > * + * { margin-top: clamp(20px, 2vw, 32px); }
.pu-fun-kicker p {
	color: var(--pu-mist-500);
	font-family: var(--pu-font-cond);
	font-weight: 700;
	font-size: 15px;
	line-height: 1.65;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}
.pu-sec .pu-fun-title {
	color: var(--pu-white);
	font-family: var(--pu-font-display);
	font-weight: 700;
	font-size: clamp(72px, 10.4vw, 200px);
	line-height: 0.82;
	letter-spacing: -0.015em;
	text-transform: uppercase;
}
.pu-fun-intro > .uk-container { padding-bottom: clamp(64px, 7vw, 128px); }
.pu-fun-aside { display: flex; flex-direction: column; gap: 0; }
/* Guest ticket card: the text and the button share one Mist-teal panel */
.pu-fun-ticket {
	margin-top: 32px;
	padding: 28px 28px 14px;
	border-radius: 6px 6px 0 0;
	background: #E3F3F4;
}
.pu-fun-ticket p { font-size: 16px; line-height: 1.55; }
.pu-sec .pu-fun-ticket p + p { margin-top: 14px; }
.pu-sec .pu-fun-ticket .pu-fun-ticket-title { color: var(--pu-primary); font-weight: 700; font-size: 18px; line-height: 1.3; }
.pu-fun-ticket-cta {
	padding: 0 28px 28px;
	border-radius: 0 0 6px 6px;
	background: #E3F3F4;
}
.pu-fun-ticket-cta .uk-button-large { padding: 0 24px; }

/* Gallery: one wide photo, then two side by side (one column under 900px) */
.pu-fun-gallery > .uk-container {
	max-width: 1600px;
	padding-left: clamp(20px, 5vw, 80px);
	padding-right: clamp(20px, 5vw, 80px);
	padding-bottom: clamp(96px, 10vw, 200px);
}
.pu-sec .uk-grid.pu-fun-gallery-pair {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(16px, 2vw, 32px);
	margin-top: clamp(16px, 2vw, 32px);
}
.pu-sec .pu-fun-gallery-pair > * { width: auto; }
@media (max-width: 899px) { .pu-sec .uk-grid.pu-fun-gallery-pair { grid-template-columns: minmax(0, 1fr); } }
.pu-fun-photo {
	position: relative;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border-radius: 6px;
	background: var(--pu-primary);
}
.pu-fun-photo-wide { aspect-ratio: 21 / 9; min-height: 240px; }
.pu-fun-photo picture { display: contents; }
.pu-fun-photo img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.pu-fun-photo-wide img { object-position: center 30%; }
.pu-fun-photo-jellies img { object-position: 70% center; }

/* ---------- Travel and Stay pages (Venue, Travel, Stay, Tours) ---------- */
.pu-title-split > .uk-container,
.pu-photo-band > .uk-container,
.pu-two-col > .uk-container,
.pu-cards > .uk-container,
.pu-media-row > .uk-container,
.pu-tours > .uk-container {
	max-width: 1600px;
	padding-left: clamp(20px, 5vw, 80px);
	padding-right: clamp(20px, 5vw, 80px);
}
/* Title row: kicker + H1 with the intro aligned to the bottom beside it */
.pu-title-split > .uk-container { padding-top: clamp(56px, 8vw, 140px); padding-bottom: clamp(56px, 6vw, 112px); }
.pu-sec .pu-title-split-row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 520px), 1fr));
	gap: 40px clamp(48px, 7vw, 140px);
	align-items: end;
}
.pu-sec .pu-title-split-row > * { width: auto; }
.pu-title-split-head { display: flex; flex-direction: column; gap: clamp(20px, 2vw, 32px); }
.pu-title-split-intro p {
	max-width: 700px;
	color: var(--pu-primary);
	font-weight: 500;
	font-size: clamp(19px, 1.35vw, 24px);
	line-height: 1.5;
}

/* Photos (Image elements) with the design's Forest tint */
.pu-photo { position: relative; overflow: hidden; background: var(--pu-primary); }
.pu-photo picture { display: contents; }
.pu-photo img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	filter: saturate(0.88) contrast(1.03);
}
.pu-photo::after { content: ''; position: absolute; inset: 0; background: rgba(0, 54, 44, 0.14); pointer-events: none; }
.pu-photo-venue { min-height: clamp(260px, 34vw, 640px); }
.pu-photo-venue img { object-position: center 42%; }
.pu-photo-canada-line { min-height: clamp(240px, 26vw, 480px); }
.pu-photo-canada-line img { object-position: 50% 45%; }

/* Two columns with a ruled eyebrow (Venue) */
.pu-two-col > .uk-container { padding-top: clamp(80px, 8vw, 160px); padding-bottom: clamp(96px, 10vw, 200px); }
.pu-sec .pu-two-col-row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr));
	gap: 64px clamp(48px, 7vw, 140px);
	align-items: start;
}
.pu-sec .pu-two-col-row > * { width: auto; display: flex; flex-direction: column; gap: 28px; }
.pu-sec .pu-rule-eyebrow {
	padding-top: 24px;
	border-top: 2px solid var(--pu-primary);
	color: var(--pu-secondary-800);
	font-family: var(--pu-font-cond);
	font-weight: 700;
	font-size: 15px;
	line-height: 1.65;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.pu-sec .pu-qa-q,
.pu-qa .pu-qa-q {
	color: var(--pu-primary);
	font-weight: 700;
	font-size: clamp(18px, 1.2vw, 22px);
	line-height: 1.35;
}
.pu-qa { padding-bottom: 28px; border-bottom: 1px solid var(--pu-cloud); }
.pu-sec .pu-qa p { margin-top: 12px; font-size: clamp(17px, 1.1vw, 20px); line-height: 1.65; }
.pu-sec .pu-qa a { font-weight: 700; }
.pu-address {
	font-style: normal;
	color: var(--pu-primary);
	font-family: var(--pu-font-display);
	font-weight: 700;
	font-size: clamp(32px, 3vw, 56px);
	line-height: 0.95;
	text-transform: uppercase;
}
.pu-copy-address { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.pu-copy-button {
	min-height: 44px;
	padding: 0 16px;
	display: flex;
	align-items: center;
	gap: 8px;
	border: 1.5px solid var(--pu-primary);
	border-radius: 6px;
	background: transparent;
	color: var(--pu-primary);
	font-family: var(--pu-font-body);
	font-weight: 700;
	font-size: 15px;
	cursor: pointer;
	transition: background-color 150ms ease-out, transform 130ms ease-out;
}
.pu-copy-button:hover { background: #E3F3F4; }
.pu-copy-button:active { transform: scale(0.975); }
.pu-copy-button:focus-visible { outline: 2px solid var(--pu-accent); outline-offset: 2px; }
.pu-copy-button::before {
	content: '';
	width: 20px;
	height: 20px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='9' width='11' height='11' rx='2'/%3E%3Cpath d='M5 15V6a2 2 0 0 1 2-2h8'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='9' width='11' height='11' rx='2'/%3E%3Cpath d='M5 15V6a2 2 0 0 1 2-2h8'/%3E%3C/svg%3E") center / contain no-repeat;
}
.pu-copy-button.pu-copied::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12.5l5 5L20 6.5'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12.5l5 5L20 6.5'/%3E%3C/svg%3E");
}
.pu-venue-map {
	min-height: 280px;
	overflow: hidden;
	border: 1px solid var(--pu-mist-300);
	border-radius: 6px;
	background: #E3F3F4;
}
.pu-venue-ctas .uk-button-large { padding: 0 24px; }
.pu-sec .pu-venue-ctas > .uk-grid { gap: 12px 32px; }

/* Cards (Travel airlines, Stay hotels) */
.pu-sec .pu-cards-row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 480px), 1fr));
	gap: clamp(32px, 3vw, 48px);
	align-items: stretch;
}
.pu-sec .pu-cards-row-wide { grid-template-columns: repeat(auto-fit, minmax(min(100%, 520px), 1fr)); align-items: start; }
.pu-sec .pu-cards-row > .pu-card {
	width: auto;
	box-sizing: border-box;
	padding: clamp(28px, 3vw, 56px);
	display: flex;
	flex-direction: column;
	gap: 24px;
	border: 1px solid var(--pu-cloud);
	border-radius: 10px;
	background: var(--pu-white);
	box-shadow: 0 2px 10px rgba(0, 54, 44, 0.06);
}
.pu-sec .pu-card-title {
	color: var(--pu-primary);
	font-weight: 900;
	font-size: clamp(28px, 2.2vw, 42px);
	line-height: 1.1;
}
.pu-card-body p { font-size: clamp(17px, 1.1vw, 20px); line-height: 1.7; }
.pu-sec .pu-card-body p + p { margin-top: 24px; }
.pu-sec .pu-card-body .pu-card-small { font-size: 16px; line-height: 1.6; color: var(--pu-text); }
.pu-code {
	padding: 2px 8px;
	border-radius: 4px;
	background: #E3F3F4;
	color: var(--pu-primary);
	font-family: var(--pu-font-cond);
	font-weight: 700;
	font-size: 1.1em;
	letter-spacing: 0.06em;
}
/* Photo + lead side by side (Travel: from the airport) */
.pu-media-row > .uk-container { padding-top: clamp(80px, 8vw, 160px); padding-bottom: clamp(96px, 10vw, 200px); }
.pu-sec .pu-media-row-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 480px), 1fr));
	gap: 40px clamp(48px, 7vw, 140px);
	align-items: center;
}
.pu-sec .pu-media-row-grid > * { width: auto; }
.pu-media-row-lead p {
	max-width: 680px;
	color: var(--pu-primary);
	font-weight: 500;
	font-size: clamp(22px, 1.8vw, 32px);
	line-height: 1.45;
}

/* Hotel cards: photo on top, then title, rows, button */
.pu-sec .pu-cards-row > .pu-card-media { padding: 0; gap: 0; overflow: hidden; }
.pu-sec .pu-card-media > :not(.pu-hotel-photo) { margin-left: clamp(28px, 3vw, 48px); margin-right: clamp(28px, 3vw, 48px); }
.pu-sec .pu-card-media > .pu-card-title { margin-top: clamp(28px, 3vw, 48px); }
.pu-sec .pu-card-media > .pu-hotel-details { margin-top: 28px; }
.pu-sec .pu-card-media > .pu-cta { margin-top: 28px; margin-bottom: clamp(28px, 3vw, 48px); }
.pu-hotel-photo { flex: none; height: clamp(220px, 20vw, 360px); }
.pu-hotel-photo-pp img { object-position: center 45%; }
.pu-hotel-photo-ph img { object-position: center 55%; }
.pu-dl-rows { margin: 0; display: flex; flex-direction: column; border-top: 1px solid var(--pu-cloud); }
.pu-dl-rows + .pu-dl-rows { margin-top: 14px; }
.pu-dl-rows > div {
	padding: 14px 0;
	display: flex;
	flex-wrap: wrap;
	gap: 4px 24px;
	border-bottom: 1px solid var(--pu-cloud);
}
.pu-dl-rows dt {
	flex: 0 0 220px;
	padding-top: 3px;
	color: var(--pu-secondary-800);
	font-family: var(--pu-font-cond);
	font-weight: 700;
	font-size: 14px;
	line-height: 1.4;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.pu-dl-rows dd {
	flex: 1 1 220px;
	margin: 0;
	color: var(--pu-primary);
	font-size: 18px;
	line-height: 1.5;
	overflow-wrap: anywhere;
}
.pu-sec .pu-hotel-contact-line { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--pu-cloud); font-size: 17px; line-height: 1.6; }
/* Deep Forest button (Reserve Now) with an external-link icon */
.pu-btn-forest .uk-button-primary { background: var(--pu-primary); color: var(--pu-white); font-size: 16px; }
.pu-btn-forest .uk-button-primary:hover,
.pu-btn-forest .uk-button-primary:focus-visible { background: var(--pu-secondary-900); color: var(--pu-white); }
.pu-btn-external .uk-button::after,
.pu-tour-grid .el-link::after {
	content: '';
	flex: none;
	width: 20px;
	height: 20px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4h6v6'/%3E%3Cpath d='M20 4l-9 9'/%3E%3Cpath d='M18 14v5a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4h6v6'/%3E%3Cpath d='M20 4l-9 9'/%3E%3Cpath d='M18 14v5a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h5'/%3E%3C/svg%3E") center / contain no-repeat;
}
.pu-btn-external .uk-button-large { padding: 0 28px; }

/* Parking (Stay) */
.pu-parking > .uk-container { padding-top: clamp(80px, 8vw, 160px); }
.pu-sec .pu-parking-head { display: flex; flex-direction: column; gap: 14px; padding-top: 24px; border-top: 2px solid var(--pu-primary); }
.pu-parking-eyebrow p {
	color: var(--pu-secondary-800);
	font-family: var(--pu-font-cond);
	font-weight: 700;
	font-size: 15px;
	line-height: 1.65;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.pu-sec .pu-parking-title { font-size: clamp(36px, 4.6vw, 88px); }
.pu-parking-body p { font-size: clamp(17px, 1.1vw, 20px); line-height: 1.7; }
.pu-sec .pu-parking-body p + p { margin-top: 24px; }
.pu-sec .pu-parking-body .pu-note {
	padding: 24px 28px;
	border-radius: 6px;
	background: #E3F3F4;
	color: var(--pu-primary);
	font-style: italic;
}

/* Tours (Grid element cards with placeholders) */
.pu-tours > .uk-container { padding-bottom: clamp(96px, 10vw, 200px); }
.pu-sec .pu-tour-grid > .uk-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 400px), 1fr));
	gap: clamp(24px, 2.4vw, 40px);
	margin: 0;
}
.pu-sec .pu-tour-grid > .uk-grid > * { width: auto; margin: 0; padding: 0; }
.pu-tour-grid .el-item {
	height: 100%;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	gap: 20px;
	padding: calc(clamp(220px, 18vw, 320px) + clamp(28px, 2.6vw, 40px)) clamp(28px, 2.6vw, 40px) clamp(28px, 2.6vw, 40px);
	position: relative;
	overflow: hidden;
	border: 1px solid var(--pu-cloud);
	border-radius: 10px;
	background: var(--pu-white);
	box-shadow: 0 2px 10px rgba(0, 54, 44, 0.06);
}
/* Image placeholder until a tour photo is added */
.pu-tour-grid .el-item:not(:has(.el-image))::before {
	content: 'Image to come';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: clamp(220px, 18vw, 320px);
	box-sizing: border-box;
	padding: 0 20px 18px;
	display: flex;
	align-items: flex-end;
	background: var(--pu-mist-100);
	color: var(--pu-mist-700);
	font-family: var(--pu-font-cond);
	font-weight: 700;
	font-size: 14px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.pu-tour-grid .el-item:has(.el-image) { padding-top: clamp(28px, 2.6vw, 40px); }
.pu-tour-grid .el-image { margin: calc(-1 * clamp(28px, 2.6vw, 40px)) calc(-1 * clamp(28px, 2.6vw, 40px)) 0; width: calc(100% + 2 * clamp(28px, 2.6vw, 40px)); max-width: none; height: clamp(220px, 18vw, 320px); object-fit: cover; }
.pu-tour-grid .el-meta {
	margin: 0 !important;
	color: var(--pu-secondary-800);
	font-family: var(--pu-font-cond);
	font-weight: 700;
	font-size: 14px;
	line-height: 1.4;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.pu-sec .pu-tour-grid .el-title {
	margin: 0 !important;
	color: var(--pu-primary);
	font-weight: 900;
	font-size: clamp(26px, 1.9vw, 36px);
	line-height: 1.15;
}
.pu-tour-grid .el-content { margin: 0 !important; }
.pu-tour-grid .pu-dl-rows dt { flex-basis: 120px; }
.pu-tour-grid .pu-dl-rows dd { flex-basis: 160px; }
.pu-pending { color: var(--pu-mist-700); }
.pu-tour-grid .el-link {
	margin-top: auto !important;
	width: 100%;
	min-height: 56px;
	padding: 0 28px;
	justify-content: center;
	background: var(--pu-primary);
	color: var(--pu-white);
	font-size: 17px;
}
.pu-tour-grid .el-link:hover { background: var(--pu-secondary-900); color: var(--pu-white); }
.pu-dl-rows dt,
.pu-dl-rows dd { line-height: normal; }
.pu-tour-grid .el-item:not(:has(.el-image))::before {
	background: var(--pu-mist-100) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24' fill='none' stroke='%236B7A8C' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 19l6-9 4 6 2-3 6 6z'/%3E%3C/svg%3E") center 45% / 32px no-repeat;
}

/* ---------- In-person Register extras — PU Register.dc.html ---------- */
.pu-sec .pu-reg-taxes { margin-top: clamp(28px, 3vw, 48px) !important; }
.pu-sec .pu-reg-taxes p { margin: 0; max-width: none; font-size: 16px; color: var(--pu-text); }
.pu-reg-policy:has(+ .pu-reg-policy) > .uk-container { padding-bottom: 0; }
.pu-sec .pu-reg-display-title {
	font-family: var(--pu-font-display);
	font-weight: 700;
	font-size: clamp(36px, 4.6vw, 88px);
	line-height: 0.88;
	text-transform: uppercase;
}
.pu-reg-guest { scroll-margin-top: 24px; }
.pu-reg-guest .pu-reg-policy-text > * + * { margin-top: 20px !important; }
.pu-sec .pu-guest-table table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; margin: 0; }
.pu-sec .pu-guest-table thead tr { background: var(--pu-secondary-800); }
.pu-sec .pu-guest-table thead th {
	padding: 14px 16px;
	color: var(--pu-white);
	font-family: var(--pu-font-cond);
	font-weight: 700;
	font-size: 14px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-align: right;
	border: 0;
}
.pu-sec .pu-guest-table tbody tr { border-bottom: 1px solid var(--pu-cloud); }
.pu-sec .pu-guest-table tbody tr:nth-child(2n) { background: #e3f3f4; }
.pu-sec .pu-guest-table tbody td { padding: 20px 16px; border: 0; vertical-align: middle; }
.pu-sec .pu-guest-table tbody td:first-child,
.pu-sec .pu-guest-table tbody td:first-child * {
	text-align: left;
	color: var(--pu-primary);
	font-family: var(--pu-font-body);
	font-weight: 500;
	font-size: clamp(17px, 1.1vw, 20px);
	line-height: 1.4;
	margin: 0;
	white-space: normal;
}
.pu-sec .pu-guest-table tbody td:not(:first-child),
.pu-sec .pu-guest-table tbody td:not(:first-child) * {
	text-align: right;
	color: var(--pu-primary);
	font-family: var(--pu-font-cond);
	font-weight: 500;
	font-size: clamp(18px, 1.2vw, 22px);
	letter-spacing: 0;
	text-transform: none;
	margin: 0;
}
.pu-reg-daypass .el-meta { font-size: 16px !important; }

/* ---------- In-person FAQ — PU FAQ.dc.html ---------- */
.pu-faq-title > .uk-container { padding-bottom: clamp(48px, 5vw, 96px); }
.pu-sec .pu-faq-intro { margin-top: clamp(24px, 2.4vw, 40px) !important; }
.pu-sec .pu-faq-intro p { margin: 0; max-width: 880px; font-size: clamp(17px, 1.1vw, 20px); line-height: 1.7; color: var(--pu-text); }
.pu-faq > .uk-container {
	max-width: 1600px;
	padding: 0 clamp(20px, 5vw, 80px) clamp(96px, 10vw, 200px);
}
.pu-sec .pu-faq-row {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 48px clamp(48px, 7vw, 140px);
	margin: 0;
}
.pu-sec .pu-faq-row > * { padding: 0; margin: 0; }
.pu-sec .pu-faq-row > .pu-faq-nav-col { flex: 1 1 300px; width: auto; max-width: 360px; }
.pu-sec .pu-faq-row > .pu-faq-groups { flex: 1 1 640px; width: auto; min-width: 0; max-width: 1000px; }
@media (min-width: 1100px) {
	.pu-sec .pu-faq-row > .pu-faq-nav-col { position: sticky; top: 112px; }
}
.pu-faq-nav-label {
	display: block;
	padding-bottom: 12px;
	border-bottom: 2px solid var(--pu-primary);
	color: var(--pu-secondary-800);
	font-family: var(--pu-font-cond);
	font-weight: 700;
	font-size: 14px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.pu-sec .pu-faq-nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.pu-sec .pu-faq-nav li { margin: 0; border-bottom: 1px solid var(--pu-cloud); }
.pu-sec .pu-faq-nav a {
	min-height: 48px;
	display: flex;
	align-items: center;
	border: 0;
	color: var(--pu-primary);
	text-decoration: none;
	font-weight: 500;
	font-size: 17px;
}
.pu-sec .pu-faq-nav a:hover { color: var(--pu-link); text-decoration: underline; }
.pu-sec .pu-faq-groups > .pu-faq-group-title { scroll-margin-top: 24px; }
@media (min-width: 1100px) {
	.pu-sec .pu-faq-groups > .pu-faq-group-title { scroll-margin-top: 136px; }
}
.pu-sec .pu-faq-groups > .pu-faq-group-title:not(:first-child) { margin-top: clamp(56px, 5vw, 96px) !important; }
.pu-sec .pu-faq-group-title {
	color: var(--pu-primary);
	font-weight: 900;
	font-size: clamp(28px, 2.2vw, 42px);
	line-height: 1.2;
}
.pu-sec .pu-faq-groups > .pu-faq-list { margin-top: 16px !important; border-top: 2px solid var(--pu-primary); }
.pu-faq-list > .el-item { margin: 0 !important; padding: 0 !important; border-top: 0 !important; border-bottom: 1px solid var(--pu-hairline); }
.pu-sec .pu-faq-list .uk-accordion-title {
	min-height: 72px;
	box-sizing: border-box;
	padding: 20px 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	border: 0;
	color: var(--pu-primary);
	font-family: var(--pu-font-body);
	font-weight: 700;
	font-size: clamp(18px, 1.2vw, 22px);
	line-height: 1.4;
	text-decoration: none;
}
.pu-sec .pu-faq-list .uk-accordion-title:hover { color: var(--pu-link); }
.pu-sec .pu-faq-list .uk-accordion-title:focus-visible { outline: 2px solid var(--pu-accent); outline-offset: 2px; }
.pu-sec .pu-faq-list .uk-accordion-title::before {
	content: '';
	order: 2;
	flex: none;
	float: none;
	width: 40px;
	height: 40px;
	margin: 0;
	box-sizing: border-box;
	border: 1.5px solid var(--pu-primary);
	border-radius: 999px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%2300362C' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center / 20px no-repeat;
	transition: transform 130ms ease-out;
}
.pu-sec .pu-faq-list .uk-open > .uk-accordion-title::before { transform: rotate(45deg); }
@media (prefers-reduced-motion: reduce) {
	.pu-sec .pu-faq-list .uk-accordion-title::before { transition: none; }
}
.pu-sec .pu-faq-list .uk-accordion-content {
	margin: 0;
	padding: 0 64px 28px 0;
	font-size: clamp(17px, 1.1vw, 20px);
	line-height: 1.7;
}
.pu-sec .pu-faq-list .uk-accordion-content > * + * { margin-top: 12px; }
.pu-sec .pu-faq-list .uk-accordion-content p { margin: 0; max-width: none; font-size: inherit; line-height: inherit; text-wrap: pretty; }
.pu-sec .pu-faq-list .uk-accordion-content ul { margin: 0; padding-left: 1.2em; }
.pu-sec .pu-faq-list .uk-accordion-content li + li { margin-top: 6px; }
.pu-sec .pu-faq-list .uk-accordion-content a { font-weight: 700; }
@media (max-width: 767px) {
	.pu-sec .pu-faq-list .uk-accordion-content { padding-right: 0; }
}
.pu-sec .pu-guest-table tbody td,
.pu-sec .pu-guest-table tbody td * { line-height: normal !important; }
.pu-sec .pu-faq-list .uk-accordion-title { text-wrap: balance; }
.pu-sec .pu-faq-list .el-content > * + * { margin-top: 12px !important; }
.pu-sec .pu-keynote-title-quoted { text-indent: -0.4em; }
