/* ================================================================
   SHAHAN STUDIO — Home v4 "Atelier"
   Palette: white · black · graphite · beige  |  Light & dark theme
   Theme is driven by [data-theme] on <html> (set in <head> before
   first paint); prefers-color-scheme is the no-JS fallback.
   ================================================================ */

/* ── Tokens ─────────────────────────────────────────────────────── */
:root{
  --white:#FFFFFF;
  --black:#0B0B0B;
  --graphite:#232323;
  --graphite-2:#3A3A3A;
  --beige-50:#F8F4EE;
  --beige-100:#F0E9DF;
  --beige-200:#E4D9CA;
  --beige-300:#D3C2AC;
  --beige-400:#BBA587;
  --beige-600:#7A6449;
  --beige-700:#5F4D37;

  /* Light theme: neutral off-white + warm grays + black blocks; beige only as accent */
  --bg:#F6F5F2;          /* off-white */
  --bg-alt:#E9E7E3;      /* light warm gray */
  --bg-sand:#DCD7CF;     /* greige: between gray, brown and beige */
  --surface:#FFFFFF;
  --surface-2:#F1F0ED;
  --ink:#111111;
  --ink-2:#2A2927;
  --muted:#4D4A46;       /* gray-brown body copy */
  --faint:#625E59;
  --line:#DDDAD5;
  --line-strong:#B8B3AB;
  --accent:#6E5B45;      /* beige-brown, text-safe */
  --accent-soft:#D9CDBD;
  --btn-bg:#111111;
  --btn-fg:#FFFFFF;
  --btn-hover:#3A3835;
  --band-bg:#131312;
  --band-bg-2:#1F1E1C;
  --band-ink:#F5F3EF;
  --band-muted:#B3ADA5;
  --band-line:#34322F;
  --nav-bg:rgba(246,245,242,.9);
  --icon-filter:none;
  --shadow-1:0 1px 2px rgba(17,17,17,.05),0 2px 8px rgba(17,17,17,.05);
  --shadow-2:0 18px 40px -16px rgba(17,17,17,.28);
  --star:#111111;
  --star-off:#CFCAC2;
  --map-filter:none;--note-bg:#111111;--note-fg:#F5F3EF;--badge-bg:#FFFFFF;--badge-fg:#111111;--badge-bd:#DDDAD5;--badge-sale-bg:#111111;--badge-sale-fg:#FFFFFF;--band-border:transparent;

  --font-sans:"'Google Sans',system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif";
  --font-serif:var(--font-sans);
  --nav-h:64px;
  --radius:16px;
  --radius-sm:10px;
  --radius-lg:26px;
  --gutter:clamp(1.25rem,4vw,2.5rem);
  --ease:cubic-bezier(.22,.61,.36,1);
  --dur:.35s;
  color-scheme:light;
}

/* Dark palette — redefines tokens only */
:root[data-theme="dark"]{
  --bg:#0D0D0D;
  --bg-alt:#141312;
  --bg-sand:#1A1817;
  --surface:#171615;
  --surface-2:#1F1D1B;
  --ink:#F4EEE6;
  --ink-2:#E3DACE;
  --muted:#B3A99D;
  --faint:#8C8379;
  --line:#2A2725;
  --line-strong:#3D3935;
  --accent:#D6C3A8;
  --accent-soft:#2C2722;
  --btn-bg:#E9DECF;
  --btn-fg:#0D0D0D;
  --btn-hover:#FFFFFF;
  --band-bg:#171615;
  --band-bg-2:#201E1C;
  --band-ink:#F4EEE6;
  --band-muted:#AFA599;
  --band-line:#34302C;
  --nav-bg:rgba(13,13,13,.82);
  --icon-filter:invert(1) brightness(1.6);
  --shadow-1:0 1px 2px rgba(0,0,0,.4);
  --shadow-2:0 14px 40px -14px rgba(0,0,0,.7);
  --star:#E9DECF;
  --star-off:#3A3633;
  --map-filter:grayscale(.35) invert(.9) hue-rotate(180deg) contrast(.9);--note-bg:#EADFCF;--note-fg:#0B0B0B;--badge-bg:#0B0B0B;--badge-fg:#EADFCF;--badge-bd:#3D3935;--badge-sale-bg:#EADFCF;--badge-sale-fg:#0B0B0B;--band-border:#34302C;
  color-scheme:dark;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#0D0D0D;--bg-alt:#141312;--bg-sand:#1A1817;--surface:#171615;--surface-2:#1F1D1B;
    --ink:#F4EEE6;--ink-2:#E3DACE;--muted:#B3A99D;--faint:#8C8379;--line:#2A2725;--line-strong:#3D3935;
    --accent:#D6C3A8;--accent-soft:#2C2722;--btn-bg:#E9DECF;--btn-fg:#0D0D0D;--btn-hover:#FFFFFF;
    --band-bg:#171615;--band-bg-2:#201E1C;--band-ink:#F4EEE6;--band-muted:#AFA599;--band-line:#34302C;
    --nav-bg:rgba(13,13,13,.82);--icon-filter:invert(1) brightness(1.6);
    --shadow-1:0 1px 2px rgba(0,0,0,.4);--shadow-2:0 14px 40px -14px rgba(0,0,0,.7);
    --star:#E9DECF;--star-off:#3A3633;
    --map-filter:grayscale(.35) invert(.9) hue-rotate(180deg) contrast(.9);--note-bg:#EADFCF;--note-fg:#0B0B0B;--badge-bg:#0B0B0B;--badge-fg:#EADFCF;--badge-bd:#3D3935;--badge-sale-bg:#EADFCF;--badge-sale-fg:#0B0B0B;--band-border:#34302C;
    color-scheme:dark;
  }
}

