/* fonts.css */
/* ?v= must match the preloads in views/layout.js — without it serveStatic sends no ETag,
   so these re-download hourly forever. Bump both when a font file is replaced. */
@font-face {
	font-family: 'Southwest Sans';
	src: url('/static/fonts/SouthwestSans-Regular.woff2?v=1') format('woff2');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

/* Light is the report hero's "The" and "Report"; it is not preloaded because /report is the
   only page that asks for it. */
@font-face {
	font-family: 'Southwest Sans';
	src: url('/static/fonts/SouthwestSans-Light.woff2?v=1') format('woff2');
	font-weight: 300;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Southwest Sans';
	src: url('/static/fonts/SouthwestSans-Medium.woff2?v=1') format('woff2');
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Southwest Sans';
	src: url('/static/fonts/SouthwestSans-Bold.woff2?v=1') format('woff2');
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Southwest Sans';
	src: url('/static/fonts/SouthwestSans-Black.woff2?v=1') format('woff2');
	font-weight: 900;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Southwest Sans';
	src: url('/static/fonts/SouthwestSans-Italic.woff2?v=1') format('woff2');
	font-weight: 400;
	font-style: italic;
	font-display: swap;
}

@font-face {
	font-family: 'Southwest Sans';
	src: url('/static/fonts/SouthwestSans-BoldItalic.woff2?v=1') format('woff2');
	font-weight: 700;
	font-style: italic;
	font-display: swap;
}

/* tokens.css */
:root {
	--color-bold-blue: #304cb2;
	--color-dark-blue: #1a2c80;
	--color-midnight-blue: #111b40;
	--color-blue-light: #a8c7fe;
	--color-blue-mid: #c2d8fe;
	--color-blue-pale: #dce9ff;
	--color-blue-faint: #f3f7ff;
	--color-deep-silver: #5e7e95;
	--color-summit-silver: #e5e3e3;
	--color-heat-blue: #7baaff;
	--color-sunrise-yellow: #ffbf27;
	--color-cream: #f7e9ce;
	--color-orange: #ff792e;
	--color-warm-red: #d5152e;
	--heat-stop-1: 0;
	--heat-stop-2: 0.2;
	--heat-stop-3: 0.43;
	--heat-stop-4: 0.64;
	--heat-stop-5: 0.85;
	--heat-stops:
		var(--color-heat-blue) calc(var(--heat-stop-1) * 100%),
		var(--color-bold-blue) calc(var(--heat-stop-2) * 100%),
		var(--color-sunrise-yellow) calc(var(--heat-stop-3) * 100%),
		var(--color-orange) calc(var(--heat-stop-4) * 100%),
		var(--color-warm-red) calc(var(--heat-stop-5) * 100%);

	--color-marker-green: #2f8f6b;
	--color-gray: #6b7280; 
	--color-map-line: #8e95b2;
	--color-gray-lighter: #f0f0f0;
	--color-gray-light: #e6e6e6;
	--color-gray-dark: #3d3d3d;
	--color-gray-mid: #656565;
	--color-bg: #fff;
	--color-text: var(--color-dark-blue);
	--color-text-light: #fff;
	--font-sans: 'Southwest Sans', system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

	--gap-3xs: 4px;
	--gap-xxs: 6px;
	--gap-xs: 8px;
	--gap-sm: 12px;
	--gap-md: 16px;
	--gap-lg: 24px;
	--gap-xl: 32px;
	--gap-xxl: 40px;
	--gap-3xl: 64px;

	--font-size-80: 80px;
	--font-size-64: 64px;
	--font-size-56: 56px;
	--font-size-48: 48px;
	--font-size-40: 40px;
	--font-size-36: 36px;
	--font-size-30: 30px;
	--font-size-24: 24px;
	--font-size-20: 20px;
	--font-size-16: 16px;
	--font-size-18: 18px;
	--font-size-14: 14px;
	--font-size-13: 13px;
	--font-size-12: 12px;
	--font-size-11: 11px;
	--font-size-10: 10px;

	--radius-xxs: 6px;
	--radius-xs: 8px;
	--radius-sm: 12px;
	--radius-md: 20px;
	--radius-pill: 99px;

	--container-md: 720px;
	--container-lg: 960px;
	--container-xl: 1140px;
	--container-max: var(--container-xl);

	--site-header-height: 88px;
	--vh-visible: min(100svh, 100dvh);
	--focus-ring: var(--color-text);
	--dur-quick: 0.15s;
	--dur-transition: 300ms;
	--ease-in-cubic: cubic-bezier(0.32, 0, 0.67, 0);
	--ease-in-out-cubic: cubic-bezier(0.65, 0, 0.35, 1);
	--ease-out-cubic: cubic-bezier(0.33, 1, 0.68, 1);
	--ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
	--ease-out-back: cubic-bezier(0.2, 0.9, 0.3, 1.08);
}

@supports not (height: 1svh) {
	:root {
		--vh-visible: 100vh;
	}
}

@media (max-width: 1199.98px) {
	:root {
		--container-max: var(--container-lg);
	}
}

@media (max-width: 991.98px) {
	:root {
		--container-max: var(--container-md);
	}
}

@media (max-width: 767.98px) {
	:root {
		--container-max: 100%;
		--site-header-height: 56px;
	}
}

/* base.css */
* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
	/* the header is sticky, so an anchor target would land underneath it */
	scroll-padding-top: var(--site-header-height);
}

