/* Header "Order Online" button */
.echo-order-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;font-family:Bebas Neue,sans-serif;letter-spacing:.12em;font-size:.95rem;line-height:1;color:hsl(var(--foreground));background:hsl(var(--blood));border:1px solid hsl(var(--blood));box-shadow:0 0 0 0 hsl(var(--blood)/.6);transition:transform .2s,box-shadow .3s,background .2s;white-space:nowrap}
.echo-order-btn:hover{background:hsl(var(--blood-deep));box-shadow:0 10px 30px -8px hsl(var(--blood)/.8);transform:translateY(-1px)}
.echo-order-btn:focus-visible,.eo-cta:focus-visible,.eo-close:focus-visible{outline:2px solid hsl(var(--gold));outline-offset:3px}
.echo-order-btn::before{content:"";width:6px;height:6px;border-radius:50%;background:hsl(var(--gold));box-shadow:0 0 8px hsl(var(--gold))}
@media (min-width:768px){.echo-order-btn.md\:hidden{display:none}}
.echo-reviews-empty{grid-column:1/-1}

/* Overlay */
html.eo-lock{overflow:hidden}
.eo-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:16px}
.eo-overlay[hidden]{display:none}
.eo-backdrop{position:absolute;inset:0;background:hsl(0 0% 2%/.78);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;transition:opacity .25s}
.eo-panel{position:relative;width:100%;max-width:440px;max-height:calc(100svh - 32px);overflow:auto;background:hsl(var(--ink-soft));border:1px solid hsl(var(--gold)/.3);box-shadow:0 30px 80px -20px hsl(var(--blood)/.55),0 0 0 1px hsl(var(--blood)/.25) inset;padding:40px 32px 28px;text-align:center;color:hsl(var(--foreground));font-family:Inter,sans-serif;opacity:0;transform:translateY(16px) scale(.98);transition:opacity .25s,transform .3s cubic-bezier(.22,1,.36,1)}
.eo-panel::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,hsl(var(--blood-deep)),hsl(var(--blood)),hsl(var(--gold)),hsl(var(--blood)),hsl(var(--blood-deep)))}
.eo-visible .eo-backdrop{opacity:1}
.eo-visible .eo-panel{opacity:1;transform:none}
.eo-close{position:absolute;top:10px;right:12px;width:36px;height:36px;font-size:28px;line-height:1;color:hsl(var(--gold)/.8);background:none;border:0;cursor:pointer}
.eo-close:hover{color:hsl(var(--gold))}
.eo-kicker{font-family:Caveat,cursive;color:hsl(var(--gold));font-size:1.5rem;margin:0}
.eo-title{font-family:Bebas Neue,sans-serif;font-size:3rem;letter-spacing:.12em;line-height:1;margin:.25rem 0 0;text-shadow:0 0 18px hsl(var(--blood)/.7)}
.eo-divider{height:1px;width:96px;margin:18px auto;background:linear-gradient(90deg,transparent,hsl(var(--gold)),transparent)}
.eo-status{font-size:.85rem;color:hsl(var(--foreground)/.75);margin:0 0 18px;display:flex;align-items:center;justify-content:center;gap:8px;min-height:1.2em}
.eo-dot{width:8px;height:8px;border-radius:50%;background:hsl(var(--gold))}
.eo-dot--open{background:#3ecf6e;box-shadow:0 0 10px #3ecf6e}
.eo-dot--closed{background:hsl(var(--blood));box-shadow:0 0 8px hsl(var(--blood))}
.eo-modes{font-family:Bebas Neue,sans-serif;letter-spacing:.25em;font-size:1.35rem;color:hsl(var(--gold));margin:0}
.eo-modes span{color:hsl(var(--gold)/.5);margin:0 .4em}
.eo-modes-sub{font-size:.78rem;color:hsl(var(--foreground)/.55);margin:4px 0 20px}
.eo-cta{display:block;padding:18px;font-family:Bebas Neue,sans-serif;letter-spacing:.3em;font-size:1.35rem;color:hsl(var(--ink));background:hsl(var(--gold));border:1px solid hsl(var(--gold));text-decoration:none;transition:background .2s,box-shadow .3s,transform .2s}
.eo-cta:hover{background:hsl(var(--gold-glow));box-shadow:0 0 40px hsl(var(--gold)/.45);transform:translateY(-1px)}
.eo-note{font-size:.72rem;letter-spacing:.04em;color:hsl(var(--foreground)/.5);margin:10px 0 18px}
.eo-phone{display:inline-block;font-size:.85rem;color:hsl(var(--gold)/.85);text-decoration:none;border-bottom:1px solid hsl(var(--gold)/.3);padding-bottom:2px}
.eo-phone:hover{color:hsl(var(--gold));border-color:hsl(var(--gold))}
@media (max-width:640px){.eo-overlay{align-items:flex-end;padding:0}.eo-panel{max-width:none;border-left:0;border-right:0;border-bottom:0;padding:36px 20px calc(24px + env(safe-area-inset-bottom));transform:translateY(40px)}}
@media (prefers-reduced-motion:reduce){.eo-panel,.eo-backdrop,.echo-order-btn,.eo-cta{transition:none}}

/* Walk-ins / Visit section */
.echo-visit-card{display:grid;grid-template-columns:1fr;gap:0;border:1px solid hsl(var(--gold)/.2);background:hsl(var(--ink-soft)/.7);position:relative}
.echo-visit-card::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,transparent,hsl(var(--blood)),hsl(var(--gold)),hsl(var(--blood)),transparent)}
.echo-visit-col{padding:32px 28px;text-align:center}
.echo-visit-hours{border-top:1px solid hsl(var(--gold)/.15)}
@media (min-width:640px){.echo-visit-card{grid-template-columns:1.2fr 1fr}.echo-visit-col{padding:40px}.echo-visit-hours{border-top:0;border-left:1px solid hsl(var(--gold)/.15);text-align:left}}
.echo-visit-label{font-family:Bebas Neue,sans-serif;letter-spacing:.2em;font-size:1.6rem;color:hsl(var(--gold));margin:0 0 6px}
.echo-visit-text{color:hsl(var(--foreground)/.8);margin:0 0 22px}
.echo-visit-call{display:inline-block;padding:16px 28px;font-family:Bebas Neue,sans-serif;letter-spacing:.22em;font-size:1.2rem;color:hsl(var(--foreground));background:hsl(var(--blood));border:1px solid hsl(var(--blood));transition:box-shadow .3s,transform .2s}
.echo-visit-call:hover{box-shadow:0 10px 40px -10px hsl(var(--blood)/.8);transform:translateY(-1px)}
.echo-visit-call:focus-visible,.echo-visit-link:focus-visible{outline:2px solid hsl(var(--gold));outline-offset:3px}
.echo-visit-row{display:flex;justify-content:space-between;gap:24px;max-width:260px;margin:6px auto 0;color:hsl(var(--foreground)/.85)}
@media (min-width:640px){.echo-visit-row{margin-left:0}}
.echo-visit-link{display:inline-block;margin-top:20px;font-size:.85rem;letter-spacing:.08em;color:hsl(var(--gold)/.85);border-bottom:1px solid hsl(var(--gold)/.3);padding-bottom:2px}
.echo-visit-link:hover{color:hsl(var(--gold))}