/* ── Base ───────────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box}
html{scroll-padding-top:calc(var(--nav-h) + 12px);-webkit-text-size-adjust:100%;scrollbar-gutter:stable}
body.bf-home{
  margin:0;min-height:100vh;
  background:var(--bg);color:var(--ink);
  font-family:var(--font-sans);font-size:0.8rem;font-weight:400;line-height:1.6;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
html.theme-anim body.bf-home,
html.theme-anim .bf-nav,
html.theme-anim .bf-section,
html.theme-anim .bf-card,
html.theme-anim .bf-ft{transition:background-color .4s var(--ease),color .4s var(--ease),border-color .4s var(--ease)}
.bf-home a{color:inherit}
.bf-home img{max-width:100%}
.bf-home ::selection{background:var(--beige-300);color:var(--black)}
.bf-home :focus-visible{outline:2px solid var(--accent);outline-offset:3px}
body.bf-lock{overflow:hidden}

/* Dark scrollbar (10px, as before — also keeps the hero's width identical) */
[data-theme="dark"] ::-webkit-scrollbar{width:10px}
[data-theme="dark"] ::-webkit-scrollbar-track{background:#0D0D0D}
[data-theme="dark"] ::-webkit-scrollbar-thumb{background:#4A433D;border-radius:5px}
[data-theme="dark"] ::-webkit-scrollbar-thumb:hover{background:#6B6159}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) ::-webkit-scrollbar{width:10px}
  :root:not([data-theme="light"]) ::-webkit-scrollbar-track{background:#0D0D0D}
  :root:not([data-theme="light"]) ::-webkit-scrollbar-thumb{background:#4A433D;border-radius:5px}
}

.bf-skip{
  position:absolute;left:1rem;top:-100px;z-index:200;
  background:var(--btn-bg);color:var(--btn-fg);
  padding:.75rem 1rem;font-weight:600;text-decoration:none;border-radius:var(--radius)
}
.bf-skip:focus{top:1rem}
.bf-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.bf-wrap{width:100%;max-width:1240px;margin-inline:auto;padding-inline:var(--gutter)}
.bf-wrap--narrow{max-width:880px}

/* ── Type ───────────────────────────────────────────────────────── */
.bf-eyebrow{
  display:flex;align-items:center;gap:.75rem;
  margin:0 0 1.1rem;
  font-size:.72rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;
  color:var(--accent)
}
.bf-eyebrow__num{
  font-weight:700;font-size:.95rem;letter-spacing:0;text-transform:none;
  color:var(--ink)
}
.bf-eyebrow::after{content:"";flex:0 0 2.5rem;height:1px;background:currentColor;opacity:.6}
.bf-title{
  margin:0;
  font-family:var(--font-serif);font-weight:700;
  font-size:clamp(1.85rem,1.2rem + 2.3vw,3rem);
  line-height:1.12;letter-spacing:-.01em;
  color:var(--ink);text-wrap:balance
}
.bf-title em{font-style:normal;color:var(--accent)}
.bf-lede{margin:1rem 0 0;max-width:38rem;color:var(--muted);font-size:1.05rem;line-height:1.65}
.bf-head{margin-bottom:clamp(2.25rem,4vw,3.5rem)}
@media(min-width:900px){
  .bf-head--split{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:3rem;align-items:end}
  .bf-head--split .bf-lede{margin:0;justify-self:end}
}

/* ── Buttons & links ────────────────────────────────────────────── */
.bf-btn{
  --_bg:var(--btn-bg);--_fg:var(--btn-fg);--_bd:var(--btn-bg);
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  min-height:48px;padding:.8rem 1.5rem;
  background:var(--_bg);color:var(--_fg)!important;border:1px solid var(--_bd);border-radius:999px;
  font:600 .8rem/1 var(--font-sans);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;
  cursor:pointer;white-space:nowrap;
  transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease),transform var(--dur) var(--ease)
}
.bf-btn svg{width:16px;height:16px;flex:none;transition:transform var(--dur) var(--ease)}
.bf-btn:hover{--_bg:var(--btn-hover);--_bd:var(--btn-hover)}
.bf-btn:hover svg{transform:translateX(3px)}
.bf-btn:active{transform:translateY(1px)}
.bf-btn--ghost{--_bg:transparent;--_fg:var(--ink);--_bd:var(--line-strong)}
.bf-btn--ghost:hover{--_bg:var(--ink);--_fg:var(--bg);--_bd:var(--ink)}
.bf-btn--sm{min-height:40px;padding:.6rem 1.1rem;font-size:.72rem}
.bf-btn--block{width:100%;white-space:normal;text-align:center;line-height:1.3}
.bf-btn--light{--_bg:var(--beige-100);--_fg:var(--black);--_bd:var(--beige-100)}
.bf-btn--light:hover{--_bg:#fff;--_bd:#fff}

.bf-link{
  display:inline-flex;align-items:center;gap:.45rem;
  font-weight:600;font-size:.92rem;text-decoration:none;color:var(--ink);
  background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;
  padding-bottom:2px;transition:background-size var(--dur) var(--ease)
}
.bf-link:hover{background-size:100% 1px}
.bf-link svg{width:14px;height:14px}

/* ── Scroll reveal (only when JS runs) ──────────────────────────── */
.js [data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease),transform .7s var(--ease);transition-delay:var(--d,0s)}
.js [data-reveal].is-in,.reveal-fallback [data-reveal]{opacity:1;transform:none}

/* ── Navigation ─────────────────────────────────────────────────── */
.bf-nav{
  position:fixed;inset:0 0 auto 0;z-index:50;height:var(--nav-h);
  background:var(--nav-bg);
  -webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);
  border-bottom:1px solid var(--line);
  transition:box-shadow var(--dur) var(--ease),background-color .4s var(--ease)
}
.bf-nav.is-scrolled{box-shadow:0 6px 24px -14px rgba(0,0,0,.35)}
.bf-nav__inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.bf-brand{display:flex;flex-direction:column;justify-content:center;line-height:1;text-decoration:none;color:var(--ink)}
.bf-brand__tag{font-size:.6rem;font-weight:600;letter-spacing:.32em;text-transform:uppercase;color:var(--accent);margin-bottom:.32rem}
.bf-brand__name{margin-top:5px;font-family:var(--font-serif);font-size:1.22rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.bf-nav__links{display:none;align-items:center;gap:clamp(1rem,1.8vw,1.9rem);margin:0;padding:0;list-style:none}
.bf-nav__links a{
  position:relative;display:block;padding:.4rem 0;
  font-size:.84rem;font-weight:500;letter-spacing:.02em;color:var(--muted);text-decoration:none;
  transition:color var(--dur) var(--ease)
}
.bf-nav__links a::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--ink);
  transform:scaleX(0);transform-origin:right;transition:transform var(--dur) var(--ease)
}
.bf-nav__links a:hover,.bf-nav__links a.is-active{color:var(--ink)}
.bf-nav__links a:hover::after,.bf-nav__links a.is-active::after{transform:scaleX(1);transform-origin:left}
.bf-nav__actions{display:flex;align-items:center;gap:.5rem}
.bf-nav__cta{display:none}
.bf-icon-btn{
  position:relative;display:inline-grid;place-items:center;
  width:42px;height:42px;padding:0;
  background:transparent;border:1px solid transparent;border-radius:50%;
  color:var(--ink);cursor:pointer;text-decoration:none;
  transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease)
}
.bf-icon-btn:hover{background:var(--bg-sand);border-color:var(--line)}
.bf-icon-btn svg{width:20px;height:20px}