/* Scroll anchoring off document-wide: an htmx swap can change the height of a whole section, and
   Chrome compensates by scrolling the page the same distance. A nested scrolling box picks its own
   anchor and needs its own opt-out. */
body {
	overflow-anchor: none;
	margin: 0;
	background: var(--color-bg);
	color: var(--color-text);
	font-family: var(--font-sans);
	line-height: 1.5;
}

button {
	border: 0;
	font: inherit;
	cursor: pointer;
}

button:disabled {
	opacity: 0.6;
	cursor: default;
}

[hidden] {
	display: none !important;
}

.visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.skip-link {
	position: absolute;
	top: -100%;
	left: var(--gap-md);
	z-index: 10;
}

/* An anchor with no class of its own would otherwise take the UA's link blue, which currentColor
   then draws the focus ring in. */
:where(a:not([class])) {
	color: inherit;
}

/* tabindex="-1" is a script-only focus target — site.js moves focus to the question or the score
   after a swap so the change is announced. Tab cannot reach them, so a ring marks nothing the user
   can act on; excluding them from the rule below is not enough, because iOS Safari then draws its
   own default ring on the programmatic focus. */
:where([tabindex="-1"]):focus {
	outline: none;
}

:where(a, button, input, select, textarea, [tabindex]:not([tabindex="-1"])):focus-visible {
	outline: 2px solid var(--focus-ring);
	outline-offset: 2px;
}

.skip-link:focus-visible {
	top: var(--gap-md);
}

.tm {
	font-size: 0.62em;
	vertical-align: 0.35em;
}

/* Zero line-height so a mark does not open the line it sits on. vertical-align: super clears the
   cap height by a few px and the mark reads as floating; this sits its top on the cap. */
sup {
	font-size: 0.6em;
	line-height: 0;
	vertical-align: 0.42em;
}

/* The unnamed cross-fade every section falls back to. */
::view-transition-old(root),
::view-transition-new(root) {
	animation-duration: var(--dur-transition);
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	::view-transition-group(*),
	::view-transition-old(*),
	::view-transition-new(*) {
		animation: none !important;
	}
}

/* Each popover needs its own open-state display rules (:popover-open and .\:popover-open). */
[popover] {
	display: none;
}

/* error.css */
.error {
	margin: var(--gap-xs) 0 0;
	padding: var(--gap-xs) var(--gap-md);
	border-radius: var(--radius-xxs);
	background: var(--color-warm-red);
	color: var(--color-text-light);
	font-weight: 700;
	font-size: var(--font-size-14);
}

/* Only when site.js never ran. CSP forbids inline script, so the reveal is a delayed animation
   rather than a timer — which also stops a normal load flashing it. */
.no-js-warning {
	display: none;
}

.no-js .no-js-warning {
	/* Fixed, not in flow: in flow it reserves height on every load. */
	display: block;
	position: fixed;
	inset: 0 0 auto;
	z-index: 100;
	visibility: hidden;
	margin: 0;
	padding: var(--gap-xs) var(--gap-md);
	background: var(--color-warm-red);
	color: var(--color-text-light);
	font-weight: 700;
	font-size: var(--font-size-14);
	text-align: center;
	animation: no-js-warning-reveal 0s linear 4s forwards;
}

