/* ReadyForWander — main stylesheet */

:root {
	--rfw-ink: #142028;
	--rfw-ink-soft: #57666e;
	--rfw-ink-faint: #8b98a0;
	--rfw-teal: #0d6e74;
	--rfw-teal-dark: #073f43;
	--rfw-teal-tint: #e8f3f2;
	--rfw-coral: #ff6b4a;
	--rfw-coral-dark: #dd4b2c;
	--rfw-coral-tint: #fff0eb;
	--rfw-sand: #faf8f4;
	--rfw-card-bg: #ffffff;
	--rfw-border: #ece6da;
	--rfw-border-soft: #f1ece2;
	--rfw-font-head: 'Poppins', 'Segoe UI', sans-serif;
	--rfw-font-body: 'Inter', 'Segoe UI', sans-serif;
	--rfw-radius-sm: 10px;
	--rfw-radius: 16px;
	--rfw-radius-lg: 26px;
	--rfw-shadow-sm: 0 1px 2px rgba(20, 32, 40, .06), 0 1px 1px rgba(20, 32, 40, .04);
	--rfw-shadow: 0 4px 14px rgba(20, 32, 40, .07), 0 1px 3px rgba(20, 32, 40, .06);
	--rfw-shadow-hover: 0 20px 40px -12px rgba(13, 63, 67, .28), 0 4px 10px rgba(20, 32, 40, .08);
	--rfw-shadow-cta: 0 16px 32px -10px rgba(221, 75, 44, .45);
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
	margin: 0;
	font-family: var(--rfw-font-body);
	color: var(--rfw-ink);
	background: var(--rfw-sand);
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 {
	font-family: var(--rfw-font-head);
	line-height: 1.15;
	letter-spacing: -.01em;
	margin: 0 0 .5em;
	color: var(--rfw-ink);
}

a { color: var(--rfw-teal); text-decoration: none; transition: color .15s ease; }
a:hover { color: var(--rfw-teal-dark); }

img { max-width: 100%; display: block; }

::selection { background: var(--rfw-coral-tint); color: var(--rfw-coral-dark); }

.rfw-container {
	max-width: 1180px;
	margin: 0 auto;
	padding: 0 28px;
}

/* ---------- Site header ---------- */
.rfw-site-header {
	background: rgba(250, 248, 244, .82);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	border-bottom: 1px solid var(--rfw-border);
	position: sticky;
	top: 0;
	z-index: 50;
}
.rfw-site-header__bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 0;
	gap: 24px;
}
.rfw-logo {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	font-family: var(--rfw-font-head);
	font-weight: 800;
	font-size: 1.28rem;
	color: var(--rfw-ink);
	flex: none;
}
.rfw-logo__mark {
	width: 30px;
	height: 30px;
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 9px;
	background: linear-gradient(135deg, var(--rfw-teal), var(--rfw-teal-dark));
	color: #fff;
}
.rfw-logo__mark svg { width: 18px; height: 18px; }
.rfw-logo__text span { color: var(--rfw-coral); }
.rfw-nav {
	display: flex;
	align-items: center;
	gap: 26px;
}
.rfw-nav ul { list-style: none; display: flex; gap: 26px; margin: 0; padding: 0; }
.rfw-nav a:not(.rfw-btn) {
	position: relative;
	color: var(--rfw-ink);
	font-weight: 500;
	font-size: .95rem;
	padding-bottom: 3px;
}
.rfw-nav a:not(.rfw-btn)::after {
	content: '';
	position: absolute;
	left: 0; right: 100%;
	bottom: 0;
	height: 2px;
	background: var(--rfw-coral);
	transition: right .18s ease;
	border-radius: 2px;
}
.rfw-nav a:not(.rfw-btn):hover::after { right: 0; }

