/* ==========================================================================
   Comedy Jam — home.css (front page only)
   ========================================================================== */

@keyframes jm-pop {
	0% { opacity: 0; transform: translateY(30px) scale(0.7) rotate(-8deg); }
	68% { opacity: 1; transform: translateY(-6px) scale(1.05) rotate(2deg); }
	100% { opacity: 1; transform: translateY(0) scale(1) rotate(0deg); }
}

@keyframes jm-float {
	0%, 100% { transform: translate(0, 0) rotate(0deg); }
	33% { transform: translate(14px, -20px) rotate(120deg); }
	66% { transform: translate(-12px, 12px) rotate(240deg); }
}

@keyframes jm-marq {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}

@keyframes jm-marqrev {
	from { transform: translateX(-50%); }
	to { transform: translateX(0); }
}

@keyframes jm-spin {
	to { transform: rotate(360deg); }
}

@keyframes jm-dot {
	0%, 100% { transform: scale(1); opacity: 1; }
	50% { transform: scale(1.5); opacity: 0.45; }
}

/* ---------------------------------- Hero ---------------------------------- */

.jm-hero {
	position: relative;
	padding: 56px 20px 70px;
	overflow: hidden;
	background: radial-gradient(120% 90% at 20% 0%, var(--jm-white) 0%, var(--jm-bg) 55%, color-mix(in srgb, var(--jm-bg) 85%, var(--jm-navy) 15%) 100%);
}

.jm-hero__confetti-bg {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.jm-hero__dot {
	position: absolute;
	border-radius: 50%;
	animation: jm-float 18s ease-in-out infinite;
}

.jm-hero__dot--1 { top: 12%; left: 5%; width: 26px; height: 26px; background: var(--jm-yellow); opacity: .75; }
.jm-hero__dot--2 { top: 34%; left: 12%; width: 16px; height: 16px; background: var(--jm-pink); opacity: .65; animation-delay: 1.5s; }
.jm-hero__dot--3 { top: 68%; left: 7%; width: 20px; height: 20px; background: var(--jm-teal); opacity: .7; animation-delay: .6s; }
.jm-hero__dot--4 { top: 20%; right: 8%; width: 22px; height: 22px; background: var(--jm-blue); opacity: .6; animation-delay: 2.2s; }
.jm-hero__dot--5 { top: 56%; right: 4%; width: 15px; height: 15px; background: var(--jm-yellow); opacity: .8; animation-delay: 3s; }
.jm-hero__dot--6 { bottom: 8%; right: 16%; width: 19px; height: 19px; background: var(--jm-pink); opacity: .55; animation-delay: 1s; }

.jm-hero__grid {
	position: relative;
	max-width: 1280px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr));
	gap: 46px;
	align-items: center;
}

.jm-hero__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
	margin-bottom: 20px;
}

.jm-hero__badges .jm-badge {
	animation: jm-bob 5.5s ease-in-out infinite;
}

.jm-hero__badges .jm-badge:nth-child(2) { animation-delay: .4s; }
.jm-hero__badges .jm-badge:nth-child(3) { animation-delay: .8s; }

.jm-hero__headline {
	margin: 0;
	font-family: var(--jm-font-display);
	line-height: 0.95;
	letter-spacing: 0.01em;
}

.jm-hero__headline-visual {
	display: block;
	font-size: clamp(38px, 7.2vw, 96px);
	color: var(--jm-blue);
}

.jm-hero__headline-visual .jm-letter {
	display: inline-block;
	animation: jm-pop 0.7s var(--jm-ease-bounce) both;
}

.jm-hero__subhead {
	font-family: var(--jm-font-script);
	font-size: clamp(21px, 2.6vw, 28px);
	color: var(--jm-navy);
	margin: 18px 0 0;
}

.jm-hero__description {
	font-size: 17px;
	line-height: 1.6;
	margin: 14px 0 0;
	max-width: 46ch;
	color: var(--jm-ink);
}

.jm-hero__ctas {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 28px;
}

.jm-hero__ctas--center { justify-content: center; }

.jm-hero__poster-wrap {
	display: grid;
	place-items: center;
	perspective: 1000px;
}

.jm-hero__poster-frame {
	position: relative;
	max-width: 480px;
	width: 100%;
}

