:root {
	--ink: #071e3d;
	--ink-2: #0d315c;
	--blue: #1d67c9;
	--red: #e83d4e;
	--red-dark: #c9283b;
	--sky: #eaf4ff;
	--mist: #f5f8fc;
	--paper: #ffffff;
	--text: #1b2a3c;
	--muted: #607086;
	--line: #d9e4f0;
	--radius: 22px;
	--shadow: 0 24px 70px rgba(7, 30, 61, 0.13);
	--shell: min(1180px, calc(100% - 40px));
}

* {
	box-sizing: border-box;
}
html {
	scroll-behavior: smooth;
	scroll-padding-top: 100px;
}
body {
	margin: 0;
	color: var(--text);
	background: var(--paper);
	font-family: 'Open Sans', Arial, sans-serif;
	font-size: 16px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}
body:has(dialog[open]) {
	overflow: hidden;
}
img {
	max-width: 100%;
	display: block;
}
a {
	color: inherit;
	text-decoration: none;
}
button,
input,
select,
textarea {
	font: inherit;
}
button {
	color: inherit;
}
h1,
h2,
h3,
p {
	margin-top: 0;
}
h1,
h2,
h3 {
	color: var(--ink);
	line-height: 1.12;
}
h1,
h2,
h3 {
	font-family: 'Libre Baskerville', Georgia, serif;
	letter-spacing: -0.035em;
}
h1 {
	margin-bottom: 26px;
	font-size: clamp(2.8rem, 5vw, 4.8rem);
	font-weight: 700;
}
h2 {
	margin-bottom: 18px;
	font-size: clamp(2.15rem, 3.6vw, 3.4rem);
	font-weight: 700;
}
h3 {
	margin-bottom: 12px;
	font-size: 1.25rem;
}
button,
a {
	-webkit-tap-highlight-color: transparent;
}
:focus-visible {
	outline: 3px solid #ffbdc5;
	outline-offset: 4px;
}

.shell {
	width: var(--shell);
	margin-inline: auto;
}
.section {
	padding: 110px 0;
}
.skip-link {
	position: fixed;
	top: 12px;
	left: 12px;
	z-index: 1000;
	transform: translateY(-150%);
	padding: 10px 16px;
	background: var(--paper);
	color: var(--ink);
	border-radius: 8px;
}
.skip-link:focus {
	transform: none;
}
.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.ambient-symbols {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	overflow: hidden;
}
.ambient-symbol {
	position: absolute;
	display: grid;
	place-items: center;
	width: 54px;
	aspect-ratio: 1;
	color: var(--blue);
	opacity: 0.075;
	filter: drop-shadow(0 6px 12px rgba(7, 30, 61, 0.07));
	will-change: transform;
}
.ambient-symbol svg {
	width: 100%;
	height: 100%;
	fill: none;
	stroke: currentColor;
	stroke-width: 2.2;
	stroke-linecap: round;
	stroke-linejoin: round;
}
.ambient-symbol--plane {
	top: 18%;
	left: 1.4%;
	width: 54px;
	color: var(--red);
	animation: ambient-float-a 20s ease-in-out infinite alternate;
}
.ambient-symbol--book {
	top: 12%;
	right: 1.2%;
	width: 58px;
	animation: ambient-float-b 24s ease-in-out infinite alternate;
}
.ambient-symbol--speech {
	top: 16%;
	left: 1.8%;
	width: 48px;
	color: var(--red);
	animation: ambient-float-c 22s ease-in-out infinite alternate;
}
.ambient-symbol--pencil {
	top: 14%;
	right: 2.2%;
	width: 46px;
	animation: ambient-float-a 26s ease-in-out -4s infinite alternate-reverse;
}
.ambient-symbol--globe {
	top: auto;
	bottom: 10%;
	right: 3%;
	width: 42px;
	color: var(--red);
	animation: ambient-float-b 25s ease-in-out -7s infinite alternate-reverse;
}
.ambient-symbol--calendar {
	top: 12%;
	right: 2%;
	width: 56px;
	color: var(--red);
	animation: ambient-float-c 23s ease-in-out -5s infinite alternate;
}

@keyframes ambient-float-a {
	0% { transform: translate3d(-2px, 5px, 0) rotate(-3deg); }
	50% { transform: translate3d(4px, -3px, 0) rotate(2deg); }
	100% { transform: translate3d(-1px, -8px, 0) rotate(4deg); }
}
@keyframes ambient-float-b {
	0% { transform: translate3d(2px, -5px, 0) rotate(3deg); }
	55% { transform: translate3d(-5px, 3px, 0) rotate(-2deg); }
	100% { transform: translate3d(2px, 8px, 0) rotate(-4deg); }
}
@keyframes ambient-float-c {
	0% { transform: translate3d(-3px, 6px, 0) rotate(-2deg) scale(0.99); }
	50% { transform: translate3d(5px, 0, 0) rotate(3deg) scale(1.01); }
	100% { transform: translate3d(-1px, -6px, 0) rotate(-3deg) scale(1); }
}
@keyframes stamp-float {
	0%, 100% { transform: translate3d(0, 0, 0) rotate(9deg); }
	35% { transform: translate3d(-5px, -10px, 0) rotate(5deg); }
	70% { transform: translate3d(4px, 4px, 0) rotate(12deg); }
}
@keyframes ticket-float {
	0%, 100% { transform: translate3d(0, 0, 0) rotate(-2deg); }
	40% { transform: translate3d(-7px, -7px, 0) rotate(-0.5deg); }
	72% { transform: translate3d(4px, 6px, 0) rotate(-3deg); }
}

.hero > .shell,
.offer > .shell,
.proof > .shell,
.pricing > .shell {
	position: relative;
	z-index: 1;
}
.offer,
.proof,
.pricing {
	position: relative;
	overflow: hidden;
}

.topbar {
	background: var(--ink);
	color: #fff;
	font-size: 0.78rem;
	font-weight: 750;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.topbar__inner {
	min-height: 34px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
}
.topbar a {
	color: #fff;
}
.status-dot {
	display: inline-block;
	width: 7px;
	height: 7px;
	margin-right: 8px;
	border-radius: 50%;
	background: #77e0a5;
	box-shadow: 0 0 0 5px rgba(119, 224, 165, 0.13);
}

.site-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgba(255, 255, 255, 0.93);
	border-bottom: 1px solid rgba(217, 228, 240, 0.8);
	backdrop-filter: blur(18px);
}
.header__inner {
	min-height: 116px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
}
.brand {
	display: inline-flex;
	align-items: center;
	color: var(--ink);
}
.brand__logo {
	width: auto;
	height: 96px;
	object-fit: contain;
}
.nav {
	display: flex;
	align-items: center;
	gap: 17px;
	font-size: 0.8rem;
	font-weight: 700;
}
.nav a:not(.button) {
	position: relative;
}
.nav a:not(.button)::after {
	content: '';
	position: absolute;
	right: 0;
	bottom: -5px;
	left: 0;
	height: 2px;
	background: var(--red);
	transform: scaleX(0);
	transition: transform 0.2s ease;
}
.nav a:hover::after {
	transform: scaleX(1);
}
.nav a[aria-current='page']::after {
	transform: scaleX(1);
}
.nav-toggle {
	display: none;
	width: 44px;
	height: 44px;
	padding: 10px;
	background: none;
	border: 0;
}
.nav-toggle span:not(.sr-only) {
	display: block;
	height: 2px;
	margin: 5px 0;
	background: var(--ink);
}

