:root {
	--navy: #0e2338;
	--navy-2: #1b3a5c;
	--gold: #e3a33b;
	--gold-deep: #c98a22;
	--gold-text: #8a5e12;
	--cream: #fbf3e3;
	--sand: #f7f6f3;
	--sand-2: #f3f2ee;
	--sand-3: #f1efea;
	--line: #eceae4;
	--line-2: #d9d6ce;
	--muted: #5f6b7a;
	--body: #3a4656;
	--faint: #8a94a1;
	--on-navy: #b5c0cc;
	--whatsapp: #25d366;
	--whatsapp-2: #1ebe5a;
	--whatsapp-ink: #0b1b2e;
	--shadow-hover: 0 12px 32px rgba(14, 35, 56, 0.08);
	--gutter: clamp(16px, 3vw, 32px);
}

* {
	box-sizing: border-box;
}

body {
	margin: 0;
	background: #fff;
	font-family: 'Instrument Sans', system-ui, sans-serif;
	color: var(--navy);
	-webkit-font-smoothing: antialiased;
}

a {
	color: var(--navy);
	text-decoration: none;
}
a:hover {
	color: var(--gold-deep);
}

button,
input,
select,
textarea {
	font-family: inherit;
}

::selection {
	background: #f3e3c2;
}

img {
	display: block;
}

/* Layout */
.container {
	max-width: 1200px;
	margin: 0 auto;
	padding-inline: var(--gutter);
}
.section {
	padding-block: clamp(64px, 8vw, 104px);
}
.page-top {
	padding-top: clamp(40px, 6vw, 88px);
	padding-bottom: clamp(64px, 8vw, 104px);
}
.band {
	background: var(--sand);
}
.auto-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--min, 260px)), 1fr));
	gap: var(--gap, 12px);
}
.split {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr));
	gap: 16px 64px;
	align-items: end;
	margin-bottom: clamp(28px, 4vw, 48px);
}
.row-head {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: end;
	gap: 16px 40px;
	margin-bottom: clamp(24px, 3vw, 40px);
}

/* Type */
.eyebrow {
	font-size: 13px;
	font-weight: 600;
	color: var(--gold-text);
}
.display {
	margin: 0;
	font-weight: 600;
	font-size: clamp(38px, 5.5vw, 72px);
	line-height: 1;
	letter-spacing: -0.035em;
	text-wrap: balance;
}
.eyebrow + .display {
	margin-top: 14px;
}
.h2 {
	margin: 0;
	font-weight: 600;
	font-size: clamp(32px, 4vw, 52px);
	line-height: 1.02;
	letter-spacing: -0.035em;
	text-wrap: balance;
}
.h2-sm {
	margin: 0;
	font-weight: 600;
	font-size: clamp(28px, 3.4vw, 44px);
	line-height: 1.05;
	letter-spacing: -0.03em;
	text-wrap: balance;
}
.lede {
	margin: 0;
	font-size: 17px;
	line-height: 1.6;
	color: var(--muted);
	text-wrap: pretty;
}
.stack {
	display: flex;
	flex-direction: column;
	gap: var(--gap, 12px);
}