/* Theme toggle: sun ↔ moon */
.bf-theme-toggle .i-sun,.bf-theme-toggle .i-moon{grid-area:1/1;transition:transform .5s var(--ease),opacity .3s var(--ease)}
.bf-theme-toggle .i-moon{opacity:0;transform:rotate(-90deg) scale(.6)}
[data-theme="dark"] .bf-theme-toggle .i-sun{opacity:0;transform:rotate(90deg) scale(.6)}
[data-theme="dark"] .bf-theme-toggle .i-moon{opacity:1;transform:none}

/* Burger */
.bf-burger span{position:absolute;left:11px;right:11px;height:1.5px;background:currentColor;border-radius:2px;transition:transform .35s var(--ease),opacity .2s}
.bf-burger span:nth-child(1){transform:translateY(-5px)}
.bf-burger span:nth-child(3){transform:translateY(5px)}
.bf-burger[aria-expanded="true"] span:nth-child(1){transform:rotate(45deg)}
.bf-burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.bf-burger[aria-expanded="true"] span:nth-child(3){transform:rotate(-45deg)}

.bf-progress{position:absolute;left:0;right:0;bottom:-1px;height:2px;pointer-events:none}
.bf-progress span{display:block;height:100%;width:100%;background:var(--accent);transform:scaleX(0);transform-origin:left;will-change:transform}

@media(min-width:1100px){
  .bf-nav__links{display:flex}
  .bf-nav__cta{display:inline-flex}
  .bf-burger,.bf-nav__book-icon{display:none}
}