.button {
	min-height: 50px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 18px;
	padding: 0 24px;
	border: 2px solid var(--red);
	border-radius: 999px;
	background: var(--red);
	color: #fff;
	font-weight: 800;
	line-height: 1;
	cursor: pointer;
	transition:
		transform 0.2s ease,
		background 0.2s ease,
		border-color 0.2s ease,
		box-shadow 0.2s ease;
}
.button:hover {
	transform: translateY(-2px);
	background: var(--red-dark);
	border-color: var(--red-dark);
	box-shadow: 0 12px 26px rgba(232, 61, 78, 0.22);
}
.button > span[aria-hidden='true'] {
	display: inline-block;
	transition: transform 0.2s ease;
}
.button:hover > span[aria-hidden='true'] {
	transform: translateX(4px);
}
.button--small {
	min-height: 42px;
	padding: 0 18px;
}
.button--ghost {
	background: transparent;
	border-color: var(--ink);
	color: var(--ink);
}
.button--ghost:hover {
	background: var(--ink);
	border-color: var(--ink);
	color: #fff;
	box-shadow: none;
}
.button--dark {
	background: var(--ink);
	border-color: var(--ink);
}
.button--dark:hover {
	background: var(--ink-2);
	border-color: var(--ink-2);
	box-shadow: none;
}
.button--full {
	width: 100%;
}
.button-row {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}
.eyebrow {
	margin-bottom: 16px;
	color: var(--blue);
	font-size: 0.78rem;
	font-weight: 900;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}
.eyebrow span {
	color: var(--red);
}
.eyebrow--light {
	color: #81b8ff;
}