/* Buttons */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 50px;
	padding: 0 22px;
	border-radius: 12px;
	border: none;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	white-space: nowrap;
}
.btn-lg {
	min-height: 52px;
	padding-inline: 24px;
}
.btn-primary,
.btn-primary:hover {
	background: var(--navy);
	color: #fff;
}
.btn-primary:hover {
	background: var(--navy-2);
}
.btn-outline,
.btn-outline:hover {
	background: #fff;
	color: var(--navy);
	border: 1px solid var(--line-2);
}
.btn-outline:hover {
	border-color: var(--navy);
}
.btn-gold,
.btn-gold:hover {
	background: var(--gold);
	color: var(--navy);
}
.btn-gold:hover {
	background: #fff;
}
.btn-whatsapp,
.btn-whatsapp:hover {
	background: var(--whatsapp);
	color: var(--whatsapp-ink);
	font-weight: 700;
}
.btn-whatsapp:hover {
	background: var(--whatsapp-2);
}
.btn-row {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
@media (max-width: 959px) {
	/* Equal-width buttons: side by side when both fit, otherwise stacked full width. */
	.btn-row {
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
	}
}
/* A button on its own: sized to its text on desktop, full width on mobile like the paired buttons. */
.btn-solo {
	align-self: flex-start;
}
@media (max-width: 959px) {
	.btn-solo {
		align-self: stretch;
		min-height: 52px;
	}
}
.link-underline {
	font-size: 15px;
	font-weight: 600;
	color: var(--navy);
	border-bottom: 1px solid var(--navy);
}
.link-underline:hover {
	color: var(--gold-deep);
	border-color: var(--gold-deep);
}

/* Pieces */
.num-badge {
	width: 36px;
	height: 36px;
	border-radius: 10px;
	background: var(--cream);
	color: var(--gold-text);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 13px;
	font-weight: 700;
	flex: none;
}
.photo {
	border-radius: 24px;
	overflow: hidden;
	width: 100%;
	background: var(--sand-2);
}
.photo img,
.cover {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.card {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 18px;
	color: var(--navy);
}
a.card {
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition:
		box-shadow 0.2s,
		transform 0.2s;
}
a.card:hover {
	color: var(--navy);
	box-shadow: var(--shadow-hover);
}
.panel {
	background: var(--sand);
	border-radius: 16px;
	padding: 22px 24px;
}
.check {
	color: var(--gold-deep);
	font-weight: 700;
}
.cta-card,
.cta-card:hover {
	background: var(--navy);
	color: #fff;
	border-radius: 18px;
	padding: 24px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 24px;
	min-height: 200px;
}
.cta-card:hover {
	background: var(--navy-2);
}
.cta-card .title {
	font-size: 19px;
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.25;
}
.cta-card .more {
	font-size: 14px;
	font-weight: 600;
	color: var(--gold);
}

.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

@media (max-width: 959px) {
	.desktop-only {
		display: none !important;
	}
}
@media (min-width: 960px) {
	.mobile-only {
		display: none !important;
	}
}

[hidden] {
	display: none !important;
}

/* WordPress admin bar (shown to logged-in staff) */
.admin-bar .header {
	top: 32px;
}
@media (max-width: 782px) {
	.admin-bar .header {
		top: 46px;
	}
}

/* ------------------------------------------------------------------ Logo */
.logo {
	display: flex;
	align-items: center;
	gap: 10px;
	color: var(--navy);
}
.logo-mark {
	width: 36px;
	height: 36px;
	border-radius: 10px;
	background: var(--navy);
	color: var(--gold);
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 18px;
}
.logo-words {
	display: flex;
	flex-direction: column;
	line-height: 1.05;
}
.logo-name {
	font-weight: 700;
	font-size: 18px;
	letter-spacing: -0.02em;
}
.logo-tag {
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--gold-text);
}

/* ------------------------------------------------------------------ Header */
.topbar {
	background: var(--navy);
	color: #c9d2dc;
	font-size: 13px;
}
.topbar-inner {
	min-height: 38px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 24px;
}
.topbar-left {
	display: flex;
	gap: 24px;
	align-items: center;
	white-space: nowrap;
}
.topbar a {
	color: #c9d2dc;
}
.topbar a:hover {
	color: #fff;
}
.topbar-right {
	display: flex;
	align-items: center;
	gap: 18px;
}
.topbar-socials {
	display: flex;
	gap: 4px;
}
.topbar-socials a {
	width: 30px;
	height: 30px;
	border-radius: 8px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.topbar-socials a:hover {
	background: rgba(255, 255, 255, 0.08);
}
.topbar .topbar-wa {
	display: flex;
	align-items: center;
	gap: 8px;
	color: #fff;
	font-weight: 600;
	white-space: nowrap;
}
.topbar .topbar-wa:hover {
	color: var(--gold);
}
.topbar .dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--whatsapp);
}