@keyframes no-js-warning-reveal {
	to {
		visibility: visible;
	}
}

/* cookie-notice.css */
html {
	scroll-padding-bottom: var(--cookie-notice-space, 0px);
}
.cookie-notice {
	position: fixed;
	right: var(--gap-md);
	bottom: var(--gap-md);
	left: var(--gap-md);
	z-index: 20;
	max-width: 480px;
	margin-inline: auto;
	padding: var(--gap-lg);
	border-radius: var(--radius-sm);
	background: var(--color-bg);
	box-shadow: 0 8px 32px rgb(17 27 64 / 0.3);
	color: var(--color-text);
	font-size: var(--font-size-16);
	line-height: 1.5;
}
.cookie-notice[hidden] {
	display: none;
}
.cookie-notice > p {
	margin: 0 0 var(--gap-md);
}
.cookie-notice__dismiss {
	width: 100%;
}

html.transition-cookie-notice {
	view-transition-name: none;
}
html.transition-cookie-notice .cookie-notice {
	view-transition-name: cookie-notice;
}
::view-transition-new(cookie-notice) {
	animation: var(--dur-transition) var(--ease-out-cubic) both cookie-notice-in;
}
::view-transition-old(cookie-notice) {
	animation: var(--dur-transition) var(--ease-out-cubic) both cookie-notice-out;
}

@keyframes cookie-notice-in {
	from {
		opacity: 0;
		transform: translateY(24px);
	}
}
@keyframes cookie-notice-out {
	to {
		opacity: 0;
		transform: translateY(24px);
	}
}

@media (max-width: 767.98px) {
	.cookie-notice {
		font-size: var(--font-size-14);
	}
}

/* section.css */
.section {
	overflow: hidden;
	overflow: clip;
	display: flex;
	flex-direction: column;
	padding-block: var(--gap-xl);
}
.section--white {
	background: var(--color-bg);
}
.section--white + .section--white {
	border-top: 1px solid #e5e3e3;
}
.section--blue-light {
	background: var(--color-blue-light);
}
.section--gray-lighter {
	background: var(--color-gray-lighter);
}
.section--bold-blue {
	background: var(--color-bold-blue);
	--focus-ring: var(--color-text-light);
	color: var(--color-text-light);
}
.section--dark-blue {
	background: var(--color-dark-blue);
	--focus-ring: var(--color-text-light);
	color: var(--color-text-light);
}
.section--midnight-blue {
	background: var(--color-midnight-blue);
	--focus-ring: var(--color-text-light);
	color: var(--color-text-light);
}
.section--glow {
	background-image: radial-gradient(110% 65% at 0 0, rgb(168 199 254 / 0.9), rgb(168 199 254 / 0));
}

.section-header,
.section-content,
.section-footer {
	width: 100%;
	max-width: calc(var(--container-max) + var(--gap-lg) * 2);
	margin-inline: auto;
	padding-inline: var(--gap-lg);
}

.section-header {
	position: relative;
	margin-bottom: var(--gap-xl);
}
.section-content .section-header {
	max-width: none;
	padding-inline: 0;
}
.section-header--centered-sm {
	text-align: center;
}

.section-header__close {
	position: absolute;
	top: 0;
	right: var(--gap-lg);
}
.section-header__close > a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 33px;
	height: 33px;
	border-radius: var(--radius-pill);
	background: var(--color-bg);
	color: var(--color-dark-blue);
}

.section-header__tag {
	display: inline-block;
	margin: 0 0 var(--gap-lg);
	padding: var(--gap-xxs) var(--gap-md);
	border-radius: var(--radius-pill);
	background: var(--color-blue-faint);
	color: var(--color-bold-blue);
	font-weight: 700;
	font-size: var(--font-size-14);
}
.section-header--centered-sm > .section-header__tag {
	display: block;
	width: fit-content;
}

.section-header > h2 {
	text-wrap: balance;
	margin: 0 0 var(--gap-xs);
	font-size: var(--font-size-48);
	line-height: 1.1;
}
.section-header--lg > h2 {
	font-size: var(--font-size-80);
}
.section-header > p {
	margin: 0;
	font-size: var(--font-size-16);
}
.section-header--lg > p {
	font-size: var(--font-size-24);
}

