/* Shared visual system, based on the approved mobile direction. */
:root, :root[data-theme] body.service-site.service-refresh {
  --bg:#f6f5f1; --bg-deep:#eeeee7; --surface:#fff; --surface-2:#f1f1eb; --surface-3:#e8e9e1;
  --text:#242522; --text-dim:#50544e; --text-muted:#62675f; --muted:#62675f;
  --border:#dedfd6; --border-strong:#bdc2b7; --accent:#ef702d; --accent-ink:#b34410;
  --accent-soft:#fff0e4; --accent-tint:#fff0e4; --glass-surface:var(--surface);
  --glass-border:var(--border); --header-bg:var(--bg); --footer-bg:var(--bg);
  --shadow:0 7px 25px #33331005; --shadow-lg:0 18px 48px #1d261914;
  --refresh-radius:20px; --refresh-dock-height:76px;
}
:root[data-theme=dark] body.service-site.service-refresh:not(.home-page):not(.auth-scene),
:root[data-theme=dark] body.service-site.service-refresh {
  --bg:#16191a; --bg-deep:#121516; --surface:#202425; --surface-2:#2a3031; --surface-3:#343b3c;
  --text:#f0f1ec; --text-dim:#c9cfca; --text-muted:#aab4ae; --muted:#aab4ae;
  --border:#3b4442; --border-strong:#64716b; --accent-ink:#ffac78; --accent-soft:#392b21;
  --accent-tint:#392b21; --shadow:0 7px 25px #00000010; --shadow-lg:0 18px 48px #0005;
}
html[data-theme] body.service-site, html[data-theme] body.service-site:not(.auth-scene) {
  background:var(--bg); color:var(--text); font-family:Inter,system-ui,sans-serif;
}
html[data-theme] body.service-site::before, html[data-theme] body.service-site::after,
:root[data-theme] body.service-site.service-refresh .ambient { display:none; }
:root[data-theme] body.service-site.service-refresh :is(.header,.footer,.site-footer) { background:var(--bg); color:var(--text); border-color:var(--border); box-shadow:none; }
:root[data-theme] body.service-site.service-refresh :is(.panel,.bookpanel,.bcard,.banquet-card,.booking-result__card,.guest-empty,.side,.auth-card,.auth-panel,.vp-panel,.vp-review,.refresh-profile,.refresh-menu,.vc) {
  background:var(--surface); color:var(--text); border:1px solid var(--border); border-radius:var(--refresh-radius); box-shadow:var(--shadow); backdrop-filter:none;
}
:root[data-theme] body.service-site.service-refresh :is(h1,h2,h3,h4,.vc__title,.vp-title) {color:var(--text); text-shadow:none; overflow-wrap:anywhere;}
:root[data-theme] body.service-site.service-refresh :is(.muted,.lead,.vc__meta,.vc__cuisine,.field__hint,.bookpanel__hint) {color:var(--text-muted);}
:root[data-theme] body.service-site.service-refresh :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea,.vp-control,.vp-stepper) {
  background:var(--surface); color:var(--text); border-color:var(--border-strong); border-radius:12px; min-width:0; max-width:100%;
}
:root[data-theme] body.service-site.service-refresh :is(input,textarea)::placeholder { color:var(--text-muted); opacity:1; }
:root[data-theme] body.service-site.service-refresh :is(.btn,.vp-btn) { min-height:44px; border-radius:12px; font-weight:600; white-space:normal; text-align:center; }
:root[data-theme] body.service-site.service-refresh :is(.btn--primary,.vp-btn--primary) { background:linear-gradient(110deg,#c45118,#ac3913); color:#fff; border:1px solid #be4819; box-shadow:none; }
:root[data-theme] body.service-site.service-refresh :is(.btn--ghost,.btn--quiet,.vp-btn--ghost) { background:var(--surface); color:var(--text); border:1px solid var(--border); box-shadow:none; }
:root[data-theme] body.service-site.service-refresh :is(.side__link,.hx-pill,.hx-search,.hx-menu) { color:var(--text); border-color:var(--border); }
:root[data-theme] body.service-site.service-refresh :is(.side__link.is-active,.side__link:hover) {background:var(--accent-soft);color:var(--accent-ink);}
:root[data-theme] body.service-site.service-refresh :is(.vc__fav,.vp-icon-btn,.vp-stepper button,.vp-cal button,.vp-time,summary) { min-height:44px; }
:root[data-theme] body.service-site.service-refresh :is(.vc__fav,.vp-icon-btn,.vp-stepper button) {min-width:44px;}
:root[data-theme] body.service-site.service-refresh :is(button,a,input,select,textarea,summary):focus-visible {outline:3px solid var(--accent-ink);outline-offset:3px;}
:root[data-theme] body.service-site.service-refresh .container {max-width:1240px;}
:root[data-theme] body.service-site.service-refresh .layout {grid-template-columns:224px minmax(0,1fr);gap:28px;}
:root[data-theme] body.service-site.service-refresh .layout > *, .refresh-menu > * {min-width:0;}
:root[data-theme] body.service-site.service-refresh .side {padding:16px;height:fit-content;}
:root[data-theme] body.service-site.service-refresh .side__link {min-height:44px;}
:root[data-theme] body.service-site.service-refresh .vc {padding:12px;gap:10px;}
:root[data-theme] body.service-site.service-refresh .vc__media {border-radius:14px;aspect-ratio:16/10;}
:root[data-theme] body.service-site.service-refresh .vc__title {padding:0 4px;font-size:20px;}
:root[data-theme] body.service-site.service-refresh :is(.vc__meta,.vc__cuisine) {padding:0 4px;font-size:14px;}
:root[data-theme] body.service-site.service-refresh .vc__book {min-height:44px;}
:root[data-theme] body.service-site.service-refresh .vp-grid {grid-template-columns:minmax(0,1fr) minmax(320px,400px);gap:28px;}
:root[data-theme] body.service-site.service-refresh .bookpanel {padding:24px;}
:root[data-theme] body.service-site.service-refresh .vp-booking {background:transparent;box-shadow:none;border:0;}
:root[data-theme] body.service-site.service-refresh .vp-photo {border-radius:20px;overflow:hidden;}
.refresh-details {padding:16px 0;border-bottom:1px solid var(--border);}
.refresh-details>summary {display:flex;align-items:center;cursor:pointer;font-weight:600;list-style:none;gap:16px;}
.refresh-details>summary::after {content:'+';margin-left:auto;color:var(--accent-ink);font-size:24px;}
.refresh-details[open]>summary::after {content:'−';}
.refresh-details[open]>summary {margin-bottom:16px;}
.refresh-upcoming {display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--border);color:var(--text);}
.refresh-profile {padding:24px;margin-bottom:20px;}
.refresh-profile h2 {margin-bottom:8px;}
.refresh-menu {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px;margin:20px 0;}
.refresh-menu a {display:flex;align-items:center;justify-content:space-between;padding:16px;min-height:56px;border-radius:12px;background:var(--surface-2);color:var(--text);}
.refresh-menu a::after {content:'→';color:var(--accent-ink);}
.venue-terms {font-size:14px;color:var(--text-dim);overflow-wrap:anywhere;}
.venue-terms p {margin:8px 0;}
.refresh-booking-cta,.refresh-business-dock {display:none;}
.table-wrap {max-width:100%;overflow-x:auto;}
.service-refresh .refresh-card-cta {position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:auto;padding:12px 16px;min-height:46px;background:linear-gradient(110deg,#c45118,#ac3913);color:#fff;border-radius:12px;font-weight:600;text-decoration:none;}
:root[data-theme] body.service-site.service-refresh .data :is(td,th) {border-color:var(--border);}
:root[data-theme] body.service-site.service-refresh .data th {background:var(--surface-2);color:var(--text);}
:root[data-theme] body.service-site.service-refresh .data td {color:var(--text);}
@media(max-width:860px) {
  :root[data-theme] body.service-site.service-refresh .container {padding-left:20px;padding-right:20px;width:100%;}
  :root[data-theme] body.service-site.service-refresh .layout {display:block;}
  :root[data-theme] body.service-site.service-refresh .main {padding-bottom:calc(108px + env(safe-area-inset-bottom));}
  :root[data-theme] body.service-site.service-refresh .layout>.side {margin-bottom:20px;}
  :root[data-theme] body.service-site.service-refresh :is(.panel,.bookpanel) {padding:20px;}
  :root[data-theme] body.service-site.service-refresh h1 {font-size:clamp(28px,7vw,38px);line-height:1.15;letter-spacing:-.035em;}
  :root[data-theme] body.service-site.service-refresh :is(.vp-grid,.business-service-grid) {display:flex;flex-direction:column;gap:20px;}
  :root[data-theme] body.service-site.service-refresh .vp-booking {order:-1;position:static;width:100%;}
  :root[data-theme] body.service-site.service-refresh .vp-main {width:100%;}
  :root[data-theme] body.service-site.service-refresh :is(.vp-title,.vc__title) {overflow-wrap:anywhere;}
  :root[data-theme] body.service-site.service-refresh :is(input:not([type=checkbox]):not([type=radio]),select,textarea) {font-size:16px;}
  :root[data-theme] body.service-site.service-refresh :is(.mobile-dock,.refresh-business-dock) {position:fixed;display:flex;bottom:calc(10px + env(safe-area-inset-bottom));left:12px;right:12px;width:auto;min-height:68px;padding:8px 4px;gap:2px;align-items:center;justify-content:space-around;background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow-lg);z-index:80;}
  :root[data-theme] body.service-site.service-refresh :is(.mobile-dock,.refresh-business-dock) :is(a,button) {display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;min-height:48px;min-width:44px;flex:1;padding:4px;color:var(--text-muted);background:transparent;border:0;font-size:11px;line-height:1.3;text-decoration:none;}
  :root[data-theme] body.service-site.service-refresh :is(.mobile-dock,.refresh-business-dock) [aria-current=page] {color:var(--accent-ink);background:var(--accent-soft);border-radius:12px;}
  .refresh-business-dock svg {width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;}
  :root[data-theme] body.service-refresh .mobile-dock::before,
  :root[data-theme] body.service-refresh .mobile-dock::after,
  :root[data-theme] body.service-refresh .mobile-dock>a::after {display:none;}
  :root[data-theme] body.service-refresh .mobile-dock>:is(a,button)>svg {
    position:static;inset:auto;transform:none;width:22px;height:22px;padding:0;margin:0;background:none;border:0;border-radius:0;box-shadow:none;flex-shrink:0;color:inherit;
  }
  :root[data-theme] body.service-refresh .mobile-dock>:is(a,button)>span {position:static;inset:auto;margin:0;padding:0;transform:none;font-size:11px;}
  :root[data-theme] body.service-refresh .mobile-dock {max-width:none;}
  .refresh-booking-cta {display:block;position:fixed;bottom:calc(90px + env(safe-area-inset-bottom));left:12px;right:12px;padding:10px 12px;background:var(--surface);border:1px solid var(--border);border-radius:16px;z-index:79;box-shadow:var(--shadow);}
  .refresh-booking-cta small {display:block;text-align:center;margin-top:5px;font-size:12px;color:var(--text-muted);}
  .refresh-booking-cta[hidden] {display:none;}
  :root[data-theme] body.service-site.service-refresh.venue-page .main {padding-bottom:220px;}
  html[data-theme].keyboard-open body.service-site.service-refresh :is(.refresh-booking-cta,.mobile-dock,.refresh-business-dock) {display:none;}
  :root[data-theme] body.service-site.service-refresh .vp-booking {scroll-margin-top:100px;}
  .refresh-menu {grid-template-columns:1fr;}
  :root[data-theme] body.service-site.service-refresh .form__row {display:flex;flex-wrap:wrap;}
  :root[data-theme] body.service-site.service-refresh .form__row>* {flex:1 1 200px;min-width:0;}
  :root[data-theme] body.service-site.service-refresh .bcard__actions {flex-wrap:wrap;}
  :root[data-theme] body.service-site.service-refresh .guest-history__item {flex-wrap:wrap;}
}
@media(max-width:360px) {
  :root[data-theme] body.service-site.service-refresh .container {padding-left:12px;padding-right:12px;}
  :root[data-theme] body.service-site.service-refresh :is(.panel,.bookpanel) {padding:16px;}
}
@media(prefers-reduced-motion:reduce) {
  html {scroll-behavior:auto!important;}
  *,*::before,*::after {animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;}
}

@media(max-width:860px){html[data-theme] body.service-refresh .cf-bar{margin-left:0;margin-right:0;max-width:100%;padding-left:0;padding-right:0;}}

.business-alerts--compact>.business-alerts__controls,.business-alerts--compact>p.muted{display:none;}
.business-alerts--compact #bookingNotice:not(:empty){padding:12px;border-left:3px solid var(--accent);background:var(--accent-soft);color:var(--text);}

@media(max-width:860px){:root[data-theme] body.service-refresh.business-page .layout>.side{display:none;}}

:root[data-theme] body.service-site.service-refresh :is(.hx-search,.hx-pill,.hx-menu){background:var(--surface);box-shadow:none;}

:root[data-theme] body.service-site.service-refresh .header {background:var(--bg)!important;backdrop-filter:none;}
:root[data-theme] body.service-site.service-refresh .hx {--hx-text:var(--text);--hx-muted:var(--text-muted);--hx-glass:var(--surface);--hx-line:var(--border);}
:root[data-theme] body.service-site.service-refresh .booking-assistant__panel {--bg:inherit;--surface:inherit;--text:inherit;--surface-2:inherit;--text-muted:inherit;}

/* Authentication shares the same palette; old photo-overlay rules used white
   labels and translucent fields even after a visitor selected the light theme. */
:root[data-theme] body.service-site.service-refresh.auth-scene {background:var(--bg)!important;}
:root[data-theme] body.service-site.service-refresh.auth-scene .header :is(a,.stolik-wordmark,.hx-login__text) {color:var(--text)!important;-webkit-text-fill-color:currentColor;text-shadow:none;}
:root[data-theme] body.service-site.service-refresh.auth-scene .auth-shell>.center {text-shadow:none;}
:root[data-theme] body.service-site.service-refresh.auth-scene .auth-shell .panel {background:var(--surface);border-color:var(--border)!important;backdrop-filter:none;color:var(--text);}
:root[data-theme] body.service-site.service-refresh.auth-scene .auth-shell :is(label,h1,h2) {color:var(--text);}
:root[data-theme] body.service-site.service-refresh.auth-scene .auth-shell :is(.lead,.muted,.small,.field__hint) {color:var(--text-muted);}
:root[data-theme] body.service-site.service-refresh.auth-scene .auth-shell input:not([type=checkbox]):not([type=hidden]) {background:var(--surface-2)!important;color:var(--text)!important;-webkit-text-fill-color:var(--text);border-color:var(--border-strong)!important;}
:root[data-theme] body.service-site.service-refresh.auth-scene .auth-shell .form>a {color:var(--accent-ink);}
:root[data-theme] body.service-site.service-refresh.auth-scene .auth-shell .btn--ghost {color:var(--text);background:var(--surface);border-color:var(--border);}
:root[data-theme] body.service-site.service-refresh.auth-scene .auth-shell .field__error {color:var(--accent-ink);}
:root[data-theme] body.service-site.service-refresh :is(.btn--primary,.vp-btn--primary) {background:linear-gradient(110deg,#c45118,#ac3913)!important;color:#fff!important;-webkit-text-fill-color:#fff;}

/* Visual refinement: photography first, quiet depth, consistent hierarchy. */
/* Booking stays in the page; never cover venue photos or nearby results. */
.install-offer {box-sizing:border-box;width:min(420px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;margin:auto;padding:28px 22px 22px;border:1px solid var(--border);border-radius:24px;background:var(--surface);color:var(--text);box-shadow:var(--shadow-lg);}
.install-offer::backdrop {background:#0007;}
.install-offer h2 {padding-right:24px;font-size:24px;line-height:1.2;}
.install-offer p {color:var(--text-muted);line-height:1.6;margin:16px 0 22px;}
.install-offer .btn {margin-top:10px;}
.install-offer__close {position:absolute;right:8px;top:8px;width:44px;height:44px;background:transparent;border:0;color:var(--text);font-size:28px;cursor:pointer;}
:root[data-theme] body.service-site.service-refresh .refresh-booking-cta {display:none!important;}
@media(max-width:760px) {
  :root[data-theme] body.service-site .header .header__inner {position:relative;}
  :root[data-theme] body.service-site .header .hx {position:static;}
  :root[data-theme] body.service-site .header #themeToggle {display:inline-flex!important;position:absolute;top:10px;right:20px;min-height:44px;width:76px;margin:0;}
  :root[data-theme] body.service-site .header .logo {max-width:calc(100% - 96px);}
  :root[data-theme][data-user] body.service-site .header #themeToggle {right:72px;}
  :root[data-theme][data-user] body.service-site .header .hx > .user-notifications {position:absolute;top:10px;right:20px;margin:0;}
  :root[data-theme][data-user] body.service-site .header .logo {max-width:calc(100% - 148px);}
  :root[data-theme] body.service-site .mnav__logo:not(:focus-visible) {outline:none;box-shadow:none;border:0;}
  :root[data-theme] body.service-site .mnav__theme {display:none;}
}
:root[data-theme] body.service-site.service-refresh {
  --shadow:0 3px 5px #24252203,0 12px 32px #24252207;
}
:root[data-theme=dark] body.service-site.service-refresh {
  --shadow:0 3px 5px #00000012,0 12px 32px #00000020;
}
:root[data-theme] body.service-site.service-refresh :is(h1,h2,.vp-title) {letter-spacing:-.035em;text-wrap:balance;}
:root[data-theme] body.service-site.service-refresh .vc {padding:10px 10px 12px;border-radius:24px;gap:10px;transition:box-shadow .2s,border-color .2s;}
:root[data-theme] body.service-site.service-refresh .vc__media {border-radius:17px;aspect-ratio:16/11;}
:root[data-theme] body.service-site.service-refresh .vc__title {font-size:22px;line-height:1.22;letter-spacing:-.035em;padding:0 8px;margin-top:8px;}
:root[data-theme] body.service-site.service-refresh :is(.vc__meta,.vc__cuisine) {padding:0 8px;line-height:1.55;}
:root[data-theme] body.service-site.service-refresh .vc__badges {gap:6px;top:12px;left:12px;}
:root[data-theme] body.service-site.service-refresh :is(.vc__rating,.vc__price,.vc__flag) {height:32px;border-radius:999px;padding:0 10px;box-shadow:0 2px 10px #0002;}
:root[data-theme] body.service-site.service-refresh .vc__rating {display:flex;gap:5px;background:#232722;color:#fff;}
:root[data-theme] body.service-site.service-refresh .vc__rating:not(.is-unknown)::before {content:'★';color:#ffc268;font-size:14px;}
:root[data-theme] body.service-site.service-refresh .vc__rating.is-unknown {background:var(--surface);color:var(--text-muted);}
:root[data-theme] body.service-site.service-refresh .vc__price {background:var(--surface);color:var(--text);}
:root[data-theme] body.service-site.service-refresh .vc__fav {background:#202421e8;color:#fff;border:1px solid #ffffff55;}
:root[data-theme] body.service-site.service-refresh .refresh-card-cta {min-height:48px;margin:4px 4px 0;border-radius:14px;box-shadow:0 4px 10px #ac391316;}
:root[data-theme] body.service-site.service-refresh .refresh-card-cta>span {display:grid;place-items:center;width:28px;height:28px;flex:none;border:1px solid #ffffff55;border-radius:50%;}
:root[data-theme] body.service-site.service-refresh .cf-city__toggle {padding:9px 14px;background:var(--accent-soft);color:var(--accent-ink);border-radius:999px;}
:root[data-theme] body.service-site.service-refresh .cf-head {margin-bottom:24px;}
:root[data-theme] body.service-site.service-refresh :is(.bookpanel,.refresh-profile,.auth-shell .panel) {box-shadow:var(--shadow);}
:root[data-theme] body.service-site.service-refresh .refresh-details>summary::after {display:grid;place-items:center;min-width:28px;height:28px;border-radius:50%;background:var(--accent-soft);font-size:20px;}
@media(min-width:861px) {
  :root[data-theme] body.service-site.service-refresh .cf {padding-top:40px;}
  :root[data-theme] body.service-site.service-refresh .cf-title {font-size:clamp(34px,3vw,44px);}
  :root[data-theme] body.service-site.service-refresh .bookpanel {border-top:3px solid var(--accent);}
}
@media(hover:hover) and (pointer:fine) {
  :root[data-theme] body.service-site.service-refresh .vc:hover {border-color:var(--border-strong);box-shadow:var(--shadow-lg);}
  :root[data-theme] body.service-site.service-refresh .refresh-card-cta:hover {filter:brightness(1.08);}
}
@media(prefers-reduced-motion:reduce) {
  :root[data-theme] body.service-site.service-refresh .vc,
  :root[data-theme] body.service-site.service-refresh .vc__media img {transition:none;}
  :root[data-theme] body.service-site.service-refresh .vc:hover .vc__media img {transform:none;}
}
/* Footer follows the selected theme, including link and logo colors. */
:root[data-theme] body.service-site.service-refresh .site-footer {
  --sf-bg:var(--bg); --sf-text:var(--text); --sf-muted:var(--text-muted);
  --sf-line:var(--border); --sf-accent:var(--accent);
  margin-top:24px; border-top:1px solid var(--border);
}
:root[data-theme] body.service-site .site-footer__inner {padding-top:32px;}
:root[data-theme] body.service-site.service-refresh .site-footer__col h2 {font-weight:700;color:var(--accent-ink)!important;-webkit-text-fill-color:var(--accent-ink)!important;}
@media(max-width:760px) {
  :root[data-theme] body.service-site:has(.site-footer) .main {padding-bottom:24px!important;}
  :root[data-theme] body.service-site .site-footer {margin-top:0;}
  :root[data-theme] body.service-site .site-footer__inner {padding:24px 20px calc(24px + env(safe-area-inset-bottom));}
  :root[data-theme] body.service-site .site-footer__grid {gap:24px 16px;}
  :root[data-theme] body.service-site .site-footer__col {gap:4px;font-size:14px;min-width:0;}
  :root[data-theme] body.service-site .site-footer__col a {display:flex;align-items:center;min-height:44px;overflow-wrap:anywhere;}
  :root[data-theme] body.service-site .site-footer__bottom {margin-top:24px;padding-top:24px;gap:20px;}
  :root[data-theme] body.service-site .site-footer__brand {gap:12px;}
}