.jm-hero__poster-backdrop {
	position: absolute;
	inset: -14px;
	border-radius: 28px;
	background: var(--jm-yellow);
	transform: rotate(-3.5deg);
}

.jm-hero__poster {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1650 / 2550;
	object-fit: cover;
	background: color-mix(in srgb, var(--jm-bg) 60%, white);
	border-radius: 20px;
	border: var(--jm-border);
	transform: rotate(1.4deg);
	box-shadow: 0 18px 44px rgba(27, 58, 92, 0.28);
	transition: transform 0.45s var(--jm-ease-soft);
	will-change: transform;
}

.jm-hero__poster--placeholder {
	background: repeating-linear-gradient(135deg, color-mix(in srgb, var(--jm-bg) 70%, white) 0 14px, var(--jm-white) 14px 28px);
	min-height: 420px;
}

.jm-hero__price-badge,
.jm-hero__annual-badge {
	position: absolute;
	display: grid;
	place-items: center;
}

.jm-hero__price-badge {
	top: -26px;
	right: 0;
	width: 96px;
	height: 96px;
}

.jm-hero__price-badge::before,
.jm-hero__price-badge::after {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--jm-yellow);
	border: var(--jm-border);
	border-radius: 12px;
}

.jm-hero__price-badge::before { transform: rotate(18deg); }
.jm-hero__price-badge::after { transform: rotate(-24deg); }

.jm-hero__price-badge span {
	position: relative;
	font-family: var(--jm-font-display);
	font-size: 24px;
	color: var(--jm-navy);
	animation: jm-bob 4s ease-in-out infinite;
	z-index: 2;
}

.jm-hero__annual-badge {
	bottom: -22px;
	left: -20px;
	width: 104px;
	height: 104px;
}

.jm-hero__annual-badge::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 50%;
	background: conic-gradient(var(--jm-pink) 0 25%, var(--jm-yellow) 0 50%, var(--jm-teal) 0 75%, var(--jm-blue) 0);
	animation: jm-spin 14s linear infinite;
}

.jm-hero__annual-badge::after {
	content: "";
	position: absolute;
	inset: 7px;
	border-radius: 50%;
	background: var(--jm-white);
	border: var(--jm-border);
}

.jm-hero__annual-badge span {
	position: relative;
	font-family: var(--jm-font-display);
	font-size: 12px;
	line-height: 1.1;
	text-align: center;
	color: var(--jm-navy);
	max-width: 70px;
	z-index: 2;
}

/* -------------------------------- Countdown -------------------------------- */

.jm-countdown {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
	margin-top: 26px;
}

.jm-countdown__box {
	min-width: 84px;
	padding: 12px 16px;
	border-radius: var(--jm-radius-md);
	background: var(--jm-white);
	border: var(--jm-border);
	box-shadow: 0 4px 0 var(--jm-navy);
	text-align: center;
	animation: jm-bob 5s ease-in-out infinite;
}

.jm-countdown__value {
	font-family: var(--jm-font-display);
	font-size: clamp(22px, 3vw, 30px);
	line-height: 1;
	color: var(--jm-pink);
}

.jm-countdown__label {
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--jm-ink-soft);
	margin-top: 6px;
}

/* --------------------------------- Marquee --------------------------------- */

.jm-marquee {
	overflow: hidden;
	white-space: nowrap;
	padding: 13px 0;
}

.jm-marquee--dark {
	background: var(--jm-navy);
	border-top: var(--jm-border);
	border-bottom: var(--jm-border);
}

.jm-marquee--light {
	background: var(--jm-white);
	border-top: var(--jm-border);
	padding: 12px 0;
}

.jm-marquee__track {
	display: inline-flex;
	gap: 28px;
	padding-right: 28px;
	will-change: transform;
}

.jm-marquee__track--forward { animation: jm-marq 26s linear infinite; }
.jm-marquee__track--reverse { animation: jm-marqrev 30s linear infinite; }

.jm-marquee:hover .jm-marquee__track,
.jm-marquee:focus-within .jm-marquee__track {
	animation-play-state: paused;
}

@media (prefers-reduced-motion: reduce) {
	.jm-marquee { overflow-x: auto; }
	.jm-marquee__track { animation: none; }
}