.section-content--split-lg-1-1 {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	column-gap: var(--gap-xl);
}

.section-footer {
	position: relative;
	margin-top: auto;
	text-align: center;
}


@media (max-width: 991.98px) {
	.section-content--split-lg-1-1 {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 767.98px) {
	.section-header > h2 {
		font-size: var(--font-size-30);
	}
	.section-header--lg > h2 {
		font-size: var(--font-size-56);
	}
	.section-header--lg > p {
		font-size: var(--font-size-20);
	}
	.section-footer > .button {
		display: block;
	}
}

/* site-header.css */
.site-header {
	position: sticky;
	top: 0;
	z-index: 5;
	display: flex;
	min-height: var(--site-header-height);
	padding: 0 max(var(--gap-lg), calc((100% - var(--container-max)) / 2));
	border-bottom: 1px solid var(--color-gray-light);
	background: var(--color-bg);
}

.site-header__main {
	flex-grow: 1;
	display: flex;
	align-items: center;
	gap: var(--gap-lg);
}

.site-header__brand {
	display: flex;
	align-items: center;
	gap: var(--gap-lg);
}

.site-header__logo {
	height: 14px;
}

.site-header__actions {
	display: flex;
	align-items: center;
	gap: var(--gap-lg);
	margin-left: auto;
}


.site-header__links {
	display: flex;
	align-items: center;
	gap: 24px;
}

.site-header__link {
	color: var(--color-dark-blue);
	font-size: var(--font-size-16);
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
}
.site-header__link[aria-current] {
	text-decoration: underline;
}

.site-header__menu {
	display: none;
	align-items: center;
	padding: var(--gap-xs);
	background: none;
	color: var(--color-dark-blue);
}
.site-header__menu > .icon {
	width: 28px;
	height: 28px;
}

@media (hover: hover) {
	.site-header__link:hover {
		text-decoration: underline;
	}
}

@media (max-width: 991.98px) {
	.site-header__links {
		display: none;
	}
	.site-header__actions,
	.site-header__brand {
		gap: var(--gap-sm);
	}
	.site-header__book {
		margin-left: auto;
	}
	.site-header__actions {
		margin-left: 0;
	}
	.site-header__menu {
		display: flex;
	}
}

/* button.css */
.button {
	--_bg: var(--color-sunrise-yellow);
	--_fg: var(--color-dark-blue);
	display: inline-block;
	padding: var(--gap-sm) var(--gap-lg);
	border: 0;
	border-radius: var(--radius-xxs);
	background: var(--_bg);
	color: var(--_fg);
	font-weight: 700;
	text-decoration: none;
	text-decoration-thickness: 2px;
	white-space: nowrap;
	cursor: pointer;
}

.button--pill {
	border-radius: 25px;
}
.button--sm.button--pill {
	border-radius: 20px;
}

.button--sm {
	padding: var(--gap-xs) var(--gap-lg);
	font-size: var(--font-size-14);
}

.button--lg {
	padding: var(--gap-md) var(--gap-lg);
}

.button--white {
	--_bg: var(--color-bg);
	--_fg: var(--color-dark-blue);
	border: 1px solid var(--color-blue-light);
}

.button--bold-blue {
	--_bg: var(--color-bold-blue);
	--_fg: var(--color-text-light);
}

.button--dark-blue {
	--_bg: var(--color-dark-blue);
	--_fg: var(--color-text-light);
}

.button--outline {
	--_bg: transparent;
	--_fg: var(--color-dark-blue);
	border: 1px solid currentColor;
}

/* No background change: darkening the yellow puts it off-palette. */
.button:focus-visible,
.button:active {
	/* The shorthand would reset the thickness an element sets for itself. */
	text-decoration-line: underline;
}

@media (hover: hover) {
	.button:not(:disabled):hover {
		text-decoration-line: underline;
	}
}

/* Inline padding stays 24 at every width; only the block padding gives way. */
@media (max-width: 767.98px) {
	.button--lg {
		padding-block: var(--gap-sm);
	}
}

/* link.css */
.link {
	padding: 0;
	border: 0;
	background: none;
	color: inherit;
	font-weight: 700;
	text-decoration: none;
	cursor: pointer;
	transition: background-color var(--dur-quick);
}

.link--underline {
	/* The shorthand would reset the thickness an element sets for itself. */
	text-decoration-line: underline;
}

.link--light {
	font-weight: 400;
}

.link:focus-visible,
.link:active {
	background: rgb(0 0 0 / 0.1);
	text-decoration-line: underline;
}

@media (hover: hover) {
	.link:not(:disabled):hover {
		background: rgb(0 0 0 / 0.1);
		text-decoration-line: underline;
	}
}

/* icon.css */
.icon {
	display: inline-block;
	width: 16px;
	height: 16px;
	background: currentColor;
	-webkit-mask: var(--icon) center / contain no-repeat;
	mask: var(--icon) center / contain no-repeat;
}

.icon--x {
	--icon: url('/static/img/icon-x.svg');
}

/* Not icon--x: that is the close cross, and these are brand marks. */
.icon--facebook {
	--icon: url('/static/img/icon-facebook.svg');
}

.icon--social-x {
	--icon: url('/static/img/icon-social-x.svg');
}

.icon--menu {
	--icon: url('/static/img/icon-menu.svg');
}

.icon--crosshair {
	--icon: url('/static/img/icon-crosshair.svg');
}

.icon--pin {
	--icon: url('/static/img/icon-pin.svg');
}

.icon--arrow {
	--icon: url('/static/img/icon-arrow.svg');
}

.icon--search {
	--icon: url('/static/img/icon-search.svg');
}

.icon--morning {
	--icon: url('/static/img/icon-morning.svg');
}

.icon--afternoon {
	--icon: url('/static/img/icon-afternoon.svg');
}

.icon--evening {
	--icon: url('/static/img/icon-evening.svg');
}

/* site-nav.css */
/* Opens below the header, not over it, so the logo and Book Now stay live while it is open.
   .site-header sets position on the popover's containing block, so the inset is viewport-relative
   only because a popover is in the top layer — it is not positioned against the header. */
.site-nav {
	inset: var(--site-header-height) 0 0 0;
	width: 100%;
	max-width: none;
	/* the UA sheet sizes a popover to fit-content, which would ignore the insets above */
	height: auto;
	max-height: none;
	margin: 0;
	padding: var(--gap-sm);
	overflow: hidden;
	border: 0;
	background: var(--color-dark-blue);
	--focus-ring: var(--color-text-light);
	color: var(--color-text);
}

.site-nav__panel {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	gap: var(--gap-lg);
	height: 100%;
	padding: var(--gap-lg);
	border-radius: var(--radius-md);
	background: var(--color-blue-light);
}

.site-nav__close {
	align-self: flex-end;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border-radius: var(--radius-pill);
	background: none;
	color: var(--color-dark-blue);
}
.site-nav__close > .icon {
	width: 24px;
	height: 24px;
}

.site-nav__plane {
	width: 145px;
	height: auto;
	margin-top: calc(var(--gap-xxl) * -1);
	rotate: -12deg;
}

.site-nav__links {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--gap-lg);
	margin-top: var(--gap-xl);
	text-align: center;
}