/* Mobile menu */
.bf-menu{
  position:fixed;inset:var(--nav-h) 0 0 0;z-index:45;
  background:var(--bg);overflow-y:auto;overscroll-behavior:contain;
  visibility:hidden;opacity:0;transform:translateY(-8px);
  transition:opacity .35s var(--ease),transform .35s var(--ease),visibility 0s linear .35s
}
.bf-menu.is-open{visibility:visible;opacity:1;transform:none;transition-delay:0s}
.bf-menu__inner{display:flex;flex-direction:column;min-height:100%;padding-block:1.5rem 2rem}
.bf-menu__list{list-style:none;margin:0;padding:0;counter-reset:m}
.bf-menu__list li{border-bottom:1px solid var(--line)}
.bf-menu__list a{
  counter-increment:m;
  display:flex;align-items:baseline;gap:1rem;padding:1rem 0;
  font-family:var(--font-serif);font-weight:700;font-size:1.55rem;line-height:1.15;text-decoration:none;color:var(--ink);
  opacity:0;transform:translateY(10px);transition:opacity .45s var(--ease),transform .45s var(--ease),color .2s
}
.bf-menu__list a::before{content:"0" counter(m);font:500 .72rem/1 var(--font-sans);letter-spacing:.12em;color:var(--accent);min-width:1.6rem}
.bf-menu__list a:hover{color:var(--accent)}
.bf-menu.is-open .bf-menu__list a{opacity:1;transform:none}
.bf-menu.is-open .bf-menu__list li:nth-child(1) a{transition-delay:.05s}
.bf-menu.is-open .bf-menu__list li:nth-child(2) a{transition-delay:.09s}
.bf-menu.is-open .bf-menu__list li:nth-child(3) a{transition-delay:.13s}
.bf-menu.is-open .bf-menu__list li:nth-child(4) a{transition-delay:.17s}
.bf-menu.is-open .bf-menu__list li:nth-child(5) a{transition-delay:.21s}
.bf-menu.is-open .bf-menu__list li:nth-child(6) a{transition-delay:.25s}
.bf-menu.is-open .bf-menu__list li:nth-child(7) a{transition-delay:.29s}
.bf-menu__foot{margin-top:auto;padding-top:2rem;display:grid;gap:1rem}
.bf-menu__meta{display:flex;flex-wrap:wrap;gap:.35rem 1.5rem;font-size:.9rem;color:var(--muted)}
.bf-menu__meta a{text-decoration:none}
.bf-menu__theme{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1.25rem;border:1px solid var(--line);border-radius:999px;font-size:.9rem;color:var(--ink);background:transparent;cursor:pointer;width:100%}
.bf-menu__theme .bf-menu__theme-state{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
@media(min-width:1100px){.bf-menu{display:none}}

/* ── Hero slider — appearance locked (verbatim from index.min.css v15) ── */
.hero-slider{font-family:'Google Sans',sans-serif;font-weight:400;line-height:1.5;-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}
.hero-slider{
  position:relative;width:100%;
  aspect-ratio:16/9;min-height:500px;
  overflow:hidden;background-color:#000;
  display:block;contain:layout size
}
.slide{
  position:absolute;top:0;left:0;
  width:100%;height:100%;
  opacity:0;transform:translateX(100%);
  transition:transform .8s ease-in-out,opacity .8s ease-in-out;
  background-size:cover;background-position:center;
  display:flex;align-items:center;justify-content:center;
  will-change:transform,opacity;
  backface-visibility:hidden;-webkit-backface-visibility:hidden;
  contain:layout size
}
.slide.active{opacity:1;transform:translateX(0);z-index:2}
.slide.prev{opacity:1;transform:translateX(-100%);z-index:1}
.slide.next{opacity:1;transform:translateX(100%);z-index:1}
.slide-overlay{
  position:absolute;top:0;left:0;width:100%;height:100%;
  background:linear-gradient(to bottom,rgba(0,0,0,.25) 0%,rgba(0,0,0,.55) 100%)
}
.slide-content{
  position:relative;z-index:10;
  text-align:center;max-width:820px;
  padding:0 3rem;margin:0 auto
}
.slide-title,.slide-description{
  opacity:0;transform:translateY(22px);
  transition:opacity .7s ease-out,transform .7s ease-out
}
.slide.active .slide-title{opacity:1;transform:translateY(0);transition-delay:.3s}
.slide.active .slide-description{opacity:1;transform:translateY(0);transition-delay:.5s}
.slide-title{
  color:#fff;font-size:2.6rem;font-weight:700;
  margin-bottom:1rem;line-height:1.15;
  text-shadow:0 2px 12px rgba(0,0,0,.3)
}
.slide-description{
  color:rgba(255,255,255,.92);
  font-size:1.15rem;margin-bottom:1.75rem;
  text-shadow:0 1px 6px rgba(0,0,0,.3)
}
.slider-nav{
  position:absolute;bottom:24px;left:50%;transform:translateX(-50%);
  display:flex;gap:8px;z-index:20
}
.slider-dot{
  width:10px;height:10px;border-radius:50%;
  background:rgba(255,255,255,.5);cursor:pointer;
  transition:all .3s ease
}
.slider-dot.active{background:#fff;transform:scale(1.25);width:24px;border-radius:5px}
.slider-arrows{
  position:absolute;width:100%;top:50%;transform:translateY(-50%);
  z-index:20;display:flex;justify-content:space-between;
  padding:0 20px;pointer-events:none
}
.slider-arrow{
  width:44px;height:44px;
  background:rgba(255,255,255,.18);
  backdrop-filter:blur(4px);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;
  transition:all .3s ease;
  pointer-events:auto;
  border:1px solid rgba(255,255,255,.25)
}
.slider-arrow:hover{background:rgba(255,255,255,.35)}
@media(max-width:768px){
  .hero-slider{height:70vh;min-height:400px;aspect-ratio:auto}
  .slide-title{font-size:2rem;padding:1.5rem 0 0}
  .slide-description{font-size:1.05rem;padding:0 2rem}
  .slider-arrow{width:36px;height:36px}
  .slider-arrows{padding:0 12px}
}
@media(max-width:480px){
  .hero-slider{height:70vh;min-height:350px;aspect-ratio:auto}
  .slide-title{font-size:1.5rem;padding:1.5rem 0 0}
  .slide-description{font-size:.9rem;padding:0 1.5rem}
}
/* Dark-mode hero accents (as before, now theme-driven) */
[data-theme="dark"] .slider-dot{background:rgba(196,181,165,.3)}
[data-theme="dark"] .slider-dot.active{background:#C4B5A5}
[data-theme="dark"] .slider-arrow{background:rgba(196,181,165,.18);border-color:rgba(255,255,255,.15)}
[data-theme="dark"] .slider-arrow:hover{background:rgba(196,181,165,.35)}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .slider-dot{background:rgba(196,181,165,.3)}
  :root:not([data-theme="light"]) .slider-dot.active{background:#C4B5A5}
  :root:not([data-theme="light"]) .slider-arrow{background:rgba(196,181,165,.18);border-color:rgba(255,255,255,.15)}
  :root:not([data-theme="light"]) .slider-arrow:hover{background:rgba(196,181,165,.35)}
}
.slider-arrow:focus-visible,.slider-dot:focus-visible{outline:2px solid #fff;outline-offset:3px}
/* Bigger invisible hit area for the 10px dots (look unchanged) */
.slider-dot{position:relative}
.slider-dot::before{content:"";position:absolute;inset:-9px -4px}

/* ── Sections ───────────────────────────────────────────────────── */
.bf-section{position:relative;padding-block:clamp(4.5rem,9vw,7.5rem);background:var(--bg)}
.bf-section--alt{background:var(--bg-alt)}
.bf-section--sand{background:var(--bg-sand)}
.bf-section--band{background:var(--band-bg);color:var(--band-ink)}
.bf-section--band .bf-title{color:var(--band-ink)}
.bf-section--band .bf-eyebrow{color:var(--beige-300)}
.bf-section--band .bf-eyebrow__num{color:var(--band-ink)}
.bf-section--band .bf-lede{color:var(--band-muted)}
.bf-section--band{border-block:1px solid var(--band-border)}
.bf-section + .bf-section:not(.bf-section--alt):not(.bf-section--band):not(.bf-section--sand):not(.bf-section--ink){border-top:1px solid var(--line)}

/* Graphite "dark island": re-scopes the tokens, so every component inside adapts
   (cards, hours strip, buttons) — beige becomes the highlight colour here. Same in both themes. */
.bf-section--ink{
  --bg:#1E1D1B;--bg-alt:#24231F;--bg-sand:#2E2C29;--surface:#272623;--surface-2:#302E2B;
  --ink:#F5F3EF;--ink-2:#E4E0DA;--muted:#BDB7AE;--faint:#A29B92;--line:#3A3834;--line-strong:#55514B;
  --accent:#D8C8B1;--accent-soft:#3D3832;
  --btn-bg:#E8DECF;--btn-fg:#141312;--btn-hover:#FFFFFF;
  --icon-filter:invert(1) brightness(1.6);--star:#E8DECF;--star-off:#4A4640;
  --shadow-2:0 18px 40px -16px rgba(0,0,0,.6);
  background:var(--bg);color:var(--ink);color-scheme:dark;
  border-block:1px solid #2C2A27
}

/* ── Facts strip ────────────────────────────────────────────────── */
.bf-facts{background:var(--band-bg);color:var(--band-ink);padding-block:1rem}
.bf-facts__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin-block:0;list-style:none}
.bf-fact{min-width:0}
.bf-fact > a{
  display:flex;align-items:center;gap:.85rem;height:100%;min-width:0;
  padding:.85rem 1rem;border-radius:var(--radius);
  background:var(--band-bg-2);border:1px solid var(--band-line);text-decoration:none;color:var(--band-ink);
  transition:border-color var(--dur) var(--ease),background-color var(--dur) var(--ease),transform var(--dur) var(--ease)
}
.bf-fact > a:hover{border-color:var(--beige-400);transform:translateY(-2px)}
.bf-fact__icon{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--beige-300);color:var(--black)}
.bf-fact__icon svg{width:18px;height:18px}
.bf-fact__text{display:block;min-width:0}
.bf-fact__label{display:block;font-size:.64rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--band-muted)}
.bf-fact__value{display:flex;align-items:center;gap:.5rem;margin-top:.1rem;font-size:.95rem;font-weight:700;line-height:1.3;color:var(--band-ink)}
.bf-status{flex:none;display:inline-block;width:8px;height:8px;margin-right:8px;border-radius:50%;background:var(--band-muted)}
.bf-status--open{background:#5DBB7E;box-shadow:0 0 0 3px rgba(93,187,126,.25)}
@media(max-width:599px){
  .bf-fact > a{gap:.6rem;padding:.75rem .8rem;align-items:flex-start}
  .bf-fact__icon{width:32px;height:32px}
  .bf-fact__icon svg{width:15px;height:15px}
  .bf-fact__label{font-size:.58rem;letter-spacing:.1em}
  .bf-fact__value{font-size:.84rem;align-items:flex-start}
  .bf-status{margin-top:5px}
}
@media(min-width:900px){
  .bf-facts__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem}
}

/* ── About ──────────────────────────────────────────────────────── */
.bf-about{display:grid;gap:2.5rem}
.bf-about__text{font-size:1.1rem;line-height:1.75;color:var(--muted)}
.bf-about__text h2{
  margin:0 0 1.5rem;color:var(--ink)!important;
  font-family:var(--font-serif);font-weight:700;font-size:clamp(1.85rem,1.2rem + 2.3vw,3rem);line-height:1.12;letter-spacing:-.01em
}
.bf-about__text h2 strong{font-weight:700}
.bf-about__text h2 span{color:var(--accent)!important}
.bf-about__text p{margin:0 0 1rem;color:var(--muted)!important;font-size:inherit;line-height:inherit}
.bf-about__text strong{color:var(--ink);font-weight:600}
.bf-about__text em{font-style:normal;font-weight:700;color:var(--ink)}
.bf-about__actions{display:flex;flex-wrap:wrap;gap:1.25rem 2rem;align-items:center;margin-top:2rem}
.bf-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;border-top:1px solid var(--line)}
.bf-stat{padding:1.25rem 0;border-bottom:1px solid var(--line)}
.bf-stat:nth-child(odd){padding-right:1rem;border-right:1px solid var(--line)}
.bf-stat:nth-child(even){padding-left:1.25rem}
.bf-stat dt{font-size:.68rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);order:2}
.bf-stat dd{margin:0 0 .25rem;font-family:var(--font-serif);font-weight:700;font-size:clamp(1.9rem,1.4rem + 1.6vw,2.6rem);line-height:1;color:var(--ink)}
.bf-stat{display:flex;flex-direction:column}
.bf-stat dd{order:1}
@media(min-width:900px){
  .bf-about{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:5rem;align-items:start}
  .bf-about__aside{position:sticky;top:calc(var(--nav-h) + 2rem)}
}