.jm-marquee__item {
	font-family: var(--jm-font-display);
	font-size: 18px;
	color: var(--jm-white);
}

.jm-marquee--dark .jm-marquee__item:nth-child(4n+1) { color: var(--jm-yellow); }
.jm-marquee--light .jm-marquee__item {
	font-family: var(--jm-font-script);
	font-size: 24px;
	color: var(--jm-navy);
}

.jm-marquee__dot { font-size: 17px; }
.jm-marquee__dot--yellow { color: var(--jm-yellow); }
.jm-marquee__dot--pink { color: var(--jm-pink); }
.jm-marquee__dot--teal { color: var(--jm-teal); }
.jm-marquee__dot--blue { color: var(--jm-blue); }

/* ---------------------------------- Show ---------------------------------- */

.jm-show__intro {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr));
	gap: 40px;
	align-items: center;
}

.jm-show__photo-wrap {
	position: relative;
}

.jm-show__photo-wrap::before {
	content: "";
	position: absolute;
	inset: -10px;
	border-radius: var(--jm-radius-lg);
	background: var(--jm-blue);
	transform: rotate(-2.4deg);
}

.jm-show__photo {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	border-radius: var(--jm-radius-md);
	border: var(--jm-border);
	transform: rotate(1deg);
	box-shadow: 0 12px 30px rgba(27, 58, 92, 0.22);
}

.jm-show__widgets {
	margin-top: 44px;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
	gap: 24px;
	align-items: start;
}

.jm-poll-demo {
	background: var(--jm-bg);
	border: var(--jm-border);
	border-radius: var(--jm-radius-lg);
	padding: 26px;
	box-shadow: 0 6px 0 var(--jm-navy);
}

.jm-poll-demo__top {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}

.jm-poll-demo__dot {
	width: 11px;
	height: 11px;
	border-radius: 50%;
	background: var(--jm-pink);
	animation: jm-dot 1.6s ease-in-out infinite;
}

.jm-poll-demo__label {
	font-family: var(--jm-font-display);
	font-size: 15px;
}

.jm-poll-demo__counter {
	margin-left: auto;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--jm-ink-soft);
}

.jm-poll-demo__question {
	font-family: var(--jm-font-script);
	font-size: 22px;
	margin: 14px 0 18px;
}

.jm-poll-demo__options {
	display: grid;
	gap: 12px;
}

.jm-poll-demo__option {
	all: unset;
	cursor: pointer;
	display: block;
	position: relative;
	border: var(--jm-border);
	border-radius: 16px;
	background: var(--jm-white);
	overflow: hidden;
	box-sizing: border-box;
}

.jm-poll-demo__option:hover,
.jm-poll-demo__option:focus-visible {
	background: #FFFBEA;
}

.jm-poll-demo__fill {
	position: absolute;
	inset: 0 auto 0 0;
	opacity: 0.35;
	transition: width 0.6s var(--jm-ease-soft);
}

.jm-poll-demo__option[data-color="pink"] .jm-poll-demo__fill { background: var(--jm-pink); }
.jm-poll-demo__option[data-color="blue"] .jm-poll-demo__fill { background: var(--jm-blue); }
.jm-poll-demo__option[data-color="teal"] .jm-poll-demo__fill { background: var(--jm-teal); }
.jm-poll-demo__option[data-color="yellow"] .jm-poll-demo__fill { background: var(--jm-yellow); }
.jm-poll-demo__option[data-color="navy"] .jm-poll-demo__fill { background: var(--jm-navy); }

.jm-poll-demo__option-label,
.jm-poll-demo__pct {
	position: relative;
	display: inline-block;
	padding: 14px 16px;
}

.jm-poll-demo__option-label { font-weight: 700; font-size: 16px; }
.jm-poll-demo__pct { font-family: var(--jm-font-display); font-size: 15px; float: right; }

.jm-poll-demo__footer {
	font-size: 13px;
	color: var(--jm-ink-soft);
	margin: 14px 0 0;
}

.jm-how-it-works {
	display: grid;
	gap: 18px;
	align-content: start;
}

.jm-how-it-works__step {
	display: flex;
	gap: 16px;
	align-items: flex-start;
	background: var(--jm-white);
	border: var(--jm-border);
	border-radius: 22px;
	padding: 20px;
	box-shadow: 0 5px 0 var(--jm-navy);
	transition: transform 0.3s var(--jm-ease-bounce);
}