.site-nav__link {
	font-size: var(--font-size-24);
	text-decoration-thickness: 2px;
	text-underline-offset: 4px;
}
/* The shorthand would reset the thickness above. */
.site-nav__link[aria-current] {
	text-decoration-line: underline;
}
/* The comp sits both clouds between the links and the footer block. Anchored to the footer
   rather than to a share of the panel, so a short viewport crowds the empty middle instead of
   pushing the clouds up through the links. */
.site-nav__sky {
	position: absolute;
	inset: auto 0 22%;
	z-index: -1;
}
.site-nav__cloud {
	position: absolute;
	width: var(--cloud-width);
	height: auto;
}
.site-nav__cloud--1 {
	--cloud-width: 150px;
	bottom: calc(var(--gap-lg) * -1);
	left: calc(var(--gap-xl) * -1);
}
.site-nav__cloud--2 {
	--cloud-width: 190px;
	bottom: var(--gap-xl);
	right: calc(var(--gap-xxl) * -1);
}

.site-nav__meta {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--gap-md);
	margin-top: auto;
	color: var(--color-dark-blue);
	text-align: center;
}

.site-nav__site {
	font-size: var(--font-size-20);
}

.site-nav__enroll {
	text-underline-offset: 3px;
}

.site-nav__social {
	display: flex;
	gap: var(--gap-md);
	margin: 0;
	padding: 0;
	list-style: none;
}
.site-nav__social > li {
	width: 28px;
	height: 28px;
	border-radius: var(--radius-pill);
	background: var(--color-dark-blue);
}

