/* JNJ Cars — Minimal Elegant (gold / white / black) */
:root{
  --gold:#B9973F;
  --gold-soft:#E9DDC0;
  --black:#171614;
  --muted:#6B6B6B;
  --line:rgba(10,10,10,.12);
  --bg-soft:#FAF9F6;
}
html{scroll-behavior:smooth}
.hero-scroll-cue{position:absolute;z-index:2;left:50%;bottom:1.25rem;display:flex;width:2.75rem;height:2.75rem;align-items:center;justify-content:center;transform:translateX(-50%);border:1px solid rgba(255,255,255,.45);border-radius:9999px;color:#fff;background:rgba(23,22,20,.2);transition:background-color .2s ease,border-color .2s ease}
.hero-scroll-cue:hover{border-color:#b9973f;background:rgba(23,22,20,.65)}
.hero-scroll-cue svg{width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
body{font-family:'Inter',system-ui,-apple-system,sans-serif;background:#fff;color:var(--black);-webkit-font-smoothing:antialiased}
.font-serif-d{font-family:'Poppins','Montserrat','Inter',system-ui,sans-serif;font-weight:700;letter-spacing:-.01em}
#home h1{font-weight:800;letter-spacing:-.02em}
#home .font-serif-d.italic,#home p.font-serif-d{font-weight:300}
.eyebrow{font-weight:300}
.eyebrow{letter-spacing:.32em;font-size:11px;text-transform:uppercase;color:var(--gold);font-weight:600}
.gold-rule{width:48px;height:1px;background:var(--gold)}
.gold-glow{color:#fff;text-shadow:0 0 18px color-mix(in srgb,var(--gold) 75%,transparent),0 0 55px color-mix(in srgb,var(--gold) 40%,transparent)}
.btn-black{background:var(--black);color:#fff;transition:.25s ease}
.btn-black:hover{background:#2b2825}
.btn-outline{border:1px solid var(--black);transition:.25s ease}
.btn-outline:hover{background:var(--black);color:#fff}
.btn-gold{background:var(--gold);color:#fff;transition:.25s ease}
.btn-gold:hover{background:#a37f2c}
.hairline{border-color:var(--line)}
.minimal-input{border:0;border-bottom:1px solid var(--line);background:transparent;padding:.8rem 0;font-size:.95rem;width:100%;outline:none;transition:border-color .2s}
.minimal-input:focus{border-color:var(--gold)}
.service-row{transition:.25s ease}
.service-row:hover{background:var(--bg-soft);padding-left:1.75rem}
.service-row h3,.service-row p{transition:color .25s ease}
.service-row:hover h3{color:var(--black)}
.service-row:hover p{color:var(--muted)}
.img-frame{border:1px solid var(--line);padding:8px;background:#fff}
/* chat */
#chat-toggle{background:none;color:#fff;border:0;position:relative;overflow:visible;isolation:isolate}
.chat-toggle-photo{position:absolute;inset:0;border-radius:9999px;overflow:hidden;background:var(--black);border:1px solid var(--black);transition:.2s ease}
#chat-toggle:hover .chat-toggle-photo{background:var(--gold);border-color:var(--gold)}
.chat-toggle-photo::after{content:'';position:absolute;top:0;left:-90%;width:55%;height:100%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.6),transparent);transform:skewX(-20deg);opacity:0;pointer-events:none;z-index:1}
#chat-toggle.shimmer .chat-toggle-photo::after{opacity:1;animation:chat-shimmer 1.4s ease}
#chat-toggle.shimmer .chat-toggle-photo{box-shadow:0 0 0 4px rgba(185,151,63,.25);border-color:var(--gold)}
@keyframes chat-shimmer{0%{left:-90%}100%{left:140%}}
@media(prefers-reduced-motion:reduce){#chat-toggle.shimmer .chat-toggle-photo::after{animation:none;opacity:0}}
#chat-toggle{position:fixed;bottom:24px;right:24px;z-index:50;width:56px;height:56px;border-radius:9999px;display:flex;align-items:center;justify-content:center;margin:0;flex-shrink:0;padding:0}
.chat-toggle-photo img{width:100%;height:100%;object-fit:cover;display:block}
#chat-badge{position:absolute;top:-5px;right:-5px;z-index:2;width:14px;height:14px;border-radius:9999px;background:#dc2626;border:2px solid #fff;box-shadow:0 2px 8px rgba(220,38,38,.6)}
#chat-badge.hidden{display:none}
#chat-badge::after{content:'';position:absolute;inset:-2px;border-radius:inherit;border:2px solid rgba(220,38,38,.75);animation:badge-ping 1.8s ease-out infinite;pointer-events:none}
@keyframes badge-ping{0%{transform:scale(1);opacity:.9}70%{opacity:0}100%{transform:scale(1.6);opacity:0}}
@media(prefers-reduced-motion:reduce){#chat-badge::after{display:none}}
#chat-panel{position:fixed;bottom:96px;right:24px;z-index:50;width:min(92vw,24rem);height:460px;max-height:70vh;display:flex;flex-direction:column;background:#fff;transform-origin:bottom right;transition:opacity .25s ease,transform .25s ease;border:1px solid var(--black);margin:0}
#chat-panel.chat-hidden{opacity:0;transform:translateY(10px);pointer-events:none;visibility:hidden}
#chat-messages::-webkit-scrollbar{width:4px}
#chat-messages::-webkit-scrollbar-thumb{background:#d4d4d4}
.chat-bubble-user{background:var(--black);color:#fff;border-radius:2px;line-height:1.65;letter-spacing:.01em;white-space:pre-wrap;overflow-wrap:break-word;word-break:normal}
.chat-bubble-admin{background:#fff;color:var(--black);border:1px solid var(--line);border-radius:2px;line-height:1.65;letter-spacing:.01em;white-space:pre-wrap;overflow-wrap:break-word;word-break:normal}
/* Attachment-style card for booking / survey links shared in chat */
.chat-link-card{display:flex;align-items:center;gap:.65rem;width:100%;max-width:100%;margin-top:.5rem;background:#fff;border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:6px;padding:.6rem .75rem;text-decoration:none !important;box-shadow:0 1px 3px rgba(0,0,0,.1);transition:box-shadow .2s ease,transform .2s ease}
.chat-link-card:hover{box-shadow:0 4px 14px rgba(0,0,0,.14);transform:translateY(-1px)}
.chat-link-card-icon{font-size:1.2rem;line-height:1;flex-shrink:0}
.chat-link-card-body{display:flex;flex-direction:column;min-width:0;flex:1}
.chat-link-card-label{font-size:.62rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.chat-link-card-url{font-size:.7rem;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-link-card-btn{flex-shrink:0;background:var(--gold);color:#fff !important;font-size:.66rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:.5rem .85rem;border-radius:4px;white-space:nowrap}
/* Narrow screens: stack the card so the button never crushes the URL inside small bubbles */
@media (max-width:480px){
  .chat-link-card{flex-wrap:wrap}
  .chat-link-card-btn{flex:1 1 100%;text-align:center}
}
#chat-messages{--chat-gap:.65rem}
#chat-messages .flex{margin-bottom:var(--chat-gap)}
.is-hidden{display:none !important}
/* pre-chat lead form */
#chat-prechat{flex:1;overflow-y:auto;padding:20px;background:#fff;text-align:left}
#chat-prechat h4{font-size:26px;line-height:1.1;margin-top:6px}
.chat-prechat-sub{font-size:12px;color:var(--muted);margin:6px 0 14px;font-weight:300}
#chat-lead-form{display:grid;gap:10px}
#chat-lead-form label{display:grid;gap:4px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#8a8a8a}
#chat-lead-form input,#chat-lead-form select{border:1px solid var(--line);background:#fff;color:var(--black);font-size:14px;letter-spacing:0;text-transform:none;padding:10px 12px;width:100%;outline:none;border-radius:0;min-height:44px}
#chat-lead-form input:focus,#chat-lead-form select:focus{border-color:var(--gold)}
.chat-lead-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
#chat-lead-error{display:none;font-size:12px;color:#b3261e;letter-spacing:0;text-transform:none}
#chat-lead-error.show{display:block}
#chat-lead-submit{background:var(--black);color:#fff;font-size:12px;letter-spacing:.25em;text-transform:uppercase;padding:14px;margin-top:4px;transition:.25s ease;min-height:48px}
#chat-lead-submit:hover{background:var(--gold)}
#chat-lead-submit:disabled{opacity:.6}
/* small screens: bottom-sheet chat */
@media (max-width:640px){
  #chat-toggle{bottom:16px;right:16px}
  #chat-panel{left:12px;right:12px;bottom:84px;width:auto;height:72vh;height:72dvh;max-height:none}
  #chat-panel .chat-lead-row{grid-template-columns:1fr}
  #chat-messages{font-size:15px}
}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .8s ease,transform .8s ease}
.reveal.visible{opacity:1;transform:none}
.nav-minimal{background:transparent;border-bottom:1px solid transparent;transition:background .3s ease,border-color .3s ease}
.nav-minimal.scrolled{background:rgba(23,22,20,.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom-color:rgba(255,255,255,.08)}
.nav-minimal .nav-link{color:rgba(255,255,255,.78);transition:color .2s ease}
.nav-minimal .nav-link:hover{color:#fff}
.header-book-now{display:none}
.header-book-now.is-visible{display:inline-flex}
.mobile-header-book{border:1px solid var(--gold);padding:.65rem .8rem;color:#fff;font-size:.62rem;font-weight:600;letter-spacing:.14em;text-align:center;white-space:nowrap}
.mobile-header-book.is-visible{background:var(--gold)}
.nav-minimal .menu-toggle{width:44px;height:44px;border:1px solid rgba(255,255,255,.22);color:#fff;transition:background .2s ease,border-color .2s ease}
.nav-minimal .menu-toggle:hover,.nav-minimal .menu-toggle.is-open{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.42)}
.menu-toggle span{display:block;width:18px;height:1.5px;background:currentColor;transition:transform .2s ease,opacity .2s ease}
.menu-toggle.is-open span:first-child{transform:translateY(7.5px) rotate(45deg)}
.menu-toggle.is-open span:nth-child(2){opacity:0}
.menu-toggle.is-open span:last-child{transform:translateY(-7.5px) rotate(-45deg)}
.nav-minimal .mobile-menu{background:rgba(23,22,20,.97);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid rgba(255,255,255,.1);box-shadow:0 18px 32px rgba(0,0,0,.22);max-height:calc(100dvh - 5rem);overflow-y:auto}
.mobile-menu>a:not(.mobile-menu-book){display:flex;min-height:46px;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.08);padding:.65rem .25rem;color:rgba(255,255,255,.72);transition:color .2s ease,padding .2s ease}
.mobile-menu>a:not(.mobile-menu-book)>span:last-child{color:var(--gold);font-size:.8rem;opacity:0;transition:opacity .2s ease}
.mobile-menu>a:not(.mobile-menu-book):hover{padding-left:.65rem;color:#fff}
.mobile-menu>a:not(.mobile-menu-book):hover>span:last-child{opacity:1}
.mobile-menu .mobile-menu-book{display:flex;min-height:48px;align-items:center;justify-content:space-between;margin-top:1rem;background:var(--gold);padding:.8rem 1rem;color:#fff;font-size:.7rem;font-weight:600;letter-spacing:.2em;transition:background .2s ease}
.mobile-menu .mobile-menu-book:hover{background:#a37f2c}
@media(min-width:1024px){.mobile-header-book.is-visible{display:none}}
/* Keep the bar compact on phones/tablets; desktop sizing is handled by responsive Tailwind classes */
@media(max-width:1023px){.nav-minimal .mobile-menu{max-height:calc(100dvh - 4.5rem)}}

/* Hero promo carousel (Admin > Website > Hero promos) */
.promo-slide{display:none;position:relative;min-height:230px;background:#201e1c}
.promo-slide.promo-on{display:block;animation:promoFade .55s ease}
@keyframes promoFade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.promo-caption{display:flex;flex-direction:column;justify-content:center;min-height:230px}
.promo-dot{width:.5rem;height:.5rem;border-radius:9999px;background:rgba(255,255,255,.35);transition:background .2s ease,width .2s ease;border:0;padding:0}
.promo-dot.promo-on{background:var(--gold);width:1.1rem}
@media(max-width:640px){.promo-slide{min-height:190px}.promo-caption{min-height:190px;padding:1.25rem}}

/* Chat page: quick-send chips (customers) */
.qs-chip{font-size:.66rem;font-weight:600;color:#6b5a22;background:#FCF9F0;border:1px solid rgba(185,151,63,.5);border-radius:9999px;padding:.28rem .7rem;cursor:pointer;display:inline-flex;align-items:center;gap:.3rem;transition:background .15s ease,border-color .15s ease,color .15s ease}
.qs-chip:hover{background:#F7EBCB;border-color:#B9973F;color:#171614}
.qs-chip:disabled{opacity:.55;cursor:default}
.qs-chip svg{width:.75rem;height:.75rem}