.hero {
	--hero-ambient-x: 0px;
	--hero-ambient-y: 0px;
	--hero-photo-x: 0px;
	--hero-photo-y: 0px;
	position: relative;
	min-height: 700px;
	display: grid;
	align-items: center;
	overflow: hidden;
	background: linear-gradient(110deg, #f7fbff 0%, #fff 55%, #e6f2ff 100%);
}
.hero::before {
	content: '';
	position: absolute;
	width: 460px;
	height: 460px;
	top: -280px;
	right: 14%;
	border: 90px solid rgba(29, 103, 201, 0.06);
	border-radius: 50%;
	animation: hero-halo 14s ease-in-out infinite alternate;
	transform-origin: center;
}
.hero .ambient-symbols {
	translate: var(--hero-ambient-x) var(--hero-ambient-y);
	transition: translate 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}
.hero .ambient-symbol--plane,
.hero .ambient-symbol--globe,
.hero-symbol {
	opacity: 0.095;
}
.hero-symbol {
	z-index: 0;
}
.hero-symbol--cap {
	top: 7%;
	left: 42%;
	width: 64px;
	animation: hero-drift-a 10s ease-in-out -4s infinite alternate;
}
.hero-symbol--book {
	right: 1.5%;
	bottom: 34%;
	width: 58px;
	color: var(--red);
	animation: hero-drift-b 12s ease-in-out -7s infinite alternate;
}
.hero-symbol--learning {
	left: 2.2%;
	bottom: 15%;
	width: 52px;
	animation: hero-drift-c 11s ease-in-out -5s infinite alternate;
}
.hero-symbol--spark {
	top: 12%;
	right: 43%;
	width: 46px;
	color: var(--red);
	animation: hero-drift-b 9s ease-in-out -2s infinite alternate-reverse;
}
.hero .ambient-symbol--plane {
	animation: hero-plane-flight 10s ease-in-out -3s infinite alternate;
}
.hero .ambient-symbol--globe {
	animation: hero-globe-orbit 12s ease-in-out -6s infinite alternate;
}
@keyframes hero-drift-a {
	0% { transform: translate3d(-12px, 14px, 0) rotate(-8deg); }
	45% { transform: translate3d(16px, -10px, 0) rotate(5deg); }
	100% { transform: translate3d(-2px, -25px, 0) rotate(10deg); }
}
@keyframes hero-drift-b {
	0% { transform: translate3d(10px, -13px, 0) rotate(7deg) scale(0.92); }
	55% { transform: translate3d(-18px, 9px, 0) rotate(-6deg) scale(1.08); }
	100% { transform: translate3d(7px, 23px, 0) rotate(-10deg) scale(0.98); }
}
@keyframes hero-drift-c {
	0% { transform: translate3d(-10px, 17px, 0) rotate(-6deg); }
	50% { transform: translate3d(20px, 1px, 0) rotate(7deg); }
	100% { transform: translate3d(-5px, -21px, 0) rotate(-2deg); }
}
@keyframes hero-plane-flight {
	0% { transform: translate3d(-12px, 20px, 0) rotate(-9deg) scale(0.94); }
	45% { transform: translate3d(26px, -8px, 0) rotate(5deg) scale(1.04); }
	100% { transform: translate3d(47px, -26px, 0) rotate(-2deg) scale(0.98); }
}
@keyframes hero-globe-orbit {
	0% { transform: translate3d(0, 15px, 0) rotate(-8deg); }
	50% { transform: translate3d(-20px, -7px, 0) rotate(7deg) scale(1.1); }
	100% { transform: translate3d(9px, -20px, 0) rotate(15deg); }
}
@keyframes hero-halo {
	0% { transform: translate3d(-18px, -8px, 0) scale(0.94) rotate(-5deg); }
	100% { transform: translate3d(28px, 22px, 0) scale(1.12) rotate(7deg); }
}
@keyframes hero-photo-breathe {
	0% { transform: scale(1.015) translate3d(-0.5%, 0.4%, 0); }
	50% { transform: scale(1.045) translate3d(0.6%, -0.8%, 0); }
	100% { transform: scale(1.025) translate3d(-0.3%, -0.2%, 0); }
}
@keyframes hero-path-travel {
	0% { transform: translate3d(-18px, 8px, 0) rotate(-10deg) scaleX(0.96); opacity: 0.58; }
	100% { transform: translate3d(32px, -12px, 0) rotate(-5deg) scaleX(1.08); opacity: 1; }
}
.hero__grid {
	position: relative;
	display: grid;
	grid-template-columns: 1.08fr 0.92fr;
	align-items: center;
	gap: clamp(40px, 6vw, 90px);
	padding-block: 66px 74px;
}
.hero__copy {
	position: relative;
	z-index: 2;
}
.hero__copy.reveal.is-visible > * {
	animation: hero-copy-arrive 0.7s both cubic-bezier(0.22, 1, 0.36, 1);
}
.hero__copy.reveal.is-visible > :nth-child(2) { animation-delay: 0.07s; }
.hero__copy.reveal.is-visible > :nth-child(3) { animation-delay: 0.14s; }
.hero__copy.reveal.is-visible > :nth-child(4) { animation-delay: 0.21s; }
.hero__copy.reveal.is-visible > :nth-child(5) { animation-delay: 0.28s; }
.hero__copy.reveal.is-visible > :nth-child(6) { animation-delay: 0.35s; }
@keyframes hero-copy-arrive {
	from { opacity: 0; transform: translate3d(0, 22px, 0); }
	to { opacity: 1; transform: translate3d(0, 0, 0); }
}
.hero h1 em {
	display: block;
	color: var(--red);
	font-family: 'Libre Baskerville', Georgia, serif;
	font-weight: 400;
	font-style: italic;
	font-size: 0.72em;
	letter-spacing: -0.045em;
}
.hero__services {
	max-width: 760px;
	margin-bottom: 18px;
	color: var(--ink);
	font-size: 0.92rem;
	font-weight: 800;
}
.hero__services i {
	margin: 0 5px;
	color: var(--red);
	font-style: normal;
}
.hero__lead {
	max-width: 650px;
	margin-bottom: 30px;
	color: #44566c;
	font-size: 1.08rem;
}
.hero__trust {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 20px;
	margin-top: 28px;
	color: var(--muted);
	font-size: 0.82rem;
	font-weight: 700;
}
.hero__trust span::before {
	content: '✓';
	margin-right: 7px;
	color: var(--red);
	font-weight: 900;
}
.hero__visual {
	position: relative;
	min-height: 570px;
}
.hero__photo-frame {
	position: absolute;
	inset: 0 20px 0 40px;
	overflow: hidden;
	border: 10px solid #fff;
	border-radius: 48% 48% 12px 12px;
	box-shadow: var(--shadow);
	translate: var(--hero-photo-x) var(--hero-photo-y);
	transition: translate 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}
.hero__photo-frame img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 18%;
	animation: hero-photo-breathe 11s ease-in-out infinite alternate;
}
.hero__stamp {
	position: absolute;
	top: 32px;
	right: -18px;
	width: 122px;
	aspect-ratio: 1;
	display: grid;
	place-content: center;
	transform: rotate(9deg);
	border: 2px dashed var(--red);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.92);
	color: var(--red);
	text-align: center;
	text-transform: uppercase;
	box-shadow: 0 12px 32px rgba(7, 30, 61, 0.12);
	animation: stamp-float 6s ease-in-out infinite;
}
.hero__stamp b {
	display: block;
	font-family: 'Libre Baskerville', Georgia, serif;
	font-size: 1.1rem;
}
.hero__stamp span {
	font-size: 0.56rem;
	font-weight: 900;
	letter-spacing: 0.12em;
}
.hero__ticket {
	position: absolute;
	right: -5px;
	bottom: 30px;
	min-width: 278px;
	padding: 18px 22px;
	transform: rotate(-2deg);
	background: var(--ink);
	color: #fff;
	border-radius: 12px;
	box-shadow: 0 20px 50px rgba(7, 30, 61, 0.28);
	animation: ticket-float 8s ease-in-out -2s infinite;
}
.hero__ticket::before {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	left: 56px;
	border-left: 1px dashed rgba(255, 255, 255, 0.35);
}
.hero__ticket small,
.hero__ticket span {
	display: block;
	padding-left: 55px;
	color: #b9d6f5;
	font-size: 0.62rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.hero__ticket strong {
	display: block;
	padding-left: 55px;
	color: #fff;
	font-size: 1.15rem;
}
.hero__ticket strong span {
	display: inline;
	padding: 0 6px;
	color: var(--red);
	font-size: 1.2rem;
}
.hero__path {
	position: absolute;
	bottom: 64px;
	left: -4vw;
	width: 42vw;
	height: 170px;
	border-top: 2px dashed rgba(29, 103, 201, 0.18);
	border-radius: 50%;
	transform: rotate(-8deg);
	animation: hero-path-travel 7s ease-in-out infinite alternate;
}

.section-heading {
	display: grid;
	grid-template-columns: 1.1fr 0.7fr;
	align-items: end;
	gap: 60px;
	margin-bottom: 48px;
}
.section-heading h2 {
	margin-bottom: 0;
}
.section-heading > p {
	max-width: 520px;
	margin-bottom: 4px;
	color: var(--muted);
}
.section-heading--center {
	display: block;
	max-width: 720px;
	margin-inline: auto;
	text-align: center;
}
.section-heading--center > p {
	margin: 16px auto 0;
}

.offer {
	background: #fff;
}
.offer-grid {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 18px;
}
.offer-card {
	position: relative;
	min-height: 300px;
	display: flex;
	flex-direction: column;
	grid-column: span 2;
	overflow: hidden;
	padding: 30px;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: var(--mist);
	transition:
		transform 0.25s ease,
		box-shadow 0.25s ease;
}
.offer-card:hover {
	transform: translateY(-5px);
	box-shadow: var(--shadow);
}
.offer-card__code {
	transition:
		transform 0.25s ease,
		background 0.25s ease;
}
.offer-card:hover .offer-card__code {
	transform: translateY(-3px) rotate(-2deg);
	background: rgba(255, 255, 255, 0.55);
}
.offer-card--navy:hover .offer-card__code {
	background: rgba(255, 255, 255, 0.08);
}
.offer-card--featured {
	grid-column: span 3;
	min-height: 330px;
	background: var(--sky);
}
.offer-card:nth-child(n + 3) {
	grid-column: span 3;
}
.offer-card__code {
	width: fit-content;
	margin-bottom: auto;
	padding: 5px 10px;
	border: 1px solid currentColor;
	border-radius: 999px;
	color: var(--blue);
	font-size: 0.72rem;
	font-weight: 900;
	letter-spacing: 0.08em;
}
.offer-card__meta {
	margin: 26px 0 8px;
	color: var(--muted);
	font-size: 0.7rem;
	font-weight: 900;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.offer-card h3 {
	max-width: 360px;
	font-size: clamp(1.45rem, 2.5vw, 2.2rem);
}
.offer-card p:not(.offer-card__meta) {
	margin-bottom: 22px;
	color: var(--muted);
	line-height: 1.55;
}
.offer-card a,
.text-link {
	width: fit-content;
	margin-top: auto;
	padding: 0;
	border: 0;
	border-bottom: 1px solid currentColor;
	background: transparent;
	color: var(--ink);
	font-weight: 800;
	cursor: pointer;
}
.offer-card--navy {
	background: var(--ink);
	color: #fff;
	border-color: var(--ink);
}
.offer-card--navy h3,
.offer-card--navy a,
.offer-card--navy .text-link {
	color: #fff;
}
.offer-card--navy p:not(.offer-card__meta) {
	color: #bad0e6;
}
.offer-card--navy .offer-card__code {
	color: #84b9ff;
}
.offer-card--navy .offer-card__meta {
	color: #84b9ff;
}
.offer-card--image {
	padding: 0;
	color: #fff;
	background: var(--ink);
}
.offer-card--image::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to top,
		rgba(7, 30, 61, 0.96),
		rgba(7, 30, 61, 0.05) 70%
	);
}
.offer-card--image img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.offer-card__image-copy {
	position: relative;
	z-index: 1;
	margin-top: auto;
	padding: 28px 30px;
}
.offer-card--image h3,
.offer-card--image .text-link {
	color: #fff;
}
.offer-card--image .offer-card__meta {
	color: #b6d6ff;
}

.why {
	overflow: hidden;
	background: var(--ink);
	color: #fff;
}
.why .shell {
	display: grid;
	grid-template-columns: 0.78fr 1.22fr;
	gap: 80px;
}
.why h2 {
	color: #fff;
}
.why__intro > p:last-child {
	color: #b8cce0;
}
.benefits {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
}
.benefits article {
	min-height: 185px;
	padding: 5px 30px 26px;
	border-left: 1px solid rgba(255, 255, 255, 0.14);
	border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}
.benefits article:nth-last-child(-n + 2) {
	border-bottom: 0;
}
.benefits article:last-child {
	grid-column: span 2;
	min-height: auto;
	padding-top: 25px;
}
.benefits span {
	color: var(--red);
	font-size: 0.68rem;
	font-weight: 900;
	letter-spacing: 0.14em;
}
.benefits h3 {
	margin: 12px 0 8px;
	color: #fff;
}
.benefits p {
	margin: 0;
	color: #a9bed5;
	font-size: 0.9rem;
}