/* ── Services ───────────────────────────────────────────────────── */
.bf-services{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;counter-reset:svc}
.bf-service{
  counter-increment:svc;position:relative;
  display:grid;grid-template-columns:auto 1fr;gap:.25rem 1.25rem;align-content:start;
  padding:clamp(1.5rem,3vw,2.5rem);background:var(--surface);
  transition:background-color var(--dur) var(--ease)
}
.bf-service::before{
  content:counter(svc,decimal-leading-zero);
  position:absolute;top:clamp(1.5rem,3vw,2.5rem);right:clamp(1.5rem,3vw,2.5rem);
  font-weight:700;font-size:.85rem;color:var(--faint)
}
.bf-service:hover{background:var(--surface-2)}
.bf-service__icon{grid-row:span 2;width:52px;height:52px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease)}
.bf-service__icon img{width:28px;height:28px;object-fit:contain;opacity:.75;filter:var(--icon-filter)}
.bf-service:hover .bf-service__icon{border-color:var(--ink);transform:rotate(-8deg)}
.bf-service__title{margin:.2rem 2.5rem .5rem 0;font-family:var(--font-serif);font-weight:700;font-size:1.4rem;line-height:1.2;color:var(--ink)}
.bf-service__text{margin:0;color:var(--muted);font-size:.97rem;line-height:1.7}
@media(min-width:760px){.bf-services{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ── Team ───────────────────────────────────────────────────────── */
.bf-team{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,255px),1fr))}
/* Tablet: kaarten niet breder dan 300px, gecentreerd */
@media(min-width:600px) and (max-width:899px){.bf-team{grid-template-columns:repeat(auto-fit,minmax(240px,300px));justify-content:center}}
.bf-barber{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
.bf-barber:hover{border-color:var(--line-strong);box-shadow:var(--shadow-2)}
.bf-barber__photo{position:relative;margin:0;aspect-ratio:4/5;overflow:hidden;background:var(--bg-sand)}
.bf-barber__photo img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;filter:grayscale(.2) contrast(1.02);transition:transform .8s var(--ease),filter .6s var(--ease)}
.bf-barber:hover .bf-barber__photo img{transform:scale(1.04);filter:none}
@media(max-width:599px){.bf-barber__photo{aspect-ratio:1/1}}
.bf-barber__body{padding:1.35rem 1.35rem 1.5rem;display:flex;flex-direction:column;gap:1rem;flex:1}
.bf-barber__name{margin:0;font-family:var(--font-serif);font-weight:700;font-size:1.5rem;line-height:1.15;color:var(--ink)}
.bf-barber__role{margin:.3rem 0 0;font-size:.7rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
/* Desktop: compacte horizontale profielkaarten (foto links, rooster rechts), max. 2 per rij en gecentreerd,
   zodat foto's bij 1 of 2 barbers niet meegroeien met de paginabreedte */
@media(min-width:900px){
  .bf-team{display:flex;flex-wrap:wrap;justify-content:center;gap:1.25rem}
  .bf-barber{flex:0 1 540px;flex-direction:row}
  .bf-barber__photo{flex:0 0 190px;aspect-ratio:auto;min-height:240px}
  .bf-barber__photo img{position:absolute;inset:0}
  .bf-barber__body{padding:1.25rem 1.35rem;gap:.85rem;min-width:0}
  .bf-barber__name{font-size:1.35rem}
}
.bf-hours-mini{margin-top:auto;padding-top:.9rem;border-top:1px solid var(--line)}
.bf-hours-mini__title{margin:0 0 .55rem;font-size:.62rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}
/* Compact week strip: one column per day */
.bf-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;margin:0;padding:0;list-style:none}
.bf-week li{
  display:flex;flex-direction:column;align-items:center;gap:1px;min-width:0;
  padding:.4rem 0 .45rem;border-radius:var(--radius-sm);
  background:var(--surface-2);border:1px solid var(--line);
  font-variant-numeric:tabular-nums;line-height:1.15
}
.bf-week__day{font-size:.68rem;font-weight:700;color:var(--ink);margin-bottom:.15rem}
.bf-week__time{font-size:.6rem;font-weight:600;color:var(--muted);letter-spacing:-.01em}
.bf-week__off{font-size:.6rem;font-weight:600;color:var(--faint);margin-top:.3rem}
.bf-week li.is-off{background:transparent;border-style:dashed}
.bf-week li.is-today{background:var(--btn-bg);border-color:var(--btn-bg)}
.bf-week li.is-today .bf-week__day,.bf-week li.is-today .bf-week__time,.bf-week li.is-today .bf-week__off{color:var(--btn-fg)}


