/* Giggle Town — passes page styles (generated from the design; one block per section). */

/* passes-hero ------------------------------------------------- */
.passes-hero {
	position: relative;
	overflow: hidden;
	background: radial-gradient(circle at 88% 18%, rgba(255, 255, 255, 0.14) 0px, rgba(255, 255, 255, 0) 42%), linear-gradient(135deg, rgb(12, 66, 154) 0%, rgb(10, 55, 132) 100%);
	padding: 76px 24px 128px;
	color: rgb(255, 255, 255);
}
.passes-hero__star {
	position: absolute;
}
.passes-hero__star--1 {
	left: 4%;
	top: 14%;
	opacity: 0.9;
}
.passes-hero__star--2 {
	left: 46%;
	top: 9%;
	opacity: 0.8;
}
.passes-hero__star--3 {
	right: 6%;
	top: 18%;
	opacity: 0.85;
}
.passes-hero__row {
	position: relative;
	max-width: 1180px;
	margin: 0px auto;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 48px 64px;
}
.passes-hero__box {
	flex: 1 1 480px;
	min-width: 0px;
}
.passes-hero__title {
	margin: 0px;
	font-family: Fredoka, sans-serif;
	font-weight: 700;
	font-size: clamp(44px, 6vw, 76px);
	line-height: 1.02;
	text-transform: uppercase;
}
.passes-hero__highlight {
	color: rgb(255, 217, 59);
}
.passes-hero__lead {
	margin: 20px 0px 0px;
	font-family: Fredoka, sans-serif;
	font-weight: 600;
	font-size: clamp(22px, 2.2vw, 28px);
	color: rgb(255, 217, 59);
}
.passes-hero__text {
	max-width: 560px;
	font-size: 18px;
	line-height: 1.7;
	font-weight: 600;
	color: rgb(220, 230, 255);
}
.passes-hero__text--first {
	margin: 18px 0px 0px;
}
.passes-hero__text--next {
	margin: 12px 0px 0px;
}
.passes-hero__actions {
	margin-top: 30px;
}
.passes-hero__decor {
	position: relative;
	flex: 1 1 400px;
	max-width: 480px;
	min-width: 0px;
	height: 400px;
}
.passes-hero__img {
	position: absolute;
	height: auto;
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	object-fit: cover;
	border: 8px solid rgb(255, 255, 255);
}
.passes-hero__img--left {
	left: 0px;
	top: 20px;
	width: 62%;
	box-shadow: rgb(255, 217, 59) 0px 0px 0px 5px, rgba(3, 18, 70, 0.45) 0px 24px 50px;
}
.passes-hero__img--right {
	right: 0px;
	bottom: 0px;
	width: 56%;
	box-shadow: rgb(30, 79, 194) 0px 0px 0px 5px, rgba(3, 18, 70, 0.45) 0px 24px 50px;
}
.passes-hero__wave {
	position: absolute;
	left: 0px;
	bottom: -1px;
	width: 100%;
	height: 60px;
	display: block;
}