.header {
	position: sticky;
	top: 0;
	z-index: 30;
	background: rgba(255, 255, 255, 0.9);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	border-bottom: 1px solid var(--line);
}
.header-inner {
	min-height: 72px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
}
.nav {
	display: flex;
	gap: 2px;
	background: var(--sand);
	border: 1px solid var(--line);
	border-radius: 12px;
	padding: 4px;
}
.nav a {
	color: var(--muted);
	padding: 9px 16px;
	border-radius: 9px;
	font-size: 14px;
	font-weight: 600;
	white-space: nowrap;
}
.nav a:hover {
	color: var(--navy);
}
.nav a.active {
	background: #fff;
	color: var(--navy);
	box-shadow: 0 1px 2px rgba(14, 35, 56, 0.08);
}
.header .actions {
	display: flex;
	gap: 8px;
	align-items: center;
}
.header .small {
	min-height: 44px;
	padding: 0 16px;
	border-radius: 10px;
	font-size: 14px;
}
.icon-btn {
	width: 44px;
	height: 44px;
	border-radius: 10px;
	border: none;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
}
.icon-btn.wa,
.icon-btn.wa:hover {
	background: var(--whatsapp);
	color: var(--whatsapp-ink);
}
.burger {
	background: var(--navy);
	flex-direction: column;
	gap: 5px;
}
.burger span {
	width: 18px;
	height: 2px;
	background: #fff;
	border-radius: 2px;
}

.menu {
	position: fixed;
	inset: 0;
	z-index: 100000;
	background: #fff;
	display: flex;
	flex-direction: column;
	padding: 14px 20px 24px;
	overflow-y: auto;
}
.menu-top {
	display: flex;
	justify-content: space-between;
	align-items: center;
	min-height: 44px;
}
.menu .close {
	background: var(--sand-2);
	font-size: 22px;
	line-height: 1;
	color: var(--navy);
}
.menu-nav {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin-top: 24px;
	flex: 1;
}
.menu-nav a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	border-radius: 14px;
	padding: 16px 18px;
	min-height: 56px;
	font-size: 20px;
	font-weight: 600;
	letter-spacing: -0.02em;
	color: var(--navy);
}
.menu-nav a.active {
	background: var(--sand);
}
.menu-nav .arrow {
	color: var(--gold-deep);
	font-size: 16px;
}
.menu-foot {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-top: 24px;
}
.menu .big {
	min-height: 54px;
	font-size: 16px;
	white-space: normal;
}
.menu-contacts {
	display: flex;
	justify-content: center;
	gap: 20px;
	font-size: 13px;
	padding-top: 8px;
}
.menu-contacts a {
	color: var(--muted);
}
.menu-socials {
	display: flex;
	justify-content: center;
	gap: 8px;
	padding-top: 4px;
}
.menu-socials a {
	width: 44px;
	height: 44px;
	border-radius: 10px;
	background: var(--sand-2);
	display: flex;
	align-items: center;
	justify-content: center;
}

/* ------------------------------------------------------------------ Footer */
.site-footer {
	border-top: 1px solid var(--line);
	color: var(--muted);
}
.site-footer .cols {
	padding-top: 48px;
	padding-bottom: 24px;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr));
	gap: 32px;
}
.site-footer .brand {
	display: flex;
	flex-direction: column;
	gap: 14px;
	font-size: 14px;
	line-height: 1.6;
}
.site-footer .name {
	font-weight: 600;
	font-size: 18px;
	letter-spacing: -0.02em;
	color: var(--navy);
}
.site-footer .socials {
	display: flex;
	gap: 8px;
}
.site-footer .socials a {
	width: 40px;
	height: 40px;
	border-radius: 10px;
	background: var(--sand-2);
	display: flex;
	align-items: center;
	justify-content: center;
}
.site-footer .socials a:hover {
	background: var(--navy);
	color: #fff;
}
.site-footer .col {
	display: flex;
	flex-direction: column;
	gap: 8px;
	font-size: 14px;
}
.site-footer .col a {
	color: var(--muted);
}
.site-footer .col a:hover {
	color: var(--navy);
}
.site-footer .head {
	font-size: 13px;
	font-weight: 600;
	color: var(--navy);
}
.site-footer .legal {
	padding-block: 16px;
	border-top: 1px solid var(--line);
	font-size: 13px;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 8px;
}

/* ------------------------------------------------------------------ Mobile action bar */
.mobile-bar-spacer {
	height: 76px;
}
.mobile-bar {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 40;
	background: rgba(255, 255, 255, 0.94);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	border-top: 1px solid var(--line);
	padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px;
}
.mobile-bar a {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	border-radius: 12px;
	font-weight: 600;
	font-size: 14px;
	line-height: 1.2;
	text-align: center;
	padding: 0 6px;
}
.mobile-bar .soft {
	background: var(--sand-2);
}
.mobile-bar .primary,
.mobile-bar .primary:hover {
	background: var(--navy);
	color: #fff;
}