.about {
	background: var(--mist);
}
.about__grid {
	display: grid;
	grid-template-columns: 0.82fr 1.18fr;
	align-items: center;
	gap: clamp(50px, 8vw, 110px);
}
.about__visual {
	position: relative;
}
.about__visual img {
	width: 100%;
	max-height: 610px;
	object-fit: cover;
	object-position: center 18%;
	border-radius: 14px 110px 14px 14px;
	box-shadow: var(--shadow);
}
.about__visual blockquote {
	position: absolute;
	right: -45px;
	bottom: 34px;
	max-width: 270px;
	margin: 0;
	padding: 20px 24px;
	transform: rotate(-2deg);
	background: var(--red);
	color: #fff;
	border-radius: 10px;
	font-family: 'Open Sans', Arial, sans-serif;
	font-size: 1.12rem;
	font-style: italic;
	box-shadow: 0 16px 34px rgba(232, 61, 78, 0.24);
}
.about__copy .lead {
	color: var(--ink);
	font-size: 1.08rem;
	font-weight: 650;
}
.about__copy > p {
	color: var(--muted);
}
.check-list {
	display: grid;
	gap: 10px;
	margin: 24px 0 30px;
	padding: 0;
	list-style: none;
}
.check-list li {
	position: relative;
	padding-left: 28px;
}
.check-list li::before {
	content: '✓';
	position: absolute;
	left: 0;
	color: var(--red);
	font-weight: 900;
}

