:root {
	--ml-cream: #f5f0e6;
	--ml-paper: #fffdf8;
	--ml-forest: #284f40;
	--ml-forest-dark: #20342d;
	--ml-terra: #a6533f;
	--ml-gold: #b69245;
	--ml-line: #ded5c6;
	--ml-muted: #52615b;
}

.ml-warm-editorial-favorites #sunshine {
	background: var(--ml-cream);
	color: var(--ml-forest-dark);
}

.ml-warm-editorial-favorites #sunshine > .sunshine--action-menu,
.ml-favorites [hidden] {
	display: none !important;
}

.ml-favorites {
	width: min(1180px, calc(100% - 32px));
	margin-inline: auto;
	padding: clamp(20px, 4vw, 48px) 0 calc(48px + env(safe-area-inset-bottom));
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	line-height: 1.55;
}

.ml-favorites h1,
.ml-favorites h2,
.ml-favorites p,
.ml-selection-tray__label,
.ml-selection-tray__notice {
	margin-top: 0;
}

.ml-favorites h1,
.ml-favorites h2 {
	font-family: Georgia, "Times New Roman", serif;
	font-weight: 600;
	letter-spacing: -.025em;
}

.ml-favorites__hero {
	max-width: 760px;
	padding: clamp(20px, 4vw, 34px);
	background: var(--ml-forest);
	border-radius: 20px 20px 6px 20px;
	color: var(--ml-paper);
	box-shadow: 0 22px 60px rgb(32 52 45 / 14%);
}

.ml-favorites__hero h1 {
	margin-bottom: 6px;
	font-size: clamp(2rem, 5vw, 3.4rem);
	line-height: 1;
}

.ml-favorites__eyebrow {
	margin-bottom: 10px;
	color: var(--ml-terra);
	font-size: .76rem;
	font-weight: 800;
	letter-spacing: .13em;
	text-transform: uppercase;
}

.ml-favorites__hero .ml-favorites__eyebrow {
	color: #e5c989;
}

.ml-favorites__count {
	margin-bottom: 0;
	color: rgb(255 253 248 / 82%);
	font-variant-numeric: tabular-nums;
}

.ml-favorites__session-note {
	max-width: 650px;
	margin-bottom: 0;
	padding: 12px 15px;
	background: rgb(255 255 255 / 10%);
	border: 1px solid rgb(255 255 255 / 22%);
	border-radius: 10px;
	color: rgb(255 253 248 / 88%);
	font-size: .92rem;
}

.ml-favorites__actions {
	margin: 18px 0 0;
}

.ml-warm-editorial-favorites #sunshine-notices {
	width: min(1180px, calc(100% - 32px));
	margin: 14px auto 0;
}

.ml-warm-editorial-favorites #sunshine-notices .sunshine-notice {
	padding: 12px 16px;
	background: #eee5d7;
	border: 1px solid var(--ml-line);
	border-left: 4px solid var(--ml-forest);
	color: var(--ml-forest-dark);
	font-weight: 700;
}

.ml-warm-editorial-favorites #sunshine-notices .sunshine-notice.error {
	border-left-color: var(--ml-terra);
}

.ml-favorites__actions .sunshine--action-menu ul {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ml-favorites__actions .sunshine--action-menu a,
.ml-favorites__actions .sunshine--action-menu button {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 9px 15px;
	background: transparent;
	border: 1px solid var(--ml-line);
	border-radius: 999px;
	color: var(--ml-forest) !important;
	font-weight: 750;
	text-decoration: none !important;
}

.ml-favorites__grid {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(12px, 2vw, 24px);
	margin-top: 32px;
}

.ml-favorites__grid .sunshine--image-item,
.ml-favorites__shared-image {
	position: relative;
	min-width: 0;
	margin: 0;
	padding: 8px;
	background: var(--ml-paper);
	border: 1px solid var(--ml-line);
	border-radius: 14px;
	box-shadow: 0 10px 28px rgb(32 52 45 / 7%);
	overflow: hidden;
}

.ml-favorites__grid .sunshine--image-item > a,
.ml-favorites__shared-image img {
	display: block;
	width: 100%;
	border-radius: 9px;
	overflow: visible;
}

.ml-favorites__grid img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: contain;
}

.ml-favorites__grid .sunshine--image-menu button,
.ml-favorites__grid .sunshine--image-menu a {
	min-width: 44px;
	min-height: 44px;
}

.ml-favorites__next,
.ml-favorites__empty {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
	margin-top: 34px;
	padding: clamp(24px, 5vw, 42px);
	background: var(--ml-paper);
	border: 1px solid var(--ml-line);
	border-radius: 18px;
}

