
/* ===== 1. Tokens ===== */
:root{
--rp-serif:'Fraunces','Fraunces Fallback',Georgia,serif;
--rp-sans:'Nunito','Nunito Fallback',-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;
--rp-ink:#14252e;--rp-ink-soft:#56666b;--rp-cream:#faf7f0;--rp-paper:#fffdf8;--rp-line:#e6dfce;
--rp-gold:#b08d3c;--rp-gold-soft:#f1dda1;--rp-live:#ff6b57;--rp-open:#2a6b67;
--rp-radius-sm:12px;--rp-radius:18px;--rp-radius-lg:24px;--rp-pill:999px;
--rp-shadow-1:0 1px 2px #14252e0a,0 6px 16px -10px #14252e33;
--rp-shadow-2:0 1px 2px #14252e0a,0 12px 30px -14px #14252e47;
--rp-shadow-3:0 2px 4px #14252e0f,0 24px 48px -18px #14252e5c;
--rp-ease:cubic-bezier(.2,.7,.2,1);
--rp-header-h:73px;
}
@media(max-width:560px){:root{--rp-header-h:53px}}

/* Type: a serif for headings, a sans for everything you tap or read in a row. */
.rp-serif{font-family:var(--rp-serif);font-weight:600;letter-spacing:-.018em;line-height:1.1}
.rp-sans{font-family:var(--rp-sans)}
.rp-eyebrow{font-family:var(--rp-sans);font-size:11px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--rp-gold)}

/* Depth: three soft shadows, from resting to raised. */
.rp-shadow-1{box-shadow:var(--rp-shadow-1)}
.rp-shadow-2{box-shadow:var(--rp-shadow-2)}
.rp-shadow-3{box-shadow:var(--rp-shadow-3)}

/* A card that lifts on hover, and a photo frame whose image zooms gently. */
.rp-lift{transition:transform .45s var(--rp-ease),box-shadow .45s var(--rp-ease);will-change:transform}
.rp-lift:hover{transform:translateY(-4px);box-shadow:var(--rp-shadow-3)}
.rp-zoom{overflow:hidden}
.rp-zoom img{transition:transform .9s var(--rp-ease);will-change:transform}
.rp-zoom:hover img,.rp-lift:hover .rp-zoom img{transform:scale(1.06)}