.proof {
	background: #fff;
}
.result-chip {
	display: flex;
	align-items: center;
	gap: 14px;
	justify-self: end;
	padding: 12px 18px;
	border: 1px solid var(--line);
	border-radius: 16px;
	background: var(--mist);
}
.result-chip strong {
	color: var(--red);
	font-family: 'Open Sans', Arial, sans-serif;
	font-size: 2.5rem;
	line-height: 1;
}
.result-chip span {
	color: var(--muted);
	font-size: 0.68rem;
	font-weight: 800;
	line-height: 1.35;
	text-transform: uppercase;
}
.review-showcase {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
	align-items: stretch;
}
.review-stories {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px;
	padding: 26px;
	border-radius: calc(var(--radius) + 8px);
	background: var(--sky);
	overflow: hidden;
}
.review-story {
	position: relative;
	min-width: 0;
	margin: 0;
	transform: rotate(-1.8deg);
}
.review-story:nth-child(2) {
	transform: translateY(-12px) rotate(1.4deg);
}
.review-story:nth-child(3) {
	transform: rotate(2deg);
}
.review-story img {
	display: block;
	width: 100%;
	height: 330px;
	max-height: 330px;
	border: 7px solid #fff;
	border-radius: 18px;
	object-fit: cover;
	background: #fff;
	box-shadow: 0 18px 38px rgba(6, 33, 68, 0.2);
}
.review-story figcaption {
	position: absolute;
	right: 12px;
	bottom: 13px;
	left: 12px;
	padding: 9px 11px;
	border-radius: 9px;
	background: rgba(3, 20, 42, 0.88);
	color: #fff;
	font-size: 0.62rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-align: center;
	text-transform: uppercase;
	backdrop-filter: blur(5px);
}
.review-notes {
	display: flex;
	flex-direction: column;
	padding: 32px;
	border-radius: calc(var(--radius) + 8px);
	background: var(--ink);
	color: #fff;
}
.review-notes__label {
	width: fit-content;
	padding: 6px 10px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.1);
	color: #bdd7f5;
	font-size: 0.64rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.review-notes blockquote {
	margin: auto 0;
}
.quote-mark {
	height: 52px;
	color: var(--red);
	font-family: 'Libre Baskerville', Georgia, serif;
	font-size: 5rem;
	line-height: 0.8;
}
.review-notes blockquote p {
	margin: 0 0 20px;
	font-family: 'Libre Baskerville', Georgia, serif;
	font-size: 1.28rem;
	line-height: 1.5;
}
.review-notes blockquote footer {
	color: #b8c8da;
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.review-notes__foot {
	margin: 32px 0 18px;
	padding-top: 24px;
	border-top: 1px solid rgba(255, 255, 255, 0.15);
	color: #b8c8da;
	font-size: 0.82rem;
}
.review-notes .text-link {
	color: #fff;
}

.pricing {
	background: var(--sky);
}
.pricing-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 14px;
}
.price-card {
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: 460px;
	padding: 28px;
	border: 1px solid #cedff1;
	border-radius: var(--radius);
	background: #fff;
	overflow: hidden;
	transition:
		transform 0.28s ease,
		box-shadow 0.28s ease,
		border-color 0.28s ease;
}
.price-card:hover {
	transform: translateY(-7px);
	border-color: #aac8e8;
	box-shadow: 0 22px 48px rgba(7, 30, 61, 0.12);
}
.price-card--accent {
	border: 2px solid var(--red);
	box-shadow: 0 18px 40px rgba(232, 61, 78, 0.12);
}
.price-card__tag {
	width: fit-content;
	margin-bottom: 44px;
	padding: 5px 9px;
	border-radius: 999px;
	background: var(--sky);
	color: var(--blue);
	font-size: 0.64rem;
	font-weight: 900;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.price-card__code {
	position: absolute;
	top: 20px;
	right: 22px;
	color: #dce8f6;
	font-family: 'Libre Baskerville', Georgia, serif;
	font-size: 2.25rem;
	font-weight: 700;
	letter-spacing: -0.06em;
}
.price-card--accent .price-card__code {
	color: #f8cbd0;
}
.price-card--accent .price-card__tag {
	background: var(--red);
	color: #fff;
}
.price-card h3 {
	min-height: 54px;
	font-size: 1.45rem;
}
.price {
	margin: 22px 0 5px;
}
.price strong {
	display: block;
	color: var(--ink);
	font-family: 'Open Sans', Arial, sans-serif;
	font-size: 2.45rem;
	line-height: 1;
	letter-spacing: -0.05em;
}
.price span {
	color: var(--muted);
	font-size: 0.8rem;
}
.price-total {
	margin-bottom: 18px;
	color: var(--muted);
	font-size: 0.82rem;
}
.price-card__features {
	display: grid;
	gap: 9px;
	margin: 0 0 24px;
	padding: 18px 0 0;
	border-top: 1px solid var(--line);
	list-style: none;
}
.price-card__features li {
	position: relative;
	padding-left: 20px;
	color: var(--muted);
	font-size: 0.76rem;
	line-height: 1.45;
}
.price-card__features li::before {
	content: '•';
	position: absolute;
	left: 4px;
	color: var(--red);
	font-size: 1.15rem;
	line-height: 1;
}
.price-card .button {
	width: 100%;
	margin-top: auto;
	padding-inline: 14px;
	font-size: 0.86rem;
}

.calendar-teaser {
	position: relative;
	overflow: hidden;
	padding: 78px 0;
	background: var(--ink);
	color: #fff;
}
.calendar-teaser__inner {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 70px;
}
.calendar-teaser h2 {
	max-width: 760px;
	margin-bottom: 16px;
	color: #fff;
	font-size: clamp(2rem, 3.4vw, 3.2rem);
}
.calendar-teaser p:not(.eyebrow) {
	max-width: 720px;
	margin: 0;
	color: #b8cce0;
}
.calendar-teaser__action {
	display: grid;
	gap: 16px;
	min-width: 250px;
}
.calendar-teaser__action > span {
	color: #91b5dc;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-align: center;
	text-transform: uppercase;
}

.enrollment {
	padding: 50px 0;
	border-block: 1px solid var(--line);
	background: #fff;
}
.enrollment__inner {
	display: grid;
	grid-template-columns: 0.58fr 1.42fr;
	align-items: center;
	gap: 50px;
}
.enrollment h2 {
	margin: 0;
	font-size: 2.25rem;
}
.steps {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: steps;
}
.steps li {
	position: relative;
	display: flex;
	align-items: center;
	gap: 9px;
	padding: 0 14px;
	color: var(--ink);
	font-size: 0.82rem;
	font-weight: 800;
	line-height: 1.25;
}
.steps li:not(:last-child)::after {
	content: '→';
	position: absolute;
	right: -5px;
	color: var(--red);
}
.steps span {
	width: 31px;
	aspect-ratio: 1;
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	border: 1px solid var(--blue);
	border-radius: 50%;
	color: var(--blue);
	font-size: 0.72rem;
}

.contact {
	background: var(--ink);
	color: #fff;
}
.contact__grid {
	display: grid;
	grid-template-columns: 0.76fr 1.24fr;
	gap: clamp(45px, 8vw, 105px);
	align-items: start;
}
.contact h2 {
	color: #fff;
}
.contact__intro > p:not(.eyebrow) {
	color: #b9cce0;
}
.contact__direct {
	display: grid;
	gap: 13px;
	margin-top: 38px;
}
.contact__direct a {
	width: fit-content;
	color: #fff;
	font-size: 1.1rem;
	font-weight: 800;
}
.contact__direct small {
	display: block;
	color: #84b9ff;
	font-size: 0.62rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}
.signup-form {
	display: grid;
	gap: 17px;
	padding: 34px;
	border-radius: var(--radius);
	background: #fff;
	color: var(--text);
	box-shadow: 0 32px 80px rgba(0, 0, 0, 0.22);
}
.form-row {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 15px;
}
.signup-form label {
	display: grid;
	gap: 6px;
	color: var(--ink);
	font-size: 0.73rem;
	font-weight: 800;
}
.signup-form input,
.signup-form select,
.signup-form textarea {
	width: 100%;
	border: 1px solid var(--line);
	border-radius: 9px;
	background: var(--mist);
	color: var(--text);
}
.signup-form input,
.signup-form select {
	height: 46px;
	padding: 0 12px;
}
.signup-form textarea {
	resize: vertical;
	padding: 11px 12px;
}
.signup-form input:focus,
.signup-form select:focus,
.signup-form textarea:focus {
	border-color: var(--blue);
	outline: 3px solid rgba(29, 103, 201, 0.12);
}
.consent {
	display: flex !important;
	grid-template-columns: auto 1fr;
	align-items: flex-start;
	font-weight: 500 !important;
}
.consent input {
	width: 18px;
	height: 18px;
	flex: 0 0 auto;
	margin-top: 2px;
}
.consent a {
	color: var(--blue);
	text-decoration: underline;
}
.form-note {
	margin: -5px 0 0;
	color: var(--muted);
	font-size: 0.7rem;
	text-align: center;
}
.form-note.is-success {
	color: #147344;
	font-weight: 700;
}

.social {
	padding: 90px 0;
	background: #f8fafc;
}
.social__inner {
	display: grid;
	grid-template-columns: minmax(280px, 0.7fr) minmax(0, 1.3fr);
	gap: 28px 70px;
	align-items: center;
}
.social h2 {
	max-width: 630px;
	margin-bottom: 22px;
	font-size: clamp(2.2rem, 4vw, 3.7rem);
}
.social__copy > p:last-child {
	max-width: 540px;
	color: var(--muted);
}
.social__gallery {
	display: grid;
	grid-template-columns: 1.3fr 0.7fr;
	grid-template-rows: repeat(2, 205px);
	gap: 10px;
	min-width: 0;
}
.social-photo {
	position: relative;
	margin: 0;
	border-radius: 16px;
	overflow: hidden;
}
.social-photo--wide {
	grid-row: 1 / -1;
}
.social-photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.social-photo--wide img {
	object-position: center 36%;
}
.social-photo:nth-child(2) img {
	object-position: center 38%;
}
.social-photo:nth-child(3) img {
	object-position: center 48%;
}
.social-photo figcaption {
	position: absolute;
	bottom: 14px;
	left: 14px;
	padding: 8px 11px;
	border-radius: 8px;
	background: var(--red);
	color: #fff;
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
.social__links {
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 10px;
	margin-top: 20px;
}
.social__links a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 18px 20px;
	border: 1px solid var(--line);
	border-radius: 12px;
	background: #fff;
	color: var(--ink);
	font-weight: 800;
	transition:
		background 0.2s,
		color 0.2s;
}
.social__links a:hover {
	background: var(--ink);
	color: #fff;
}
.social__platform {
	display: inline-flex;
	align-items: center;
	gap: 11px;
}
.social__icon {
	width: 26px;
	height: 26px;
	flex: 0 0 auto;
	transition: transform 0.25s ease;
}
.social__icon--instagram {
	color: #d62976;
}
.social__icon--facebook {
	color: #1877f2;
}
.social__icon--youtube {
	color: #ff0000;
}
.social__icon--tiktok {
	color: #111;
}
.social__links a:hover .social__icon--tiktok {
	color: #fff;
}
.social__links a:hover .social__icon {
	transform: translateY(-2px) rotate(-7deg) scale(1.1);
}
.social__arrow {
	color: var(--red);
}

.footer {
	padding: 70px 0 25px;
	background: #03142a;
	color: #9fb4ca;
	font-size: 0.83rem;
}
.footer__grid {
	display: grid;
	grid-template-columns: 1.4fr repeat(3, 1fr);
	gap: 55px;
}
.brand--footer {
	width: fit-content;
	align-self: start;
}
.brand--footer .brand__logo {
	height: 118px;
	filter: brightness(0) invert(1);
}
.footer h3 {
	margin-bottom: 14px;
	color: #fff;
	font-size: 0.75rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.footer__grid > div:not(.brand) {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 7px;
}
.footer a:hover {
	color: #fff;
}
.footer__bottom {
	display: flex;
	justify-content: space-between;
	margin-top: 50px;
	padding-top: 20px;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	font-size: 0.72rem;
}

.dialog {
	width: min(650px, calc(100% - 30px));
	max-height: calc(100vh - 40px);
	padding: 40px;
	border: 0;
	border-radius: 20px;
	color: var(--text);
	box-shadow: 0 30px 100px rgba(0, 0, 0, 0.35);
}
.dialog::backdrop {
	background: rgba(3, 20, 42, 0.78);
	backdrop-filter: blur(5px);
}
.dialog h2 {
	font-size: clamp(2.2rem, 5vw, 3.5rem);
}
.dialog__close {
	position: absolute;
	top: 15px;
	right: 18px;
	width: 38px;
	height: 38px;
	border: 0;
	border-radius: 50%;
	background: var(--mist);
	color: var(--ink);
	font-size: 1.7rem;
	line-height: 1;
	cursor: pointer;
}
.dialog--travel {
	width: min(970px, calc(100% - 30px));
}
.dialog__travel-grid {
	display: grid;
	grid-template-columns: 0.7fr 1.3fr;
	gap: 35px;
	align-items: start;
}
.dialog__travel-grid > img {
	width: 100%;
	max-height: 570px;
	object-fit: cover;
	object-position: top;
	border-radius: 14px;
}
.dialog__note {
	color: var(--muted);
	font-size: 0.78rem;
}
.course-dialog {
	width: min(1020px, calc(100% - 30px));
	padding: 0;
	overflow: hidden;
}
.course-dialog__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(340px, 0.92fr);
}
.course-dialog__summary {
	position: relative;
	padding: 54px 50px 46px;
	background: #fff;
	overflow: hidden;
}
.course-dialog__summary h2 {
	position: relative;
	max-width: 590px;
	margin-bottom: 18px;
	font-size: clamp(2.25rem, 4.5vw, 4rem);
}
.course-dialog__summary > p:not(.eyebrow) {
	position: relative;
	max-width: 600px;
	color: var(--muted);
}
.course-dialog__code {
	position: absolute;
	top: 20px;
	right: 28px;
	color: var(--sky);
	font-family: 'Libre Baskerville', Georgia, serif;
	font-size: 7rem;
	font-weight: 700;
	letter-spacing: -0.08em;
	line-height: 1;
}
.course-dialog__price {
	position: relative;
	display: flex;
	align-items: baseline;
	gap: 11px;
	margin-top: 28px;
	padding: 18px 0;
	border-block: 1px solid var(--line);
}
.course-dialog__price strong {
	color: var(--red);
	font-family: 'Open Sans', Arial, sans-serif;
	font-size: 2rem;
	letter-spacing: -0.05em;
}
.course-dialog__price span {
	color: var(--muted);
	font-size: 0.72rem;
}
.course-dialog__summary .check-list {
	margin-bottom: 0;
	font-size: 0.84rem;
}
.availability-widget {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 54px 42px;
	background: var(--ink);
	color: #fff;
}
.availability-widget__status {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	width: fit-content;
	margin-bottom: 24px;
	padding: 7px 11px;
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: 999px;
	color: #c8d8ea;
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
.availability-widget__status i {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #47d491;
	box-shadow: 0 0 0 4px rgba(71, 212, 145, 0.14);
}
.availability-widget h3 {
	margin-bottom: 12px;
	color: #fff;
	font-size: 1.75rem;
}
.availability-widget > p {
	margin: 0 0 26px;
	color: #afc2d8;
	font-size: 0.83rem;
}
.availability-widget label {
	display: grid;
	gap: 7px;
	margin-bottom: 15px;
	color: #dce8f5;
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}
.availability-widget select {
	width: 100%;
	min-height: 49px;
	padding: 0 14px;
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 10px;
	background: #102b4d;
	color: #fff;
	font: inherit;
	font-size: 0.82rem;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
}
.availability-widget .button {
	margin-top: 10px;
}
.availability-widget > small {
	display: block;
	margin-top: 13px;
	color: #8198b3;
	font-size: 0.63rem;
	text-align: center;
}
.course-dialog .dialog__close {
	z-index: 3;
}

.subpage-hero {
	position: relative;
	overflow: hidden;
	padding: 100px 0 70px;
	background: var(--sky);
	text-align: center;
}
.subpage-hero > .shell {
	position: relative;
	z-index: 1;
}
.subpage-hero--blog {
	background: linear-gradient(120deg, #f3f8ff, #fff 50%, #fdecef);
}
.subpage-hero--calendar {
	background: linear-gradient(120deg, #eaf4ff, #fff 58%, #fbe8eb);
}
.subpage-hero--culture {
	background: linear-gradient(120deg, #fff 0%, #eaf4ff 58%, #fdecef 100%);
}
.button-row--center {
	justify-content: center;
	margin-top: 30px;
}
.subpage-hero h1 {
	max-width: 920px;
	margin-inline: auto;
	font-size: clamp(3rem, 7vw, 6rem);
}
.subpage-hero p:not(.eyebrow) {
	max-width: 680px;
	margin: 0 auto;
	color: var(--muted);
	font-size: 1.08rem;
}
.resource-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
}
.resource-card {
	display: flex;
	flex-direction: column;
	min-height: 320px;
	padding: 30px;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: #fff;
}
.resource-card__icon {
	width: 48px;
	height: 48px;
	display: grid;
	place-items: center;
	margin-bottom: auto;
	border-radius: 14px;
	background: var(--sky);
	color: var(--blue);
	font-size: 1.15rem;
	font-weight: 900;
}
.resource-card h2 {
	margin-top: 38px;
	font-size: 1.8rem;
}
.resource-card p {
	color: var(--muted);
}
.resource-card .button {
	width: fit-content;
	margin-top: auto;
}
.resource-card--culture {
	grid-column: 1 / -1;
	min-height: 260px;
	background: linear-gradient(110deg, var(--sky), #fff 66%, #fdecef);
}
.news-grid {
	display: grid;
	grid-template-columns: 1.15fr 0.85fr;
	gap: 22px;
}
.news-feature {
	position: relative;
	min-height: 520px;
	overflow: hidden;
	border-radius: var(--radius);
}
.news-feature img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.news-feature__copy {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	padding: 80px 35px 32px;
	background: linear-gradient(transparent, rgba(7, 30, 61, 0.96));
	color: #fff;
}
.news-feature h2 {
	color: #fff;
}
.news-aside {
	display: grid;
	gap: 18px;
}
.news-card {
	display: flex;
	flex-direction: column;
	padding: 28px;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: var(--mist);
}
.news-card h2 {
	font-size: 1.75rem;
}
.news-card p {
	color: var(--muted);
}
.news-card .button {
	width: fit-content;
	margin-top: auto;
}
.cta-band {
	padding: 65px 0;
	background: var(--red);
	color: #fff;
}
.cta-band__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 30px;
}
.cta-band h2 {
	margin: 0;
	color: #fff;
}
.cta-band .button {
	background: #fff;
	border-color: #fff;
	color: var(--ink);
}

.blog-preview,
.blog-index {
	position: relative;
	overflow: hidden;
	background: #fff;
}
.blog-index {
	background: var(--mist);
}
.blog-preview > .shell,
.blog-index > .shell {
	position: relative;
	z-index: 1;
}
.blog-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}
.blog-card {
	display: flex;
	min-width: 0;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: #fff;
	box-shadow: 0 14px 34px rgba(7, 30, 61, 0.06);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.blog-card:hover {
	transform: translateY(-5px);
	box-shadow: var(--shadow);
}
.blog-card__image {
	display: block;
	height: 225px;
	overflow: hidden;
}
.blog-card__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.55s ease;
}
.blog-card:hover .blog-card__image img {
	transform: scale(1.045);
}
.blog-card__copy {
	display: flex;
	flex: 1;
	flex-direction: column;
	align-items: flex-start;
	padding: 27px;
}
.blog-card__meta {
	margin-bottom: 10px;
	color: var(--blue);
	font-size: 0.67rem;
	font-weight: 900;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.blog-card h2,
.blog-card h3 {
	font-size: 1.45rem;
}
.blog-card__copy > p:not(.blog-card__meta) {
	color: var(--muted);
	font-size: 0.88rem;
}
.blog-card .text-link {
	margin-top: auto;
}
.blog-card--lead {
	grid-column: span 2;
}
.blog-card--lead .blog-card__image {
	height: 340px;
}
.blog-card--lead h2 {
	font-size: clamp(1.8rem, 3vw, 2.5rem);
}
.section-action {
	display: flex;
	justify-content: center;
	margin-top: 38px;
}
.archive-note {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 50px;
	margin-top: 30px;
	padding: 44px;
	border-radius: var(--radius);
	background: var(--ink);
	color: #b8cce0;
}
.archive-note h2 {
	color: #fff;
}
.archive-note p:last-child {
	max-width: 700px;
	margin-bottom: 0;
}
.archive-note .button {
	flex: 0 0 auto;
}

.calendar-hero__facts {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 28px;
}
.calendar-hero__facts span {
	padding: 7px 13px;
	border: 1px solid #bfd4eb;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.66);
	color: var(--ink);
	font-size: 0.72rem;
	font-weight: 800;
	text-transform: uppercase;
}
.calendar-section {
	background: var(--mist);
}
.calendar-shell {
	overflow: hidden;
	border: 1px solid var(--line);
	border-radius: calc(var(--radius) + 8px);
	background: #fff;
	box-shadow: var(--shadow);
}
.calendar-shell__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding: 17px 24px;
	background: var(--ink);
	color: #bed1e5;
	font-size: 0.72rem;
	font-weight: 700;
}
.calendar-selection-note {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
	padding: 20px 24px;
	border-bottom: 1px solid #f4c3ca;
	background: #fff1f3;
}
.calendar-selection-note[hidden] {
	display: none;
}
.calendar-selection-note > div {
	display: grid;
	gap: 3px;
}
.calendar-selection-note small {
	color: var(--red-dark);
	font-size: 0.65rem;
	font-weight: 900;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}
.calendar-selection-note strong {
	color: var(--ink);
	font-family: 'Libre Baskerville', Georgia, serif;
	font-size: 1.05rem;
}
.calendar-selection-note span {
	color: var(--muted);
	font-size: 0.75rem;
}
.calendar-selection-note a {
	flex: 0 0 auto;
	color: var(--red-dark);
	font-size: 0.72rem;
	font-weight: 800;
	text-decoration: underline;
}
.calendar-shell__top span {
	display: inline-flex;
	align-items: center;
	gap: 9px;
}
.calendar-shell__top i {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #47d491;
	box-shadow: 0 0 0 4px rgba(71, 212, 145, 0.14);
}
.calendar-shell__top a {
	color: #fff;
}
.activenow-table-container {
	min-height: 500px;
	padding: 24px;
}
.calendar-fallback {
	padding: 30px;
	text-align: center;
}
.faq {
	background: #fff;
}
.faq__grid {
	display: grid;
	grid-template-columns: 0.72fr 1.28fr;
	gap: 80px;
}
.faq__grid > div:first-child > p:last-child {
	color: var(--muted);
}
.faq__list {
	display: grid;
	gap: 12px;
}
.faq details {
	padding: 20px 22px;
	border: 1px solid var(--line);
	border-radius: 14px;
	background: var(--mist);
}
.faq summary {
	position: relative;
	padding-right: 28px;
	color: var(--ink);
	font-family: 'Libre Baskerville', Georgia, serif;
	font-weight: 700;
	cursor: pointer;
	list-style: none;
}
.faq summary::-webkit-details-marker {
	display: none;
}
.faq summary::after {
	content: '+';
	position: absolute;
	right: 0;
	color: var(--red);
	font-family: 'Open Sans', Arial, sans-serif;
	font-size: 1.4rem;
}
.faq details[open] summary::after {
	content: '−';
}
.faq details p {
	margin: 15px 0 0;
	color: var(--muted);
}
.faq details a {
	color: var(--blue);
	text-decoration: underline;
}

.culture-about {
	background: #fff;
}
.culture-calendar {
	background: var(--mist);
}
.month-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px;
}
.month-grid article {
	position: relative;
	min-height: 170px;
	overflow: hidden;
	padding: 26px;
	border: 1px solid var(--line);
	border-radius: 18px;
	background: #fff;
}
.month-grid span {
	position: absolute;
	top: 10px;
	right: 18px;
	color: var(--sky);
	font-family: 'Libre Baskerville', Georgia, serif;
	font-size: 4.8rem;
	font-weight: 700;
	line-height: 1;
}
.month-grid h3,
.month-grid p {
	position: relative;
}
.month-grid h3 {
	margin-top: 54px;
}
.month-grid p {
	margin: 0;
	color: var(--muted);
}

.legal {
	background: var(--mist);
}
.legal__grid {
	display: grid;
	grid-template-columns: 0.65fr 1.35fr;
	gap: 70px;
}
.legal aside {
	display: flex;
	align-self: start;
	flex-direction: column;
	gap: 8px;
	padding: 32px;
	border-radius: var(--radius);
	background: var(--ink);
	color: #b8cce0;
}
.legal aside h2 {
	color: #fff;
	font-size: 1.7rem;
}
.legal article {
	padding: 38px;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: #fff;
}
.legal article p {
	color: var(--muted);
}
.legal article h3 {
	margin-top: 30px;
}
.legal__source {
	margin-top: 34px;
	padding-top: 28px;
	border-top: 1px solid var(--line);
}

.reveal {
	opacity: 0;
	transform: translateY(18px);
	transition:
		opacity 0.65s ease,
		transform 0.65s ease;
}
.reveal--delay {
	transition-delay: 0.12s;
}
.reveal.is-visible {
	opacity: 1;
	transform: none;
}
.offer-card.reveal {
	transition:
		opacity 0.65s ease,
		transform 0.25s ease,
		box-shadow 0.25s ease;
}
.price-card.reveal {
	transition:
		opacity 0.65s ease,
		transform 0.28s ease,
		box-shadow 0.28s ease,
		border-color 0.28s ease;
}
.offer-card.reveal.is-visible:hover {
	transform: translateY(-5px);
}
.price-card.reveal.is-visible:hover {
	transform: translateY(-7px);
}

@media (max-width: 1060px) {
	.nav {
		position: fixed;
		top: 112px;
		right: 20px;
		left: 20px;
		display: none;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		padding: 18px;
		border: 1px solid var(--line);
		border-radius: 18px;
		background: #fff;
		box-shadow: var(--shadow);
	}
	.nav.is-open {
		display: flex;
	}
	.nav a {
		padding: 11px 8px;
	}
	.nav .button {
		margin-top: 8px;
	}
	.nav-toggle {
		display: block;
	}
	.hero__grid {
		grid-template-columns: 1.15fr 0.85fr;
		gap: 35px;
	}
	.hero__visual {
		min-height: 510px;
	}
	.offer-card {
		grid-column: span 3;
	}
	.pricing-grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.review-showcase {
		grid-template-columns: 1fr;
	}
	.review-notes {
		min-height: auto;
	}
	.footer__grid {
		grid-template-columns: 1.25fr repeat(3, 1fr);
		gap: 25px;
	}
}

@media (max-width: 800px) {
	:root {
		--shell: min(100% - 28px, 680px);
	}
	.ambient-symbol {
		opacity: 0.055;
	}
	.ambient-symbol--plane {
		top: 10%;
		left: -6px;
		width: 40px;
	}
	.ambient-symbol--book {
		top: 7%;
		right: -6px;
		width: 42px;
	}
	.ambient-symbol--speech {
		top: 8%;
		left: -7px;
		width: 40px;
	}
	.ambient-symbol--pencil {
		top: 8%;
		right: -7px;
		width: 38px;
	}
	.ambient-symbol--globe {
		right: -5px;
		bottom: 5%;
		width: 36px;
	}
	.hero-symbol--cap {
		top: 3%;
		left: auto;
		right: 4%;
		width: 48px;
	}
	.hero-symbol--book {
		right: -5px;
		bottom: 31%;
		width: 43px;
	}
	.hero-symbol--learning {
		left: -5px;
		bottom: 40%;
		width: 42px;
	}
	.hero-symbol--spark {
		top: 43%;
		right: 3%;
		width: 36px;
	}
	.section {
		padding: 78px 0;
	}
	.hero {
		min-height: auto;
	}
	.hero__grid,
	.about__grid,
	.why .shell,
	.contact__grid,
	.enrollment__inner,
	.section-heading,
	.social__inner,
	.news-grid,
	.calendar-teaser__inner,
	.faq__grid,
	.legal__grid {
		grid-template-columns: 1fr;
	}
	.hero__grid {
		padding-top: 55px;
	}
	.hero__visual {
		min-height: 560px;
	}
	.hero__photo-frame {
		inset: 0 6vw;
	}
	.hero__stamp {
		right: 0;
	}
	.hero__ticket {
		right: 0;
	}
	.section-heading {
		gap: 14px;
	}
	.section-heading > p {
		margin-top: 0;
	}
	.offer-grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.offer-card,
	.offer-card--featured {
		grid-column: span 1;
	}
	.offer-card:nth-child(n + 3) {
		grid-column: span 1;
	}
	.why .shell {
		gap: 50px;
	}
	.about__visual {
		width: min(540px, 90%);
	}
	.about__visual blockquote {
		right: -10%;
	}
	.result-chip {
		justify-self: start;
	}
	.enrollment__inner {
		gap: 30px;
	}
	.steps {
		grid-template-columns: repeat(2, 1fr);
		gap: 20px 0;
	}
	.steps li:nth-child(2)::after {
		display: none;
	}
	.social__links,
	.resource-grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.social__links {
		grid-column: auto;
	}
	.social__gallery,
	.social__links {
		grid-column: 1;
	}
	.course-dialog__grid {
		grid-template-columns: 1fr;
	}
	.course-dialog {
		overflow-y: auto;
	}
	.course-dialog__summary,
	.availability-widget {
		padding: 44px 34px;
	}
	.footer__grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.calendar-teaser__inner,
	.faq__grid,
	.legal__grid {
		gap: 36px;
	}
	.calendar-teaser__action {
		min-width: 0;
		justify-items: start;
	}
	.calendar-teaser__action > span {
		text-align: left;
	}
	.blog-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.blog-card--lead {
		grid-column: 1 / -1;
	}
	.archive-note {
		align-items: flex-start;
		flex-direction: column;
		gap: 28px;
	}
	.month-grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.activenow-table-container {
		padding: 14px;
	}
	.dialog__travel-grid {
		grid-template-columns: 1fr;
	}
	.dialog__travel-grid > img {
		max-height: 330px;
		object-position: center 22%;
	}
	.cta-band__inner {
		align-items: flex-start;
		flex-direction: column;
	}
}

@media (max-width: 560px) {
	html {
		scroll-padding-top: 82px;
	}
	.topbar__inner {
		min-height: 31px;
	}
	.topbar a {
		display: none;
	}
	.header__inner {
		min-height: 68px;
	}
	.nav {
		top: 106px;
	}
	.header__inner {
		min-height: 92px;
	}
	.brand__logo {
		height: 74px;
	}
	.brand--footer .brand__logo {
		height: 104px;
	}
	h1 {
		font-size: clamp(2.35rem, 10.5vw, 3rem);
	}
	h2 {
		font-size: clamp(2rem, 8.5vw, 2.75rem);
	}
	.button-row {
		align-items: stretch;
		flex-direction: column;
	}
	.button-row .button {
		width: 100%;
	}
	.hero__visual {
		min-height: 485px;
	}
	.hero-symbol--book,
	.hero-symbol--spark {
		display: none;
	}
	.hero__photo-frame {
		inset: 0;
		border-radius: 42% 42% 12px 12px;
	}
	.hero__stamp {
		top: 15px;
		right: -5px;
		width: 96px;
	}
	.hero__ticket {
		right: 8px;
		bottom: 18px;
		min-width: 260px;
	}
	.hero__trust {
		display: grid;
	}
	.offer-grid {
		grid-template-columns: 1fr;
	}
	.offer-card,
	.offer-card--featured {
		grid-column: auto;
		min-height: 290px;
	}
	.offer-card:nth-child(n + 3) {
		grid-column: auto;
	}
	.benefits {
		grid-template-columns: 1fr;
	}
	.benefits article,
	.benefits article:last-child {
		grid-column: auto;
		min-height: auto;
		padding: 22px 12px;
		border-left: 0;
		border-bottom: 1px solid rgba(255, 255, 255, 0.14);
	}
	.benefits article:last-child {
		border-bottom: 0;
	}
	.about__visual {
		width: 96%;
	}
	.about__visual blockquote {
		right: -4%;
		bottom: 18px;
		max-width: 235px;
		font-size: 0.95rem;
	}
	.pricing-grid,
	.form-row,
	.steps,
	.social__links,
	.resource-grid {
		grid-template-columns: 1fr;
	}
	.review-stories {
		display: flex;
		padding: 22px;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
	}
	.review-story {
		flex: 0 0 72vw;
		max-width: 260px;
		scroll-snap-align: center;
	}
	.review-notes {
		min-height: auto;
		padding: 26px;
	}
	.steps li::after {
		display: none;
	}
	.price-card h3 {
		min-height: auto;
	}
	.signup-form {
		padding: 22px 18px;
	}
	.social__inner {
		gap: 8px;
	}
	.social__gallery {
		grid-template-columns: repeat(2, 1fr);
		grid-template-rows: 270px 175px;
		margin: 22px 0 20px;
	}
	.social-photo--wide {
		grid-column: 1 / -1;
		grid-row: auto;
	}
	.course-dialog__summary,
	.availability-widget {
		padding: 40px 22px 30px;
	}
	.course-dialog__code {
		top: 24px;
		right: 22px;
		font-size: 4.2rem;
	}
	.course-dialog__price {
		align-items: flex-start;
		flex-direction: column;
		gap: 2px;
	}
	.footer__grid {
		grid-template-columns: 1fr;
		gap: 34px;
	}
	.blog-grid,
	.month-grid {
		grid-template-columns: 1fr;
	}
	.blog-card--lead {
		grid-column: auto;
	}
	.blog-card__image,
	.blog-card--lead .blog-card__image {
		height: 220px;
	}
	.archive-note,
	.legal article,
	.legal aside {
		padding: 26px 22px;
	}
	.calendar-shell__top {
		align-items: flex-start;
		flex-direction: column;
	}
	.calendar-selection-note {
		align-items: flex-start;
		flex-direction: column;
		gap: 12px;
	}
	.activenow-table-container {
		padding: 8px;
	}
	.footer__bottom {
		align-items: flex-start;
		flex-direction: column;
		gap: 8px;
	}
	.dialog {
		padding: 35px 22px 24px;
	}
	.dialog.course-dialog {
		padding: 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}
	.reveal {
		opacity: 1;
		transform: none;
	}
	.ambient-symbol,
	.hero::before,
	.hero__path,
	.hero__photo-frame img,
	.hero__stamp,
	.hero__ticket {
		animation: none;
	}
}
