/* Shared "Demo site" ribbon for the fictional sample businesses */
.demo-ribbon{position:fixed;right:12px;bottom:12px;z-index:9999;display:inline-flex;align-items:center;gap:.45em;
  font:600 12px/1.1 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;letter-spacing:.02em;color:#fff;
  background:rgba(20,20,22,.86);padding:7px 11px 7px 9px;border-radius:999px;text-decoration:none;
  box-shadow:0 4px 14px rgba(0,0,0,.18);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.demo-ribbon::before{content:"";width:7px;height:7px;border-radius:50%;background:#ffcf4a;flex:none}
.demo-ribbon:hover,.demo-ribbon:focus-visible{background:#000}
.demo-ribbon span{opacity:.7;font-weight:500}
@media print{.demo-ribbon{display:none}}
/* Shared video player helpers */
.vplayer{position:relative}
.vplayer video{display:block;width:100%;height:100%;object-fit:cover}
.vplayer .sound{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);z-index:2;border:0;cursor:pointer;
  font:600 13px/1 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;padding:9px 14px;border-radius:999px;
  background:rgba(0,0,0,.62);color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);white-space:nowrap}
.vplayer .sound:hover,.vplayer .sound:focus-visible{background:rgba(0,0,0,.85)}
.vplayer .sound svg{width:14px;height:14px;vertical-align:-2px;margin-right:6px;fill:currentColor}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* Shared: scroll reveal (added by demo.js only for below-the-fold elements) */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}
/* "Made by" credit link used in demo footers */
.made-by{font-size:.85rem;opacity:.85}
.made-by a{color:inherit;text-underline-offset:3px}
/* Mobile action bar (call / book / directions). Keep the demo ribbon clear of it. */
.actionbar{display:none}
@media (max-width:760px){
  .actionbar{position:fixed;left:10px;right:10px;bottom:10px;z-index:9998;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:6px;padding:6px;border-radius:18px;box-shadow:0 12px 30px -10px rgba(0,0,0,.45)}
  .actionbar a{display:flex;align-items:center;justify-content:center;gap:.4em;min-height:48px;border-radius:13px;text-decoration:none;font-weight:700;font-size:.95rem}
  .actionbar svg{width:18px;height:18px;flex:none}
  .has-actionbar .demo-ribbon{bottom:84px}
  .has-actionbar{padding-bottom:72px}
}