.jm-how-it-works__step:hover {
	transform: translateY(-5px) rotate(-0.8deg);
}

.jm-how-it-works__number {
	flex: none;
	display: grid;
	place-items: center;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	border: var(--jm-border);
	font-family: var(--jm-font-display);
	font-size: 17px;
	color: var(--jm-navy);
}

.jm-how-it-works__number--yellow { background: var(--jm-yellow); }
.jm-how-it-works__number--pink { background: var(--jm-badge-pink); }
.jm-how-it-works__number--teal { background: var(--jm-teal); }
.jm-how-it-works__number--blue { background: var(--jm-badge-blue); }
.jm-how-it-works__number--navy { background: var(--jm-navy); color: var(--jm-white); }

.jm-how-it-works__title {
	font-family: var(--jm-font-display);
	font-size: 17px;
}

.jm-how-it-works__body {
	margin: 6px 0 0;
	font-size: 15px;
	line-height: 1.55;
	color: var(--jm-ink);
}

.jm-how-it-works__cta {
	justify-self: start;
	width: fit-content;
}

/* --------------------------------- Lineup --------------------------------- */

.jm-lineup__head {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	align-items: flex-end;
	justify-content: space-between;
	margin-bottom: 38px;
}

.jm-lineup__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(215px, 100%), 1fr));
	gap: 22px;
}

.jm-lineup__card {
	text-align: center;
	transition: transform 0.35s var(--jm-ease-bounce);
}

.jm-lineup__card:hover { transform: translateY(-8px); }

.jm-lineup__photo-ring {
	position: relative;
	width: 100%;
	aspect-ratio: 1;
	border-radius: 50%;
	border-width: 5px;
	border-style: solid;
	background: var(--jm-white);
	overflow: hidden;
	box-shadow: 0 8px 0 rgba(27, 58, 92, 0.12);
	transition: box-shadow 0.35s ease;
}

.jm-lineup__photo-ring--yellow { border-color: var(--jm-yellow); }
.jm-lineup__photo-ring--pink { border-color: var(--jm-pink); }
.jm-lineup__photo-ring--teal { border-color: var(--jm-teal); }
.jm-lineup__photo-ring--blue { border-color: var(--jm-blue); }
.jm-lineup__photo-ring--navy { border-color: var(--jm-navy); }

.jm-lineup__photo {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
}

.jm-lineup__photo--placeholder {
	background: repeating-linear-gradient(135deg, color-mix(in srgb, var(--jm-bg) 70%, white) 0 10px, var(--jm-white) 10px 20px);
}

.jm-lineup__name {
	font-family: var(--jm-font-script);
	font-size: 25px;
	margin-top: 14px;
}

.jm-lineup__role {
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	margin-top: 4px;
}

.jm-lineup__role--yellow { color: var(--jm-label-yellow); }
.jm-lineup__role--pink { color: var(--jm-label-pink); }
.jm-lineup__role--teal { color: var(--jm-label-teal); }
.jm-lineup__role--blue { color: var(--jm-label-blue); }
.jm-lineup__role--navy { color: var(--jm-navy); }

.jm-lineup__footer {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	justify-content: center;
	align-items: center;
	margin-top: 42px;
}

/* -------------------------------- Tickets --------------------------------- */

.jm-tickets__head {
	text-align: center;
	max-width: 620px;
	margin: 0 auto;
}

.jm-tickets__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr));
	gap: 20px;
	margin-top: 42px;
}

.jm-ticket-card {
	background: var(--jm-white);
	border: var(--jm-border);
	border-radius: var(--jm-radius-lg);
	padding: 24px;
	box-shadow: 0 7px 0 var(--jm-navy);
	display: flex;
	flex-direction: column;
	gap: 12px;
	transition: transform 0.3s var(--jm-ease-bounce);
}

.jm-ticket-card:hover { transform: translateY(-9px) rotate(1deg); }

.jm-ticket-card .jm-badge {
	align-self: flex-start;
	font-size: 11px;
	padding: 5px 11px;
}

.jm-ticket-card__name {
	font-family: var(--jm-font-display);
	font-size: 20px;
}