/* ── Pricing ────────────────────────────────────────────────────── */
.bf-tabs{display:flex;gap:.25rem;padding:.3rem;margin:0 auto 2.5rem;width:max-content;max-width:100%;overflow-x:auto;scrollbar-width:none;background:var(--surface);border:1px solid var(--line);border-radius:999px}
.bf-tabs::-webkit-scrollbar{display:none}
.bf-tab{
  flex:none;min-height:42px;padding:.55rem 1.3rem;border:0;border-radius:999px;
  background:transparent;color:var(--muted);
  font:600 .88rem/1 var(--font-sans);letter-spacing:.02em;cursor:pointer;
  transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease)
}
.bf-tab:hover{color:var(--ink)}
.bf-tab[aria-selected="true"]{background:var(--btn-bg);color:var(--btn-fg)}
.bf-pricepanel[hidden]{display:none}
.bf-pricepanel{animation:bfFade .45s var(--ease)}
@keyframes bfFade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.bf-pricegroup{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:.5rem clamp(1.25rem,3vw,2.25rem) 1rem}
.bf-pricegroup + .bf-pricegroup{margin-top:1.5rem}
.bf-pricegroup__title{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin:0;padding:1.25rem 0 .75rem;border-bottom:1px solid var(--ink);font-size:.72rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--ink)}
.bf-pricegroup__title small{font-size:.78rem;font-weight:400;letter-spacing:0;text-transform:none;color:var(--faint)}
.bf-prices{list-style:none;margin:0;padding:0}
.bf-price{display:flex;align-items:center;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line)}
.bf-price:last-child{border-bottom:0}
.bf-price__icon{flex:none;width:28px;height:28px;object-fit:contain;opacity:.45;filter:var(--icon-filter)}
.bf-price__main{flex:1;min-width:0;display:flex;align-items:baseline;gap:.75rem}
.bf-price__name{font-weight:600;color:var(--ink);font-size:1rem}
.bf-price__dur{display:block;font-size:.8rem;color:var(--faint);margin-top:.1rem}
.bf-price__dots{flex:1;min-width:1.5rem;border-bottom:1px dotted var(--line-strong);transform:translateY(-4px)}
.bf-price__amount{flex:none;font-family:var(--font-serif);font-weight:700;font-size:1.15rem;color:var(--ink);font-variant-numeric:tabular-nums}
.bf-price:hover .bf-price__name{color:var(--accent)}
.bf-prices__cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-top:2rem;padding:1.25rem 1.5rem;border:1px dashed var(--line-strong);border-radius:var(--radius);color:var(--muted);font-size:.95rem}
@media(max-width:520px){.bf-price__dots{display:none}.bf-price__main{display:block}}

/* ── Portfolio ──────────────────────────────────────────────────── */
.bf-gallery-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1.5rem;margin-bottom:2.5rem}
.bf-gallery-controls{display:flex;gap:.5rem}
.bf-round-btn{
  display:grid;place-items:center;width:48px;height:48px;border-radius:50%;
  background:transparent;color:var(--band-ink);border:1px solid var(--band-line);cursor:pointer;
  transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease),opacity var(--dur)
}
.bf-round-btn:hover:not(:disabled){background:var(--band-ink);color:var(--band-bg);border-color:var(--band-ink)}
.bf-round-btn:disabled{opacity:.35;cursor:default}
.bf-round-btn svg{width:20px;height:20px}
.bf-gallery{
  display:grid;grid-auto-flow:column;grid-auto-columns:clamp(230px,27vw,360px);gap:1rem;
  overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-behavior:smooth;
  padding-inline:max(var(--gutter),calc((100vw - 1240px)/2 + var(--gutter)));
  scroll-padding-inline:max(var(--gutter),calc((100vw - 1240px)/2 + var(--gutter)));
  padding-bottom:1.25rem;margin:0;list-style:none;
  scrollbar-width:none;cursor:grab
}
.bf-gallery::-webkit-scrollbar{display:none}
.bf-gallery.is-dragging{cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto}
.bf-gallery.is-dragging .bf-shot{pointer-events:none}
.bf-gallery li{scroll-snap-align:start}
.bf-shot{
  position:relative;display:block;width:100%;padding:0;margin:0;border:0;cursor:zoom-in;
  aspect-ratio:4/5;overflow:hidden;border-radius:var(--radius);background:var(--band-bg-2);color:#fff;text-align:left
}
.bf-shot img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .9s var(--ease),filter .6s var(--ease);filter:saturate(.9)}
.bf-shot:hover img,.bf-shot:focus-visible img{transform:scale(1.05);filter:none}
.bf-shot__cap{position:absolute;inset:auto 0 0 0;padding:2.5rem 1.1rem 1rem;background:linear-gradient(to top,rgba(0,0,0,.78),transparent);transform:translateY(6px);opacity:.92;transition:transform var(--dur) var(--ease),opacity var(--dur)}
.bf-shot:hover .bf-shot__cap{transform:none;opacity:1}
.bf-shot__title{display:block;font-weight:700;font-size:1.05rem;line-height:1.25}
.bf-shot__desc{display:block;margin-top:.2rem;font-size:.78rem;opacity:.8}
.bf-shot__zoom{position:absolute;top:.8rem;right:.8rem;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.14);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transform:scale(.8);transition:opacity var(--dur),transform var(--dur) var(--ease)}
.bf-shot__zoom svg{width:16px;height:16px}
.bf-shot:hover .bf-shot__zoom,.bf-shot:focus-visible .bf-shot__zoom{opacity:1;transform:none}
.bf-gallery-track{height:2px;margin-top:1rem;background:var(--band-line);position:relative;overflow:hidden}
.bf-gallery-track span{position:absolute;inset:0 auto 0 0;width:20%;background:var(--beige-300);transition:transform .15s linear;will-change:transform}
.bf-gallery-hint{margin:1rem 0 0;font-size:.8rem;color:var(--band-muted)}