/* passes-plans ------------------------------------------------ */
.passes-plans {
	background: rgb(246, 251, 254);
	padding: 72px 24px 88px;
	text-align: center;
}
.passes-plans__cards {
	max-width: 1040px;
	margin: 0px auto;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: stretch;
	gap: 56px 36px;
	text-align: left;
}
.passes-plans__card {
	position: relative;
	flex: 1 1 400px;
	max-width: 500px;
	display: flex;
	flex-direction: column;
	background: rgb(255, 255, 255);
	border-radius: 26px;
	box-shadow: rgba(10, 42, 110, 0.1) 0px 18px 40px;
}
.passes-plans__card-header {
	position: relative;
	min-height: 112px;
	border-radius: 26px 26px 0px 0px;
}
.passes-plans__card-header--yellow {
	padding: 24px 28px 34px 138px;
	background: rgb(255, 217, 59);
}
.passes-plans__card-header--blue {
	padding: 24px 138px 34px 30px;
	background: rgb(30, 79, 194);
}
.passes-plans__card-avatar {
	position: absolute;
	width: 100px;
	height: 100px;
	border-radius: 50%;
	object-fit: cover;
	border: 4px solid rgb(255, 255, 255);
}
.passes-plans__card-avatar--left {
	top: -22px;
	left: 22px;
	box-shadow: rgba(10, 42, 110, 0.2) 0px 6px 14px;
}
.passes-plans__card-avatar--right {
	top: -22px;
	right: 22px;
	box-shadow: rgba(10, 42, 110, 0.25) 0px 6px 14px;
}
.passes-plans__card-title {
	margin: 0px;
	font-family: Fredoka, sans-serif;
	font-weight: 700;
	font-size: 28px;
	text-transform: uppercase;
}
.passes-plans__card-title--giggle-pass {
	color: rgb(10, 42, 110);
}
.passes-plans__card-title--super-fun {
	color: rgb(255, 255, 255);
}
.passes-plans__card-tagline--dark {
	margin: 6px 0px 0px;
	font-size: 16px;
	font-weight: 800;
	color: rgb(10, 42, 110);
}
.passes-plans__card-desc {
	margin: 10px 0px 0px;
	font-size: 16px;
	line-height: 1.6;
	font-weight: 600;
	color: rgb(59, 74, 120);
}
.passes-plans__card-tagline--light {
	margin: 6px 0px 0px;
	font-size: 16px;
	font-weight: 800;
	color: rgb(227, 236, 255);
}
.passes-plans__card-wave {
	position: absolute;
	left: 0px;
	bottom: -1px;
	width: 100%;
	height: 20px;
	display: block;
}
.passes-plans__card-stack {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	padding: 18px 30px 32px;
}
.passes-plans__card-price {
	margin: 0px;
	font-family: Fredoka, sans-serif;
	font-weight: 700;
	font-size: 40px;
	color: rgb(10, 42, 110);
}
.passes-plans__card-eyebrow {
	margin: 18px 0px 0px;
	font-family: Fredoka, sans-serif;
	font-weight: 700;
	font-size: 14px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgb(59, 74, 120);
}
.passes-plans__card-list {
	list-style: none;
	margin: 12px 0px 0px;
	padding: 0px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	font-size: 16px;
	font-weight: 700;
	color: rgb(10, 42, 110);
}
.passes-plans__card-item {
	display: flex;
	align-items: center;
	gap: 10px;
}
.passes-plans__card-icon {
	flex: 0 0 auto;
}
.passes-plans__card-decor {
	flex: 1 1 auto;
	min-height: 26px;
}

/* passes-before ----------------------------------------------- */
.passes-before {
	background: rgb(255, 255, 255);
	padding: 88px 24px 96px;
	text-align: center;
}
.passes-before__cards {
	max-width: 1140px;
	margin: 48px auto 0px;
	display: grid;
	grid-template-columns: repeat(3, minmax(0px, 1fr));
	gap: 24px;
	text-align: left;
}
.passes-before__card {
	padding: 30px 28px 32px;
	border-radius: 24px;
}
.passes-before__card--grip-socks {
	background: rgb(255, 248, 214);
}
.passes-before__card--age-requirements {
	background: rgb(238, 244, 255);
}
.passes-before__card--pass-inclusions {
	background: rgb(236, 248, 239);
}
.passes-before__card-icon {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: rgb(255, 255, 255);
}
.passes-before__card-icon--grip-socks {
	background: rgb(245, 184, 0);
}
.passes-before__card-icon--age-requirements {
	background: rgb(31, 95, 196);
}
.passes-before__card-icon--pass-inclusions {
	background: rgb(46, 139, 71);
}
.passes-before__card-title {
	margin: 18px 0px 0px;
	font-family: Fredoka, sans-serif;
	font-weight: 700;
	font-size: 22px;
	text-transform: uppercase;
	color: rgb(10, 42, 110);
}
.passes-before__card-text {
	margin: 10px 0px 0px;
	font-size: 16px;
	line-height: 1.6;
	font-weight: 600;
	color: rgb(59, 74, 120);
}
.passes-before__card-strong {
	color: rgb(10, 42, 110);
}
.passes-before__actions {
	margin-top: 44px;
}

/* Design breakpoints */
@media (max-width: 860px) {
	.passes-before__cards { grid-template-columns:minmax(0, 1fr); }
}