.jm-ticket-card__price {
	font-family: var(--jm-font-display);
	font-size: 34px;
	color: var(--jm-pink);
	line-height: 1;
}

.jm-ticket-card__body {
	margin: 0;
	font-size: 15px;
	line-height: 1.55;
	color: var(--jm-ink);
	flex: 1;
}

.jm-ticket-card .jm-btn {
	align-self: flex-start;
}

.jm-tickets__footnote {
	text-align: center;
	margin: 34px 0 0;
}

/* --------------------------------- Cause ---------------------------------- */

.jm-cause__grid {
	max-width: 1100px;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(290px, 100%), 1fr));
	gap: 40px;
	align-items: center;
}

.jm-cause__card {
	background: var(--jm-white);
	border: var(--jm-border);
	border-radius: var(--jm-radius-lg);
	padding: 28px;
	box-shadow: 0 7px 0 var(--jm-navy);
	transform: rotate(-1.4deg);
	text-align: center;
}

.jm-cause__logo {
	max-width: 230px;
	height: auto;
	margin: 0 auto 18px;
}

.jm-cause__card .jm-script-text {
	margin: 0 0 16px;
	display: block;
}

/* --------------------------------- Venue ---------------------------------- */

.jm-venue__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
	gap: 42px;
}

.jm-venue__photo-wrap {
	position: relative;
	border: var(--jm-border);
	border-radius: var(--jm-radius-lg);
	overflow: hidden;
	box-shadow: 0 7px 0 var(--jm-navy);
	background: var(--jm-navy);
	min-height: 330px;
}

.jm-venue__photo {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 330px;
	object-fit: cover;
}

.jm-venue__photo-tag {
	position: absolute;
	bottom: 16px;
	left: 16px;
	font-family: var(--jm-font-display);
	font-size: 12px;
	color: var(--jm-navy);
	background: var(--jm-yellow);
	border: var(--jm-border);
	border-radius: 999px;
	padding: 8px 14px;
}

.jm-venue__facts {
	display: grid;
	gap: 12px;
	margin-top: 22px;
}

.jm-venue__fact {
	background: var(--jm-bg);
	border: var(--jm-border);
	border-radius: var(--jm-radius-md);
	padding: 15px 18px;
}

.jm-venue__fact-label {
	font-family: var(--jm-font-display);
	font-size: 13px;
	color: var(--jm-blue);
}

.jm-venue__fact-value {
	font-size: 15px;
	line-height: 1.5;
	margin-top: 5px;
	color: var(--jm-ink);
}

.jm-venue__cta { margin-top: 20px; }

/* ----------------------------- Gallery teaser ------------------------------ */

.jm-gallery-teaser__head {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	align-items: flex-end;
	justify-content: space-between;
	margin-bottom: 34px;
}

.jm-gallery-teaser__reel-wrap {
	position: relative;
	overflow: hidden;
	margin: 0 -20px;
	padding: 10px 0 18px;
}

.jm-gallery-teaser__reel {
	display: flex;
	gap: 18px;
	width: max-content;
	animation: jm-marq 52s linear infinite;
	will-change: transform;
}

.jm-gallery-teaser__reel-wrap:hover .jm-gallery-teaser__reel,
.jm-gallery-teaser__reel-wrap:focus-within .jm-gallery-teaser__reel {
	animation-play-state: paused;
}

@media (prefers-reduced-motion: reduce) {
	.jm-gallery-teaser__reel-wrap { overflow-x: auto; }
	.jm-gallery-teaser__reel { animation: none; width: max-content; }
}

.jm-gallery-teaser__item {
	all: unset;
	cursor: zoom-in;
	flex: none;
	width: 300px;
	display: block;
	border-radius: var(--jm-radius-md);
	overflow: hidden;
	border: var(--jm-border);
	box-shadow: 0 6px 0 var(--jm-navy);
	background: var(--jm-navy);
	position: relative;
	aspect-ratio: 3 / 2;
	transition: transform 0.35s var(--jm-ease-bounce);
}

.jm-gallery-teaser__item:hover,
.jm-gallery-teaser__item:focus-visible {
	transform: translateY(-6px) scale(1.03);
}