/* ------------------------------------------------------------------ Closing CTA */
.cta-wrap {
	padding-bottom: clamp(64px, 8vw, 104px);
}
.cta {
	background: var(--sand);
	border-radius: 24px;
	padding: clamp(28px, 5vw, 64px);
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr));
	gap: 24px 48px;
	align-items: center;
}
.cta .h2 {
	font-size: clamp(30px, 4vw, 52px);
}
.cta p {
	margin: 0;
	font-size: 16px;
	line-height: 1.6;
	color: var(--muted);
	max-width: 440px;
}

/* ------------------------------------------------------------------ Post card */
.post-card-img {
	aspect-ratio: 16 / 9;
	width: 100%;
	overflow: hidden;
	display: block;
	background: var(--sand-2);
}
.post-card-body {
	padding: 22px 24px 24px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.post-card-title {
	font-size: clamp(20px, 2vw, 24px);
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -0.02em;
	text-wrap: balance;
}
.post-card-title.full {
	font-size: clamp(22px, 2.2vw, 28px);
	line-height: 1.15;
	letter-spacing: -0.025em;
}
.post-card-excerpt {
	font-size: 15px;
	line-height: 1.55;
	color: var(--muted);
}
.post-card-more {
	font-size: 14px;
	font-weight: 600;
	color: var(--gold-deep);
}

/* ------------------------------------------------------------------ Home */
.page-home .hero {
	padding-top: clamp(40px, 7vw, 96px);
	padding-bottom: clamp(40px, 6vw, 72px);
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr));
	gap: clamp(32px, 5vw, 64px);
	align-items: center;
}
.page-home .pill {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	align-self: flex-start;
	background: var(--cream);
	color: var(--gold-text);
	border-radius: 999px;
	padding: 7px 12px;
	font-size: 13px;
	font-weight: 600;
}
.page-home .pill-dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--gold);
}
.page-home h1 {
	margin: 0;
	font-weight: 600;
	font-size: clamp(42px, 6vw, 76px);
	line-height: 1;
	letter-spacing: -0.035em;
	text-wrap: balance;
}
.page-home .hero-lede {
	margin: 0;
	font-size: clamp(17px, 1.4vw, 19px);
	line-height: 1.6;
	color: var(--muted);
	max-width: 520px;
	text-wrap: pretty;
}
.page-home .ticks {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 24px;
	font-size: 14px;
	color: var(--muted);
	padding-top: 4px;
}
.page-home .hero-media {
	position: relative;
}
.page-home .hero-photo {
	height: clamp(360px, 60vw, 620px);
}
.page-home .placed {
	position: absolute;
	left: 16px;
	bottom: 16px;
	right: 16px;
	background: #fff;
	border-radius: 16px;
	padding: 16px 18px;
	box-shadow:
		0 1px 2px rgba(14, 35, 56, 0.06),
		0 12px 32px rgba(14, 35, 56, 0.12);
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
}
.page-home .placed-k {
	font-size: 12px;
	font-weight: 600;
	color: var(--gold-text);
}
.page-home .placed-v {
	font-size: 15px;
	font-weight: 600;
}
.page-home .placed-c {
	font-size: 13px;
	color: var(--muted);
	white-space: nowrap;
}
.page-home .partners-wrap {
	padding-bottom: clamp(64px, 8vw, 104px);
}
.page-home .partners {
	border: 1px solid var(--line);
	border-radius: 20px;
	padding: clamp(20px, 3vw, 32px);
	display: flex;
	flex-direction: column;
	gap: 20px;
}
.page-home .partners-head {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: baseline;
	gap: 8px 24px;
}
.page-home .partners-title {
	font-size: 15px;
	font-weight: 600;
}
.page-home .partners-note {
	font-size: 13px;
	color: var(--faint);
}
.page-home .partner-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 10px;
}
@media (max-width: 599px) {
	.page-home .partner-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
.page-home .partner {
	background: var(--sand);
	border-radius: 14px;
	aspect-ratio: 16 / 9;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: clamp(12px, 2vw, 24px);
}
.page-home .partner img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
	mix-blend-mode: multiply;
}
.page-home .card.service {
	padding: 24px;
	gap: 14px;
}
.page-home .card.service:hover {
	transform: translateY(-2px);
}
.page-home .card-title {
	font-size: 19px;
	font-weight: 600;
	letter-spacing: -0.02em;
}
.page-home .card-body {
	font-size: 15px;
	line-height: 1.55;
	color: var(--muted);
}
.page-home .card-body.small {
	font-size: 14px;
	line-height: 1.5;
}
.page-home .country-img {
	aspect-ratio: 4 / 3;
	width: 100%;
	overflow: hidden;
	display: block;
	background: var(--sand-2);
}
.page-home .country-body {
	padding: 18px 20px 20px;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.page-home .country-top {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
}
.page-home .code {
	font-size: 12px;
	font-weight: 700;
	color: var(--gold-text);
}
.page-home .process {
	background: var(--navy);
	color: #fff;
}
.page-home .process-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr));
	gap: 40px 80px;
	align-items: center;
}
.page-home .on-navy {
	color: var(--on-navy);
	max-width: 440px;
}
.page-home .step {
	display: grid;
	grid-template-columns: 44px 1fr;
	gap: 16px;
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 16px;
	padding: 18px 20px;
	align-items: start;
}
.page-home .step-n {
	width: 36px;
	height: 36px;
	border-radius: 10px;
	background: var(--gold);
	color: var(--navy);
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 15px;
}
.page-home .step-title {
	font-size: 17px;
	font-weight: 600;
	letter-spacing: -0.01em;
}
.page-home .step-body {
	font-size: 15px;
	line-height: 1.55;
	color: var(--on-navy);
}
.page-home .heading-gap {
	margin-bottom: clamp(24px, 3vw, 40px);
}
.page-home .quote {
	margin: 0;
	background: var(--sand);
	border-radius: 18px;
	padding: clamp(22px, 3vw, 28px);
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 24px;
}
.page-home blockquote {
	margin: 0;
	font-size: clamp(18px, 1.6vw, 21px);
	line-height: 1.4;
	letter-spacing: -0.01em;
	text-wrap: pretty;
}
.page-home figcaption {
	display: flex;
	align-items: center;
	gap: 12px;
}
.page-home figcaption img {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	object-fit: cover;
	background: var(--line);
}
.page-home .q-name {
	font-weight: 600;
	font-size: 15px;
}
.page-home .q-school {
	font-size: 13px;
	color: var(--muted);
}
.page-home .journal {
	padding-bottom: clamp(64px, 8vw, 104px);
}