/* Live status: <span class="rp-live"><i class="rp-live-dot"></i>Open now</span>. Add .rp-live-gold for happy hour. */
.rp-live{display:inline-flex;align-items:center;gap:8px;font-family:var(--rp-sans);font-weight:800}
.rp-live-dot{position:relative;flex:none;width:9px;height:9px;border-radius:50%;background:var(--rp-live);box-shadow:0 0 0 3px #ff6b5733}
.rp-live-dot::after{content:'';position:absolute;inset:0;border-radius:50%;background:inherit;animation:rpPulse 2s var(--rp-ease) infinite;will-change:transform,opacity}
.rp-live-gold .rp-live-dot{background:#f5cf5e;box-shadow:0 0 0 3px #f5cf5e33}
.rp-live-open .rp-live-dot{background:var(--rp-open);box-shadow:0 0 0 3px #2a6b6726}
@keyframes rpPulse{0%{transform:scale(1);opacity:.75}75%,100%{transform:scale(3.4);opacity:0}}

/* Pill buttons and a card grid. */
.rp-pill{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:9px 18px;border:1px solid #cdc4ab;border-radius:var(--rp-pill);background:var(--rp-paper);color:var(--rp-ink);font-family:var(--rp-sans);font-size:14px;font-weight:800;white-space:nowrap;cursor:pointer;transition:background-color .25s,color .25s,border-color .25s,transform .25s var(--rp-ease)}
.rp-pill:hover{border-color:var(--rp-ink);transform:translateY(-1px)}
.rp-pill[aria-pressed="true"],.rp-pill[aria-selected="true"],.rp-pill.is-active{background:var(--rp-ink);border-color:var(--rp-ink);color:#fff}
.rp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px}
@media(max-width:700px){.rp-grid{grid-template-columns:1fr;gap:16px}}

/* ===== 2. Destination / guide template: list pages (body.fd-page) ===== */
/* Header: breadcrumb, banner, title, intro. */
html body.fd-page .category-hero h1{font-family:var(--rp-serif);font-weight:600;font-size:clamp(2.1rem,3.4vw,3rem);line-height:1.06;letter-spacing:-.02em}
html body.fd-page .category-banner{border-radius:var(--rp-radius-lg);box-shadow:var(--rp-shadow-2)}
html body.fd-page .category-banner img{transition:transform 1.2s var(--rp-ease)}
html body.fd-page .category-banner:hover img{transform:scale(1.03)}

/* The filter bar stays with you as you scroll: frosted, under the site header. */
html body.fd-page .fd-toolbar{position:sticky;top:calc(var(--rp-header-h) + 10px);z-index:40;border-radius:var(--rp-radius-lg);border-color:#e6dfcecc;background:#fffaf0e6;-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);box-shadow:var(--rp-shadow-2);transition:box-shadow .3s var(--rp-ease)}
html body.fd-page .fd-toolbar .fd-search-input{transition:border-color .2s,box-shadow .25s var(--rp-ease)}
html body.fd-page .fd-toolbar .fd-search-input:focus-visible{outline:0;border-color:var(--rp-ink);box-shadow:0 0 0 3px #f1dda1cc}
html body.fd-page .fd-pop-btn,html body.fd-page .fd-sort select{transition:background-color .2s,color .2s,border-color .2s,transform .25s var(--rp-ease)}
html body.fd-page .fd-pop-btn:hover{border-color:var(--rp-ink);transform:translateY(-1px)}

/* Pages on the older filter layout have no .fd-toolbar: apply() wraps their search box and filter pills in
   .rp-filterbar (or the pills alone, when something sits between the two), which sticks the same way. */
html body.fd-page .rp-filterbar{position:sticky;top:calc(var(--rp-header-h) + 10px);z-index:40;display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;margin:0 0 16px;padding:12px 14px;border:1px solid #e6dfcecc;border-radius:var(--rp-radius-lg);background:#fffaf0e6;-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);box-shadow:var(--rp-shadow-2)}
html body.fd-page .rp-filterbar > .fd-search{flex:1 1 300px;max-width:520px;margin:0}
html body.fd-page .rp-filterbar > .fd-search .fd-search-input{width:100%;transition:border-color .2s,box-shadow .25s var(--rp-ease)}
html body.fd-page .rp-filterbar > .fd-search .fd-search-input:focus-visible{outline:0;border-color:var(--rp-ink);box-shadow:0 0 0 3px #f1dda1cc}
html body.fd-page .rp-filterbar > .fd-controls{flex:0 1 auto;width:auto;margin:0}

/* Venue cards: softer depth, a lift and a slow photo zoom on hover. */
html body.golf-page.fd-page .card-grid > li.venue-card.venue-card:not(.rp-off){border-radius:var(--rp-radius);box-shadow:var(--rp-shadow-1);transition:transform .45s var(--rp-ease),box-shadow .45s var(--rp-ease)}
html body.golf-page.fd-page .card-grid > li.venue-card.venue-card:not(.rp-off)::before{transition:transform .9s var(--rp-ease);transform-origin:50% 60%;will-change:transform}
@media(hover:hover){
html body.golf-page.fd-page .card-grid > li.venue-card.venue-card:not(.rp-off):hover{transform:translateY(-4px);box-shadow:var(--rp-shadow-3)}
html body.golf-page.fd-page .card-grid > li.venue-card.venue-card:not(.rp-off):hover::before{transform:scale(1.05)}
}
html body.fd-page .venue-card .venue-card-cue{transition:transform .3s var(--rp-ease)}
html body.fd-page .venue-card:hover .venue-card-cue{transform:translateX(3px)}

/* "Open now" is live: its dot pulses. Closed, unknown and by-appointment stay still. */
html body.fd-page .fd-open-status[data-fd-open="open"]{position:relative}
html body.fd-page .fd-open-status[data-fd-open="open"]::after{content:'';position:absolute;left:0;top:50%;width:8px;height:8px;margin-top:-4px;border-radius:50%;background:currentColor;animation:rpPulse 2.4s var(--rp-ease) infinite;will-change:transform,opacity;pointer-events:none}

/* Phones: only the row of filter pills stays; the search box scrolls away under the header. */
@media(max-width:560px){
html body.fd-page .fd-toolbar{top:calc(var(--rp-header-h) - 60px);border-radius:var(--rp-radius)}
html body.fd-page .rp-filterbar{padding:10px;border-radius:var(--rp-radius)}
html body.fd-page .rp-filterbar.rp-filterbar-search{top:calc(var(--rp-header-h) - 60px)}
html body.fd-page .rp-filterbar > .fd-search{flex-basis:100%;max-width:none}
}
@media(max-width:700px){
html body.fd-page .category-hero h1{font-size:2rem}
}

/* ===== 2b. Town pages (body.town-page, body.kelowna-page) ===== */
body.town-page,body.kelowna-page{font-family:var(--rp-sans);-webkit-font-smoothing:antialiased}
body.town-page h1,body.town-page h2,body.town-page h3,body.kelowna-page h1,body.kelowna-page h2,body.kelowna-page h3{font-family:var(--rp-serif);font-weight:600;letter-spacing:-.018em}
body.town-page .bw-hero h1,body.kelowna-page .bw-hero h1{font-size:clamp(2.5rem,4.6vw,4rem);line-height:1.04;text-shadow:0 2px 26px #0e1f2866}
body.town-page .bw-hero h1,body.town-page .bw-hero p,body.kelowna-page .bw-hero h1,body.kelowna-page .bw-hero p{text-wrap:balance}
body.town-page .bw-eyebrow,body.kelowna-page .bw-eyebrow{letter-spacing:.22em;font-weight:800}
body.town-page .bw-tile,body.town-page .bw-pick,body.kelowna-page .bw-tile,body.kelowna-page .bw-pick{overflow:hidden;border-radius:var(--rp-radius);box-shadow:var(--rp-shadow-1);transition:transform .45s var(--rp-ease),box-shadow .45s var(--rp-ease)}
body.town-page .bw-tile img,body.town-page .bw-pick img,body.kelowna-page .bw-tile img,body.kelowna-page .bw-pick img{transition:transform .9s var(--rp-ease)}
@media(hover:hover){
body.town-page .bw-tile:hover,body.town-page .bw-pick:hover,body.kelowna-page .bw-tile:hover,body.kelowna-page .bw-pick:hover{transform:translateY(-4px);box-shadow:var(--rp-shadow-3)}
body.town-page .bw-tile:hover img,body.town-page .bw-pick:hover img,body.kelowna-page .bw-tile:hover img,body.kelowna-page .bw-pick:hover img{transform:scale(1.06)}
}
body.town-page .bw-pill,body.kelowna-page .bw-pill{font-family:var(--rp-sans);font-weight:800;transition:transform .25s var(--rp-ease),box-shadow .25s var(--rp-ease)}
body.town-page .bw-pill:hover,body.kelowna-page .bw-pill:hover{transform:translateY(-1px);box-shadow:0 8px 18px -8px #14252e80}
body.town-page .bw-essentials,body.kelowna-page .bw-essentials{border-radius:var(--rp-radius);box-shadow:var(--rp-shadow-1)}

/* People who ask for less motion get none. */
@media(prefers-reduced-motion:reduce){
.rp-lift,.rp-zoom img,.rp-pill,.rp-live-dot::after,
html body.fd-page .fd-toolbar,html body.fd-page .rp-filterbar,html body.fd-page .category-banner img,html body.fd-page .card-grid > li.venue-card,html body.fd-page .card-grid > li.venue-card::before,html body.fd-page .fd-open-status::after,html body.fd-page .venue-card .venue-card-cue,
body.town-page .bw-tile,body.town-page .bw-pick,body.town-page .bw-tile img,body.town-page .bw-pick img,body.kelowna-page .bw-tile,body.kelowna-page .bw-pick,body.kelowna-page .bw-tile img,body.kelowna-page .bw-pick img{animation:none!important;transition:none!important;transform:none!important}
}

/* ===== 3. Venue profile template: Food & Drink venue pages (body.fd-venue-page) ===== */
/* Large-format photo. */
body.fd-venue-page main > .venue-hero-photo{border-radius:var(--rp-radius-lg);box-shadow:var(--rp-shadow-2)}
body.fd-venue-page main > .venue-hero-photo img{height:clamp(230px,38vw,520px);max-height:none;transition:transform 1.4s var(--rp-ease)}
@media(hover:hover){body.fd-venue-page main > .venue-hero-photo:hover img{transform:scale(1.03)}}
body.fd-venue-page .vg-mosaic{border-radius:var(--rp-radius-lg);overflow:hidden;box-shadow:var(--rp-shadow-2)}

/* Title block. */
body.fd-venue-page .venue-desktop-title{font-family:var(--rp-serif);font-weight:600;font-size:clamp(2.1rem,3.3vw,3rem);line-height:1.05;letter-spacing:-.02em}
body.fd-venue-page .venue-at-a-glance{letter-spacing:.01em}
body.fd-venue-page .venue-open-status[data-open="open"]{position:relative}
body.fd-venue-page .venue-open-status[data-open="open"]::after{content:'';position:absolute;left:0;top:.72em;width:8px;height:8px;margin-top:-4px;border-radius:50%;background:currentColor;animation:rpPulse 2.4s var(--rp-ease) infinite;will-change:transform,opacity;pointer-events:none}

/* Line icons in place of emoji: highlights, the Hours button, the facts in the sidebar. */
body.fd-venue-page .rp-icon{flex:none;width:1.05em;height:1.05em;vertical-align:-.16em;color:var(--rp-gold)}
body.fd-venue-page .fd-highlights span{display:inline-flex;align-items:center;gap:7px}
body.fd-venue-page .venue-key-info .label{display:flex;align-items:center;gap:7px}
body.fd-venue-page .cta .rp-icon{color:currentColor;margin-right:6px}
body.fd-venue-page .cta{transition:transform .25s var(--rp-ease),box-shadow .25s var(--rp-ease),background-color .2s,border-color .2s}
@media(hover:hover){body.fd-venue-page .cta:hover{transform:translateY(-1px);box-shadow:0 8px 18px -10px #14252e80}}

/* Cards and the sidebar. */
body.fd-venue-page .fd-card,body.fd-venue-page .fd-aside .venue-section{border-radius:var(--rp-radius);box-shadow:var(--rp-shadow-1)}
body.fd-venue-page .fd-aside h2{font-family:var(--rp-serif);font-weight:600;letter-spacing:-.01em}
body.fd-venue-page .hours-list li.is-today{font-weight:800;color:var(--rp-ink)}

/* Map card: a real map of the town with this place pinned; the whole card opens directions. */
body.fd-venue-page .rp-map{display:block;position:relative;margin:0 0 16px;border-radius:var(--rp-radius);overflow:hidden;box-shadow:var(--rp-shadow-1);background:#e8eee9;color:var(--rp-ink);text-decoration:none;transition:transform .45s var(--rp-ease),box-shadow .45s var(--rp-ease)}
body.fd-venue-page .rp-map-frame{position:relative;display:block;height:190px;overflow:hidden}
body.fd-venue-page .rp-map-canvas{position:absolute;display:block;transition:transform 1.2s var(--rp-ease);transform-origin:var(--rp-pin-x) var(--rp-pin-y)}
body.fd-venue-page .rp-map-canvas img{display:block;width:100%;height:100%;max-width:none}
body.fd-venue-page .rp-map-pin{position:absolute;left:var(--rp-pin-x);top:var(--rp-pin-y);width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;background:var(--rp-live);border:3px solid #fff;box-shadow:0 2px 8px #14252e80}
body.fd-venue-page .rp-map-pin::after{content:'';position:absolute;inset:-3px;border-radius:50%;background:var(--rp-live);animation:rpPulse 2.4s var(--rp-ease) infinite;z-index:-1}
body.fd-venue-page .rp-map-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;background:var(--rp-paper);font-family:var(--rp-sans);font-size:14px;font-weight:800}
body.fd-venue-page .rp-map-bar span:last-child{transition:transform .3s var(--rp-ease)}
body.fd-venue-page .rp-map-credit{position:absolute;right:6px;bottom:6px;padding:2px 6px;border-radius:6px;background:#ffffffd9;font-family:var(--rp-sans);font-size:10px;font-weight:600;color:#3d4a50}
@media(hover:hover){
body.fd-venue-page .rp-map:hover{transform:translateY(-3px);box-shadow:var(--rp-shadow-3)}
body.fd-venue-page .rp-map:hover .rp-map-canvas{transform:scale(1.08)}
body.fd-venue-page .rp-map:hover .rp-map-bar span:last-child{transform:translateX(4px)}
}

/* Nearby places. */
body.fd-venue-page .nearby-card{border-radius:var(--rp-radius);box-shadow:var(--rp-shadow-1);transition:transform .45s var(--rp-ease),box-shadow .45s var(--rp-ease)}
body.fd-venue-page .nearby-card img{transition:transform .9s var(--rp-ease)}
body.fd-venue-page .nearby-link{overflow:hidden}
body.fd-venue-page .nearby-name{font-family:var(--rp-serif);font-weight:600}
@media(hover:hover){
body.fd-venue-page .nearby-card:hover{transform:translateY(-4px);box-shadow:var(--rp-shadow-3)}
body.fd-venue-page .nearby-card:hover img{transform:scale(1.05)}
}

@media(max-width:700px){
body.fd-venue-page main > .venue-hero-photo{border-radius:var(--rp-radius)}
body.fd-venue-page .rp-map-frame{height:170px}
}
@media(prefers-reduced-motion:reduce){
body.fd-venue-page .venue-hero-photo img,body.fd-venue-page .venue-open-status::after,body.fd-venue-page .cta,body.fd-venue-page .rp-map,body.fd-venue-page .rp-map-canvas,body.fd-venue-page .rp-map-pin::after,body.fd-venue-page .nearby-card,body.fd-venue-page .nearby-card img{animation:none!important;transition:none!important;transform:none!important}
}
