/* Cinematic editorial motion, scoped to public reservations. */
html:has(.rs-public){scroll-behavior:smooth}
.rs-public .rs-hero{position:relative;isolation:isolate;display:flex;align-items:center;min-height:590px;padding:70px 58px;margin:28px 0 65px;overflow:hidden;border-radius:6px;background:#0c1c2b;color:#fff}
.rs-public .rs-hero-copy{position:relative;z-index:2;width:54%;max-width:550px}
.rs-public .rs-hero-copy h1{font-size:clamp(46px,5.4vw,72px);font-weight:500;line-height:1.16;letter-spacing:-2px}
.rs-public .rs-hero-copy h1 em{color:#b6cdff;font-style:normal}
.rs-public .rs-hero-copy .rs-kicker{color:#c3d3ec;font-size:9px;letter-spacing:2.2px}
.rs-public .rs-hero-copy .rs-kicker>span{background:#b6cdff}
.rs-public .rs-hero-copy .rs-lead{color:#e1e6ec;font-size:16px}
.rs-public .rs-hero-note{color:#c1cddd;margin-top:25px}.rs-public .rs-hero-note span{color:#b6cdff}
.rs-public .rs-hero-visual{position:absolute;inset:0;width:100%;height:100%;border-radius:0;z-index:-1;background:#0c1c2b;overflow:hidden}
.rs-public .rs-editorial-photo{display:block;width:100%;height:100%;object-fit:cover;object-position:32% 55%;transform:translateY(var(--scene-offset,0px)) scale(1.08);will-change:transform}
.rs-public .rs-hero-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(270deg,#091b2bf5 0%,#0a1b2bd9 30%,#0a1b2b55 60%,#0a1b2b05 100%)}
.rs-public .rs-visual-label{z-index:1;right:auto;left:34px;bottom:30px;padding-top:15px;border-top:1px solid #ffffff60;color:#fff;text-shadow:0 2px 12px #0009}.rs-public .rs-visual-label span{color:#eee9dd;font-size:8px;letter-spacing:2px}.rs-public .rs-visual-label b{font-size:14px;font-weight:400}
.rs-public .rs-hero-cta{border-radius:4px;padding:15px 24px;gap:28px;box-shadow:0 6px 30px #0002}
.rs-public .rs-reveal{opacity:0;transform:translateY(28px);transition:opacity 1s ease var(--enter-delay,0ms),transform 1.15s cubic-bezier(.16,1,.3,1) var(--enter-delay,0ms)}
.rs-public .rs-reveal.rs-arrived{opacity:1;transform:translateY(0)}
.rs-public .rs-hero-copy>h1{animation:rs-title-unveil 1.6s cubic-bezier(.16,1,.3,1) both}
.rs-public .rs-hero-visual{animation:rs-scene-unveil 1.7s cubic-bezier(.16,1,.3,1) both}
.rs-public .rs-directory-heading{padding-bottom:8px}.rs-public .rs-directory-heading h2{font-size:35px}
.rs-public .rs-restaurant{border-radius:8px;transition:box-shadow .6s,transform .8s cubic-bezier(.16,1,.3,1)}
.rs-public .rs-restaurant:hover{transform:translateY(-6px);box-shadow:0 22px 45px #14274712}
.rs-public .rs-card-art{overflow:hidden}.rs-public .rs-card-art>span{transition:transform 1.2s cubic-bezier(.16,1,.3,1)}.rs-public .rs-restaurant:hover .rs-card-art>span{transform:rotate(-14deg) scale(1.045)}
.rs-public .rs-button{transition:background .35s,box-shadow .35s,transform .35s}.rs-public .rs-button>span{transition:transform .5s cubic-bezier(.16,1,.3,1)}.rs-public .rs-button:hover>span{transform:translateX(-5px)}.rs-public .rs-button:active{transform:translateY(1px)}
.rs-public .rs-slots span{transition:background .25s,color .25s,box-shadow .25s}.rs-public .rs-slots input:checked+span{box-shadow:0 0 0 3px #2457df18}
.rs-public .rs-fields :is(input,textarea){transition:border-color .25s,box-shadow .25s}.rs-public .rs-fields :is(input,textarea):focus{border-color:#7596ef;box-shadow:0 0 0 4px #2457df0b}
@keyframes rs-scene-unveil{from{clip-path:inset(0 0 0 100%)}to{clip-path:inset(0 0 0 0)}}
@keyframes rs-title-unveil{from{opacity:0;clip-path:inset(0 0 100% 0);translate:0 32px}to{opacity:1;clip-path:inset(0);translate:0 0}}
@media(max-width:900px){.rs-public .rs-hero{padding:48px 35px;min-height:560px}.rs-public .rs-hero-copy{width:65%}}
@media(max-width:640px){.rs-public .rs-hero{margin:14px 0 38px;min-height:650px;padding:35px 24px 210px;align-items:flex-start}.rs-public .rs-hero-copy{width:100%}.rs-public .rs-hero-copy h1{font-size:43px;letter-spacing:-1.3px}.rs-public .rs-hero-copy .rs-lead{font-size:14px}.rs-public .rs-hero-visual:after{background:linear-gradient(180deg,#091b2bf5 0%,#091b2be8 35%,#091b2b70 65%,#091b2b15 100%)}.rs-public .rs-editorial-photo{object-position:27% 70%}.rs-public .rs-visual-label{left:23px;bottom:23px}.rs-public .rs-hero-copy .rs-kicker{font-size:7px;letter-spacing:1.2px}.rs-public .rs-hero-note{font-size:10px}.rs-public .rs-directory-heading h2{font-size:27px}}
@media(prefers-reduced-motion:reduce){html:has(.rs-public){scroll-behavior:auto}.rs-public *, .rs-public *:before,.rs-public *:after{animation:none!important;transition:none!important}.rs-public .rs-reveal{opacity:1;transform:none}.rs-public .rs-editorial-photo{transform:scale(1.08)}}

/* Lamsi brand animation: decorative, never blocks the reservation flow. */
.rs-public .rs-hero-visual{background:radial-gradient(ellipse at 25% 48%,#204584 0%,#102c51 32%,#0a1b2d 72%)}
.rs-public .rs-hero-visual:after{background:linear-gradient(270deg,#091b2bbf,transparent 65%);pointer-events:none}
.rs-brand-stage{position:absolute;left:0;top:0;width:49%;height:100%;display:grid;place-items:center;isolation:isolate}
.rs-brand-word{position:relative;z-index:2;font:700 clamp(64px,8vw,112px)/1 Arial,sans-serif;letter-spacing:-7px;padding:15px;background:linear-gradient(110deg,#b9d1ff 15%,#fff 35%,#dbe9ff 50%,#84afff 65%,#e8f1ff 85%);background-size:250% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;filter:drop-shadow(0 9px 24px #0003);animation:rs-brand-sheen 7s ease-in-out infinite}
.rs-brand-halo{position:absolute;width:230px;height:230px;border-radius:50%;background:#78aaff24;filter:blur(50px);animation:rs-brand-breathe 6s ease-in-out infinite}
.rs-brand-wave{position:absolute;width:270px;height:270px;border-radius:50%;border:1px solid #b8d2ff;opacity:0;animation:rs-brand-ripple 6s cubic-bezier(.16,.5,.3,1) infinite}
.rs-brand-wave:nth-of-type(2){animation-delay:2s}.rs-brand-wave:nth-of-type(3){animation-delay:4s}
.rs-brand-line{position:absolute;top:calc(50% + 88px);width:74px;height:2px;background:#7eabf72b;overflow:hidden;border-radius:2px}
.rs-brand-line:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,#d7e7ff,transparent);transform:translateX(-100%);animation:rs-brand-line 3.5s ease-in-out infinite}
@keyframes rs-brand-sheen{0%,100%{background-position:100% 50%}50%{background-position:0% 50%}}
@keyframes rs-brand-ripple{0%{transform:scale(.7);opacity:0}20%{opacity:.3}100%{transform:scale(1.75);opacity:0}}
@keyframes rs-brand-breathe{0%,100%{opacity:.5;transform:scale(.9)}50%{opacity:1;transform:scale(1.2)}}
@keyframes rs-brand-line{0%,15%{transform:translateX(-100%)}85%,100%{transform:translateX(100%)}}
@media(max-width:900px) and (min-width:641px){.rs-brand-stage{width:40%}.rs-brand-word{font-size:70px;letter-spacing:-5px}.rs-brand-wave{width:190px;height:190px}}
@media(max-width:640px){.rs-public .rs-hero{min-height:730px;padding-bottom:300px}.rs-public .rs-hero-visual:after{background:linear-gradient(180deg,#091b2be6,transparent 80%)}.rs-brand-stage{top:auto;bottom:50px;width:100%;height:260px}.rs-brand-word{font-size:78px;letter-spacing:-5px}.rs-brand-wave{width:190px;height:190px}.rs-brand-halo{width:160px;height:160px}.rs-brand-line{top:calc(50% + 64px)}.rs-public .rs-visual-label{left:0;right:0;text-align:center;border:0;bottom:24px}.rs-public .rs-visual-label span{font-size:6px;letter-spacing:1.6px}.rs-public .rs-visual-label b{font-size:12px}}
@media(prefers-reduced-motion:reduce){.rs-brand-wave{opacity:.12;animation:none}.rs-brand-wave:nth-of-type(2){transform:scale(1.2)}.rs-brand-wave:nth-of-type(3){transform:scale(1.4)}.rs-brand-line:after{animation:none;transform:none}}

/* Each card uses the corresponding business photo, with a contained logo fallback. */
.rs-public .rs-restaurant-media{position:relative;background:linear-gradient(145deg,#e5ebf5,#d4def0);isolation:isolate}
.rs-public .rs-restaurant-media:before,.rs-public .rs-restaurant-media:after{display:none}
.rs-public .rs-restaurant-media>.rs-photo-fallback{position:absolute;inset:0;width:100%;height:100%;display:grid;place-items:center;background:none;border:0;border-radius:0;box-shadow:none;transform:none;font-size:64px;font-weight:500;color:#6e87b1}
.rs-public .rs-restaurant-photo{position:relative;z-index:1;display:block;width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.16,1,.3,1);background:#e5ebf5}
.rs-public .rs-media-logo .rs-restaurant-photo{object-fit:contain;padding:28px;background:#f4f6fa;box-sizing:border-box}
.rs-public .rs-restaurant:hover .rs-restaurant-photo{transform:scale(1.045)}
.rs-public .rs-restaurant:hover .rs-photo-fallback{transform:none;box-shadow:none}
.rs-public .rs-restaurant-photo[hidden]{display:none}
@media(prefers-reduced-motion:reduce){.rs-public .rs-restaurant:hover .rs-restaurant-photo{transform:none}}

/* Centered brand and headline, with minimal supporting labels. */
.rs-public .rs-top{justify-content:center}
.rs-public .rs-hero{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:0;min-height:680px;padding:25px 40px 48px;margin-top:28px;text-align:center}
.rs-public .rs-hero>.rs-brand-stage{position:relative;inset:auto;width:100%;height:210px;flex:none;z-index:1}
.rs-public .rs-hero .rs-brand-word{font-size:86px;letter-spacing:-5px}
.rs-public .rs-hero .rs-brand-wave{width:170px;height:170px}
.rs-public .rs-hero .rs-brand-halo{width:180px;height:180px}
.rs-public .rs-hero .rs-brand-line{top:calc(50% + 59px)}
.rs-public .rs-hero-copy{width:100%;max-width:720px;text-align:center}
.rs-public .rs-hero-copy h1{margin:6px 0 20px;font-size:clamp(43px,5vw,64px)}
.rs-public .rs-hero-copy .rs-lead{margin:0 auto 15px}
.rs-public .rs-hero-note{justify-content:center;margin-top:20px}
.rs-public .rs-hero-visual{background:radial-gradient(ellipse at 50% 24%,#1e4277 0%,#102b4d 38%,#0a1b2d 80%)}
.rs-public .rs-hero-visual:after{display:none}
.rs-public .rs-hero-cta{min-width:240px;justify-content:center}
.rs-public .rs-card-body .rs-button{justify-content:center}
@media(max-width:640px){.rs-public .rs-hero{min-height:630px;padding:20px 22px 35px;margin-top:15px}.rs-public .rs-hero>.rs-brand-stage{height:195px;bottom:auto;top:auto}.rs-public .rs-hero .rs-brand-word{font-size:72px}.rs-public .rs-hero .rs-brand-wave{width:150px;height:150px}.rs-public .rs-hero-copy h1{font-size:40px;margin-top:0}.rs-public .rs-hero .rs-brand-line{top:calc(50% + 52px)}.rs-public .rs-hero-cta{min-width:0;width:100%;box-sizing:border-box}.rs-public .rs-hero-copy .rs-lead{font-size:14px}}