/* Clamp long Google reviews */
.echo-review-text{display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}

/* ---------- Spacing: tighter rhythm between sections ---------- */
.echo-sec{padding-top:4rem;padding-bottom:4rem}
@media (min-width:640px){.echo-sec{padding-top:5rem;padding-bottom:5rem}}
.echo-art-gap{margin-top:4.5rem}
@media (min-width:640px){.echo-art-gap{margin-top:6rem}}
.echo-hero-pb{padding-bottom:5.5rem}

/* ---------- Readability ---------- */
html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
body{font-size:1.0625rem;line-height:1.65}
:root,.dark{--muted-foreground:40 12% 74%}
.text-xs{font-size:.8125rem;line-height:1.2rem}
.text-sm{font-size:.9375rem;line-height:1.45rem}
.text-lg{font-size:1.1875rem;line-height:1.8rem}
/* small all-caps lines: a bit bigger, a bit less letter-spacing */
.text-xs.tracking-\[0\.3em\],.text-xs.tracking-\[0\.4em\]{letter-spacing:.2em}
/* Bebas Neue is condensed — give small uses more size */
nav.font-display{font-size:1.05rem;letter-spacing:.12em}
a.font-display:not([class*="text-"]),button.font-display.text-sm{font-size:1.1rem}
/* menu items */
#menu li .font-display.text-xl{font-size:1.4rem}
#menu li p{color:hsl(var(--foreground)/.72)}
/* reviews: easy-reading sans instead of faux-italic display serif */
.echo-review-text{font-family:Inter,sans-serif;font-style:normal;font-size:1.0625rem;line-height:1.75;color:hsl(var(--foreground)/.9)}
#top > .absolute.bottom-20{bottom:1.5rem}
.echo-visit-label{letter-spacing:.12em}
