/* =========================================================================
   Base reset, typography, utilities — Recon Travels (WANDER)
   ========================================================================= */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
	margin:0;
	background:var(--bg);
	background-image:
		radial-gradient(circle at 72% 10%,rgba(250,243,180,.12),transparent 34%),
		linear-gradient(180deg,#fff 0%,var(--bg) 42%,#f8faf6 100%);
	background-attachment:fixed;
	color:var(--text);
	font-family:var(--font-body);
	font-size:17px;
	line-height:1.6;
	font-weight:400;
	-webkit-font-smoothing:antialiased;
	overflow-x:hidden;
}
img,svg,video{ max-width:100%; display:block; height:auto; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }
input,textarea,select{ font-family:inherit; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4,p{ margin:0; }

h1,h2,h3,h4{ font-family:var(--font-display); color:var(--ink); letter-spacing:0; }

.container{ max-width:var(--container); margin:0 auto; padding-left:var(--gutter); padding-right:var(--gutter); }
.section{ padding:96px 0; position:relative; }
.section--soft{ background:var(--bg-soft); }
.section--tight{ padding:64px 0; }

.eyebrow{
	display:inline-flex; align-items:center; gap:8px;
	color:var(--accent); font-size:12px; letter-spacing:.16em;
	text-transform:uppercase; font-weight:600; font-family:var(--font-body);
}
.eyebrow::before{
	content:""; width:8px; height:8px; border-radius:50%;
	background:var(--accent); box-shadow:0 0 10px var(--sun-glow);
}

.h-hero{
	font-size:54px;
	line-height:.98; font-weight:700;
}
@media(min-width:680px){ .h-hero{ font-size:68px; } }
@media(min-width:1100px){ .h-hero{ font-size:84px; } }
@media(max-width:480px){ .h-hero{ font-size:42px; } }
.h-section{ font-size:38px; font-weight:600; line-height:1.08; }
@media(min-width:960px){ .h-section{ font-size:54px; } }
@media(max-width:480px){ .h-section{ font-size:30px; } }
.h-card{ font-size:22px; font-weight:600; }

.lede{ color:var(--muted); font-size:18px; line-height:1.45; max-width:560px; }
@media(min-width:900px){ .lede{ font-size:23px; } }

.mono{ font-family:var(--font-mono); font-size:14px; color:var(--faint); }
.heat{
	background:var(--molten-text);
	-webkit-background-clip:text; background-clip:text; color:transparent;
}

.btn{
	display:inline-flex; align-items:center; justify-content:center; gap:10px;
	height:54px; padding:0 28px; border-radius:var(--radius-md);
	font-weight:700; font-size:15px; border:none; white-space:nowrap;
	transition:transform .25s var(--ease-spring), box-shadow .25s, background .25s, border-color .25s, color .25s;
}
@media(min-width:600px){ .btn{ height:58px; padding:0 32px; font-size:16px; } }
.btn:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{
	outline:4px solid var(--accent-soft); outline-offset:2px; border-radius:8px;
}

.btn-primary{
	background:var(--molten); color:#fff; position:relative; overflow:hidden;
	box-shadow:var(--shadow-btn), inset 0 1px 0 rgba(255,255,255,.35);
}
.btn-primary:hover{ transform:translateY(-3px); box-shadow:0 24px 50px rgba(81,30,3,.42); }
.btn-primary::after{
	content:""; position:absolute; inset:0; border-radius:inherit;
	background:linear-gradient(110deg,transparent 32%,rgba(255,255,255,.45) 50%,transparent 68%);
	transform:translateX(-130%); animation:sweep 4.5s ease-in-out infinite;
}

.btn-secondary{
	background:#fff; color:var(--ink); border:1px solid var(--border-2);
	box-shadow:var(--shadow-sm);
}
.btn-secondary:hover{ background:var(--bg-soft); border-color:var(--accent); transform:translateY(-1px); }

.btn-block{ width:100%; }

.badge{
	display:inline-flex; align-items:center; gap:8px;
	background:#fff; border:1px solid var(--border); border-radius:var(--radius-pill);
	padding:9px 16px; font-size:13px; font-weight:600; color:var(--muted);
	box-shadow:0 6px 18px rgba(29,30,32,.05);
}
.badge .dot{ width:8px; height:8px; border-radius:50%; background:var(--accent); box-shadow:0 0 10px var(--sun-glow); }
.badge--deal{ color:var(--deal); background:rgba(192,57,43,.08); border-color:rgba(192,57,43,.2); }

.skip-link{
	position:absolute; left:-999px; top:auto; width:1px; height:1px; overflow:hidden;
	background:var(--ink); color:#fff; padding:14px 22px; border-radius:0 0 10px 0; z-index:1000;
}
.skip-link:focus{ left:0; top:0; width:auto; height:auto; }

.screen-reader-text{
	position:absolute!important; clip:rect(1px,1px,1px,1px); width:1px; height:1px; overflow:hidden;
}

.scrim-bottom{
	position:absolute; inset:auto 0 0 0; height:60%;
	background:linear-gradient(180deg,transparent,rgba(29,30,32,.75));
}

.stat .n{ font-family:var(--font-display); font-weight:700; font-size:34px; letter-spacing:0; color:var(--ink); }
@media(min-width:960px){ .stat .n{ font-size:44px; } }
@media(max-width:480px){ .stat .n{ font-size:28px; } }
.stat .l{ font-size:14px; color:var(--faint); margin-top:6px; }

.grid{ display:grid; gap:28px; }
.grid-2{ grid-template-columns:1fr; }
.grid-3{ grid-template-columns:1fr; }
.grid-4{ grid-template-columns:1fr; }
@media(min-width:680px){ .grid-2{ grid-template-columns:1fr 1fr; } .grid-4{ grid-template-columns:1fr 1fr; } }
@media(min-width:960px){ .grid-3{ grid-template-columns:1fr 1fr 1fr; } .grid-4{ grid-template-columns:repeat(4,1fr); } }

.text-center{ text-align:center; }
.mx-auto{ margin-left:auto; margin-right:auto; }
.mt-0{margin-top:0;} .mt-8{margin-top:8px;} .mt-12{margin-top:12px;} .mt-16{margin-top:16px;}
.mt-24{margin-top:24px;} .mt-32{margin-top:32px;} .mt-48{margin-top:48px;} .mt-64{margin-top:64px;}

.reveal{ opacity:0; transform:translateY(40px); transition:opacity .9s var(--ease-out), transform .9s var(--ease-out); }
.reveal.is-visible{ opacity:1; transform:translateY(0); }
@media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; } }
