/* Heritage Concierge: shared materials, typography, navigation and motion. */
#v3k-root {
  --vk-ink:#30251e; --vk-dark:#201713; --vk-paper:#f3eee6; --vk-copper:#874938;
  --vk-gold:#cfad74; --vk-line:#d7cbbb; --vk-muted:#6e6256;
  --hud-shadow:0 16px 44px #34211712;
  --hud-ease:cubic-bezier(.22,1,.36,1);
  --hud-fast:180ms; --hud-enter:560ms;
}
body { background:#191411; }
#v3k-root .v3k-app { background:var(--vk-paper); }
#v3k-root .v3k-main { background:var(--vk-paper); scrollbar-color:#b79a72 transparent; }
#v3k-root .v3k-main > section { min-height:100%; }
#v3k-root .v3k-canvas:has(.v3k-page,.v3k-form-page,.v3k-status) .v3k-main { bottom:clamp(84px,11cqw,126px); }
#v3k-root .v3k-canvas:has(.v3k-page,.v3k-form-page,.v3k-status)::after { content:""; position:absolute; z-index:3; inset:auto 0 0; height:clamp(84px,11cqw,126px); border-top:1px solid #d4c3a9; background:linear-gradient(110deg,#f7f1e7,#eadfce); pointer-events:none; }
#v3k-root .vk-line-icon { width:28px; height:28px; display:block; flex-shrink:0; }
#v3k-root button { -webkit-tap-highlight-color:transparent; touch-action:manipulation; }
#v3k-root button:focus-visible,#v3k-root a:focus-visible { outline:3px solid #9b6632; outline-offset:4px; }
#v3k-root .v3k-rail button:focus-visible,#v3k-root .v3k-header button:focus-visible { outline-color:#ffdf9d; }

/* Always visible navigation, with Home as the primary escape from every page. */
#v3k-root .v3k-rail { width:clamp(64px,10cqw,112px); flex-basis:clamp(64px,10cqw,112px); gap:1.1cqw; padding:2.5cqw .9cqw 2.2cqw; border-right:1px solid #b18c5145; background:linear-gradient(165deg,#3f2a20,#271b16 48%,#1d1512); box-shadow:8px 0 30px #21150e18; }
#v3k-root .v3k-brand { width:100%; height:10cqw; min-height:58px; margin:0 0 2.7cqw; }
#v3k-root .v3k-brand .v3k-official-logo { width:7.4cqw; height:7.4cqw; min-width:43px; min-height:43px; border-radius:50%; box-shadow:0 0 0 5px #dec09010,0 5px 18px #0003; }
#v3k-root .v3k-rail button { position:relative; width:100%; min-width:44px; min-height:clamp(58px,9.1cqw,102px); padding:1.4cqw .4cqw; gap:.8cqw; border-radius:15px; border:1px solid transparent; color:#e5d3b8; font-size:clamp(10px,1.3cqw,15px); font-weight:500; background:transparent; }
#v3k-root .v3k-rail button .vk-line-icon { width:3.4cqw; height:3.4cqw; min-width:25px; min-height:25px; }
#v3k-root .v3k-rail button[data-go="home"] { min-height:clamp(68px,10.5cqw,118px); margin-bottom:1.5cqw; color:#352318; border:1px solid #f4dba9; border-radius:16px; background:linear-gradient(145deg,#f2dfbb,#cfa66e); box-shadow:0 8px 24px #0003,inset 0 1px #fff7; }
#v3k-root .v3k-rail button[data-go="home"]::after { width:24px; height:2px; bottom:-8px; background:#d8b67e; }
#v3k-root .v3k-rail button[data-go="home"] span { font-size:clamp(10px,1.3cqw,15px); font-weight:700; letter-spacing:.02em; }
#v3k-root .v3k-rail button.active:not([data-go="home"]) { color:#ffebc8; border-color:#d5b58055; background:#e8c98f12; box-shadow:inset 0 0 24px #e8c98f08,0 0 20px #d8b57914; }
#v3k-root .v3k-rail button.active:not([data-go="home"])::before { content:""; position:absolute; width:3px; height:34%; top:33%; left:-.9cqw; border-radius:0 3px 3px 0; background:#d6b47d; box-shadow:0 0 12px #efc67a8c; }
#v3k-root .v3k-rail button:active { box-shadow:0 0 24px #d8b57950,inset 0 0 18px #ffe4b422; }
#v3k-root .v3k-rail .v3k-rail-help { margin-top:auto; border-top:1px solid #bc976035; border-radius:0; }

/* Transparent-on-photo HUD becomes a solid bar as content scrolls beneath it. */
#v3k-root .v3k-header { height:clamp(68px,10cqw,112px); padding:1.6cqw 3.5cqw; gap:1.5cqw; color:#fff5e6; background:linear-gradient(180deg,#211610b8,transparent); border:0; transition:background 240ms ease,box-shadow 240ms ease; }
#v3k-root .v3k-header.solid { position:absolute; color:var(--vk-ink); background:#f3eee6f5; border-bottom:1px solid var(--vk-line); }
#v3k-root .v3k-header.vk-hud-scrolled { color:#fff5e6; background:#2a1d17f5; box-shadow:0 6px 30px #27191121; border-bottom-color:#cfad7430; }
#v3k-root .v3k-header::after { content:""; position:absolute; left:0; right:0; bottom:0; height:2px; background:#d9b87e; transform:scaleX(var(--hud-progress,0)); transform-origin:left; pointer-events:none; }
#v3k-root .v3k-head-left,#v3k-root .v3k-head-right { gap:1cqw; }
#v3k-root .vk-hud-time { display:grid; gap:.35cqw; padding:0 1cqw; }
#v3k-root .v3k-clock { font-size:clamp(14px,1.7cqw,21px); font-weight:650; letter-spacing:.04em; }
#v3k-root .vk-hud-time > small { font:500 clamp(10px,1.12cqw,14px)/1.2 var(--vk-sans); opacity:.82; white-space:nowrap; }
#v3k-root .vk-hud-wordmark { margin:auto; display:grid; justify-items:center; gap:.3cqw; }
#v3k-root .vk-hud-wordmark strong { font:500 clamp(14px,1.8cqw,22px)/1 var(--vk-display); letter-spacing:.15em; }
#v3k-root .vk-hud-wordmark small { font:500 clamp(9px,1.05cqw,13px)/1.2 var(--vk-sans); opacity:.8; letter-spacing:.04em; }
#v3k-root .v3k-header button { width:clamp(46px,6cqw,70px); height:clamp(46px,6cqw,70px); min-width:46px; min-height:46px; border:1px solid #f2dfbd73; border-radius:50%; background:#2b1d184d; box-shadow:inset 0 1px #fff1; font-weight:600; font-size:clamp(12px,1.5cqw,18px); }
#v3k-root .v3k-header.solid:not(.vk-hud-scrolled) button { background:#fffbf2; border-color:#b79b74; }
#v3k-root .v3k-header .v3k-back { width:clamp(46px,6cqw,70px); }
#v3k-root .v3k-header button svg { width:clamp(22px,2.8cqw,31px); height:clamp(22px,2.8cqw,31px); }

/* Home: film, editorial title, three photographic highlights and nine service tiles. */
#v3k-root .vk-menu { background:var(--vk-paper); padding-bottom:0; }
#v3k-root .vk-menu-cover { height:34cqh; min-height:230px; background:#2e2118; }
#v3k-root .vk-cover-image,#v3k-root .vk-cover-video { object-position:50% 43%; }
#v3k-root .vk-cover-shade { background:linear-gradient(180deg,#21140c6b 0,#21140c15 30%,#21140c77 60%,#21140cdd 100%); }
#v3k-root .vk-menu-cover::after { content:""; position:absolute; z-index:2; inset:11.5cqw 2.5cqw 5cqw; border:1px solid #d9b78044; border-bottom:0; border-radius:2px; pointer-events:none; }
#v3k-root .vk-menu-title { left:5cqw; right:4cqw; bottom:5.8cqw; }
#v3k-root .vk-menu-title > p { display:flex; align-items:center; gap:1.2cqw; color:#ecd5ac; font-size:clamp(10px,1.3cqw,16px); letter-spacing:.22em; margin-bottom:1.5cqw; }
#v3k-root .vk-menu-title > p::before { content:""; width:3cqw; height:1px; background:#d4b076; }
#v3k-root .vk-menu-title h1 { font-size:clamp(47px,9.4cqw,110px); font-weight:400; line-height:.91; letter-spacing:-.035em; text-shadow:0 4px 24px #180f0880; }
#v3k-root .vk-menu-title em { color:#f2debb; }
#v3k-root .vk-home-location { position:absolute; z-index:3; top:12.8cqw; left:5cqw; color:#f2e6d2; font-size:clamp(9px,1.13cqw,14px); letter-spacing:.14em; }
#v3k-root .vk-menu-body { position:relative; z-index:3; margin-top:-3cqw; padding:3.2cqw 3.5cqw 2cqw; border-radius:3cqw 3cqw 0 0; border-top:1px solid #fffbf4; background:linear-gradient(135deg,#faf6ef,#f1e9dd 75%); }
#v3k-root .vk-menu-body::before { content:""; display:block; width:5cqw; height:2px; margin:0 auto 2cqw; background:#b18b55; }
#v3k-root .vk-menu-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:2cqw; margin-bottom:2.1cqw; }
#v3k-root .vk-menu-heading h2 { max-width:65%; color:#32231b; font-size:clamp(25px,4.1cqw,48px); letter-spacing:-.025em; }
#v3k-root .vk-menu-heading p { max-width:35%; margin:0 0 .3cqw; color:#6d5d4d; text-align:right; font-size:clamp(10px,1.28cqw,16px); line-height:1.5; }
#v3k-root .vk-services { gap:1.35cqw; }
#v3k-root .vk-service { isolation:isolate; overflow:hidden; align-items:flex-start; justify-content:space-between; min-height:15cqw; padding:1.8cqw; gap:.8cqw; border-radius:1.7cqw; border:1px solid #d6c7b2; color:#3a2b20; background:#fffbf5; box-shadow:0 4px 12px #49311f05,inset 0 1px #fff; animation:luxury-tile-in 580ms var(--hud-ease) backwards; animation-delay:calc(var(--tile-index)*28ms); }
#v3k-root .vk-service-featured { min-height:19cqw; color:#fff6e7; border-color:#ae895763; background:#33231a; box-shadow:var(--hud-shadow); }
#v3k-root .vk-service-featured::before { content:""; position:absolute; z-index:-2; inset:0; background:var(--tile-photo) center/cover; opacity:.63; transition:transform 650ms var(--hud-ease); }
#v3k-root .vk-service-featured::after { content:""; position:absolute; z-index:-1; inset:0; border-radius:inherit; background:linear-gradient(180deg,#25150d24,#25150dba 63%,#25150deb); pointer-events:none; }
#v3k-root .vk-service[data-go="castle-overview"] { --tile-photo:url('/kiosk/media/castle-tower.webp'); }
#v3k-root .vk-service[data-go="ticket-catalogue"] { --tile-photo:url('/kiosk/media/castle-court.webp'); }
#v3k-root .vk-service[data-go="souvenirs"] { --tile-photo:url('/kiosk/media/castle-hodovna.webp'); }
#v3k-root .vk-service-meta { position:absolute; top:1.45cqw; right:1.5cqw; display:flex; align-items:center; gap:.8cqw; color:#8d734f; }
#v3k-root .vk-service-featured .vk-service-meta { color:#eed3a1; }
#v3k-root .vk-service-index { font-size:clamp(9px,.95cqw,12px); letter-spacing:.06em; opacity:.85; }
#v3k-root .vk-service-meta svg { width:1.8cqw; height:1.8cqw; min-width:13px; min-height:13px; }
#v3k-root .vk-service-disc { flex-shrink:0; width:5.8cqw; height:5.8cqw; min-width:35px; min-height:35px; margin-bottom:.2cqw; border:0; border-radius:0; color:#95683f; background:none; box-shadow:none; }
#v3k-root .vk-service-disc .vk-line-icon { width:4.5cqw; height:4.5cqw; min-width:29px; min-height:29px; }
#v3k-root .vk-service-featured .vk-service-disc { color:#edcf97; }
#v3k-root .vk-service strong { position:relative; width:100%; max-width:100%; min-height:2.5em; display:flex; align-items:flex-end; color:inherit; font-size:clamp(13px,1.9cqw,23px); font-weight:600; line-height:1.23; letter-spacing:-.015em; text-align:left; }
#v3k-root .vk-service-featured strong { text-shadow:0 2px 10px #0008; }
#v3k-root .vk-opening-times { margin-top:2.5cqw; padding:2cqw 0 0; gap:1cqw; border-color:#cbb99a; grid-template-columns:repeat(3,1fr); }
#v3k-root .vk-opening-times div { color:#75604d; font-size:clamp(10px,1.25cqw,15px); gap:.5cqw; }
#v3k-root .vk-opening-times strong { color:#3b2a20; font-size:clamp(14px,1.8cqw,22px); font-weight:650; }
#v3k-root .vk-home-footer { display:flex; align-items:center; justify-content:space-between; gap:1cqw; padding:1cqw 11cqw 0 0; }
#v3k-root .vk-replay,#v3k-root .vk-home-footer .vk-motion { min-height:44px; color:#765b3f; font-size:clamp(10px,1.16cqw,14px); letter-spacing:.02em; }
#v3k-root .vk-home-footer .vk-motion { justify-content:flex-end; }

/* Page chrome: a large image over an ivory content sheet. */
#v3k-root .v3k-screen .v3k-page-hero,#v3k-root .v3k-screen .v3k-page-hero.compact { min-height:32cqh; padding:14cqw 5cqw 6.8cqw; text-align:left; align-items:flex-start; justify-content:flex-end; border:0; border-radius:0; }
#v3k-root .v3k-screen .v3k-page-hero .v3k-display { max-width:94%; color:#fff6e8; background:none; padding:0; text-align:left; font-size:clamp(40px,7.5cqw,86px); line-height:.98; box-shadow:none; }
#v3k-root .v3k-screen .v3k-page-hero .v3k-eyebrow { position:relative; display:flex; align-items:center; gap:1.3cqw; color:#ead0a5; background:none; padding:0; border:0; border-radius:0; font-size:clamp(10px,1.35cqw,16px); letter-spacing:.18em; }
#v3k-root .v3k-screen .v3k-page-hero .v3k-eyebrow::before { content:""; width:3.2cqw; height:1px; background:#d7b17a; }
#v3k-root .v3k-page-hero .v3k-hero-copy { max-width:88%; color:#f5eadb; font-size:clamp(15px,1.9cqw,23px); line-height:1.5; }
#v3k-root .v3k-page-hero::before { background:linear-gradient(180deg,#25160c3d,#25160c12 25%,#25160ce0); }
#v3k-root .v3k-page-body { position:relative; z-index:1; margin-top:-3cqw; border-radius:3cqw 3cqw 0 0; border-top:1px solid #fffbf5; padding:4cqw; background:linear-gradient(150deg,#f9f5ee,#f1e9dd); box-shadow:0 -8px 35px #26190e0d; }
#v3k-root .v3k-page > .v3k-page-body:first-child { margin-top:0; border-radius:0; padding-top:max(90px,12cqw) !important; }
#v3k-root .v3k-form-body { background:var(--vk-paper); padding:4cqw; }
#v3k-root .v3k-section-title { color:#7e5c3e; font-size:clamp(12px,1.5cqw,18px); letter-spacing:.12em; margin:1cqw 0 2cqw; }
#v3k-root .v3k-row { min-height:11cqw; padding:2.2cqw; gap:2cqw; border-color:#d4c7b4; border-radius:1.5cqw; background:#fffaf3; box-shadow:0 6px 18px #3f281808; }
#v3k-root .v3k-row strong { color:#39281f; font-size:clamp(17px,2.2cqw,27px); font-weight:600; }
#v3k-root .v3k-row small { color:#756557; font-size:clamp(13px,1.55cqw,19px); }
#v3k-root .v3k-row-icon { width:6cqw; height:6cqw; min-width:38px; min-height:38px; color:#976943; border:1px solid #d9c7aa; background:#f4eadb; box-shadow:none; border-radius:50%; }
#v3k-root .v3k-row > svg { color:#986a3b; }
#v3k-root .v3k-context { padding:3cqw; border-radius:1.6cqw; background:#ece2d2; border-color:#d6c6ad; }
#v3k-root .v3k-primary { color:#fff8ed; border-color:#6b3b2d; background:linear-gradient(120deg,#965440,#673a2d); box-shadow:0 8px 22px #7c412424,inset 0 1px #e5b58c4d; }
#v3k-root .v3k-secondary { color:#5f422e; background:#f9f3e8; border-color:#a78961; }
#v3k-root .v3k-primary,#v3k-root .v3k-secondary { min-height:64px; border-radius:12px; font-weight:650; }
#v3k-root .v3k-fields input,#v3k-root .v3k-fields textarea,#v3k-root .v3k-fields select { background:#fffcf7; border-color:#bdab92; border-radius:12px; }
#v3k-root .v3k-ticket-catalogue > header,#v3k-root .v3k-accommodation-catalogue > header { padding:0 0 2cqw; border-radius:0; color:var(--vk-ink); background:none; box-shadow:none; }
#v3k-root .v3k-ticket-catalogue > header > span,#v3k-root .v3k-accommodation-catalogue > header > span { color:#916b42; }
#v3k-root .v3k-ticket-catalogue > header p,#v3k-root .v3k-accommodation-catalogue > header p { color:var(--vk-muted); }
#v3k-root .v3k-ticket-prices article { min-height:11cqw; padding:2cqw 2.4cqw; border-radius:1.4cqw; background:#fffcf6; box-shadow:0 5px 16px #3f281805; }
#v3k-root .v3k-ticket-prices article > strong { color:#815038; }
#v3k-root .v3k-ticket-catalogue > footer,#v3k-root .v3k-accommodation-catalogue > footer { background:#eae0cf; border-color:#cbb896; border-radius:16px; }
#v3k-root .v3k-ticket-catalogue > footer > p,#v3k-root .v3k-accommodation-catalogue > footer p { color:#514333; }
#v3k-root .v3k-ticket-catalogue > footer > small,#v3k-root .v3k-ticket-catalogue > footer aside small,#v3k-root .v3k-accommodation-catalogue > footer small { color:#65563f; }
#v3k-root .v3k-room-grid article,#v3k-root .v3k-menu-item { border-radius:1.8cqw; border-color:#d4c7b4; background:#fffbf4; box-shadow:var(--hud-shadow); }
#v3k-root .v3k-room-grid img { height:20cqw; min-height:120px; }
#v3k-root .v3k-room-grid article > div { padding:2.2cqw; }
#v3k-root .v3k-room-grid h3 { font-size:clamp(23px,3cqw,36px); }
#v3k-root .v3k-room-grid p { font-size:clamp(13px,1.5cqw,18px); line-height:1.55; }
#v3k-root .v3k-room-grid article span { font-size:clamp(11px,1.3cqw,16px); color:#8a5b38; }
#v3k-root .v3k-food-menu-head,#v3k-root .v3k-tasting-intro,#v3k-root .v3k-shop-intro { border:1px solid #ad885b55; border-radius:2cqw; background:linear-gradient(130deg,#3d281e,#6b4531); box-shadow:var(--hud-shadow); }
#v3k-root .v3k-menu-tabs { gap:.8cqw; padding:1cqw 0; }
#v3k-root .v3k-menu-tabs button { min-height:48px; border-radius:999px; }
#v3k-root .v3k-menu-feature,#v3k-root .v3k-gallery button { border-radius:2cqw; box-shadow:var(--hud-shadow); }
#v3k-root .v3k-booking-handoff { background:linear-gradient(125deg,#39251c,#76503b); border-color:#b89568; border-radius:2cqw; padding:3.2cqw; margin-top:2.2cqw; }
#v3k-root .v3k-booking-handoff button,#v3k-root .v3k-shop-kiosk { border-radius:12px; }
#v3k-root .v3k-shop-trust { background:#ebe2d3; border-color:#cbb99c; color:#5a4935; }
#v3k-root .v3k-shop-trust > span { background:#8b6b42; }
#v3k-root .v3k-region-shell { border-color:#c7b59a; border-radius:2cqw; box-shadow:var(--hud-shadow); }
#v3k-root .v3k-region-filters { background:#eee4d5; }
#v3k-root .v3k-region-filters button { min-height:48px; border-radius:999px; }
#v3k-root .v3k-region-address { background:#eee4d5; }

/* Concierge and overlays share the same brass/espresso finish. */
#v3k-root .v3k-chat-fab { overflow:visible; width:clamp(60px,8.2cqw,96px); height:clamp(60px,8.2cqw,96px); min-width:60px; min-height:60px; right:2.8cqw; bottom:2.6cqw; color:#f9e9c8; border:1px solid #d7b37b; border-radius:50%; background:linear-gradient(145deg,#8f543d,#563022); box-shadow:0 10px 36px #4124143d,inset 0 1px #fff3; }
#v3k-root .v3k-chat-fab .vk-line-icon { width:3.6cqw; height:3.6cqw; min-width:28px; min-height:28px; }
#v3k-root .vk-chat-caption { position:absolute; right:calc(100% + 1cqw); padding:.75cqw 1.2cqw; border-radius:999px; border:1px solid #d6c5a6; background:#fffbf1f5; color:#68482e; white-space:nowrap; font-size:clamp(11px,1.3cqw,16px); font-weight:600; box-shadow:0 5px 18px #3e281516; }
#v3k-root .v3k-canvas:not(:has([data-screen-id="home"])) .vk-chat-caption { display:block; }
#v3k-root .v3k-ai-page { background:linear-gradient(155deg,#291c15ed,#4e3024f2),url('/kiosk/media/castle-passage.webp') center/cover; padding:14cqw 5cqw max(125px,14cqw); }
#v3k-root .v3k-suggestions button { background:#f7dec20a; border-color:#b5926b61; border-radius:14px; }
#v3k-root .v3k-ai-trust { border-radius:16px; }
#v3k-root .v3k-bubble.ai { background:#f8eedf; color:#392a20; box-shadow:0 6px 20px #0002; }
#v3k-root .v3k-session-warning { background:#21150ee3; }
#v3k-root .v3k-session-card { width:min(79cqw,660px); padding:5cqw 4cqw; border:1px solid #ad8652; border-radius:24px; background:linear-gradient(145deg,#fff9ed,#ede0ca); box-shadow:0 30px 90px #0006; }
#v3k-root .v3k-session-card h2 { font:500 clamp(32px,5cqw,60px)/1.04 var(--vk-display); color:#3a271b; }
#v3k-root .v3k-session-card p { font-size:clamp(15px,1.9cqw,23px); color:#6c5843; }
#v3k-root .v3k-session-countdown { width:10cqw; height:10cqw; min-width:68px; min-height:68px; border-color:#aa7c40; color:#805532; font-family:var(--vk-display); font-size:clamp(30px,4.5cqw,54px); }
#v3k-root .v3k-session-actions button { min-height:64px; border-radius:12px; font-size:clamp(14px,1.8cqw,22px); }
#v3k-root .v3k-touch-keyboard { border-color:#ad8652; background:#2b1e18fc; }
#v3k-root .v3k-touch-keyboard button { border-radius:10px; background:#4b3528; border-color:#8f714e; }
.v3k-secure-service > header { border-color:#b59262; background:linear-gradient(90deg,#251912,#4a3023); }
.v3k-secure-service > header button { border-radius:12px; }

/* The language screen reads as a hotel welcome, retaining five large flag buttons. */
#v3k-root .vk-language-copy { padding:8cqh 7cqw 3cqh; }
#v3k-root .vk-language-panel { border-radius:3cqw; background:#241912f2; border-color:#a7855670; box-shadow:0 25px 75px #0003; }
#v3k-root .vk-language-options .v3k-language-option { padding:1.5cqw 1cqw; border-radius:18px; }
#v3k-root .vk-language-options .v3k-flag { width:14cqw; height:14cqw; border-width:4px; border-color:#efdcba; outline:1px solid #b28f60; outline-offset:5px; box-shadow:0 8px 30px #0004; }
#v3k-root .vk-language-options strong { font-size:clamp(18px,2.8cqw,34px); }

/* Motion never intercepts taps or delays navigation. */
@media (prefers-reduced-motion:no-preference) {
  #v3k-root button { transition:transform var(--hud-fast) var(--hud-ease),background-color 220ms ease,border-color 220ms ease,box-shadow 220ms ease; }
  #v3k-root button:active { transform:scale(.975); }
  #v3k-root .v3k-rail button[data-go="home"]:active { transform:scale(.94); }
  #v3k-root button.vk-touch-flash { animation:luxury-touch 480ms ease-out; }
  #v3k-root .v3k-enter-forward { animation:luxury-forward var(--hud-enter) var(--hud-ease) backwards; }
  #v3k-root .v3k-enter-back { animation:luxury-back 460ms var(--hud-ease) backwards; }
  #v3k-root .v3k-enter-home { animation:luxury-home 620ms var(--hud-ease) backwards; }
  #v3k-root .v3k-enter-opening { animation:luxury-home 720ms var(--hud-ease) backwards; }
  #v3k-root .vk-intro.v3k-enter-opening { animation:none; }
  #v3k-root .vk-cover-image { animation:luxury-photo 1300ms var(--hud-ease) backwards; }
  #v3k-root .vk-menu-title > p { animation:luxury-rise 700ms 90ms var(--hud-ease) backwards; }
  #v3k-root .vk-menu-title h1 { animation:luxury-rise 850ms 150ms var(--hud-ease) backwards; }
  #v3k-root .vk-menu-title em { animation:luxury-rise 850ms 210ms var(--hud-ease) backwards; }
  #v3k-root .vk-menu-heading { animation:luxury-rise 650ms 130ms var(--hud-ease) backwards; }
  #v3k-root .v3k-page-hero .v3k-display { animation:luxury-rise 650ms 80ms var(--hud-ease) backwards; }
  #v3k-root .v3k-page-hero .v3k-hero-copy { animation:luxury-rise 650ms 150ms var(--hud-ease) backwards; }
  #v3k-root .vk-reveal-pending { opacity:0; transform:translate3d(0,18px,0); }
  #v3k-root .vk-reveal-visible { animation:luxury-rise 580ms var(--reveal-delay,0ms) var(--hud-ease) backwards; }
  #v3k-root .vk-language-panel { animation:luxury-rise 800ms 160ms var(--hud-ease) backwards; }
  #v3k-root .vk-language-options .v3k-language-option { animation:luxury-rise 650ms var(--hud-ease) backwards; }
  #v3k-root .vk-language-options .v3k-language-option:nth-child(2) { animation-delay:70ms; }
  #v3k-root .vk-language-options .v3k-language-option:nth-child(3) { animation-delay:140ms; }
  #v3k-root .vk-language-options .v3k-language-option:nth-child(4) { animation-delay:210ms; }
  #v3k-root .vk-language-options .v3k-language-option:nth-child(5) { animation-delay:280ms; }
  #v3k-root .v3k-session-warning:not([hidden]) .v3k-session-card { animation:luxury-home 360ms var(--hud-ease) backwards; }
  .v3k-secure-service { animation:luxury-rise 380ms cubic-bezier(.22,1,.36,1) backwards; }
}
@media (hover:hover) {
  #v3k-root .vk-service:hover { color:#3b2a1e; background:#f4ead9; border-color:#ae895a; transform:translateY(-3px); box-shadow:0 12px 26px #49291415; }
  #v3k-root .vk-service-featured:hover { color:#fff5df; background:#33231a; }
  #v3k-root .vk-service-featured:hover::before { transform:scale(1.06); }
  #v3k-root .v3k-row:hover { border-color:#b89b73; transform:translateX(3px); }
}
@keyframes luxury-rise { from { opacity:0; transform:translate3d(0,20px,0); } to { opacity:1; transform:none; } }
@keyframes luxury-forward { from { opacity:0; transform:translate3d(28px,0,0); } to { opacity:1; transform:none; } }
@keyframes luxury-back { from { opacity:0; transform:translate3d(-22px,0,0); } to { opacity:1; transform:none; } }
@keyframes luxury-home { from { opacity:0; transform:translate3d(0,12px,0) scale(.988); } to { opacity:1; transform:none; } }
@keyframes luxury-tile-in { from { opacity:0; transform:translate3d(0,18px,0) scale(.975); } to { opacity:1; transform:none; } }
@keyframes luxury-photo { from { opacity:.55; transform:scale(1.075); } to { opacity:1; transform:scale(1); } }
@keyframes luxury-touch { 0% { box-shadow:0 0 0 0 #cfad7459; } 100% { box-shadow:0 0 0 12px #cfad7400; } }
@container (max-width:620px) {
  #v3k-root .vk-hud-wordmark { display:none; }
  #v3k-root .vk-service { min-height:92px; padding:10px; border-radius:12px; }
  #v3k-root .vk-service-featured { min-height:112px; }
  #v3k-root .vk-menu-heading { gap:10px; }
  #v3k-root .vk-menu-heading p { max-width:37%; }
  #v3k-root .vk-home-footer { flex-wrap:wrap; padding-right:80px; gap:0 8px; }
  #v3k-root .vk-home-footer .vk-motion { justify-content:flex-start; }
  #v3k-root .vk-chat-caption { display:none; }
  #v3k-root .v3k-room-grid { grid-template-columns:minmax(0,1fr); }
  #v3k-root .v3k-room-grid img { height:36cqw; }
}
@container (max-width:420px) {
  #v3k-root .vk-menu-cover { min-height:210px; }
  #v3k-root .vk-menu-title h1 { font-size:43px; }
  #v3k-root .vk-service strong { font-size:12px; }
  #v3k-root .vk-opening-times { gap:7px; }
  #v3k-root .vk-opening-times strong { font-size:12px; }
  #v3k-root .v3k-header { padding-inline:12px; }
}
@media (prefers-reduced-motion:reduce) {
  #v3k-root *,#v3k-root *::before,#v3k-root *::after,.v3k-secure-service { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
  #v3k-root .vk-reveal-pending { opacity:1; transform:none; }
}
#v3k-root.v3k-reduced-motion *,#v3k-root.v3k-reduced-motion *::before,#v3k-root.v3k-reduced-motion *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
#v3k-root.v3k-reduced-motion .vk-reveal-pending { opacity:1; transform:none; }
