1function R(r){let t=r.replace("#","");return t.length===3&&(t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]),{r:parseInt(t.slice(0,2),16)||0,g:parseInt(t.slice(2,4),16)||0,b:parseInt(t.slice(4,6),16)||0}}function ir(r){const{r:t,g:o,b:a}=R(r);return(.299*t+.587*o+.114*a)/255>.5?"#1a1a2e":"#ffffff"}function Z(r){if(!r)return"?";const t=r.trim().split(/\s+/);return t.length===1?t[0].charAt(0).toUpperCase():(t[0].charAt(0)+t[t.length-1].charAt(0)).toUpperCase()}const nr="#34E0A1",P="circle";function T(r,t,o){return r==="TripAdvisor"?{color:nr,icon:P}:{color:t,icon:o}}function M(r){return Math.max(0,Math.min(255,Math.round(r))).toString(16).padStart(2,"0")}function f(r,t,o){const a=R(r),e=R(t);return`#${M(a.r+(e.r-a.r)*o)}${M(a.g+(e.g-a.g)*o)}${M(a.b+(e.b-a.b)*o)}`}function g(r,t){const{r:o,g:a,b:e}=R(r);return`rgba(${o}, ${a}, ${e}, ${t})`}function S(r){const{r:t,g:o,b:a}=R(r),e=i=>{const n=i/255;return n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4)};return .2126*e(t)+.7152*e(o)+.0722*e(a)}function sr(r,t){const o=S(r),a=S(t);return(Math.max(o,a)+.05)/(Math.min(o,a)+.05)}function m(r,t,o=2.7){let a=r;const e=S(t)>.5?"#0a0a0a":"#ffffff";for(let i=0;i<14&&sr(a,t)<o;i++)a=f(a,e,.1);return a}function wr(r,t,o="auto"){const a=S(r)<.45,e=o==="dark"?!0:o==="light"?!1:a;let i=r;o==="dark"&&!a?i=f(r,"#0c0c0e",.85):o==="light"&&a&&(i=f(r,"#ffffff",.9));const n=e?f("#ffffff",t,.05):f("#13110e",i,.1),w=e?f(i,"#000000",.34):f(i,"#000000",.05),l=e?f(i,"#ffffff",.05):f(i,"#ffffff",.7),d=e?f(i,"#ffffff",.09):f(i,"#ffffff",.92),p=m(t,i,2.7);return{isDark:e,bg:i,bg2:w,card:l,cardHi:d,text:n,textSoft:g(n,.9),muted:g(n,.56),faint:g(n,.34),accent:p,accentRaw:t,border:g(p,e?.2:.26),borderSoft:g(n,e?.09:.13),chipBg:g(p,e?.08:.07),chipBgH:g(p,e?.16:.13),chipBorderH:g(p,.36)}}function Q(r){const t="'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif";switch(r){case"condensed":case"bold":return{display:"'RRW Anton', 'Oswald', Impact, sans-serif",body:t,condensed:!0};case"classic":case"elegant":return{display:"'RRW Playfair', Georgia, 'Times New Roman', serif",body:t,condensed:!1};case"modern":return{display:t,body:t,condensed:!1};default:return{display:"'RRW Fraunces', Georgia, 'Times New Roman', serif",body:t,condensed:!1}}}const lr=["badge","small","large","horizontal","minimal","marquee","ticker","spotlight","hero","deck","coverflow","coaster","woodland"],F={stack:"deck",carousel3d:"coverflow",slide:"spotlight",fade:"spotlight",flip:"deck",viltje:"coaster",bosrand:"woodland"};function cr(r){return lr.includes(r)?r:r in F?F[r]:"horizontal"}function s(r){return String(r??"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function $(r){if(!r)return null;try{const t=new URL(r);return t.protocol==="http:"||t.protocol==="https:"?t.href:null}catch{return null}}function k(r,t){return typeof r=="string"&&/^#[0-9a-fA-F]{3,8}$/.test(r)?r:t}function C(r,t){if(!r)return"";try{return new Date(r).toLocaleDateString(t==="en"?"en-GB":"nl-NL",{day:"numeric",month:"short",year:"numeric"})}catch{return""}}const D={nl:{reviews:"reviews",noReviews:"Geen reviews beschikbaar",rated:"Beoordeeld met",of:"van 5",updated:"Bijgewerkt",writeReview:"Schrijf een review",all:"Bekijk alle reviews"},en:{reviews:"reviews",noReviews:"No reviews available",rated:"Rated",of:"of 5",updated:"Updated",writeReview:"Write a review",all:"Read all reviews"}};function u(r){return r==="en"?D.en:D.nl}const b="https://restaurantreview.ai/widget-fonts",pr=` 2@font-face{font-family:'RRW Fraunces';font-style:normal;font-weight:400;font-display:swap;src:url(${b}/fraunces-400.woff2) format('woff2')} 3@font-face{font-family:'RRW Fraunces';font-style:normal;font-weight:600;font-display:swap;src:url(${b}/fraunces-600.woff2) format('woff2')} 4@font-face{font-family:'RRW Fraunces';font-style:italic;font-weight:400;font-display:swap;src:url(${b}/fraunces-italic.woff2) format('woff2')} 5@font-face{font-family:'RRW Anton';font-style:normal;font-weight:400;font-display:swap;src:url(${b}/anton-400.woff2) format('woff2')} 6@font-face{font-family:'RRW Playfair';font-style:normal;font-weight:600;font-display:swap;src:url(${b}/playfair-600.woff2) format('woff2')} 7@font-face{font-family:'RRW Playfair';font-style:italic;font-weight:400;font-display:swap;src:url(${b}/playfair-italic.woff2) format('woff2')} 8@font-face{font-family:'RRW Cinzel';font-style:normal;font-weight:500;font-display:swap;src:url(${b}/cinzel-500.woff2) format('woff2')} 9@font-face{font-family:'RRW Cormorant';font-style:italic;font-weight:500;font-display:swap;src:url(${b}/cormorant-italic.woff2) format('woff2')} 10`.trim(),dr=` 11.rrw-root{--rrw-maxw:800px;box-sizing:border-box;font-family:var(--rrw-fb);font-size:16px;font-weight:400;font-style:normal;font-variant:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;text-align:left;text-indent:0;text-shadow:none;white-space:normal;direction:ltr;background:var(--rrw-bg);color:var(--rrw-text);border:1px solid var(--rrw-border);border-radius:var(--rrw-radius);max-width:var(--rrw-maxw);margin-inline:auto;overflow:hidden;position:relative;line-height:1.5;-webkit-text-size-adjust:100%;animation:rrw-in .6s ease both} 12.rrw-root *{box-sizing:border-box;margin:0;padding:0} 13.rrw-root img{max-width:none;border:0} 14.rrw-root p{margin:0} 15.rrw-root a{background:transparent} 16.rrw-root:not(.s-badge){container-type:inline-size} 17@keyframes rrw-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}} 18.rrw-root .rrw-head{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:18px 24px;background:var(--rrw-bg2);border-bottom:1px solid var(--rrw-border)} 19.rrw-root .rrw-brand{display:flex;flex-direction:column;gap:4px;min-width:0} 20.rrw-root .rrw-bn{font-size:12.5px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--rrw-text);line-height:1} 21.rrw-root .rrw-cond .rrw-bn{font-family:var(--rrw-fd);font-weight:400;font-size:18px;letter-spacing:.12em} 22.rrw-root .rrw-bs{font-family:var(--rrw-fd);font-style:italic;font-size:12.5px;color:var(--rrw-accent)} 23.rrw-root .rrw-cond .rrw-bs{font-style:normal;font-size:11px;letter-spacing:.06em} 24.rrw-root .rrw-logo{height:26px;width:auto;object-fit:contain;flex-shrink:0} 25.rrw-root .rrw-div{width:1px;height:32px;background:var(--rrw-border)} 26.rrw-root .rrw-rate{display:flex;align-items:center;gap:11px} 27.rrw-root .rrw-num{font-family:var(--rrw-fd);font-weight:600;font-size:36px;line-height:1;color:var(--rrw-accent)} 28.rrw-root .rrw-stars{display:inline-flex;gap:2px;line-height:0} 29.rrw-root .rrw-stars svg{display:block} 30.rrw-root .rrw-plats{display:flex;gap:8px;margin-left:auto;flex-wrap:wrap} 31.rrw-root .rrw-plat{display:inline-flex;align-items:center;gap:6px;text-decoration:none;font-size:11.5px;color:var(--rrw-muted);padding:6px 12px;border-radius:999px;background:var(--rrw-chip-bg);border:1px solid var(--rrw-border);transition:background .25s,border-color .25s;white-space:nowrap} 32.rrw-root .rrw-plat:hover{background:var(--rrw-chip-bg-h);border-color:var(--rrw-chip-border-h)} 33.rrw-root .rrw-plat svg{width:13px;height:13px;flex-shrink:0} 34.rrw-root .rrw-plat strong{font-weight:600;color:var(--rrw-accent)} 35.rrw-root .rrw-count{margin-left:auto;font-size:10px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--rrw-muted)} 36.rrw-root .rrw-card{position:relative;flex-shrink:0;display:flex;flex-direction:column;background:var(--rrw-card);border:1px solid var(--rrw-border-soft);border-radius:calc(var(--rrw-radius) * .55);padding:20px 22px 16px;text-decoration:none;color:inherit;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s,border-color .35s,background .35s} 37.rrw-root .rrw-card:hover{transform:translateY(-4px);background:var(--rrw-card-hi);border-color:var(--rrw-border);box-shadow:0 16px 38px rgba(0,0,0,.22)} 38.rrw-root .rrw-q{position:absolute;top:4px;right:16px;font-family:var(--rrw-fd);font-size:56px;line-height:1;color:var(--rrw-accent);opacity:.15;pointer-events:none} 39.rrw-root .rrw-cs{display:flex;gap:2px;margin-bottom:12px;line-height:0} 40.rrw-root .rrw-cs svg{display:block} 41.rrw-root .rrw-text{font-size:13.5px;line-height:1.62;color:var(--rrw-text-soft);font-weight:300;flex:1;margin-bottom:14px;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;-webkit-line-clamp:4} 42.rrw-root .rrw-text.c3{-webkit-line-clamp:3} 43.rrw-root .rrw-foot{display:flex;align-items:center;gap:10px;padding-top:13px;border-top:1px solid var(--rrw-border-soft)} 44.rrw-root .rrw-av{width:28px;height:28px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600} 45.rrw-root .rrw-nm{font-size:12.5px;font-weight:500;color:var(--rrw-text);line-height:1.2} 46.rrw-root .rrw-mt{font-size:10px;color:var(--rrw-faint)} 47.rrw-root .rrw-src{margin-left:auto;font-size:9.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--rrw-accent);opacity:.75} 48.rrw-root .rrw-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:12px 24px 14px;background:var(--rrw-bg2);border-top:1px solid var(--rrw-border)} 49.rrw-root .rrw-cta-link{font-size:9.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;color:var(--rrw-accent)} 50.rrw-root .rrw-fresh{font-size:9px;color:var(--rrw-faint)} 51.rrw-root .rrw-attr{font-size:9.5px;color:var(--rrw-faint);text-decoration:none} 52.rrw-root .rrw-attr:hover{opacity:.8} 53.rrw-root .rrw-attr strong{font-weight:600;color:var(--rrw-accent)} 54.rrw-root .rrw-cta{display:block;text-align:center;margin:14px 24px;padding:11px 16px;font-size:13px;font-weight:600;text-decoration:none;color:var(--rrw-cta-text);background:var(--rrw-accent);transition:filter .15s} 55.rrw-root .rrw-cta:hover{filter:brightness(.93)} 56.rrw-root .rrw-cta--rounded{border-radius:10px}.rrw-root .rrw-cta--pill{border-radius:9999px}.rrw-root .rrw-cta--sharp{border-radius:2px} 57.rrw-root .rrw-empty{padding:26px;text-align:center;color:var(--rrw-faint);font-size:14px} 58/* badge */
59.rrw-root.s-badge{--rrw-maxw:max-content} 60.rrw-root .rrw-badge{display:inline-flex;align-items:center;gap:12px;padding:14px 20px} 61.rrw-root .rrw-badge .rrw-num{font-size:30px} 62/* minimal / small single card padding */ 63.rrw-root .rrw-single{padding:22px 24px} 64.rrw-root .rrw-single .rrw-bigq{font-family:var(--rrw-fd);font-size:60px;line-height:.6;color:var(--rrw-accent);opacity:.16;display:block;height:30px} 65.rrw-root .rrw-single .rrw-bigtext{font-family:var(--rrw-fd);font-size:19px;line-height:1.5;color:var(--rrw-text);margin:6px 0 16px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden} 66/* large list */ 67.rrw-root .rrw-list{display:flex;flex-direction:column;gap:14px;padding:20px 24px} 68.rrw-root .rrw-list .rrw-card{width:100%} 69/* horizontal scroll-snap row */ 70.rrw-root .rrw-row{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:20px 24px} 71.rrw-root .rrw-row::-webkit-scrollbar{height:6px}.rrw-root .rrw-row::-webkit-scrollbar-thumb{background:var(--rrw-border);border-radius:3px} 72.rrw-root .rrw-row .rrw-card{flex:0 0 300px;scroll-snap-align:start} 73/* marquee */ 74.rrw-root .rrw-mq-wrap{position:relative;overflow:hidden;padding:20px 0} 75.rrw-root .rrw-mq-wrap::before,.rrw-root .rrw-mq-wrap::after{content:"";position:absolute;top:0;bottom:0;width:64px;z-index:2;pointer-events:none} 76.rrw-root .rrw-mq-wrap::before{left:0;background:linear-gradient(90deg,var(--rrw-bg),transparent)} 77.rrw-root .rrw-mq-wrap::after{right:0;background:linear-gradient(-90deg,var(--rrw-bg),transparent)} 78.rrw-root .rrw-mq{display:flex;gap:16px;padding:0 24px;width:max-content;animation:rrw-mq var(--rrw-mq-dur,38s) linear infinite} 79.rrw-root .rrw-mq-wrap:hover .rrw-mq,.rrw-root .rrw-mq-wrap:focus-within .rrw-mq{animation-play-state:paused} 80.rrw-root .rrw-mq .rrw-card{width:300px} 81@keyframes rrw-mq{to{transform:translateX(-50%)}} 82/* ticker */ 83.rrw-root.s-ticker{--rrw-maxw:380px} 84.rrw-root .rrw-tk-wrap{position:relative;overflow:hidden;height:320px;padding:0 18px} 85.rrw-root .rrw-tk-wrap::before,.rrw-root .rrw-tk-wrap::after{content:"";position:absolute;left:0;right:0;height:48px;z-index:2;pointer-events:none} 86.rrw-root .rrw-tk-wrap::before{top:0;background:linear-gradient(180deg,var(--rrw-bg),transparent)} 87.rrw-root .rrw-tk-wrap::after{bottom:0;background:linear-gradient(0deg,var(--rrw-bg),transparent)} 88.rrw-root .rrw-tk{display:flex;flex-direction:column;gap:13px;padding:16px 0;animation:rrw-tk var(--rrw-tk-dur,24s) linear infinite} 89.rrw-root .rrw-tk-wrap:hover .rrw-tk{animation-play-state:paused} 90.rrw-root .rrw-tk .rrw-card{width:100%} 91@keyframes rrw-tk{to{transform:translateY(-50%)}} 92/* spotlight */ 93.rrw-root .rrw-spot{position:relative;padding:30px 32px 22px;min-height:200px} 94.rrw-root .rrw-spot-q{font-family:var(--rrw-fd);font-size:110px;line-height:.7;color:var(--rrw-accent);opacity:.13;position:absolute;top:20px;left:26px;pointer-events:none} 95.rrw-root .rrw-slide{position:absolute;inset:30px 32px 22px;opacity:0;transform:translateY(10px);transition:opacity .7s,transform .7s;pointer-events:none} 96.rrw-root .rrw-slide.on{opacity:1;transform:none;position:relative;inset:auto;pointer-events:auto} 97.rrw-root .rrw-slide .rrw-cs{margin-bottom:15px} 98.rrw-root .rrw-stext{font-family:var(--rrw-fd);font-size:20px;line-height:1.5;color:var(--rrw-text);margin-bottom:20px;max-width:80%} 99.rrw-root .rrw-dots{display:flex;gap:6px;margin-top:16px} 100.rrw-root .rrw-dot{width:6px;height:6px;border-radius:50%;background:var(--rrw-faint);transition:all .3s} 101.rrw-root .rrw-dot.on{background:var(--rrw-accent);width:20px;border-radius:4px} 102/* deck */ 103.rrw-root .rrw-deck{position:relative;height:268px;margin:24px 32px} 104.rrw-root .rrw-deck .rrw-card{position:absolute;inset:0;width:auto;transition:transform .55s cubic-bezier(.2,.7,.2,1),opacity .55s} 105.rrw-root .rrw-deck .rrw-card[data-pos="0"]{transform:translateY(0) scale(1);opacity:1;z-index:3} 106.rrw-root .rrw-deck .rrw-card[data-pos="1"]{transform:translateY(16px) scale(.95);opacity:.55;z-index:2} 107.rrw-root .rrw-deck .rrw-card[data-pos="2"]{transform:translateY(30px) scale(.9);opacity:.28;z-index:1} 108.rrw-root .rrw-deck .rrw-card[data-pos="3"]{transform:translateY(40px) scale(.86);opacity:0;z-index:0} 109/* coverflow */ 110.rrw-root .rrw-stage{position:relative;height:300px;perspective:1300px;margin:24px 0;overflow:hidden} 111.rrw-root .rrw-stage .rrw-card{position:absolute;top:0;left:50%;width:290px;height:252px;margin-left:-145px;transition:transform .6s cubic-bezier(.2,.7,.2,1),opacity .6s;transform-style:preserve-3d} 112.rrw-root .rrw-stage .rrw-card[data-off="0"]{transform:translateX(0) scale(1) rotateY(0);opacity:1;z-index:5} 113.rrw-root .rrw-stage .rrw-card[data-off="1"]{transform:translateX(200
113px) scale(.82) rotateY(-26deg);opacity:.45;z-index:4} 114.rrw-root .rrw-stage .rrw-card[data-off="-1"]{transform:translateX(-200px) scale(.82) rotateY(26deg);opacity:.45;z-index:4} 115.rrw-root .rrw-stage .rrw-card[data-off="2"]{transform:translateX(340px) scale(.7) rotateY(-32deg);opacity:0;z-index:3} 116.rrw-root .rrw-stage .rrw-card[data-off="-2"]{transform:translateX(-340px) scale(.7) rotateY(32deg);opacity:0;z-index:3} 117/* coverflow, width-proportional: side cards stay inside narrow containers. 118 Browsers without container-query units drop these and keep the px rules. */ 119.rrw-root .rrw-stage .rrw-card{width:min(290px,78cqw);margin-left:max(-145px,-39cqw)} 120.rrw-root .rrw-stage .rrw-card[data-off="1"]{transform:translateX(min(200px,30cqw)) scale(.82) rotateY(-26deg)} 121.rrw-root .rrw-stage .rrw-card[data-off="-1"]{transform:translateX(max(-200px,-30cqw)) scale(.82) rotateY(26deg)} 122.rrw-root .rrw-stage .rrw-card[data-off="2"]{transform:translateX(min(340px,52cqw)) scale(.7) rotateY(-32deg)} 123.rrw-root .rrw-stage .rrw-card[data-off="-2"]{transform:translateX(max(-340px,-52cqw)) scale(.7) rotateY(32deg)} 124/* coaster â signature 'viltje': letterpressed beer coasters on the brand table. 125 Paper/ink/ring colours come from the coaster-local vars (see renderWidget); 126 pure CSS, no JS controller: the row is a scroll-snap shelf you slide. */ 127.rrw-root.s-coaster{--rrw-maxw:1120px} 128.rrw-root .rrw-vtable{position:relative} 129.rrw-root .rrw-vtable::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(92% 76% at 50% 44%,transparent 40%,rgba(0,0,0,.24) 100%)} 130.rrw-root .rrw-vtable::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.045;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")} 131.rrw-root .rrw-vrow{position:relative;z-index:1;display:flex;gap:26px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:30px 28px 36px} 132.rrw-root .rrw-vrow::-webkit-scrollbar{height:6px} 133.rrw-root .rrw-vrow::-webkit-scrollbar-thumb{background:var(--rrw-border);border-radius:3px} 134.rrw-root .rrw-vc{flex:0 0 auto;position:relative;width:272px;height:272px;border-radius:50%;overflow:hidden;scroll-snap-align:center;background-color:var(--rrw-vpaper);background-image:radial-gradient(100% 100% at 32% 24%,rgba(255,255,255,.62),transparent 55%),radial-gradient(120% 120% at 70% 85%,rgba(0,0,0,.05),transparent 55%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");box-shadow:0 24px 38px rgba(8,10,9,.42),0 8px 14px rgba(8,10,9,.28);transition:transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s} 135/* width-proportional override for narrow slots; pre-CQ browsers drop it and keep 272px */ 136.rrw-root .rrw-vc{width:min(272px,80cqw);height:min(272px,80cqw)} 137.rrw-root .rrw-vc::before{content:"";position:absolute;inset:4%;border-radius:50%;border:2px solid var(--rrw-vring);box-shadow:inset 0 2px 2px rgba(255,255,255,.7),inset 0 -1px 2px rgba(0,0,0,.16);pointer-events:none} 138.rrw-root .rrw-vc::after{content:"";position:absolute;inset:6.4%;border-radius:50%;border:1px solid var(--rrw-vring2);pointer-events:none} 139.rrw-root .rrw-vc:nth-child(3n+1){transform:rotate(-3.4deg)} 140.rrw-root .rrw-vc:nth-child(3n+2){transform:rotate(2.2deg) translateY(6px)} 141.rrw-root .rrw-vc:nth-child(3n){transform:rotate(-1.4deg) translateY(-4px)} 142.rrw-root .rrw-vc:hover{transform:rotate(0) translateY(-6px);box-shadow:0 32px 50px rgba(8,10,9,.5),0 10px 18px rgba(8,10,9,.3)} 143.rrw-root .rrw-vin{position:absolute;inset:9%;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:7px;color:var(--rrw-vink)} 144.rrw-root .rrw-vglas{display:block;opacity:.92} 145.rrw-root .rrw-vmerk{font-family:var(--rrw-fdc);font-weight:500;font-size:13px;letter-spacing:.28em;text-indent:.28em;text-transform:uppercase;color:var(--rrw-vink);text-shadow:0 1px 0 rgba(255,255,255,.55);line-height:1.2;max-width:88%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} 146.rrw-root .rrw-vq{font-family:var(--rrw-fdi);font-style:italic;font-weight:500;font-size:16px;line-height:1.34;color:var(--rrw-vink2);text-shadow:0 1px 0 rgba(255,255,255,.5);max-width:88%;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden} 147.rrw-root .rrw-vwie{font-family:var(--rrw-fdc);font-weight:500;font-size:9px;letter-spacing:.22em;text-indent:.22em;text-transform:uppercase;color:var(--rrw-vink);margin-top:2px;line-height:1.3;max-width:88%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} 148.rrw-root .rrw-vvia{font-size:8.5px;letter-spacing:.05em;
148color:var(--rrw-vmeta)} 149.rrw-root.s-coaster .rrw-bn{font-family:var(--rrw-fdc);font-weight:500;letter-spacing:.26em} 150/* woodland â signature 'Bosrand': an asymmetric guestbook set at the edge of 151 the dunes and woods. Built for Langs Berg en Dal's warm brown, beige and 152 cream identity; Quicksand is inherited from their host site when available. */ 153.rrw-root.s-woodland{--rrw-maxw:1120px;border:0;border-radius:20px;background:var(--rrw-bos-deep);font-family:var(--rrw-fbos);box-shadow:0 22px 55px rgba(62,44,32,.20);isolation:isolate} 154.rrw-root .rrw-bos{position:relative;display:grid;grid-template-columns:300px minmax(0,1fr);min-height:420px;overflow:hidden;background:var(--rrw-bos-deep);color:var(--rrw-bos-ink)} 155.rrw-root .rrw-bos-intro{position:relative;z-index:4;display:flex;flex-direction:column;min-width:0;padding:30px 28px 27px;overflow:hidden;background:var(--rrw-bos-cream)} 156.rrw-root .rrw-bos-intro::before,.rrw-root .rrw-bos-intro::after{content:"";position:absolute;border:1px solid var(--rrw-bos-line);border-radius:50%;pointer-events:none} 157.rrw-root .rrw-bos-intro::before{width:280px;height:142px;left:-126px;bottom:9px;transform:rotate(-14deg)} 158.rrw-root .rrw-bos-intro::after{width:260px;height:116px;left:-92px;bottom:30px;transform:rotate(-14deg)} 159.rrw-root .rrw-bos-brand{position:relative;z-index:2;min-width:0} 160.rrw-root .rrw-bos-logo{display:block;width:auto;height:51px;max-width:245px;object-fit:contain} 161.rrw-root .rrw-bos-wordmark{font-size:19px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--rrw-bos-brown);line-height:1.2} 162.rrw-root .rrw-bos-tag{display:block;margin-top:10px;font-size:9.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--rrw-bos-muted)} 163.rrw-root .rrw-bos-kicker{position:relative;z-index:2;margin-top:46px;font-size:9.5px;font-weight:700;letter-spacing:.19em;text-transform:uppercase;color:var(--rrw-bos-brown)} 164.rrw-root .rrw-bos-title{position:relative;z-index:2;max-width:230px;margin-top:8px;font-size:29px;font-weight:600;line-height:1.04;letter-spacing:-.04em;color:var(--rrw-bos-ink)} 165.rrw-root .rrw-bos-rating{position:relative;z-index:3;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:14px;width:214px;margin-top:auto;padding:15px 17px;background:var(--rrw-bos-deep);border-radius:16px;box-shadow:0 14px 28px rgba(62,44,32,.20);color:var(--rrw-bos-cream)} 166.rrw-root .rrw-bos-score{font-size:52px;font-weight:700;line-height:.82;letter-spacing:-.07em;color:var(--rrw-bos-cream)} 167.rrw-root .rrw-bos-rating-copy{display:flex;flex-direction:column;gap:7px} 168.rrw-root .rrw-bos-rating-copy .rrw-stars{gap:2px} 169.rrw-root .rrw-bos-total{font-size:8.5px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--rrw-bos-beige)} 170.rrw-root .rrw-bos-stage{position:relative;min-width:0;overflow:hidden;padding:29px 0 27px;background:radial-gradient(circle at 85% 0,rgba(209,183,166,.17),transparent 34%),linear-gradient(145deg,var(--rrw-bos-deep),var(--rrw-bos-brown))} 171.rrw-root .rrw-bos-land{position:absolute;z-index:0;inset:0;overflow:hidden;pointer-events:none} 172.rrw-root .rrw-bos-land svg{display:block;width:100%;height:100%} 173.rrw-root .rrw-bos-stagehead{position:relative;z-index:2;display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:0 32px 10px} 174.rrw-root .rrw-bos-stageeyebrow{font-size:9px;font-weight:700;letter-spacing:.19em;text-transform:uppercase;color:var(--rrw-bos-beige)} 175.rrw-root .rrw-bos-stagetitle{margin-top:5px;font-size:21px;font-weight:600;line-height:1.15;color:var(--rrw-bos-cream)} 176.rrw-root .rrw-bos-swipe{font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:rgba(253,251,248,.72);white-space:nowrap} 177.rrw-root .rrw-bos-row{position:relative;z-index:2;display:flex;align-items:flex-start;gap:18px;min-width:0;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:15px 32px 24px} 178.rrw-root .rrw-bos-row::-webkit-scrollbar{height:5px} 179.rrw-root .rrw-bos-row::-webkit-scrollbar-track{background:rgba(253,251,248,.10);border-radius:999px} 180.rrw-root .rrw-bos-row::-webkit-scrollbar-thumb{background:var(--rrw-bos-beige);border-radius:999px} 181.rrw-root .rrw-bos-card{position:relative;flex:1 0 320px;max-width:355px;min-height:258px;display:flex;flex-direction:column;padding:22px 22px 18px;overflow:hidden;scroll-snap-align:start;background:var(--rrw-bos-card);border:1px solid rgba(255,255,255,.42);border-radius:16px;box-shadow:0 18px 30px rgba(32,20,13,.24);transform:rotate(-1.15deg);transform-origin:50% 100%;transition:transform .24s ease,box-shadow .24s ease} 182.rrw-root .rrw-bos-card:nth-child(even){margin-top:13px;transform:rotate(1.2deg)} 183.rrw-root .rrw-bos-card:hover{transform:rotate(0) translateY(-5px);box-shadow:0 25px 38px rgba(32,20,13,.32)} 184.rrw-root .rrw-bos-card::before{content:"";position:absolute;width:86px;height:86px;right:-44px;bottom:-44px;border:17px solid var(--rrw-bos-beige-soft);border-radius:50%;opacity:.72;pointer-events:none} 185.rrw-root .rrw-bos-card::after{content:"â";position:absolute;top:-14px;right:13px;font-size:88px;font-weight:700;line-height:1;color:var(--rrw-bos-beige);opacity:.46;pointer-events:none} 186.rrw-root .rrw-bos-cardtop{display:flex;align-items:center;justify-content:space-between;gap:12px;position:relative;z-index:1;margin-bottom:17px} 187.rrw-root .rrw-bos-platform{padding:5px 8px;background:var(--rrw-bos-beige-soft);border-radius:999px;font-size:8px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--rrw-bos-brown)} 188.rrw-root .rrw-bos-quote{position:relative;z-index:1;flex:1;margin-bottom:17px;font-size:16px;font-weight:600;line-height:1.48;letter-spacing:-.015em;color:var(--rrw-bos-ink);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:6;overflow:hidden} 189.rrw-root .rrw-bos-who{position:relative;z-index:1;display:flex;align-items:center;gap:10px;padding-top:13px;border-top:1px solid var(--rrw-bos-line)} 190.rrw-root .rrw-bos-initial{width:32px;height:32px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--rrw-bos-deep);color:var(--rrw-bos-cream);font-size:9.5px;font-weight:700;transform:rotate(-4deg)} 191.rrw-root .rrw-bos-name{font-size:11.5px;font-weight:700;color:var(--rrw-bos-ink);line-height:1.2} 192.rrw-root .rrw-bos-meta{margin-top:3px;font-size:9.5px;color:var(--rrw-bos-muted)}
193.rrw-root.s-woodland .rrw-footer{background:var(--rrw-bos-deep);border-color:rgba(253,251,248,.12);padding:13px 28px 15px} 194.rrw-root.s-woodland .rrw-cta-link{color:var(--rrw-bos-cream);font-family:var(--rrw-fbos);letter-spacing:.1em} 195.rrw-root.s-woodland .rrw-attr{color:rgba(253,251,248,.70)} 196.rrw-root.s-woodland .rrw-attr strong{color:var(--rrw-bos-cream)} 197/* hero */ 198.rrw-root .rrw-hero{display:grid;grid-template-columns:auto 1px 1fr;gap:26px;align-items:center;padding:28px 32px} 199.rrw-root .rrw-hero-num{font-family:var(--rrw-fd);font-weight:600;font-size:64px;line-height:.9;color:var(--rrw-accent)} 200.rrw-root .rrw-hero-sub{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--rrw-muted);margin-top:7px} 201.rrw-root .rrw-hero-vd{width:1px;align-self:stretch;background:var(--rrw-border)} 202.rrw-root .rrw-hero-quote{position:relative;min-height:86px} 203.rrw-root .rrw-hs{position:absolute;inset:0;opacity:0;transform:translateY(8px);transition:opacity .6s,transform .6s} 204/* the ACTIVE hero quote flows in-document (mirrors .rrw-slide.on) so the 205 container grows with long quotes instead of clipping them */ 206.rrw-root .rrw-hs.on{opacity:1;transform:none;position:relative;inset:auto} 207.rrw-root .rrw-ht{font-family:var(--rrw-fd);font-style:italic;font-size:18px;line-height:1.5;color:var(--rrw-text);margin-bottom:9px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden} 208.rrw-root .rrw-hw{font-size:11.5px;color:var(--rrw-muted)} 209@media(max-width:560px){.rrw-root .rrw-head{gap:12px;padding:16px 18px}.rrw-root .rrw-plats{width:100%;margin-left:0}.rrw-root .rrw-div{display:none}.rrw-root .rrw-hero{grid-template-columns:1fr;gap:16px}.rrw-root .rrw-hero-vd{display:none}.rrw-root .rrw-stext{max-width:100%}} 210@container (max-width:560px){.rrw-root .rrw-head{gap:12px;padding:16px 18px}.rrw-root .rrw-plats{width:100%;margin-left:0}.rrw-root .rrw-div{display:none}.rrw-root .rrw-hero{grid-template-columns:1fr;gap:16px}.rrw-root .rrw-hero-vd{display:none}.rrw-root .rrw-stext{max-width:100%}} 211@container (max-width:820px) and (min-width:621px){.rrw-root .rrw-bos{grid-template-columns:260px minmax(0,1fr)}.rrw-root .rrw-bos-intro{padding:26px 22px 25px}.rrw-root .rrw-bos-logo{max-width:210px}.rrw-root .rrw-bos-title{font-size:26px}.rrw-root .rrw-bos-rating{width:190px}.rrw-root .rrw-bos-stagehead,.rrw-root .rrw-bos-row{padding-left:24px;padding-right:24px}.rrw-root .rrw-bos-card{flex-basis:305px}} 212@container (max-width:620px){.rrw-root.s-woodland{border-radius:16px}.rrw-root .rrw-bos{grid-template-columns:1fr;min-height:0}.rrw-root .rrw-bos-intro{min-height:270px;padding:23px 20px 22px}.rrw-root .rrw-bos-logo{height:43px;max-width:min(270px,76cqw)}.rrw-root .rrw-bos-tag{margin-top:8px}.rrw-root .rrw-bos-kicker{margin-top:31px}.rrw-root .rrw-bos-title{max-width:205px;font-size:27px}.rrw-root .rrw-bos-rating{position:absolute;right:20px;bottom:22px;width:137px;grid-template-columns:1fr;gap:7px;margin:0;padding:13px 14px}.rrw-root .rrw-bos-score{font-size:44px}.rrw-root .rrw-bos-rating-copy{gap:6px}.rrw-root .rrw-bos-stage{padding:22px 0 21px}.rrw-root .rrw-bos-stagehead{padding:0 20px 7px}.rrw-root .rrw-bos-stagetitle{font-size:19px}.rrw-root .rrw-bos-swipe{display:none}.rrw-root .rrw-bos-row{gap:17px;padding:14px 20px 27px}.rrw-root .rrw-bos-card{flex:0 0 min(300px,82cqw);min-height:252px;padding:21px 20px 17px}.rrw-root .rrw-bos-card:nth-child(even){margin-top:8px}.rrw-root.s-woodland .rrw-footer{padding:12px 20px 14px}} 213@container (max-width:420px){.rrw-root .rrw-head{padding:14px 16px}.rrw-root .rrw-list{padding:14px 16px}.rrw-root .rrw-row{padding:14px 16px}.rrw-root .rrw-card{padding:16px 16px 12px}.rrw-root .rrw-row .rrw-card{flex-basis:min(260px,86cqw)}.rrw-root .rrw-mq .rrw-card{width:min(300px,84cqw)}.rrw-root .rrw-num{font-size:30px}.rrw-root .rrw-stext{font-size:17px}.rrw-root .rrw-spot{padding:22px 18px 18px}.rrw-root .rrw-spot-q{font-size:80px}.rrw-root .rrw-deck{height:288px;margin:16px}.rrw-root .rrw-hero{padding:22px 18px}.rrw-root .rrw-hero-num{font-size:44px}.rrw-root .rrw-tk-wrap{padding:0 12px}.rrw-root .rrw-single{padding:18px 16px}.rrw-root .rrw-footer{padding:10px 16px 12px}.rrw-root .rrw-vrow{gap:18px;padding:22px 14px 28px}} 214@media(prefers-reduced-motion:reduce){.rrw-root{animation:none}.rrw-root .rrw-mq,.rrw-root .rrw-tk{animation:none}.rrw-root .rrw-mq-wrap,.rrw-root .rrw-tk-wrap{overflow:auto}} 215`.trim(),j={star:'<path d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/>',circle:'<circle cx="12" cy="12" r="10"/>',heart:'<path d="M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z"/>',thumbsUp:'<path d="M7 22V10H2v12h5zm3-12 4-8a3 3 0 0 1 3 3v3h4a2 2 0 0 1 2 2.4l-1.6 8A2 2 0 0 1 19.4 22H10V10z"/>',flame:'<path d="M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.07-2.14-.22-4.05 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.15.43-2.29 1-3a2.5 2.5 0 0 0 2.5 2.5z"/>'};let fr=0;function U(r,t,o){const a=j[r]||j.star;return`<svg viewBox="0 0 24 24" width="${t}" height="${t}" style="width:${t}px;height:${t}px" fill="${o}" aria-hidden="true" focusable="false">${a}</svg>`}function gr(r,t,o){const a=`rrwh${fr++}`,e=j[r]||j.star;return`<svg viewBox="0 0 24 24" width="${t}" height="${t}" style="width:${t}px;height:${t}px" aria-hidden="true" focusable="false"><defs><linearGradient id="${a}" x1="0" x2="1" y1="0" y2="0"><stop offset="50%" stop-color="${o}"/><stop offset="50%" stop-color="${g(o,.24)}"/></linearGradient></defs><g fill="url(#${a})">${e}</g></svg>`}function y(r,t,o,a,e=13,i=!1){const n=u(a),w=g(t,.24);let l="";for(let d=1;d<=5;d++)r>=d?l+=U(o,e,t):i&&r>=d-.5?l+=gr(o,e,t):l+=U(o,e,w);return`<span class="rrw-stars" role="img" aria-label="${n.rated} ${r} ${n.of}">${l}</span>`}const xr=r=>[[g(r.accent,.16),r.accent],[r.accent,r.bg],[g(r.text,.1),r.text]];function L(r,t,o){const[a,e]=xr(t)[o%3];return`<div class="rrw-av" style="background:${a}
215;color:${e}" aria-hidden="true">${s(Z(r||""))}</div>`}function N(r,t,o){const a=T(r.platform,o.accentRaw,t.rating_icon);return m(a.color,o.bg,2.3)}function G(r,t){return r.platform==="TripAdvisor"?P:t.rating_icon}function vr(){return'<svg viewBox="0 0 24 24" aria-hidden="true"><path fill="#4285F4" d="M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92a5.06 5.06 0 01-2.2 3.32v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.1z"/><path fill="#34A853" d="M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z"/><path fill="#FBBC05" d="M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z"/><path fill="#EA4335" d="M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z"/></svg>'}function hr(){return'<svg viewBox="0 0 24 24" aria-hidden="true"><circle fill="#34E0A1" cx="12" cy="12" r="11"/><path fill="#0a2137" d="M12 6a1.5 1.5 0 110 3 1.5 1.5 0 010-3zm-3.5 5h7a.5.5 0 01.47.67l-1.5 4A.5.5 0 0114 16h-4a.5.5 0 01-.47-.33l-1.5-4A.5.5 0 018.5 11z"/></svg>'}function br(r){const t=r.platform==="Google",o=r.platform==="TripAdvisor";if(!t&&!o)return"";const a=t?vr():hr(),e=t?"Google":"TripAdvisor";return`<span class="rrw-plat">${a}<strong>${s(r.avg.toFixed(1))}</strong> ${e}</span>`}function J(r,t,o,a,e,i){const n=N(t,r,o),w=G(t,r),l=r.show_reviewer_names&&t.reviewer_name,d=r.show_dates?C(t.review_date,a):"";return`<span class="rrw-q" aria-hidden="true">“</span> 216 <div class="rrw-cs">${y(t.star_rating,n,w,a,12)}</div> 217 ${r.show_review_text&&t.review_text?`<p class="rrw-text ${i==="c3"?"c3":""}">${s(t.review_text)}</p>`:""} 218 <div class="rrw-foot">${L(t.reviewer_name,o,e)} 219 <div>${l?`<div class="rrw-nm">${s(t.reviewer_name)}</div>`:""}${d?`<div class="rrw-mt">${s(d)}</div>`:""}</div> 220 <div class="rrw-src">${s(t.platform)}</div> 221 </div>`}function _(r,t,o,a,e,i="c4",n=""){return`<div class="rrw-card"${n}>${J(r,t,o,a,e,i)}</div>`}function x(r,t,o){const a=u(o),e=$(r.logo_url),i=Q(r.font_style),n=(r.platform_stats||[]).map(br).filter(Boolean).join(""),w=n?`<div class="rrw-plats">${n}</div>`:`<span class="rrw-count">${s(r.total_count)} ${a.reviews}</span>`;return`<div class="rrw-head"> 222 <div class="rrw-brand${i.condensed?" rrw-cond":""}"> 223 ${e?`<img class="rrw-logo" src="${s(e)}" alt="${s(r.restaurant_name)}" loading="lazy">`:""} 224 <span class="rrw-bn">${s(r.restaurant_name)}</span> 225 ${r.tagline?`<span class="rrw-bs">${s(r.tagline)}</span>`:""} 226 </div> 227 <div class="rrw-div"></div> 228 <div class="rrw-rate"><span class="rrw-num">${s(r.avg_rating)}</span>${y(r.avg_rating,t.accent,r.rating_icon,o,14,!0)}</div> 229 ${w} 230 </div>`}function v(r){return`<div class="rrw-empty">${u(r).noReviews}</div>`}function mr(r,t,o){const a=u(o),e=$(r.logo_url);return`<div class="rrw-badge"> 231 ${e?`<img class="rrw-logo" src="${s(e)}" alt="${s(r.restaurant_name)}" loading="lazy">`:""} 232 <span class="rrw-num">${s(r.avg_rating)}</span> 233 ${y(r.avg_rating,t.accent,r.rating_icon,o,16,!0)} 234 <span class="rrw-count" style="margin-left:0">${s(r.total_count)} ${a.reviews}</span> 235 </div>`}function X(r,t,o,a){if(r.reviews.length===0)return v(o);const e=r.reviews[0],i=N(e,r,t),n=G(e,r),w=r.show_reviewer_names&&e.reviewer_name;return a?`<div class="rrw-single"> 236 <span class="rrw-bigq" aria-hidden="true">“</span> 237 <div class="rrw-cs">${y(e.star_rating,i,n,o,14)}</div> 238 ${r.show_review_text&&e.review_text?`<p class="rrw-bigtext">${s(e.review_text)}</p>`:""} 239 <div class="rrw-foot">${L(e.reviewer_name,t,0)} 240 <div>${w?`<div class="rrw-nm">${s(e.reviewer_name)}</div>`:""}<div class="rrw-mt">${s(e.platform)}</div></div> 241 </div> 242 </div>`:`<div class="rrw-single"><div class="rrw-card" style="border:0;background:transparent;padding:0">${J(r,e,t,o,0,"c4")}</div></div>`}function ur(r,t,o){if(r.reviews.length===0)return x(r,t,o)+v(o);const a=r.reviews.map((e,i)=>_(r,e,t,o,i,"c4")).join("");return`${x(r,t,o)}
242<div class="rrw-list">${a}</div>`}function yr(r,t,o){if(r.reviews.length===0)return x(r,t,o)+v(o);const a=r.reviews.map((e,i)=>_(r,e,t,o,i,"c4")).join("");return`${x(r,t,o)}<div class="rrw-row">${a}</div>`}function $r(r,t,o){if(r.reviews.length===0)return x(r,t,o)+v(o);const a=r.reviews.map((i,n)=>_(r,i,t,o,n,"c4")).join(""),e=Math.max(24,r.reviews.length*6);return`${x(r,t,o)}<div class="rrw-mq-wrap"><div class="rrw-mq" style="--rrw-mq-dur:${e}s">${a}<span aria-hidden="true" style="display:contents">${a}</span></div></div>`}function kr(r,t,o){if(r.reviews.length===0)return x(r,t,o)+v(o);const a=r.reviews.map((i,n)=>_(r,i,t,o,n,"c3")).join(""),e=Math.max(18,r.reviews.length*5);return`${x(r,t,o)}<div class="rrw-tk-wrap"><div class="rrw-tk" style="--rrw-tk-dur:${e}s">${a}<span aria-hidden="true" style="display:contents">${a}</span></div></div>`}function _r(r,t,o){if(r.reviews.length===0)return x(r,t,o)+v(o);const a=r.reviews.map((i,n)=>{const w=N(i,r,t),l=G(i,r),d=r.show_reviewer_names&&i.reviewer_name,p=r.show_dates?C(i.review_date,o):"";return`<div class="rrw-slide${n===0?" on":""}"> 243 <div class="rrw-cs">${y(i.star_rating,w,l,o,13)}</div> 244 ${r.show_review_text&&i.review_text?`<p class="rrw-stext">${s(i.review_text)}</p>`:""} 245 <div class="rrw-foot" style="border:0;padding:0">${L(i.reviewer_name,t,n)} 246 <div>${d?`<div class="rrw-nm">${s(i.reviewer_name)}</div>`:""}${p?`<div class="rrw-mt">${s(p)}</div>`:""}</div> 247 <div class="rrw-src">${s(i.platform)}</div></div> 248 </div>`}).join(""),e=r.reviews.map((i,n)=>`<span class="rrw-dot${n===0?" on":""}"></span>`).join("");return`${x(r,t,o)}<div class="rrw-spot"><span class="rrw-spot-q" aria-hidden="true">“</span>${a}<div class="rrw-dots" aria-hidden="true">${e}</div></div>`}function zr(r,t,o){if(r.reviews.length===0)return x(r,t,o)+v(o);const a=r.reviews.slice(0,5).map((e,i)=>_(r,e,t,o,i,"c4",` data-pos="${i}"`)).join("");return`${x(r,t,o)}<div class="rrw-deck">${a}</div>`}function qr(r,t,o){if(r.reviews.length===0)return x(r,t,o)+v(o);const a=r.reviews.length,e=r.reviews.map((i,n)=>{let w=n;w>a/2&&(w-=a);const l=Math.abs(w)>2?w>0?2:-2:w;return _(r,i,t,o,n,"c4",` data-off="${l}"`)}).join("");return`${x(r,t,o)}<div class="rrw-stage">${e}</div>`}function Rr(r,t){const o=u(t),a=r.reviews.map((i,n)=>`<div class="rrw-hs${n===0?" on":""}"><div class="rrw-ht">“${s(i.review_text)}”</div><div class="rrw-hw">${s(i.reviewer_name)} · ${s(i.platform)}</div></div>`).join(""),e=r.reviews.length?`<div class="rrw-hero-quote">${a}</div>`:'<div class="rrw-hero-quote"></div>';return`<div class="rrw-hero"> 249 <div><div class="rrw-hero-num">${s(r.avg_rating)}</div><div class="rrw-hero-sub">${s(r.total_count)} ${o.reviews}</div></div> 250 <div class="rrw-hero-vd"></div> 251 ${e} 252 </div>`}function K(r,t){const o=f("#f6efdf",r,.04),a=m(t,o,3.1),e=m(f(a,"#0a0a0a",.2),o,4.2);return{paper:o,ink:a,ink2:e}}const Cr='<svg class="rrw-vglas" viewBox="0 0 44 70" width="21" height="33" style="width:21px;height:33px" aria-hidden="true" focusable="false"><g stroke="currentColor" fill="none" stroke-width="3" stroke-linecap="round"><path d="M9,4 H35 C35,19 29,27 22,27 C15,27 9,19 9,4 Z"/><line x1="22" y1="27" x2="22" y2="60"/><line x1="12" y1="63" x2="32" y2="63"/></g></svg>';function Ar(r,t,o){if(r.reviews.length===0)return x(r,t,o)+v(o);const a=k(r.primary_color,"#1a1a2e"),e=k(r.accent_color,"#16a34a"),{paper:i}=K(a,e),n=r.reviews.map(w=>
252{const l=T(w.platform,e,r.rating_icon),d=m(l.color,i,2.7),p=r.show_reviewer_names&&w.reviewer_name,z=r.show_dates?C(w.review_date,o):"",q=[w.platform,z].filter(Boolean).join(" · ");return`<div class="rrw-vc"><div class="rrw-vin"> 253 ${Cr} 254 <div class="rrw-vmerk">${s(r.restaurant_name)}</div> 255 ${y(w.star_rating,d,l.icon,o,11)} 256 ${r.show_review_text&&w.review_text?`<p class="rrw-vq">„${s(w.review_text)}”</p>`:""} 257 ${p?`<div class="rrw-vwie">${s(w.reviewer_name)}</div>`:""} 258 <div class="rrw-vvia">${s(q)}</div> 259 </div></div>`}).join("");return`${x(r,t,o)}<div class="rrw-vtable"><div class="rrw-vrow">${n}</div></div>`}function rr(r,t){const o=f("#fdfbf8",t,.025),a=f("#f7f1ea",t,.08),e=f("#ffffff",t,.018),i=f(t,"#d1b7a6",.28),n=m(r,o,4.5),w=f(r,"#3e2c20",.78),l=m(w,e,7);return{cream:o,soft:a,card:e,beige:i,beigeSoft:f(o,i,.48),brown:n,deep:w,ink:l,muted:g(l,.72),line:g(n,.18),gold:m("#d3962f",e,2.7)}}const Sr=`<svg viewBox="0 0 900 420" width="900" height="420" style="width:100%;height:100%" preserveAspectRatio="none" aria-hidden="true" focusable="false"> 260 <g fill="none" stroke="var(--rrw-bos-beige)" stroke-width="1.2" opacity=".12"> 261 <path d="M-80 91C63 7 173 27 255 91s178 79 279 11 209-76 405 12"/> 262 <path d="M-72 113C69 31 171 50 251 112s183 77 283 10 213-70 403 11"/> 263 <path d="M-64 136C75 56 173 74 251 134s186 74 284 9 215-66 400 10"/> 264 </g> 265 <circle cx="765" cy="74" r="94" fill="var(--rrw-bos-beige)" opacity=".07"/> 266 <path d="M0 330c133-54 245-44 365 4 111 44 225 45 328-5 72-35 140-39 207-23v114H0Z" fill="var(--rrw-bos-deep)" opacity=".42"/> 267 <path d="M0 371c151-45 280-34 397 3 126 41 257 37 503-24v70H0Z" fill="var(--rrw-bos-beige)" opacity=".09"/> 268 <g fill="var(--rrw-bos-cream)" opacity=".10"> 269 <path d="m790 236 18-44 18 44h-11l18 39h-50l18-39Zm66 31 13-31 13 31h-8l13 29h-37l13-29ZM31 285l14-35 14 35h-9l15 32H24l15-32Z"/> 270 </g> 271</svg>`;function jr(r,t){const o=u(t),a=k(r.primary_color,"#695648"),e=k(r.accent_color,"#d1b7a6"),i=rr(a,e),n=$(r.logo_url),w=n?`<img class="rrw-bos-logo" src="${s(n)}" alt="${s(r.restaurant_name)}" loading="lazy">`:`<span class="rrw-bos-wordmark">${s(r.restaurant_name)}</span>`,l=r.tagline?`<span class="rrw-bos-tag">${s(r.tagline)}</span>`:"",d="Langevelderlaan 22 · Noordwijk",p=t==="en"?"Stories from our guests":"Gasten aan het woord",z=t==="en"?"From the guestbook":"Uit het gastenboek",q=t==="en"?"At the table, in their words":"Aan tafel, in hun woorden",c=t==="en"?"Explore â":"Schuif door â",Y=`<div class="rrw-bos-intro"> 272 <div class="rrw-bos-brand">${w}${l}</div> 273 <div class="rrw-bos-kicker">${d}</div> 274 <div class="rrw-bos-title">${p}</div> 275 <div class="rrw-bos-rating"><span class="rrw-bos-score">${s(r.avg_rating)}</span> 276 <div class="rrw-bos-rating-copy">${y(r.avg_rating,i.gold,r.rating_icon,t,14,!0)}<span class="rrw-bos-total">${s(r.total_count)} ${o.reviews}</span></div> 277 </div> 278 </div>`,O=`<div class="rrw-bos-land">${Sr}</div>`,W=`<div class="rrw-bos-stagehead"><div><div class="rrw-bos-stageeyebrow">${z}</div><div class="rrw-bos-stagetitle">${q}</div></div><span class="rrw-bos-swipe">${c}</span></div>`;if(r.reviews.length===0)return`<div class="rrw-bos">${Y}<div class="rrw-bos-stage">${O}${W}${v(t)}</div></div>`;const tr=r.reviews.map(h=>{const H=T(h.platform,i.gold,r.rating_icon),or=m(H.color,i.card,2.7),E=r.show_reviewer_names&&h.reviewer_name,er=r.show_dates?C(h.review_date,t):"",B=r.show_platform_icons?h.platform:"",I=[B,er].filter(Boolean).join(" · "),ar=E||I?`<div class="rrw-bos-who"> 279 ${E?`<div class="rrw-bos-initial" aria-hidden="true">${s(Z(h.reviewer_name))}</div>`:""} 280 <div>${E?`<div class="rrw-bos-name">${s(h.reviewer_name)}</div>`:""}${I?`<div class="rrw-bos-meta">${I}</div>`:""}</div> 281 </div>`:"";return`<article class="rrw-bos-card"> 282 <div class="rrw-bos-cardtop">${y(h.star_rating,or,H.icon,t,13)}${B?`<span class="rrw-bos-platform">${s(B)}</span>`:""}</div> 283 ${r.show_review_text&&h.review_text?`<p class="rrw-bos-quote">${s(h.review_text)}</p>`:""} 284 ${ar} 285 </article>`}).join("");return`<div class="rrw-bos">${Y}<div class="rrw-bos-stage">${O}${W}<div class="rrw-bos-row">${tr}</div></div></div>`}function Er(r){if(r.inject_schema===!1||r.total_count<=0)return"";const t={"@context":"https://schema.org","@type":"Restaurant",name:r.restaurant_name,aggregateRating:{"@type":"AggregateRating",ratingValue:String(r.avg_rating),bestRating:"5",worstRating:"1",ratingCount:String(r.total_count)}};return`<script type="application/ld+json">${JSON.stringify(t).replace(/<\//g,"<\\/")}<\/script>`}function Br(r){return r==="pill"||r==="sharp"?r:"rounded"}function A(r,t){const o=$(r.review_cta_url);return o?`<a class="rrw-cta rrw-cta--${Br(r.button_style)}" href="${s(o)}" target="_blank" rel="noopener noreferrer">${u(t).writeReview}</a>`:""}function Ir(r,t){const o=u(t),a=r.show_freshness!==!1&&r.last_synced_at?`${o.updated} ${s(C(r.last_synced_at,t))}`:"",e=`https://restaurantreview.ai/?ref=widget&src=${encodeURIComponent(r.restaurant_name)}`;return`<div class="rrw-footer"> 286 ${$(r.review_cta_url)?`<a class="rrw-cta-link" href="${s($(r.review_cta_url))}" target="_blank" rel="noopener noreferrer">${o.all} â</a>`:`<span class="rrw-fresh">${a}</span>`} 287 <a class="rrw-attr" href="${s(e)}" target="_blank" rel="noopener noreferrer">powered by <strong>RestaurantReview.ai</strong></a> 288 </div>`}const V={spotlight:"spotlight",hero:"hero",deck:"deck",coverflow:"coverflow"};function Mr(r,t){const o=t==="woodland"?[]:r==="condensed"||r==="bold"?["anton-400.woff2"]:r==="classic"||r==="elegant"?["playfair-600.woff2"]:r==="modern"?[]:["fraunces-400.woff2","fraunces-600.woff2"];return t==="coaster"&&o.push("cinzel-500.woff2","cormorant-italic.woff2"),o.map(a=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="${b}/${a}">`).join("")}function Tr(r,t){const o=t.lang==="en"?"en":"nl",a=cr(t.size),e=k(r.primary_color,"#1a1a2e"),i=k(r.accent_color,"#16a34a"),n=wr(e,i,r.theme),w=Q(r.font_style);let l,d="";switch(a){case"badge":l=mr(r,n,o);break;case"small":l=X(r,n,o,!1),d=A(r,o);break;
288case"minimal":l=X(r,n,o,!0),d=A(r,o);break;case"large":l=ur(r,n,o),d=A(r,o);break;case"marquee":l=$r(r,n,o);break;case"ticker":l=kr(r,n,o);break;case"spotlight":l=_r(r,n,o);break;case"deck":l=zr(r,n,o);break;case"coverflow":l=qr(r,n,o);break;case"coaster":l=Ar(r,n,o);break;case"woodland":l=jr(r,o);break;case"hero":l=Rr(r,o);break;default:l=yr(r,n,o),d=A(r,o)}const p=[`--rrw-bg:${n.bg}`,`--rrw-bg2:${n.bg2}`,`--rrw-card:${n.card}`,`--rrw-card-hi:${n.cardHi}`,`--rrw-text:${n.text}`,`--rrw-text-soft:${n.textSoft}`,`--rrw-muted:${n.muted}`,`--rrw-faint:${n.faint}`,`--rrw-accent:${n.accent}`,`--rrw-border:${n.border}`,`--rrw-border-soft:${n.borderSoft}`,`--rrw-chip-bg:${n.chipBg}`,`--rrw-chip-bg-h:${n.chipBgH}`,`--rrw-chip-border-h:${n.chipBorderH}`,`--rrw-cta-text:${ir(n.accent)}`,`--rrw-radius:${a==="badge"?"999px":"16px"}`,`--rrw-fd:${w.display}`,`--rrw-fb:${w.body}`];if(a==="coaster"){const c=K(e,i);p.push(`--rrw-vpaper:${c.paper}`,`--rrw-vink:${c.ink}`,`--rrw-vink2:${c.ink2}`,`--rrw-vring:${g(c.ink,.55)}`,`--rrw-vring2:${g(c.ink,.38)}`,`--rrw-vmeta:${g(c.ink2,.72)}`,"--rrw-fdc:'RRW Cinzel', 'Cinzel', Georgia, serif","--rrw-fdi:'RRW Cormorant', 'Cormorant Garamond', Georgia, serif")}if(a==="woodland"){const c=rr(e,i);p.push(`--rrw-bg:${c.cream}`,`--rrw-bg2:${c.cream}`,`--rrw-card:${c.card}`,`--rrw-text:${c.ink}`,`--rrw-muted:${c.muted}`,`--rrw-accent:${c.brown}`,`--rrw-border:${c.line}`,"--rrw-radius:14px","--rrw-fd:'Quicksand', system-ui, sans-serif","--rrw-fb:'Quicksand', system-ui, sans-serif","--rrw-fbos:'Quicksand', system-ui, sans-serif",`--rrw-bos-cream:${c.cream}`,`--rrw-bos-soft:${c.soft}`,`--rrw-bos-card:${c.card}`,`--rrw-bos-beige:${c.beige}`,`--rrw-bos-beige-soft:${c.beigeSoft}`,`--rrw-bos-brown:${c.brown}`,`--rrw-bos-deep:${c.deep}`,`--rrw-bos-ink:${c.ink}`,`--rrw-bos-muted:${c.muted}`,`--rrw-bos-line:${c.line}`)}const z=u(o),q=V[a]?` data-rrw-anim="${V[a]}"`:"";return`${Mr(r.font_style,a)}<style>${pr}${dr}</style><div class="rrw-root s-${a}"${q} style="${p.join(";")}" role="complementary" aria-label="${s(r.restaurant_name)} ${z.reviews}">${l}${d}${Ir(r,o)}</div>${Er(r)}`}function Lr(r){const t=r.querySelector("[data-rrw-anim]");if(!t)return()=>{};const o=t.getAttribute("data-rrw-anim"),a=[];if(o==="spotlight"){const e=t.querySelectorAll(".rrw-slide"),i=t.querySelectorAll(".rrw-dot");if(e.length>=2){let n=0;a.push(window.setInterval(()=>{n=(n+1)%e.length,e.forEach((w,l)=>
288w.classList.toggle("on",l===n)),i.forEach((w,l)=>w.classList.toggle("on",l===n))},4200))}}else if(o==="hero"){const e=t.querySelectorAll(".rrw-hs");if(e.length>=2){let i=0;a.push(window.setInterval(()=>{i=(i+1)%e.length,e.forEach((n,w)=>n.classList.toggle("on",w===i))},3800))}}else if(o==="deck"){const e=t.querySelectorAll(".rrw-deck .rrw-card");if(e.length>=2){let i=0;a.push(window.setInterval(()=>{i=(i+1)%e.length,e.forEach((n,w)=>{const l=(w-i+e.length)%e.length;n.setAttribute("data-pos",String(l>3?3:l))})},3600))}}else if(o==="coverflow"){const e=t.querySelectorAll(".rrw-stage .rrw-card"),i=e.length;if(i>=2){let n=0;const w=()=>e.forEach((l,d)=>{let p=d-n;p>i/2&&(p-=i),p<-i/2&&(p+=i),l.setAttribute("data-off",String(Math.abs(p)>2?p>0?2:-2:p))});a.push(window.setInterval(()=>{n=(n+1)%i,w()},3e3))}}return()=>a.forEach(e=>window.clearInterval(e))}export{Lr as i,cr as n,Tr as r};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.