.ml-favorites__next h2,
.ml-favorites__empty h2 {
	max-width: 620px;
	margin-bottom: 0;
	font-size: clamp(1.55rem, 3vw, 2.25rem);
}

.ml-favorites__empty {
	align-items: flex-start;
	flex-direction: column;
}

.ml-favorites__primary-cta,
.ml-favorites__secondary-cta,
#sunshine--selection-tray-widget--title {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 11px 18px;
	border-radius: 9px;
	font-weight: 800;
	text-align: center;
	text-decoration: none !important;
}

.ml-favorites__primary-cta,
#sunshine--selection-tray-widget--title {
	background: var(--ml-forest);
	color: #fff !important;
}

.ml-favorites__secondary-cta {
	border: 1px solid var(--ml-forest);
	color: var(--ml-forest) !important;
}

#sunshine--selection-tray-widget {
	box-sizing: border-box;
	position: fixed;
	z-index: 99990;
	right: auto;
	bottom: max(16px, env(safe-area-inset-bottom));
	left: max(16px, env(safe-area-inset-left));
	display: none;
	width: min(390px, calc(100vw - 32px));
	max-width: none;
	padding: 18px;
	background: var(--ml-paper);
	border: 1px solid var(--ml-line);
	border-radius: 16px;
	box-shadow: 0 18px 56px rgb(32 52 45 / 22%);
	color: var(--ml-forest-dark);
}

#sunshine--selection-tray-widget.sunshine--has-images {
	display: block;
}

#sunshine--selection-tray-widget.sunshine--selection-tray-bottom_left {
	right: auto;
	left: max(16px, env(safe-area-inset-left));
}

#sunshine--selection-tray-widget--header {
	display: grid;
	gap: 7px;
	margin: 0 48px 12px 0;
}

.ml-selection-tray__label {
	margin-bottom: 0;
	color: var(--ml-muted);
	font-size: .8rem;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

#sunshine--selection-tray-widget--title {
	width: fit-content;
	min-height: 44px;
	font-size: .91rem;
	text-transform: none;
}

#ml-favorites-count,
#sunshine--selection-tray-widget--count,
#sunshine--selection-tray-minimized--count,
.sunshine--favorites--count {
	display: inline-block;
	min-width: 2ch;
	font-variant-numeric: tabular-nums;
	text-align: center;
}

#sunshine--selection-tray-widget--title::after {
	display: none;
}

#sunshine--selection-tray-widget--images {
	display: flex;
	gap: 8px;
	max-height: 72px;
	overflow-x: auto;
	overscroll-behavior-inline: contain;
}

.sunshine--selection-tray-widget--image {
	position: relative;
	width: 64px;
	height: 64px;
	margin: 0;
	border-radius: 8px;
	flex: 0 0 64px;
	overflow: hidden;
}

.sunshine--selection-tray-widget--image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.sunshine--selection-tray-widget--delete,
#sunshine--selection-tray-widget--minimize {
	width: 44px;
	height: 44px;
	border: 0;
	border-radius: 50%;
	background: var(--ml-forest-dark);
	color: #fff;
	cursor: pointer;
}

.sunshine--selection-tray-widget--delete {
	top: 0;
	right: 0;
	background: transparent;
	transform: none;
}

.sunshine--selection-tray-widget--delete::before {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	margin: 8px;
	background: var(--ml-forest-dark);
	border-radius: 50%;
}

#sunshine--selection-tray-widget--minimize {
	top: 12px;
	right: 12px;
	opacity: 1;
	transform: none;
}

.ml-selection-tray__notice {
	margin: 12px 0 0;
	color: var(--ml-muted);
	font-size: .78rem;
}

#sunshine--selection-tray-minimized {
	position: fixed;
	z-index: 99990;
	right: auto;
	bottom: max(12px, env(safe-area-inset-bottom));
	left: max(16px, env(safe-area-inset-left));
	min-height: 48px;
	padding: 10px 16px;
	background: var(--ml-forest);
	border: 0;
	border-radius: 12px 12px 0 0;
	box-shadow: 0 10px 34px rgb(32 52 45 / 25%);
	color: #fff;
	font-weight: 800;
}

#sunshine--selection-tray-minimized::before {
	display: inline-block;
	margin-right: 7px;
	color: #f1c9bd;
	content: "♥";
	font-size: 1.05rem;
	line-height: 1;
}

body.ml-native-guest-favorites-auto #sunshine--modal.sunshine--modal--guest_favorites {
	display: none !important;
}