/* ------------------------------------------------------------------ About */
.page-about .intro {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr));
	gap: 24px 64px;
	margin-top: clamp(36px, 5vw, 64px);
	align-items: start;
}
.page-about .intro-photo {
	height: clamp(360px, 60vw, 600px);
}
.page-about .about-lede {
	margin: 0 0 12px;
	font-size: clamp(18px, 1.6vw, 22px);
	line-height: 1.5;
	color: var(--body);
	text-wrap: pretty;
}
.page-about h3 {
	margin: 0;
	font-size: 20px;
	font-weight: 600;
	letter-spacing: -0.02em;
}
.page-about .muted {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
	color: var(--muted);
}
.page-about .stats-wrap {
	padding-block: clamp(56px, 7vw, 88px);
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
	gap: 24px 64px;
	align-items: center;
}
.page-about .stat {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 16px;
	padding: 22px 20px;
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.page-about .stat-v {
	font-weight: 700;
	font-size: clamp(32px, 3vw, 44px);
	line-height: 1;
	letter-spacing: -0.03em;
}
.page-about .stat-l {
	font-size: 14px;
	line-height: 1.4;
	color: var(--muted);
}
.page-about .step {
	padding: 24px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.page-about .step-n {
	width: 40px;
	height: 40px;
	border-radius: 12px;
	background: var(--navy);
	color: var(--gold);
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 17px;
}
.page-about .step-title {
	font-size: 18px;
	font-weight: 600;
	letter-spacing: -0.02em;
}
.page-about .step .muted {
	line-height: 1.55;
}

/* ------------------------------------------------------------------ Services */
.page-services .head {
	margin-top: 14px;
	margin-bottom: clamp(36px, 5vw, 64px);
}
.page-services .service {
	overflow: hidden;
	display: flex;
	flex-direction: column;
}
.page-services .img {
	display: block;
	aspect-ratio: 16 / 9;
	width: 100%;
	overflow: hidden;
	background: var(--sand-2);
}
.page-services .body {
	padding: clamp(20px, 3vw, 26px);
	display: flex;
	flex-direction: column;
	gap: 12px;
	flex: 1;
}
.page-services h2 {
	margin: 0;
	font-size: clamp(22px, 2.2vw, 26px);
	font-weight: 600;
	line-height: 1.1;
	letter-spacing: -0.025em;
}
.page-services p {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
	color: var(--muted);
}
.page-services .chips {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: auto;
}
.page-services .chip {
	font-size: 13px;
	font-weight: 500;
	background: var(--sand);
	border-radius: 8px;
	padding: 6px 10px;
}
.page-services .cta-card.big {
	padding: clamp(22px, 3vw, 28px);
	min-height: 220px;
}
.page-services .cta-card.big .title {
	font-size: clamp(22px, 2.2vw, 26px);
	line-height: 1.15;
	letter-spacing: -0.025em;
}
.page-services .features-wrap {
	padding-block: clamp(56px, 7vw, 88px);
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr));
	gap: 32px 64px;
	align-items: center;
}
.page-services .feature {
	display: flex;
	align-items: center;
	gap: 10px;
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 12px;
	padding: 14px 16px;
	font-size: 15px;
	font-weight: 600;
}
.page-services .features-photo {
	height: clamp(300px, 50vw, 520px);
	background: var(--line);
}