/* ── Reviews ────────────────────────────────────────────────────── */
.bf-reviews{display:grid;grid-template-columns:minmax(0,1fr);gap:2rem}
@media(min-width:1000px){
  .bf-reviews{grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:3rem;align-items:start}
  .bf-reviews__aside{position:sticky;top:calc(var(--nav-h) + 2rem)}
}
.bf-score{padding:2rem;background:var(--surface);border-radius:var(--radius-lg)!important;border:1px solid var(--line);border-radius:var(--radius)}
.bf-score__brand{display:flex;align-items:center;gap:.6rem;font-size:.72rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.bf-score__brand svg{width:20px;height:20px}
.bf-score__value{display:flex;align-items:flex-end;gap:.75rem;margin:1.25rem 0 .5rem}
.bf-score__num{font-family:var(--font-serif);font-weight:700;font-size:4.25rem;line-height:.85;color:var(--ink)}
.bf-score__max{font-size:.9rem;color:var(--faint);padding-bottom:.35rem}
.bf-score__count{margin:.6rem 0 1.5rem;color:var(--muted);font-size:.92rem}
.bf-score__updated{display:block;margin-top:1rem;font-size:.72rem;color:var(--faint)}
.bf-stars{position:relative;display:inline-block;line-height:1;letter-spacing:2px;color:var(--star-off);font-size:var(--s,18px);white-space:nowrap}
.bf-stars__fill{position:absolute;inset:0 auto 0 0;overflow:hidden;color:var(--star)}
.bf-topics{margin-top:1.5rem}
.bf-topics__title{margin:0 0 .8rem;font-size:.68rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}
.bf-chips{display:flex;flex-wrap:wrap;gap:.45rem;margin:0;padding:0;list-style:none}
.bf-chip{display:inline-flex;align-items:center;gap:.45rem;padding:.38rem .45rem .38rem .8rem;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-size:.82rem;color:var(--ink);text-transform:lowercase}
.bf-chip b{display:grid;place-items:center;min-width:1.45rem;height:1.45rem;padding:0 .35rem;border-radius:999px;background:var(--bg-sand);font-size:.7rem;font-weight:700;color:var(--ink)}
.bf-review-list{display:grid;gap:1.25rem}
@media(min-width:700px){.bf-review-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
.bf-review{display:flex;flex-direction:column;gap:1rem;margin:0;padding:1.75rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease)}
.bf-review:hover{border-color:var(--line-strong);transform:translateY(-2px)}
.bf-review__top{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.bf-review__quote{margin:0;position:relative;padding-left:1.6rem;color:var(--ink-2);font-size:.98rem;line-height:1.7}
.bf-review__quote::before{content:"\201C";position:absolute;left:-.1rem;top:-.35rem;font-family:var(--font-serif);font-size:2.6rem;line-height:1;color:var(--accent-soft)}
.bf-review__who{display:flex;align-items:center;gap:.8rem;margin-top:auto;padding-top:1rem;border-top:1px solid var(--line)}
.bf-review__avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;background:var(--bg-sand)}
.bf-review__name{display:block;font-style:normal;font-weight:600;color:var(--ink);text-transform:capitalize;font-size:.92rem}
.bf-review__date{display:block;font-size:.78rem;color:var(--faint)}
.bf-review__src{margin-left:auto;font-size:.78rem;font-weight:600;color:var(--muted);text-decoration:none;white-space:nowrap}
.bf-review__src:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.bf-review__imgs{display:flex;flex-wrap:wrap;gap:.5rem}
.bf-review__thumb{width:64px;height:64px;padding:0;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;cursor:zoom-in;background:var(--bg-sand)}
.bf-review__thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s var(--ease)}
.bf-review__thumb:hover img{transform:scale(1.08)}
.bf-review__rating{font-size:.78rem;color:var(--faint);margin-left:.5rem;vertical-align:2px}
.bf-empty{padding:2rem;border:1px dashed var(--line-strong);border-radius:var(--radius);color:var(--muted);text-align:center}