@media (max-width: 991.98px) {
	.site-nav:popover-open {
		display: block;
	}
	.site-nav.\:popover-open {
		display: block;
	}
}

/* site-footer.css */
.site-footer {
	padding-block: var(--gap-xl) var(--gap-lg);
	background: linear-gradient(to top right, var(--color-dark-blue), var(--color-bold-blue));
	--focus-ring: var(--color-text-light);
	color: var(--color-gray-light);
	text-align: center;
}

.site-footer__props {
	display: flex;
	justify-content: center;
	margin: var(--gap-xl) 0 0;
	padding: 0;
	font-size: var(--font-size-14);
	font-weight: 700;
	line-height: 1.4;
	list-style: none;
}

.site-footer__props > li {
	padding-inline: var(--gap-md);
}

.site-footer__props > li + li {
	border-left: 1px solid var(--color-text-light);
}

.site-footer__props sup {
	margin-left: 0.15em;
	font-size: 0.5em;
	font-weight: 400;
	line-height: 0;
}

.site-footer__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--gap-lg);
	margin-top: var(--gap-xxl);
}

.site-footer__notes {
	max-width: var(--container-md);
	margin: var(--gap-xl) auto 0;
	padding: 0;
	font-size: var(--font-size-12);
	font-weight: 300;
	line-height: 1.3;
	text-align: left;
	list-style: none;
	counter-reset: note;
}

/* Hanging superscript number: wrapped lines align with the text, not the marker. Not grid:
   that would split the text and links into separate cells. */
.site-footer__notes > li {
	position: relative;
	padding-left: 1.25ch;
	counter-increment: note;
}

.site-footer__notes > li + li {
	margin-top: var(--gap-xs);
}

.site-footer__notes a {
	font-weight: 700;
}


.site-footer__notes > li::before {
	content: counter(note);
	position: absolute;
	top: 0.15em;
	left: 0;
	font-size: 0.7em;
	line-height: 1;
}

.site-footer__meta {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: var(--gap-md);
	margin-top: var(--gap-lg);
	font-size: var(--font-size-14);
	text-align: left;
}

.site-footer__links {
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-footer__links > li + li {
	margin-top: var(--gap-xxs);
}

.site-footer__legal {
	text-align: right;
}

.site-footer__copyright {
	margin: 0 0 var(--gap-xxs);
}

@media (max-width: 767.98px) {
	.site-footer__props > li {
		white-space: pre-line;
	}

	.site-footer__props,
	.site-footer__meta {
		font-size: var(--font-size-12);
	}
	.site-footer__meta {
		flex-direction: column;
		align-items: stretch;
	}
	.site-footer__legal {
		text-align: left;
	}
	.site-footer__notes {
		font-size: var(--font-size-10);
	}

	.site-footer__actions > .button {
		flex: 1 1 auto;
	}
}

/* terms.css */
.terms {
	padding-block: var(--gap-xxl) var(--gap-3xl);
}
.terms__body {
	max-width: calc(90ch + var(--gap-lg) * 2);
}

.terms__title {
	text-wrap: balance;
	margin: 0 0 var(--gap-lg);
	font-size: var(--font-size-36);
	line-height: 1.15;
}
.terms__notice {
	margin: 0 0 var(--gap-xl);
	font-weight: 700;
}

.terms__section + .terms__section {
	margin-top: var(--gap-xl);
}
.terms__heading {
	margin: 0 0 var(--gap-sm);
	font-size: var(--font-size-20);
	line-height: 1.2;
}
.terms__section > p {
	margin: 0 0 var(--gap-md);
	text-wrap: pretty;
}
.terms__section > :last-child {
	margin-bottom: 0;
}

.terms__list {
	margin: 0;
	padding-left: var(--gap-lg);
}
.terms__list > li + li {
	margin-top: var(--gap-sm);
}

@media (max-width: 767.98px) {
	.terms__title {
		font-size: var(--font-size-30);
	}
}
