:root{
  --bg:#0b0c10;--fg:#e9eef2;--muted:#9aa4b2;--line:rgba(255,255,255,.12);
  --card:#111318;--glass:rgba(255,255,255,.04);--primary:#e11d48;--primary2:#fb923c;
  --wrap:1100px;--r:14px;--pad:16px
}
@media (prefers-color-scheme:light){
  :root{--bg:#fff;--fg:#0f172a;--muted:#6b7280;--line:rgba(15,23,42,.12);--card:#fff;--glass:rgba(15,23,42,.04)}
}
*{box-sizing:border-box}html,body{margin:0;padding:0}
body{background:var(--bg);color:var(--fg);font:16px/1.6 Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}
.wrap{max-width:var(--wrap);margin:0 auto;padding:var(--pad)}h1,h2{margin:0 0 .6rem}
a{color:inherit}
.nav{position:sticky;top:0;z-index:60;backdrop-filter:saturate(140%) blur(8px);
  background:color-mix(in hsl, var(--bg) 75%, transparent);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px}
.brand{display:flex;align-items:center;gap:10px}
.logo{width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,var(--primary),var(--primary2));box-shadow:0 0 0 1px var(--line) inset}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 14px;border-radius:999px;font-weight:700;border:1px solid var(--line);background:var(--card);color:var(--fg)}
.btn.primary{border:none;background:linear-gradient(135deg,var(--primary),var(--primary2));color:#fff}
.hero-band{background:#000}
.hero-head{padding:16px 16px 0;max-width:var(--wrap);margin:0 auto}
.cta{display:flex;gap:10px;flex-wrap:wrap}
.hero-media.edge{width:100vw;position:relative;left:50%;transform:translateX(-50%);margin-top:12px}
.hero-media .inner{max-width:var(--wrap);margin:0 auto;border-radius:18px;overflow:hidden;box-shadow:0 12px 40px rgba(0,0,0,.45)}
.hero-media .frame{height:clamp(280px,62vh,560px)}
.hero-media img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 42%;background:#000}
.section .wrap{padding:14px 16px}.section + .section{margin-top:6px}
.cat{border:1px solid var(--line);border-radius:var(--r);margin:10px 0;background:var(--card);overflow:hidden}
.cat summary{cursor:pointer;font-weight:700;padding:12px 14px;list-style:none}.cat summary::-webkit-details-marker{display:none}
.cat ul{margin:0;padding:10px 14px 14px;list-style:none;display:flex;flex-wrap:wrap;gap:8px}
.cat li{border:1px solid var(--line);border-radius:999px;padding:8px 12px;background:var(--glass)}
.cat li::before{content:"";width:6px;height:6px;border-radius:999px;background:#10b981;margin-right:8px;display:inline-block}
.reviews .grid{display:grid;gap:12px}
@media (min-width:768px){.reviews .grid{grid-template-columns:repeat(3,1fr)}}
.rev{padding:14px;border:1px solid var(--line);border-radius:var(--r);background:var(--card)}
.stars{color:#f59e0b;font-size:14px;letter-spacing:.5px}
.rev .name{font-weight:700;margin-top:6px}.rev .date{color:var(--muted);font-size:.9rem}
.review-cta{margin-top:10px;display:flex;gap:10px;flex-wrap:wrap}
.addr{color:var(--muted)}.map-embed{margin-top:10px;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.map-embed iframe{width:100%;height:220px;border:0}
.actionbar{position:fixed;bottom:10px;left:50%;transform:translateX(-50%);z-index:70;display:flex;gap:10px;background:color-mix(in hsl, var(--bg) 70%, transparent);backdrop-filter:blur(8px) saturate(140%);border:1px solid var(--line);padding:8px;border-radius:999px}
.actionbar a{min-height:40px;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--fg);font-weight:700}
.actionbar a.primary{border:none;background:linear-gradient(135deg,var(--primary),var(--primary2));color:#fff}
@media (min-width:820px){.actionbar{display:none}}
.hours{display:grid;grid-template-columns:1fr auto;gap:6px;max-width:480px}
.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-weight:700;border:1px solid var(--line);background:var(--glass)}
.badge.ok{background:rgba(16,185,129,.15);color:#10b981;border-color:rgba(16,185,129,.35)}
.badge.closed{background:rgba(239,68,68,.15);color:#ef4444;border-color:rgba(239,68,68,.35)}
.footer{color:var(--muted);border-top:1px solid var(--line);margin-top:20px}
.footer .wrap{padding:20px 16px}

.logo{display:grid;place-items:center}
.logo .car-icon{width:16px;height:16px;color:#fff;opacity:.95}
@media (prefers-color-scheme:light){ .logo .car-icon{color:#0f172a} }


/* === Lightbox (vanilla) === */
.lightbox-overlay{position:fixed;inset:0;background:rgba(0,0,0,.9);display:none;align-items:center;justify-content:center;z-index:9999}
.lightbox-overlay.open{display:flex}
.lightbox-frame{position:relative;max-width:92vw;max-height:88vh}
.lightbox-img{max-width:92vw;max-height:88vh;display:block}
.lightbox-close,.lightbox-prev,.lightbox-next{
  position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
  color:#fff;padding:10px 12px;border-radius:999px;cursor:pointer;user-select:none
}
.lightbox-close{top:6%;right:4%;transform:none}
.lightbox-prev{left:-48px}
.lightbox-next{right:-48px}
@media (max-width:640px){
  .lightbox-prev{left:8px} .lightbox-next{right:8px}
  .lightbox-close{top:12px;right:12px}
}
.lightbox-caption{position:absolute;left:0;right:0;bottom:-36px;color:#e5e7eb;text-align:center;font-size:.9rem}
/* Give photos grid nice hover */
.section.photos img{transition:transform .25s ease}
.section.photos img:hover{transform:scale(1.01)}


/* === Photos: compact horizontal scroller === */
.section.photos{padding-top:12px;padding-bottom:8px}
.section.photos .wrap > h2{margin-bottom:8px}
.photos-scroll{
  display:flex; gap:8px; overflow-x:auto; overflow-y:hidden; padding:8px 2px 12px;
  scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch;
}
.photos-scroll figure{
  flex:0 0 auto; width:78vw; max-width:320px; border-radius:14px; scroll-snap-align:center;
  background:#0b0b0b; /* subtle frame on dark hero */
}
@media (min-width:640px){
  .photos-scroll figure{ width:320px }
}
.photos-scroll img{
  width:100%; height:100%; display:block; object-fit:cover;
  aspect-ratio:4/3; border-radius:14px;
}
/* Reduce gaps elsewhere a touch */
.section.blog .wrap, .section.faq .wrap{padding-top:6px}


/* === Unified inner-page hero & rhythm === */
.section.hero{background:#0b0b0b;color:#fff;padding:22px 0 18px;border-bottom:1px solid var(--line)}
.section.hero .wrap h1{font-size:1.6rem;line-height:1.15;margin:0 0 4px}
.section.hero .wrap p.addr{opacity:.9;margin:0 0 6px}
.section.hero .wrap .hero-ctas{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.section.hero .btn{border-color:rgba(255,255,255,.25);color:#fff}
.section.hero .btn.primary{background:#fff;color:#0b0b0b}
.section.hero .stars{letter-spacing:.06em}
.section{padding-top:20px;padding-bottom:18px}
.section .wrap > h2{margin:6px 0 8px}
.cat{background:var(--card-bg,#111);border:1px solid var(--line);border-radius:14px;padding:12px 14px}
.section .wrap ul{margin:6px 0 10px;padding-left:18px}
@media (min-width:768px){
  .section.hero .wrap h1{font-size:1.9rem}
}


/* === Breadcrumbs === */
.crumbs{margin-top:10px;font-size:.9rem;opacity:.9}
.crumbs a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.crumbs .sep{opacity:.6;margin:0 6px}


/* --- Safety: logo & car-icon sizing --- */
.logo{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:var(--card-bg,#0b0b0b);color:#fff;flex-shrink:0}
.car-icon{width:22px;height:22px;display:block}
.nav .brand{display:flex;align-items:center;gap:10px}





/* === Reviews carousel === */
.reviews{padding-top:18px;padding-bottom:10px}
.reviews .track{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:8px 2px}
.reviews .card{min-width:280px;max-width:360px;scroll-snap-align:center}
.reviews .meta{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:.95rem;opacity:.95}
.reviews .stars{letter-spacing:.06em}
.reviews .arrows{display:flex;gap:8px;margin-top:8px}
.reviews .arrow{border:1px solid var(--line);background:transparent;border-radius:999px;padding:6px 10px;cursor:pointer}
@media (min-width:768px){ .reviews .card{min-width:360px} }


/* Photos specific sizing */
.section.photos .carousel-item{width:78vw; max-width:320px; border-radius:14px; background:#0b0b0b}
@media (min-width:640px){ .section.photos .carousel-item{width:320px} }
.section.photos img{width:100%; height:100%; object-fit:cover; aspect-ratio:4/3; border-radius:14px}

/* Reviews cards sizing */
.section.reviews .carousel-item{min-width:280px; max-width:360px}
@media (min-width:768px){ .section.reviews .carousel-item{min-width:360px} }
.section.reviews .meta{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:.95rem;opacity:.95}
.section.reviews .stars{letter-spacing:.06em}

/* === Unified carousel (refined: arrows below, not overlay) === */
.carousel{position:relative}
.carousel-track{
  display:flex; gap:12px; overflow-x:auto; overflow-y:hidden;
  scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; padding:8px 2px;
}
.carousel-item{flex:0 0 auto; scroll-snap-align:center}

/* Below-controls row */
.carousel-controls{display:flex; align-items:center; gap:10px; margin-top:8px}
.carousel-controls .arrow{
  border:1px solid var(--line); border-radius:999px; background:transparent;
  padding:8px 12px; cursor:pointer
}
.carousel-controls .spacer{flex:1}
/* optional dots */
.carousel-controls .dot{width:8px;height:8px;border-radius:999px;background:#555}
.carousel-controls .dot.active{background:#fff}

/* Photos sizing */
.section.photos .carousel-item{width:78vw; max-width:320px; border-radius:14px; background:#0b0b0b}
@media (min-width:640px){ .section.photos .carousel-item{width:320px} }
.section.photos img{width:100%; height:100%; object-fit:cover; aspect-ratio:4/3; border-radius:14px}

/* Reviews sizing */
.section.reviews .carousel-item{min-width:280px; max-width:360px}
@media (min-width:768px){ .section.reviews .carousel-item{min-width:360px} }
.section.reviews .meta{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:.95rem;opacity:.95}
.section.reviews .stars{letter-spacing:.06em}
