@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&display=swap');

:root { --blue: #16a1f2; --deep: #07182d; --ink: #112238; --muted: #607088; --line: #d9e5ef; --soft: #f4f8fc; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: #fff; font-family: 'DM Sans', sans-serif; }
h1,h2,h3,h4 { font-family: 'Space Grotesk', sans-serif; letter-spacing: -0.04em; }
.eyebrow { color: var(--blue); font-size: .78rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.section-pad { padding: 5.75rem 0; }
.hero-grid { min-height: 650px; }
.hero-photo { aspect-ratio: 1.16/1; }
.hero-photo img { width: 100%; height: 100%; object-fit: cover; }
.hero-photo .hero-overlay-vehicle { position: absolute; z-index: 2; right: -13%; bottom: 0; width: 129%; height: auto; max-height: none; object-fit: contain; object-position: center bottom; filter: drop-shadow(0 18px 18px rgba(5, 20, 40, .28)); }
.hero-photo::after { content: ''; position: absolute; inset: auto 1.4rem 1.4rem auto; width: 110px; height: 110px; border: 1px solid rgba(255,255,255,.45); border-radius: 999px; }
.soft-grid { background-image: linear-gradient(rgba(22,161,242,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(22,161,242,.055) 1px, transparent 1px); background-size: 32px 32px; }
.service-card { transition: transform .25s ease, box-shadow .25s ease; }
.service-card:hover { transform: translateY(-4px); box-shadow: 0 18px 45px rgba(13,44,78,.10); }
.service-icon { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: .85rem; background: #e5f5ff; color: #087fc7; }
.photo-card { overflow: hidden; border-radius: 1.5rem; }
.photo-card img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.photo-card:hover img { transform: scale(1.035); }
.quote-card { position: relative; }
.quote-card::before { content: '“'; position: absolute; top: .25rem; right: 1rem; color: #bde8ff; font: 700 5rem/1 Georgia, serif; }
.step { position: relative; }
.step:not(:last-child)::after { content: ''; position: absolute; left: 1.1rem; top: 2.55rem; height: calc(100% - 1.4rem); border-left: 1px dashed #a9c9dc; }
.step-number { position: relative; z-index: 1; display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: 999px; color: #fff; background: var(--blue); font-weight: 700; }
.faq details { border-bottom: 1px solid var(--line); }
.faq summary { cursor: pointer; list-style: none; padding: 1.2rem 0; font-weight: 700; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: '+'; float: right; color: var(--blue); font-size: 1.35rem; }
.faq details[open] summary::after { content: '−'; }
.map-frame { min-height: 340px; filter: saturate(.92); }
.floating-whatsapp { box-shadow: 0 12px 30px rgba(0, 147, 80, .25); }
@media (max-width: 767px) { .section-pad { padding: 4rem 0; } .hero-grid { min-height: auto; } .hero-photo { aspect-ratio: 1.1/1; } .hero-photo::after { width: 72px; height: 72px; inset: auto 1rem 1rem auto; } }