/* ------------------------------------------------------------------ Destinations */
.page-destination .tabs {
	display: flex;
	gap: 6px;
	margin-top: clamp(28px, 4vw, 44px);
	overflow-x: auto;
	padding-bottom: 4px;
	scrollbar-width: none;
}
.page-destination .tabs a {
	flex: none;
	display: flex;
	align-items: center;
	min-height: 44px;
	padding: 0 18px;
	border-radius: 10px;
	border: 1px solid var(--line-2);
	background: #fff;
	color: var(--navy);
	font-size: 14px;
	font-weight: 600;
	white-space: nowrap;
}
.page-destination .tabs a:hover {
	border-color: var(--navy);
}
.page-destination .tabs a.active {
	border-color: var(--navy);
	background: var(--navy);
	color: #fff;
}
.page-destination .detail {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr));
	gap: 12px;
	margin-top: 20px;
}
.page-destination .overview {
	border: 1px solid var(--line);
	border-radius: 20px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}
.page-destination .img {
	aspect-ratio: 16 / 10;
	background: var(--sand-2);
	overflow: hidden;
}
.page-destination .overview-body {
	padding: clamp(22px, 3vw, 28px);
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.page-destination h2 {
	margin: 0;
	font-size: clamp(24px, 2.6vw, 34px);
	font-weight: 600;
	line-height: 1.1;
	letter-spacing: -0.03em;
	text-wrap: balance;
}
.page-destination p {
	margin: 0;
	font-size: 16px;
	line-height: 1.6;
	color: var(--muted);
}
.page-destination .intakes {
	font-size: 20px;
	font-weight: 600;
	letter-spacing: -0.02em;
}
.page-destination .why {
	display: grid;
	grid-template-columns: 18px 1fr;
	gap: 8px;
	font-size: 15px;
	line-height: 1.5;
}
.page-destination .guide {
	border: 1px solid var(--line-2);
	border-radius: 12px;
	padding: 16px 18px;
	font-size: 15px;
	font-weight: 600;
}
.page-destination .guide:hover {
	border-color: var(--navy);
	color: var(--navy);
}

/* ------------------------------------------------------------------ Journal */
.page-journal .display {
	margin-bottom: clamp(28px, 4vw, 48px);
}

/* ------------------------------------------------------------------ Article */
.article {
	padding-top: clamp(24px, 4vw, 48px);
	padding-bottom: clamp(64px, 8vw, 104px);
}
.article .back {
	font-size: 14px;
	font-weight: 600;
	color: var(--muted);
}
.article .back:hover {
	color: var(--navy);
}
.article-header {
	max-width: 820px;
	margin: clamp(20px, 3vw, 36px) auto 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
	text-align: center;
	align-items: center;
}
.article h1 {
	margin: 0;
	font-weight: 600;
	font-size: clamp(32px, 4.6vw, 60px);
	line-height: 1.02;
	letter-spacing: -0.035em;
	text-wrap: balance;
}
.article .share {
	font-size: 14px;
}
.article .hero {
	height: clamp(220px, 40vw, 540px);
	margin: clamp(28px, 4vw, 48px) 0;
}
.article-content {
	max-width: 700px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: 32px;
}
.article .lead {
	margin: 0;
	font-size: clamp(18px, 1.6vw, 21px);
	line-height: 1.55;
	color: var(--body);
	text-wrap: pretty;
}
.article-content h2 {
	margin: 0;
	font-size: clamp(22px, 2.4vw, 30px);
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -0.025em;
}
.article-content section p {
	margin: 0;
	font-size: 17px;
	line-height: 1.75;
	color: var(--body);
	text-wrap: pretty;
}
.article-content ul.checks {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.article-content ul.checks li {
	display: grid;
	grid-template-columns: 18px 1fr;
	gap: 10px;
	font-size: 16px;
	line-height: 1.55;
	background: var(--sand);
	border-radius: 10px;
	padding: 10px 14px;
}
.article .promo {
	background: var(--navy);
	color: #fff;
	border-radius: 20px;
	padding: clamp(24px, 4vw, 32px);
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.article .promo-title {
	font-size: 24px;
	font-weight: 600;
	letter-spacing: -0.025em;
}
.article .promo-body {
	font-size: 15px;
	line-height: 1.55;
	color: var(--on-navy);
}
.article .promo-btn {
	align-self: flex-start;
	min-height: 46px;
	padding: 0 20px;
	border-radius: 10px;
	font-size: 14px;
}
.article .next {
	border: 1px solid var(--line);
	border-radius: 16px;
	padding: 22px 24px;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.article .next:hover {
	border-color: var(--navy);
	color: var(--navy);
}
.article .next-title {
	font-size: 20px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -0.02em;
}

/* ------------------------------------------------------------------ Contact */
.page-contact .grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr));
	gap: 12px;
	margin-top: clamp(36px, 5vw, 64px);
	align-items: start;
}
.page-contact .form {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 20px;
	padding: clamp(22px, 3vw, 32px);
	display: flex;
	flex-direction: column;
	gap: 14px;
	scroll-margin-top: 100px;
}
.page-contact .form-title {
	font-size: 20px;
	font-weight: 600;
	letter-spacing: -0.02em;
}
.page-contact .form-error {
	background: #fdeee6;
	color: #b42318;
	border-radius: 10px;
	padding: 10px 14px;
	font-size: 14px;
	font-weight: 600;
}
.page-contact label {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 13px;
	font-weight: 600;
	color: var(--muted);
}
.page-contact input,
.page-contact select {
	border: 1px solid var(--line-2);
	border-radius: 10px;
	background: #fff;
	padding: 13px 14px;
	font-size: 16px;
	color: var(--navy);
	outline: none;
	width: 100%;
}
.page-contact input:focus,
.page-contact select:focus {
	border-color: var(--navy);
}
.page-contact .pair {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr));
	gap: 12px;
}
.page-contact .form .btn {
	margin-top: 4px;
}
.page-contact .fine {
	font-size: 13px;
	color: var(--faint);
	text-align: center;
}
.page-contact .thanks {
	padding: 12px 0;
}
.page-contact .thanks-title {
	font-size: 30px;
	font-weight: 600;
	letter-spacing: -0.03em;
}
.page-contact .thanks-body {
	font-size: 16px;
	line-height: 1.55;
	color: var(--muted);
}
.page-contact .row {
	background: var(--sand);
	border-radius: 16px;
	padding: 20px 22px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
}
.page-contact .row:hover {
	background: var(--sand-3);
}
.page-contact .row-v {
	font-size: 18px;
	font-weight: 600;
	letter-spacing: -0.02em;
	color: var(--navy);
}
.page-contact .arrow {
	color: var(--gold-deep);
	font-size: 18px;
}
.page-contact .next {
	border: 1px solid var(--line);
	border-radius: 16px;
	padding: 22px 24px;
}
.page-contact .next-step {
	display: grid;
	grid-template-columns: 28px 1fr;
	gap: 12px;
	align-items: start;
	font-size: 15px;
	line-height: 1.55;
	color: var(--body);
}
.page-contact .n {
	width: 24px;
	height: 24px;
	border-radius: 7px;
	background: var(--navy);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 12px;
}