#sunshine--selection-tray-minimized.sunshine--selection-tray-bottom_left {
	right: auto;
	left: max(16px, env(safe-area-inset-left));
}

body.sunshine--modal--open #sunshine--selection-tray-widget,
body.sunshine--modal--open #sunshine--selection-tray-minimized,
html.lg-on #sunshine--selection-tray-widget,
html.lg-on #sunshine--selection-tray-minimized {
	visibility: hidden;
	pointer-events: none;
}

#sunshine--modal.sunshine--modal--guest_favorites {
	box-sizing: border-box;
	width: min(560px, calc(100% - 28px));
	max-height: calc(100vh - 28px - env(safe-area-inset-bottom));
	max-height: calc(100dvh - 28px - env(safe-area-inset-bottom));
	padding: clamp(64px, 10vw, 72px) clamp(20px, 5vw, 36px) clamp(20px, 5vw, 36px);
	background: var(--ml-paper);
	border: 1px solid var(--ml-line);
	border-radius: 20px;
	color: var(--ml-forest-dark);
	overflow-y: auto;
	overscroll-behavior: contain;
}

#sunshine--guest-favorites-modal--header {
	margin-bottom: 20px;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.45rem, 5vw, 2rem);
	font-weight: 600;
	line-height: 1.2;
}

#sunshine--modal.sunshine--modal--guest_favorites input,
#sunshine--modal.sunshine--modal--guest_favorites button,
#sunshine--modal.sunshine--modal--guest_favorites .sunshine--button,
#sunshine--modal.sunshine--modal--guest_favorites .sunshine--button-alt {
	min-height: 44px;
}

#sunshine--modal.sunshine--modal--guest_favorites *,
#sunshine--modal.sunshine--modal--guest_favorites *::before,
#sunshine--modal.sunshine--modal--guest_favorites *::after {
	box-sizing: border-box;
}

#sunshine--modal.sunshine--modal--guest_favorites #sunshine--modal--close {
	top: 10px;
	right: 10px;
	width: 44px;
	height: 44px;
	text-align: center;
}

#sunshine--modal.sunshine--modal--guest_favorites #sunshine--modal--close::before {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
}

#sunshine--guest-favorites-modal--toggle-login,
#sunshine--modal.sunshine--modal--guest_favorites .sunshine--account--reset-password-toggle a,
#sunshine--modal.sunshine--modal--guest_favorites #sunshine--guest-to-signup {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 10px 12px;
	color: var(--ml-forest-dark) !important;
	font-weight: 750;
}

#sunshine--guest-favorites-modal--continue-guest {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	padding: 11px 16px;
	background: var(--ml-forest);
	border-radius: 9px;
	color: #fff !important;
	font-weight: 800;
	text-decoration: none;
}

.ml-favorites a:focus-visible,
.ml-favorites button:focus-visible,
#sunshine--selection-tray-widget a:focus-visible,
#sunshine--selection-tray-widget button:focus-visible,
#sunshine--selection-tray-minimized:focus-visible,
#sunshine--modal.sunshine--modal--guest_favorites a:focus-visible,
#sunshine--modal.sunshine--modal--guest_favorites button:focus-visible,
#sunshine--modal.sunshine--modal--guest_favorites input:focus-visible {
	outline: 2px solid #fffdf8;
	outline-offset: 2px;
	box-shadow: 0 0 0 4px var(--ml-forest-dark);
}

@media (max-width: 820px) {
	.ml-favorites__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ml-favorites__next {
		align-items: flex-start;
		flex-direction: column;
	}

	.ml-favorites__primary-cta,
	.ml-favorites__secondary-cta {
		width: 100%;
	}

	.ml-favorites__hero {
		width: 100%;
	}

	.ml-favorites__actions .sunshine--action-menu ul {
		display: grid;
		grid-template-columns: 1fr;
	}
}

@media (max-width: 380px) {
	.ml-favorites {
		width: min(100% - 20px, 1180px);
	}

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

	#sunshine--selection-tray-widget {
		right: auto;
		bottom: max(10px, env(safe-area-inset-bottom));
		left: 10px;
		width: calc(100vw - 20px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.ml-favorites *,
	#sunshine--selection-tray-widget,
	#sunshine--selection-tray-widget *,
	#sunshine--modal.sunshine--modal--guest_favorites,
	#sunshine--modal.sunshine--modal--guest_favorites *,
	#sunshine--modal--overlay,
	#sunshine--modal--overlay::before,
	#sunshine--modal--overlay::after {
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
	}
}
