:root {
  --olive: #B3B000;
  --olive-dark: #999600;
  --olive-ink: #6F6D00;
  --slate: #252F37;
  --slate-2: #1B232A;
  --grey: #7E8B8B;
  --sky: #00A5F4;
  --paper: #F7F7F2;
}
html { scroll-behavior: smooth; scroll-padding-top: 6rem; }
body { font-family: 'Manrope', system-ui, sans-serif; color: #2b3138; background: #fff; -webkit-font-smoothing: antialiased; }
.font-display { font-family: 'Sora', 'Manrope', sans-serif; }
.t-hero { font-family: 'Sora', sans-serif; font-weight: 700; font-size: clamp(2.6rem, 1.4rem + 5.6vw, 6.2rem); line-height: .98; letter-spacing: -0.045em; }
.t-1 { font-family: 'Sora', sans-serif; font-weight: 700; font-size: clamp(2.2rem, 1.4rem + 3.4vw, 4.4rem); line-height: 1.03; letter-spacing: -0.04em; }
.t-2 { font-family: 'Sora', sans-serif; font-weight: 700; font-size: clamp(1.75rem, 1.2rem + 2.1vw, 3.1rem); line-height: 1.08; letter-spacing: -0.035em; }
.t-3 { font-family: 'Sora', sans-serif; font-weight: 600; font-size: clamp(1.2rem, 1rem + .7vw, 1.55rem); line-height: 1.2; letter-spacing: -0.02em; }
.lead { font-size: clamp(1.05rem, .98rem + .35vw, 1.25rem); line-height: 1.7; }
.eyebrow { font-family: 'Sora', sans-serif; font-size: .75rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; }
.strap { font-family: 'Sora', sans-serif; font-style: italic; font-weight: 400; }

.btn { display: inline-flex; align-items: center; justify-content: center; gap: .6rem; min-height: 3.25rem; padding: .85rem 1.5rem; border-radius: 999px; font-family: 'Sora', sans-serif; font-weight: 600; font-size: .95rem; transition: transform .25s ease, background-color .25s ease, color .25s ease, box-shadow .25s ease; }
.btn:hover { transform: translateY(-2px); }
.btn:focus-visible, a:focus-visible, button:focus-visible, summary:focus-visible { outline: 3px solid var(--sky); outline-offset: 3px; }
.btn-olive { background: var(--olive); color: var(--slate); box-shadow: 0 10px 30px -12px rgba(179,176,0,.8); }
.btn-olive:hover { background: #c6c300; }
.btn-slate { background: var(--slate); color: #fff; }
.btn-slate:hover { background: #33404a; }
.btn-ghost-light { border: 1.5px solid rgba(255,255,255,.55); color: #fff; }
.btn-ghost-light:hover { background: #fff; color: var(--slate); }
.btn-ghost { border: 1.5px solid rgba(37,47,55,.25); color: var(--slate); }
.btn-ghost:hover { border-color: var(--slate); background: var(--slate); color: #fff; }
.btn .arrow { transition: transform .25s ease; }
.btn:hover .arrow { transform: translateX(4px); }

.site-header { transition: box-shadow .3s ease, background-color .3s ease; }
.site-header.scrolled { box-shadow: 0 10px 30px -18px rgba(37,47,55,.45); background-color: rgba(255,255,255,.92); }
.nav-link { position: relative; }
.nav-link::after { content: ''; position: absolute; left: 0; right: 0; bottom: -6px; height: 2px; background: var(--olive); transform: scaleX(0); transform-origin: left; transition: transform .25s ease; }
.nav-link:hover::after, .nav-link[aria-current="page"]::after { transform: scaleX(1); }

.reveal { opacity: 0; transform: translateY(22px); transition: opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1); }
.reveal.in { opacity: 1; transform: none; }
.reveal-d1 { transition-delay: .08s; } .reveal-d2 { transition-delay: .16s; } .reveal-d3 { transition-delay: .24s; }

.card-lift { transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease; }
.card-lift:hover { transform: translateY(-6px); box-shadow: 0 28px 50px -28px rgba(37,47,55,.55); }
.zoom-img { overflow: hidden; }
.zoom-img img { transition: transform .9s cubic-bezier(.2,.7,.2,1); }
.zoom-img:hover img, .card-lift:hover .zoom-img img { transform: scale(1.06); }

.hero-shape { clip-path: polygon(22% 0, 100% 0, 100% 100%, 0 100%); }
.diag-top { clip-path: polygon(0 4vw, 100% 0, 100% 100%, 0 100%); }
.grain { background-image: radial-gradient(rgba(255,255,255,.06) 1px, transparent 1px); background-size: 4px 4px; }
.stripe { background-image: repeating-linear-gradient(135deg, rgba(179,176,0,.16) 0 2px, transparent 2px 14px); }

.snap-row { scroll-snap-type: x mandatory; scrollbar-width: thin; }
.snap-row > * { scroll-snap-align: start; }

details > summary { list-style: none; cursor: pointer; }
details > summary::-webkit-details-marker { display: none; }
details[open] .acc-icon { transform: rotate(45deg); }
.acc-icon { transition: transform .3s ease; }

.field { width: 100%; border-radius: .9rem; border: 1.5px solid #d9dcd6; background: #fff; padding: .85rem 1rem; font-size: 1rem; color: var(--slate); transition: border-color .2s, box-shadow .2s; }
.field:focus { outline: none; border-color: var(--slate); box-shadow: 0 0 0 4px rgba(179,176,0,.35); }
.label { display: block; font-family: 'Sora', sans-serif; font-size: .8rem; font-weight: 600; color: var(--slate); margin-bottom: .4rem; letter-spacing: .01em; }
.hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }
.grecaptcha-badge { visibility: hidden; }
.form-status { display: none; }
.form-status.show { display: flex; }

.legal h2 { font-family: 'Sora', sans-serif; font-weight: 700; font-size: 1.6rem; letter-spacing: -.02em; color: var(--slate); margin: 2.5rem 0 1rem; }
.legal h3, .legal h4 { font-family: 'Sora', sans-serif; font-weight: 600; font-size: 1.15rem; color: var(--slate); margin: 2rem 0 .6rem; }
.legal p { margin: 0 0 1rem; line-height: 1.75; }
.legal ul, .legal ol { margin: 0 0 1rem 1.25rem; list-style: disc; }
.legal li { margin: .35rem 0; line-height: 1.7; }
.legal a { color: var(--olive-ink); text-decoration: underline; }

dialog.car-dialog { width: min(1100px, calc(100vw - 1.5rem)); max-height: calc(100vh - 1.5rem); padding: 0; border: 0; border-radius: 1.5rem; }
dialog::backdrop { background: rgba(27,35,42,.78); backdrop-filter: blur(4px); }
dialog.lightbox { width: min(1200px, calc(100vw - 1rem)); padding: 0; border: 0; background: transparent; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { opacity: 1; transform: none; transition: none; }
  .card-lift, .zoom-img img, .btn, .btn .arrow { transition: none; }
  .card-lift:hover, .btn:hover { transform: none; }
  .zoom-img:hover img, .card-lift:hover .zoom-img img { transform: none; }
}

/* Used-car make filter chips */
[data-make-filter] { border-color: rgba(37,47,55,.16); background: #fff; color: var(--slate); }
[data-make-filter]:hover { border-color: var(--slate); }
[data-make-filter][aria-pressed="true"] { background: var(--slate); border-color: var(--slate); color: #fff; }
[data-make-filter][aria-pressed="true"] span { color: var(--olive); opacity: 1; }
[data-stock-grid] > [hidden] { display: none !important; }