/* ── Products ───────────────────────────────────────────────────── */
.bf-products{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,190px),1fr))}
@media(max-width:480px){.bf-products{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}}
.bf-product{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
.bf-product:hover{border-color:var(--line-strong);box-shadow:var(--shadow-2)}
.bf-product__img{position:relative;aspect-ratio:1;margin:0;background:var(--bg-sand);overflow:hidden}
.bf-product__img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s var(--ease)}
.bf-product:hover .bf-product__img img{transform:scale(1.05)}
.bf-product__ph{display:grid;place-items:center;width:100%;height:100%;color:var(--faint)}
.bf-product__ph svg{width:40px;height:40px;opacity:.4}
.bf-badge{position:absolute;top:.6rem;left:.6rem;display:inline-flex;align-items:center;gap:.3rem;padding:.32rem .65rem;border-radius:999px;font-size:.62rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;background:var(--badge-bg);color:var(--badge-fg);border:1px solid var(--badge-bd)}
.bf-badge.bf-badge--sale{background:var(--badge-sale-bg);color:var(--badge-sale-fg);border-color:transparent}
.bf-product__body{padding:1rem 1.1rem 1.2rem;display:flex;flex-direction:column;gap:.3rem;flex:1}
.bf-product__cat{font-size:.64rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
.bf-product__name{margin:0;font-weight:600;font-size:.95rem;line-height:1.35;color:var(--ink)}
.bf-product__price{margin-top:auto;padding-top:.5rem;display:flex;align-items:baseline;gap:.5rem;font-family:var(--font-serif);font-weight:700;font-size:1.2rem;color:var(--ink)}
.bf-product__price s{font-family:var(--font-sans);font-size:.85rem;color:var(--faint)}

/* ── Visit ──────────────────────────────────────────────────────── */
.bf-visit{display:grid;grid-template-columns:minmax(0,1fr);gap:1.5rem}
@media(min-width:1000px){.bf-visit{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:0;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}}
.bf-visit__info{padding:clamp(1.5rem,4vw,3rem);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
@media(min-width:1000px){.bf-visit__info{border:0;border-radius:0;border-right:1px solid var(--line)}}
.bf-visit__title{margin:0 0 .75rem;font-family:var(--font-serif);font-weight:700;font-size:1.6rem;line-height:1.2;color:var(--ink)}
.bf-visit__intro{margin:0 0 2rem;color:var(--muted);line-height:1.75}
.bf-contact{list-style:none;margin:0 0 2rem;padding:0;display:grid;gap:1rem}
.bf-contact li{display:flex;gap:1rem;align-items:flex-start}
.bf-contact__icon{flex:none;display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;color:var(--ink)}
.bf-contact__icon svg{width:18px;height:18px}
.bf-contact__label{display:block;font-size:.66rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:.1rem}
.bf-contact a{text-decoration:none;color:var(--ink);font-weight:600}
.bf-contact a:hover{text-decoration:underline;text-underline-offset:3px}
.bf-contact span{color:var(--ink)}
.bf-hours{margin:0 0 2rem}
.bf-hours__title{margin:0 0 .75rem;display:flex;justify-content:space-between;align-items:baseline;gap:1rem;font-size:.72rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);padding-bottom:.6rem;border-bottom:1px solid var(--ink)}
.bf-hours__title small{font-size:.8rem;font-weight:500;letter-spacing:0;text-transform:none;color:var(--muted)}
.bf-hours table{width:100%;border-collapse:collapse;font-size:.92rem}
.bf-hours th,.bf-hours td{padding:.55rem 0;border-bottom:1px solid var(--line);text-align:left;font-weight:400;color:var(--muted)}
.bf-hours td{text-align:right;font-variant-numeric:tabular-nums;color:var(--ink)}
.bf-hours tr.is-today th,.bf-hours tr.is-today td{color:var(--ink);font-weight:700}
.bf-hours tr.is-today th::after{content:"vandaag";margin-left:.6rem;padding:.15rem .55rem;border-radius:999px;background:var(--bg-sand);font-size:.62rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);vertical-align:1px}
.bf-hours tr.is-closed td{color:var(--faint)}
.bf-visit__ctas{display:grid;gap:.75rem}
@media(min-width:520px){.bf-visit__ctas{grid-template-columns:1fr 1fr}}
.bf-visit__map{position:relative;display:flex;flex-direction:column;min-height:440px;background:var(--bg-sand);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
@media(min-width:1000px){.bf-visit__map{border:0;border-radius:0}}
.bf-visit__map iframe{flex:1;width:100%;min-height:400px;border:0;display:block}
.bf-visit__map iframe{filter:var(--map-filter)}
.bf-visit__note{margin:0;padding:1rem 1.25rem;background:var(--note-bg);color:var(--note-fg);text-align:center;font-size:.9rem}

.bf-visit__note strong{font-weight:700}

/* ── Footer: styles live in plugin/footer.php (shared by all pages) ── */

/* ── Floating booking button ────────────────────────────────────── */
/* Dark pill + beige halo in light mode, beige pill + dark halo in dark mode.
   Selectors use .bf-home so they beat the generic `.bf-home a` colour rule. */
.bf-home .bf-float{
  --f-bg:#141210;--f-fg:#FBF7F1;--f-sub:#CDBFAC;--f-ic-bg:linear-gradient(135deg,#E6D6BF,#C7AF8E);--f-ic-fg:#141210;
  --f-ring:rgba(199,175,142,.45);--f-hover:#2A2420;
  position:fixed;right:clamp(1rem,3vw,2rem);bottom:clamp(1rem,3vw,2rem);z-index:48;
  display:flex;align-items:center;gap:.8rem;
  padding:.45rem .55rem .45rem .45rem;border-radius:999px;
  background:var(--f-bg);color:var(--f-fg);text-decoration:none;
  font-family:var(--font-sans);
  box-shadow:0 0 0 4px var(--f-ring),0 18px 40px -12px rgba(0,0,0,.55);
  opacity:0;visibility:hidden;transform:translateY(20px) scale(.96);
  transition:opacity .4s var(--ease),transform .4s var(--ease),visibility 0s linear .4s,background-color var(--dur),box-shadow var(--dur)
}
[data-theme="dark"] .bf-home .bf-float,[data-theme="dark"] .bf-float.bf-float{
  --f-bg:#EADFCF;--f-fg:#141210;--f-sub:#5A4D3E;--f-ic-bg:#141210;--f-ic-fg:#EADFCF;
  --f-ring:rgba(234,223,207,.18);--f-hover:#FFFFFF
}
.bf-home .bf-float.is-visible{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.bf-home .bf-float:hover{background:var(--f-hover);box-shadow:0 0 0 6px var(--f-ring),0 22px 44px -12px rgba(0,0,0,.6)}
.bf-float__icon{
  position:relative;flex:none;display:grid;place-items:center;
  width:44px;height:44px;border-radius:50%;
  background:var(--f-ic-bg);color:var(--f-ic-fg)
}
.bf-float__icon svg{display:block;width:20px;height:20px;flex:none}
.bf-float__icon::after{
  content:"";position:absolute;inset:0;border-radius:50%;
  box-shadow:0 0 0 0 var(--f-ring);animation:bfPing 2.6s var(--ease) infinite
}
@keyframes bfPing{0%{box-shadow:0 0 0 0 var(--f-ring)}70%,100%{box-shadow:0 0 0 12px transparent}}
.bf-float__text{display:flex;flex-direction:column;line-height:1.15;padding-right:.2rem;white-space:nowrap}
.bf-float__title{font-size:.95rem;font-weight:700;color:var(--f-fg)}
.bf-float__sub{font-size:.72rem;font-weight:600;color:var(--f-sub)}
.bf-float__arrow{
  flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;
  border:1px solid currentColor;opacity:.55;transition:transform var(--dur) var(--ease),opacity var(--dur)
}
.bf-float__arrow svg{display:block;width:16px;height:16px}
.bf-home .bf-float:hover .bf-float__arrow{transform:translateX(3px);opacity:1}
@media(max-width:600px){
  .bf-home .bf-float{left:50%;right:auto;transform:translate(-50%,20px) scale(.96)}
  .bf-home .bf-float.is-visible{transform:translate(-50%,0)}
}
.no-js .bf-home .bf-float{opacity:1;visibility:visible;transform:none}
/* Never cover the open mobile menu or lightbox */
body.bf-home.bf-lock .bf-float.is-visible{opacity:0;visibility:hidden;pointer-events:none}

/* ── Lightbox ───────────────────────────────────────────────────── */
.bf-lightbox{
  position:fixed;inset:0;z-index:9999;display:grid;grid-template-rows:auto 1fr auto;
  background:rgba(8,8,8,.94);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#F4EEE6;
  opacity:0;visibility:hidden;transition:opacity .35s var(--ease),visibility 0s linear .35s
}
.bf-lightbox.is-open{opacity:1;visibility:visible;transition-delay:0s}
.bf-lightbox__bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem var(--gutter)}
.bf-lightbox__count{font-size:.78rem;letter-spacing:.16em;color:#B9AFA3;font-variant-numeric:tabular-nums}
.bf-lightbox__stage{position:relative;display:grid;place-items:center;min-height:0;padding:0 clamp(3.5rem,8vw,6rem)}
.bf-lightbox__img{max-width:100%;max-height:calc(100vh - 190px);object-fit:contain;border-radius:var(--radius);box-shadow:0 30px 80px -30px rgba(0,0,0,.8);transition:opacity .25s var(--ease),transform .35s var(--ease)}
.bf-lightbox.is-loading .bf-lightbox__img{opacity:0;transform:scale(.98)}
.bf-lightbox__cap{min-height:4.5rem;padding:1rem var(--gutter) 1.5rem;text-align:center}
.bf-lightbox__title{margin:0;font-weight:700;font-size:1.2rem}
.bf-lightbox__desc{margin:.25rem 0 0;font-size:.88rem;color:#B9AFA3}
.bf-lightbox .bf-round-btn{--band-ink:#F4EEE6;--band-bg:#0B0B0B;--band-line:rgba(255,255,255,.22);background:rgba(0,0,0,.35)}
.bf-lightbox__prev,.bf-lightbox__next{position:absolute;top:50%;transform:translateY(-50%)}
.bf-lightbox__prev{left:clamp(.5rem,2vw,1.5rem)}
.bf-lightbox__next{right:clamp(.5rem,2vw,1.5rem)}
.bf-lightbox.is-single .bf-lightbox__prev,.bf-lightbox.is-single .bf-lightbox__next,.bf-lightbox.is-single .bf-lightbox__count{visibility:hidden}
@media(max-width:600px){.bf-lightbox__stage{padding:0 .75rem}.bf-lightbox__prev,.bf-lightbox__next{top:auto;bottom:-3.75rem;transform:none}}

/* ── Motion preferences ─────────────────────────────────────────── */
@media (prefers-reduced-motion:reduce){
  .bf-home *,.bf-home *::before,.bf-home *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}
  .js [data-reveal]{opacity:1;transform:none;transition:none}
  .bf-gallery{scroll-behavior:auto}
}