/* ---------- Buttons & badges ---------- */
.rfw-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: var(--rfw-ink);
	color: #fff;
	padding: 13px 24px;
	border-radius: 999px;
	font-weight: 600;
	font-size: .95rem;
	border: none;
	cursor: pointer;
	transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
	white-space: nowrap;
}
.rfw-btn:hover { background: #000; color: #fff; transform: translateY(-1px); }
.rfw-btn--sm { padding: 9px 18px; font-size: .85rem; }
.rfw-btn--accent { background: linear-gradient(135deg, var(--rfw-coral), var(--rfw-coral-dark)); box-shadow: var(--rfw-shadow-cta); }
.rfw-btn--accent:hover { background: linear-gradient(135deg, var(--rfw-coral), var(--rfw-coral-dark)); box-shadow: 0 20px 36px -8px rgba(221, 75, 44, .5); }
.rfw-btn--light { background: #fff; color: var(--rfw-coral-dark); }
.rfw-btn--light:hover { background: #fff7f4; color: var(--rfw-coral-dark); }
.rfw-btn--ghost { background: transparent; color: var(--rfw-ink); border: 1.5px solid var(--rfw-border); }
.rfw-btn--ghost:hover { background: var(--rfw-card-bg); border-color: var(--rfw-ink); color: var(--rfw-ink); }

.rfw-badge {
	display: inline-flex;
	align-items: center;
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .02em;
	padding: 4px 11px;
	border-radius: 999px;
}
.rfw-badge--free { background: var(--rfw-teal-tint); color: var(--rfw-teal-dark); }
.rfw-badge--paid { background: var(--rfw-coral-tint); color: var(--rfw-coral-dark); }
.rfw-badge--affiliate { background: #fff3cd; color: #8a6300; }

/* ---------- Breadcrumb ---------- */
.rfw-breadcrumb {
	font-size: .85rem;
	color: var(--rfw-ink-faint);
	padding: 20px 0 6px;
}
.rfw-breadcrumb a { color: var(--rfw-ink-faint); font-weight: 500; }
.rfw-breadcrumb a:hover { color: var(--rfw-teal); }
.rfw-breadcrumb__sep { margin: 0 8px; opacity: .5; }

/* ---------- Hero ---------- */
.rfw-hero {
	position: relative;
	border-radius: var(--rfw-radius-lg);
	overflow: hidden;
	min-height: 420px;
	display: flex;
	align-items: flex-end;
	color: #fff;
	background: linear-gradient(135deg, var(--rfw-teal), var(--rfw-teal-dark));
	margin-bottom: 8px;
	box-shadow: var(--rfw-shadow);
}
.rfw-hero__image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.rfw-hero::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, rgba(7, 15, 18, .88) 0%, rgba(7, 15, 18, .3) 55%, rgba(7, 15, 18, .05) 80%);
}
.rfw-hero__content { position: relative; padding: 44px 48px; z-index: 2; max-width: 760px; }
.rfw-hero__eyebrow {
	display: inline-block;
	text-transform: uppercase;
	letter-spacing: .08em;
	font-size: .72rem;
	font-weight: 700;
	color: #fff;
	background: rgba(255, 107, 74, .28);
	border: 1px solid rgba(255, 255, 255, .35);
	padding: 5px 13px;
	border-radius: 999px;
	backdrop-filter: blur(4px);
}
.rfw-hero__title { font-size: clamp(2rem, 4vw, 2.9rem); font-weight: 800; margin: 14px 0 8px; color: #fff; }
.rfw-hero__subtitle { font-size: 1.08rem; opacity: .92; max-width: 640px; }

.rfw-hero--home {
	min-height: 520px;
	margin-top: 8px;
}
.rfw-hero--home .rfw-hero__content { max-width: 620px; padding: 56px 48px; }
.rfw-hero--home .rfw-hero__title { font-size: clamp(2.3rem, 5vw, 3.4rem); }
.rfw-hero--home .rfw-hero__subtitle { font-size: 1.15rem; margin-bottom: 24px; }
.rfw-hero--home:not(:has(.rfw-hero__image)) { background: linear-gradient(135deg, var(--rfw-teal), var(--rfw-teal-dark), var(--rfw-ink)); }
.rfw-hero__eyebrow--dark {
	color: var(--rfw-coral-dark);
	background: var(--rfw-coral-tint);
	border: 1px solid rgba(221, 75, 44, .18);
	backdrop-filter: none;
}

/* ---------- Standalone page header (no hero image, e.g. continent hub) ---------- */
.rfw-page-header { margin-top: 8px; }
.rfw-page-title { font-size: clamp(1.9rem, 3.4vw, 2.5rem); font-weight: 800; margin: 12px 0 10px; }
.rfw-page-header__lede { color: var(--rfw-ink-soft); font-size: 1.08rem; max-width: 680px; margin: 0; }

/* ---------- Sections ---------- */
.rfw-section { margin: 52px 0; }
.rfw-section__title {
	font-size: 1.55rem;
	font-weight: 700;
	position: relative;
	padding-left: 18px;
}
.rfw-section__title::before {
	content: '';
	position: absolute;
	left: 0; top: .15em;
	width: 5px; height: 1em;
	border-radius: 3px;
	background: linear-gradient(180deg, var(--rfw-coral), var(--rfw-teal));
}
.rfw-about p { font-size: 1.08rem; color: var(--rfw-ink-soft); max-width: 760px; }
.rfw-about { font-size: 1.05rem; color: var(--rfw-ink-soft); max-width: 760px; }
.rfw-about h2, .rfw-about h3 { color: var(--rfw-ink); margin-top: 1.2em; }
.rfw-about img { border-radius: var(--rfw-radius); margin: 1em 0; }
.rfw-about a { text-decoration: underline; text-underline-offset: 2px; }
.rfw-about ul, .rfw-about ol { padding-left: 1.3em; }

/* ---------- Quick facts ---------- */
.rfw-quick-facts { display: flex; flex-wrap: wrap; gap: 12px; }
.rfw-quick-facts__item {
	background: var(--rfw-card-bg);
	border: 1px solid var(--rfw-border);
	border-radius: var(--rfw-radius-sm);
	padding: 11px 18px;
	font-size: .92rem;
	box-shadow: var(--rfw-shadow-sm);
}
.rfw-quick-facts__item strong {
	display: block;
	color: var(--rfw-teal-dark);
	font-size: .72rem;
	text-transform: uppercase;
	letter-spacing: .05em;
	margin-bottom: 2px;
}

/* ---------- Map ---------- */
.rfw-map { border-radius: var(--rfw-radius); overflow: hidden; box-shadow: var(--rfw-shadow); border: 1px solid var(--rfw-border); }

/* ---------- Card grid ---------- */
.rfw-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(268px, 1fr));
	gap: 26px;
}
.rfw-card {
	background: var(--rfw-card-bg);
	border-radius: var(--rfw-radius);
	overflow: hidden;
	box-shadow: var(--rfw-shadow);
	border: 1px solid var(--rfw-border-soft);
	transition: transform .22s cubic-bezier(.2,.8,.2,1), box-shadow .22s ease;
	display: flex;
	flex-direction: column;
}
.rfw-card:hover { transform: translateY(-6px); box-shadow: var(--rfw-shadow-hover); }
.rfw-card__image-wrap { position: relative; aspect-ratio: 4 / 3; background: var(--rfw-border); overflow: hidden; }
.rfw-card__image { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.rfw-card:hover .rfw-card__image { transform: scale(1.06); }
.rfw-card__body { padding: 18px 18px 20px; flex: 1; display: flex; flex-direction: column; gap: 7px; }
.rfw-card__tag {
	position: absolute;
	top: 12px; left: 12px;
	background: rgba(7, 15, 18, .55);
	backdrop-filter: blur(4px);
	color: #fff;
	font-size: .68rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .05em;
	padding: 4px 11px;
	border-radius: 999px;
	z-index: 2;
}
.rfw-card__title { font-size: 1.12rem; font-weight: 700; margin: 0; }
.rfw-card__excerpt { color: var(--rfw-ink-soft); font-size: .9rem; }

/* ---------- Destination list (city -> landmarks) ---------- */
.rfw-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.rfw-list__item {
	display: flex;
	align-items: center;
	gap: 16px;
	background: var(--rfw-card-bg);
	border: 1px solid var(--rfw-border-soft);
	border-radius: var(--rfw-radius-sm);
	padding: 15px 20px;
	box-shadow: var(--rfw-shadow-sm);
	transition: box-shadow .18s ease, transform .18s ease;
}
.rfw-list__item:hover { box-shadow: var(--rfw-shadow); transform: translateX(3px); }
.rfw-list__icon {
	width: 42px; height: 42px; flex: none;
	border-radius: 50%;
	background: var(--rfw-coral-tint);
	color: var(--rfw-coral-dark);
	display: flex; align-items: center; justify-content: center;
	font-weight: 700;
	font-size: .8rem;
}
.rfw-list__name { font-weight: 600; flex: 1; }
.rfw-list__tag {
	font-size: .72rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .03em;
	color: var(--rfw-teal-dark);
	background: var(--rfw-teal-tint);
	padding: 4px 10px;
	border-radius: 999px;
}

/* ---------- Guide + affiliate cards ---------- */
.rfw-guides { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 18px; }
.rfw-card-guide, .rfw-card-affiliate {
	background: var(--rfw-card-bg);
	border: 1px solid var(--rfw-border-soft);
	border-radius: var(--rfw-radius);
	padding: 20px;
	display: flex;
	gap: 14px;
	align-items: flex-start;
	box-shadow: var(--rfw-shadow-sm);
	transition: box-shadow .18s ease, transform .18s ease, border-color .18s ease;
}
.rfw-card-guide:hover, .rfw-card-affiliate:hover {
	box-shadow: var(--rfw-shadow);
	transform: translateY(-3px);
	border-color: transparent;
}
.rfw-card-guide__icon, .rfw-card-affiliate__icon {
	font-size: 1.4rem; flex: none;
	width: 46px; height: 46px;
	display: flex; align-items: center; justify-content: center;
	border-radius: 12px;
	background: var(--rfw-teal-tint);
}
.rfw-card-guide__body { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.rfw-card-guide__title { font-size: 1rem; }
.rfw-card-guide__meta { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.rfw-card-guide__cta {
	font-size: .82rem;
	font-weight: 700;
	color: var(--rfw-coral-dark);
}

.rfw-affiliate-banner { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 18px; }
.rfw-card-affiliate__icon { background: var(--rfw-coral-tint); }
.rfw-card-affiliate__desc { display: block; color: var(--rfw-ink-soft); font-size: .88rem; margin: 3px 0 8px; }

/* ---------- Stats grid (landmark) ---------- */
.rfw-stats-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; max-width: 500px; }
.rfw-stat {
	background: var(--rfw-card-bg);
	border: 1px solid var(--rfw-border-soft);
	border-radius: var(--rfw-radius-sm);
	padding: 18px;
	box-shadow: var(--rfw-shadow-sm);
}
.rfw-stat__label { font-size: .74rem; text-transform: uppercase; letter-spacing: .06em; color: var(--rfw-ink-faint); font-weight: 600; }
.rfw-stat__value { font-size: 1.3rem; font-weight: 800; color: var(--rfw-teal-dark); margin-top: 2px; font-family: var(--rfw-font-head); }

/* ---------- Story blockquote ---------- */
.rfw-story {
	position: relative;
	border-left: 4px solid var(--rfw-coral);
	background: var(--rfw-coral-tint);
	padding: 26px 28px 24px 56px;
	border-radius: 0 var(--rfw-radius) var(--rfw-radius) 0;
	font-style: italic;
	font-size: 1.08rem;
	line-height: 1.7;
	color: var(--rfw-ink);
}
.rfw-story::before {
	content: '\201C';
	position: absolute;
	left: 16px; top: 6px;
	font-family: Georgia, serif;
	font-size: 3.2rem;
	font-style: normal;
	color: var(--rfw-coral);
	opacity: .5;
	line-height: 1;
}
.rfw-story__date { display: block; margin-top: 12px; font-style: normal; font-size: .82rem; font-weight: 600; color: var(--rfw-ink-faint); }

/* ---------- Gallery ---------- */
.rfw-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 14px; }
.rfw-gallery img {
	border-radius: var(--rfw-radius-sm);
	aspect-ratio: 4/3;
	object-fit: cover;
	box-shadow: var(--rfw-shadow-sm);
	transition: transform .25s ease, box-shadow .25s ease;
}
.rfw-gallery img:hover { transform: scale(1.02); box-shadow: var(--rfw-shadow); }

/* ---------- Booking CTA ---------- */
.rfw-booking-cta {
	position: relative;
	background: linear-gradient(135deg, var(--rfw-coral), var(--rfw-coral-dark));
	color: #fff;
	border-radius: var(--rfw-radius-lg);
	padding: 32px 36px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 18px;
	box-shadow: var(--rfw-shadow-cta);
	overflow: hidden;
}
.rfw-booking-cta::before {
	content: '';
	position: absolute;
	right: -60px; top: -60px;
	width: 220px; height: 220px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .1);
}
.rfw-booking-cta__label { font-weight: 700; font-size: 1.12rem; position: relative; }
.rfw-booking-cta__price { font-size: 1.7rem; font-weight: 800; font-family: var(--rfw-font-head); position: relative; }
.rfw-booking-cta .rfw-btn { position: relative; }

/* ---------- 404 ---------- */
.rfw-404 {
	text-align: center;
	max-width: 480px;
	margin: 80px auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
}
.rfw-404__icon { font-size: 3.2rem; margin-bottom: 6px; }
.rfw-404 .rfw-page-header__lede { margin-bottom: 14px; }

/* ---------- Ad slot ---------- */
.rfw-ad-slot { text-align: center; margin: 40px 0; }

/* ---------- Footer ---------- */
.rfw-site-footer {
	background: var(--rfw-ink);
	color: #b9c7cb;
	margin-top: 80px;
	padding: 56px 0 0;
	position: relative;
}
.rfw-site-footer::before {
	content: '';
	display: block;
	height: 4px;
	background: linear-gradient(90deg, var(--rfw-coral), var(--rfw-teal));
}
.rfw-site-footer__grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr;
	gap: 40px;
	padding-bottom: 40px;
}
.rfw-site-footer__brand p { color: #8fa0a6; font-size: .92rem; max-width: 320px; margin-top: 14px; }
.rfw-logo--footer { color: #fff; }
.rfw-site-footer h3 {
	color: #fff;
	font-size: .82rem;
	text-transform: uppercase;
	letter-spacing: .07em;
	margin-bottom: 16px;
}
.rfw-site-footer ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.rfw-site-footer a { color: #b9c7cb; font-size: .92rem; }
.rfw-site-footer a:hover { color: #fff; }
.rfw-site-footer__bottom {
	border-top: 1px solid rgba(255, 255, 255, .1);
	padding: 22px 0;
	font-size: .82rem;
	color: #7c8b91;
}

@media (max-width: 780px) {
	.rfw-site-footer__grid { grid-template-columns: 1fr 1fr; }
	.rfw-site-footer__brand { grid-column: 1 / -1; }
}

@media (max-width: 640px) {
	.rfw-hero { min-height: 320px; }
	.rfw-hero__content { padding: 28px 24px; }
	.rfw-hero__title { font-size: 1.7rem; }
	.rfw-hero--home { min-height: 420px; }
	.rfw-hero--home .rfw-hero__content { padding: 28px 24px; }
	.rfw-stats-grid { grid-template-columns: 1fr 1fr; }
	.rfw-nav ul { display: none; }
	.rfw-booking-cta { flex-direction: column; align-items: flex-start; }
	.rfw-site-footer__grid { grid-template-columns: 1fr; }
}