.jm-gallery-teaser__item img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.jm-gallery-teaser__caption {
	position: absolute;
	inset: auto 0 0 0;
	padding: 30px 14px 11px;
	background: linear-gradient(transparent, rgba(27, 58, 92, 0.9));
	font-family: var(--jm-font-script);
	font-size: 20px;
	color: var(--jm-white);
	line-height: 1.1;
	text-align: left;
}

.jm-gallery-teaser__fade {
	position: absolute;
	inset: 0 auto 0 0;
	width: 70px;
	pointer-events: none;
}

.jm-gallery-teaser__fade--left { background: linear-gradient(90deg, var(--jm-bg), transparent); }
.jm-gallery-teaser__fade--right { inset: 0 0 0 auto; background: linear-gradient(270deg, var(--jm-bg), transparent); }

.jm-gallery-teaser__hint {
	text-align: center;
	margin: 0;
}

.jm-gallery-teaser__ctas {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	justify-content: center;
	margin-top: 34px;
}

/* -------------------------------- Accordion -------------------------------- */

.jm-accordion {
	display: grid;
	gap: 12px;
}

.jm-accordion__item {
	border: var(--jm-border);
	border-radius: 20px;
	overflow: hidden;
	background: var(--jm-bg);
}

.jm-accordion__heading { margin: 0; }

.jm-accordion__trigger {
	all: unset;
	cursor: pointer;
	display: flex;
	gap: 16px;
	align-items: center;
	width: 100%;
	padding: 18px 20px;
	box-sizing: border-box;
}

.jm-accordion__trigger:hover,
.jm-accordion__trigger:focus-visible {
	background: color-mix(in srgb, var(--jm-bg) 80%, var(--jm-navy) 20%);
}

.jm-accordion__trigger span:first-child {
	font-family: var(--jm-font-display);
	font-size: 16px;
	line-height: 1.3;
	flex: 1;
	color: var(--jm-navy);
	text-align: left;
}

.jm-accordion__sign {
	font-family: var(--jm-font-display);
	font-size: 20px;
	color: var(--jm-pink);
}

.jm-accordion__panel {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows 0.35s var(--jm-ease-soft);
}

.jm-accordion__panel[aria-hidden="false"],
.jm-accordion__panel.is-open {
	grid-template-rows: 1fr;
}

.jm-accordion__panel-inner {
	overflow: hidden;
	min-height: 0;
	padding: 0 20px;
}

.jm-accordion__panel.is-open .jm-accordion__panel-inner {
	padding: 0 20px 20px;
}

.jm-accordion__panel-inner p {
	margin: 0;
	font-size: 16px;
	line-height: 1.6;
	color: var(--jm-ink);
}

.jm-faq__footer {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	align-items: center;
	margin-top: 30px;
}

/* -------------------------------- Newsletter -------------------------------- */

.jm-newsletter {
	text-align: center;
}

.jm-newsletter .jm-heading { margin-bottom: 10px; }

.jm-newsletter__form {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: center;
	margin-top: 26px;
}

.jm-newsletter__input {
	flex: 1 1 250px;
	min-width: 0;
	font-family: var(--jm-font-body);
	font-size: 16px;
	padding: 15px 20px;
	border: var(--jm-border);
	border-radius: 999px;
	background: var(--jm-white);
	color: var(--jm-navy);
	outline: none;
}

.jm-newsletter__input:focus-visible {
	box-shadow: 0 0 0 4px rgba(27, 58, 92, 0.2);
}

.jm-newsletter__success {
	display: inline-block;
	margin-top: 26px;
	background: var(--jm-navy);
	color: var(--jm-yellow);
	border: var(--jm-border);
	border-radius: 999px;
	padding: 18px 28px;
	font-family: var(--jm-font-display);
	font-size: 14px;
}

.jm-newsletter__error {
	margin-top: 12px;
	color: var(--jm-newsletter-ink);
	font-weight: 700;
	background: var(--jm-white);
	display: inline-block;
	padding: 8px 16px;
	border-radius: 999px;
}

/* --------------------------------- Poll demo aria-live tweak --------------- */

[data-poll-demo] [aria-pressed="true"] {
	outline: 3px solid var(--jm-navy);
	outline-offset: -3px;
}

/* ------------------------------- Responsive -------------------------------- */

@media (max-width: 700px) {
	.jm-hero__price-badge,
	.jm-hero__annual-badge {
		transform: scale(0.85);
	}
}
