/* Core layout & helpers */
:root { --brand-500:#2B9BFF; }
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }

.wrapper { max-width: 1120px; margin-inline: auto; padding-inline: 1rem; }
.section { padding-block: 4rem; }
.section.alt { background: #f8fafc; }
.dark .section.alt { background: rgba(15,23,42,.3); }
.section-title { @apply text-3xl font-bold mb-8; }
.title { @apply text-4xl md:text-5xl font-bold leading-tight; }
.lead { @apply mt-5 text-lg text-slate-600 dark:text-slate-300; }
.muted { @apply text-slate-600 dark:text-slate-300; }
.link { @apply hover:text-brand-600 dark:hover:text-brand-400; }
.link-brand { @apply text-brand-600 dark:text-brand-400 hover:underline; }

.btn-primary { @apply inline-flex items-center gap-2 px-5 py-3 rounded-xl bg-brand-600 text-white shadow-lg hover:shadow-[0_0_0_2px_rgba(43,155,255,.25),0_8px_30px_rgba(2,12,27,.12)]; }
.btn-outline { @apply inline-flex items-center gap-2 px-5 py-3 rounded-xl border border-slate-300 dark:border-slate-700 hover:bg-slate-100 dark:hover:bg-slate-800; }
.btn-ghost { @apply px-3 py-1 rounded-lg border border-slate-300 dark:border-slate-700 text-xs hover:bg-slate-100 dark:hover:bg-slate-800; }
.icon-btn { @apply p-2 rounded-lg border border-slate-300 dark:border-slate-700 hover:bg-slate-100 dark:hover:bg-slate-800; }

.media-frame { @apply aspect-[4/3] rounded-2xl overflow-hidden shadow-xl ring-1 ring-slate-900/5 dark:ring-white/10; }
.media-frame img { @apply h-full w-full object-cover; }

.features-inline { @apply mt-6 flex items-center gap-6 text-sm text-slate-500 dark:text-slate-400; }
.features-inline > div { @apply flex items-center gap-2; }

.card { @apply p-6 rounded-2xl border border-slate-200 dark:border-slate-800 bg-white/70 dark:bg-slate-900/60 backdrop-blur; }
.card-icon { @apply h-12 w-12 rounded-xl bg-blue-50 text-blue-700 flex items-center justify-center mb-4; }

.step { @apply p-6 rounded-2xl border border-slate-200 dark:border-slate-800 bg-white dark:bg-slate-900 relative; }
.step-num { @apply h-8 w-8 rounded-full bg-brand-600 text-white flex items-center justify-center font-semibold absolute -top-4 -left-4; }

.faq { @apply rounded-xl border border-slate-200 dark:border-slate-800 p-5 bg-white dark:bg-slate-900; }
.faq summary { @apply flex cursor-pointer items-center justify-between gap-4 font-semibold; }
.faq p { @apply mt-3 text-slate-600 dark:text-slate-300; }

.contact-list { @apply mt-6 space-y-3 text-slate-600 dark:text-slate-300; }
.form { @apply p-6 rounded-2xl border border-slate-200 dark:border-slate-800 bg-white dark:bg-slate-900 space-y-4; }
.form input, .form textarea { @apply w-full rounded-xl border border-slate-300 dark:border-slate-700 bg-white dark:bg-slate-950 px-3 py-2 focus:outline-none focus:ring-2 focus:ring-[var(--brand-500)]; }

/* Swiper tweaks */
.swiper { --swiper-navigation-size: 18px; }
.swiper-slide img { width: 100%; height: 7rem; object-fit: cover; border-radius: .75rem; }

/* Blobs */
.blob { position: absolute; filter: blur(50px); opacity:.45; }
.blob:nth-child(1){ top:-4rem; left:-2rem; width:16rem; height:16rem; border-radius:999px; }
.blob:nth-child(2){ top:10rem; right:-2rem; width:18rem; height:18rem; border-radius:999px; }
.blob:nth-child(3){ bottom:-2rem; left:33%; width:20rem; height:20rem; border-radius:999px; }

/* Accessibility */
@media (prefers-reduced-motion: reduce) {
  * { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}