/* Vildštejn — a photographic, touch-first visitor experience. */
#v3k-root {
  --vk-ink:#251b17; --vk-dark:#1d1613; --vk-paper:#f6f0e7; --vk-copper:#944c3d; --vk-gold:#d9b780;
  --vk-line:#dacebe; --vk-muted:#786858;
  --vk-display:'Cormorant Garamond',Georgia,serif; --vk-sans:'Manrope','Segoe UI',sans-serif;
  --cream:var(--vk-paper); --paper:#fffbf4; --pine:#482e24; --rust:var(--vk-copper); --gold:var(--vk-gold);
  font-family:var(--vk-sans); color:var(--vk-ink); background:var(--vk-dark);
}
#v3k-root * { -webkit-tap-highlight-color:transparent; }
#v3k-root button,#v3k-root input,#v3k-root select,#v3k-root textarea { font-family:var(--vk-sans); }
#v3k-root button { cursor:pointer; touch-action:manipulation; }
#v3k-root button:focus-visible,#v3k-root a:focus-visible { outline:3px solid var(--vk-gold); outline-offset:5px; }
#v3k-root [hidden] { display:none !important; }
#v3k-root .v3k-app { background:var(--vk-paper); }
#v3k-root .v3k-app::before { display:none; }
#v3k-root .v3k-main { scroll-behavior:smooth; scrollbar-width:thin; scrollbar-color:#b29178 transparent; scroll-padding-bottom:130px; }
#v3k-root .v3k-main:has(.vk-intro) { scrollbar-width:none; scroll-behavior:auto; }
#v3k-root .v3k-main:has(.vk-intro)::-webkit-scrollbar { display:none; }
#v3k-root .v3k-screen { --screen-accent:#944c3d !important; --screen-surface:#f6f0e7 !important; }
#v3k-root .v3k-screen-signature { display:none; }
#v3k-root .v3k-display,#v3k-root .v3k-status-card h1 { font-family:var(--vk-display); font-weight:500; letter-spacing:-.025em; line-height:1.04; }
#v3k-root .v3k-page-hero { min-height:38cqh; padding:14cqw 5cqw 5cqw; background-position:center; }
#v3k-root .v3k-page-hero.compact { min-height:34cqh; }
#v3k-root .v3k-page-hero::before,#v3k-root .v3k-form-hero::before { background:linear-gradient(180deg,rgba(25,17,12,.15),rgba(25,17,12,.22) 30%,rgba(25,17,12,.85)); }
#v3k-root .v3k-page-hero::after,#v3k-root .v3k-form-hero::after { display:none; }
#v3k-root .v3k-page-hero .v3k-display { max-width:94%; font-size:clamp(42px,7.3cqw,86px); }
#v3k-root .v3k-eyebrow { font-family:var(--vk-sans); font-size:clamp(12px,1.5cqw,18px); letter-spacing:.2em; font-weight:600; }
#v3k-root .v3k-hero-copy { max-width:90%; font-size:clamp(16px,2cqw,23px); }
#v3k-root .v3k-page-body,#v3k-root .v3k-form-body { padding:4cqw 4cqw max(140px,14cqw); border:0; background:var(--vk-paper); }
#v3k-root .v3k-page > .v3k-page-body:first-child { padding-top:max(82px,12cqw) !important; }
#v3k-root .v3k-overview-note { display:none; }
#v3k-root .v3k-section-title { font-weight:700; font-size:clamp(13px,1.7cqw,20px); letter-spacing:.15em; color:#755443; margin:2cqw 0; }
#v3k-root .v3k-list { gap:1.25cqw; }
#v3k-root .v3k-row { min-height:10cqw; padding:2.1cqw; gap:2cqw; border:1px solid var(--vk-line); border-radius:12px; background:#fffbf5; box-shadow:none; }
#v3k-root .v3k-row strong { font-size:clamp(16px,2.05cqw,25px); font-weight:600; }
#v3k-root .v3k-row small { font-size:clamp(13px,1.6cqw,19px); line-height:1.5; color:var(--vk-muted); }
#v3k-root .v3k-row-icon { width:5.7cqw; height:5.7cqw; flex-basis:5.7cqw; background:#efe1d2; border-radius:50%; color:var(--vk-copper); }
#v3k-root .v3k-row-icon svg { width:2.8cqw; height:2.8cqw; }
#v3k-root .v3k-row > svg { width:2.5cqw; color:#a47e60; }
#v3k-root .v3k-context { margin-bottom:3cqw; border:1px solid var(--vk-line); border-radius:12px; padding:2.6cqw; background:#eee3d3; box-shadow:none; }
#v3k-root .v3k-context-head strong { font:500 clamp(24px,3.5cqw,42px)/1.1 var(--vk-display); }
#v3k-root .v3k-context-item strong { font-size:clamp(15px,1.8cqw,22px); }
#v3k-root .v3k-context-item span { font-size:clamp(12px,1.45cqw,17px); }
#v3k-root .v3k-primary,#v3k-root .v3k-secondary { min-height:64px; border-radius:8px; font-size:clamp(14px,1.8cqw,21px); padding:2cqw; }
#v3k-root .v3k-primary { background:var(--vk-copper); border-color:var(--vk-copper); color:#fff8eb; }
#v3k-root .v3k-secondary { background:transparent; color:var(--vk-ink); border-color:#bba48d; }
#v3k-root .v3k-notice,#v3k-root .v3k-operation-state { font-size:clamp(13px,1.55cqw,18px); line-height:1.6; border-radius:8px; }
#v3k-root .v3k-verified-module { margin:0 0 3cqw; padding:3cqw; border:1px solid var(--vk-line); border-radius:12px; background:#fffbf5; }
#v3k-root .v3k-verified-module h2 { font:500 clamp(28px,4cqw,48px)/1.08 var(--vk-display); color:var(--vk-ink); }
#v3k-root .v3k-verified-module p,#v3k-root .v3k-verified-list span { font-size:clamp(15px,1.8cqw,21px); line-height:1.55; }
#v3k-root .v3k-verified-list li { padding-block:2cqw; border-color:var(--vk-line); }
#v3k-root .v3k-verified-list strong { font-size:clamp(17px,2.05cqw,25px); }
#v3k-root .v3k-verified-source,#v3k-root .v3k-verified-list small { font-size:clamp(12px,1.3cqw,15px); color:var(--vk-muted); }
#v3k-root .v3k-food-menu { display:grid; gap:3.2cqw; }
#v3k-root .v3k-food-menu-head { display:grid; gap:1cqw; padding:3.4cqw; border-radius:16px; color:#fff8ed; background:linear-gradient(135deg,#2b1b15,#5b3427); box-shadow:0 16px 36px #2a160d20; }
#v3k-root .v3k-food-menu-head > span { color:#e5be82; font-size:clamp(12px,1.45cqw,17px); font-weight:800; letter-spacing:.17em; }
#v3k-root .v3k-food-menu-head h2 { margin:0; font:500 clamp(34px,5.2cqw,61px)/1.05 var(--vk-display); }
#v3k-root .v3k-food-menu-head > p { margin:0; max-width:84%; font-size:clamp(15px,1.8cqw,21px); line-height:1.5; color:#eadfd5; }
#v3k-root .v3k-food-menu-head > div { display:flex; flex-wrap:wrap; gap:.7cqw 2cqw; margin-top:1.2cqw; padding-top:1.8cqw; border-top:1px solid #dcbf9852; }
#v3k-root .v3k-food-menu-head strong,#v3k-root .v3k-food-menu-head small { font-size:clamp(13px,1.55cqw,18px); }
#v3k-root .v3k-food-menu-head small { color:#dacabc; }
#v3k-root .v3k-menu-features { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.8cqw; }
#v3k-root .v3k-menu-feature { position:relative; min-height:37cqw; overflow:hidden; border-radius:16px; background:#2c1c16; box-shadow:0 14px 32px #2a160d20; }
#v3k-root .v3k-menu-feature::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 25%,#1b100be8 92%); pointer-events:none; }
#v3k-root .v3k-menu-feature img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
#v3k-root .v3k-menu-feature > div { position:absolute; z-index:1; inset:auto 0 0; padding:2.3cqw; color:#fff8ef; }
#v3k-root .v3k-menu-feature span { display:block; margin-bottom:.7cqw; color:#efc98e; font-size:clamp(10px,1.2cqw,14px); font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
#v3k-root .v3k-menu-feature h3 { margin:0; font:600 clamp(22px,3.1cqw,37px)/1.05 var(--vk-display); }
#v3k-root .v3k-menu-feature p { margin:.8cqw 0 0; display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:3; font-size:clamp(12px,1.45cqw,17px); line-height:1.45; color:#eaded3; }
#v3k-root .v3k-menu-feature strong { display:inline-block; margin-top:1cqw; padding:.6cqw 1cqw; border-radius:99px; color:#28170f; background:#e7c38d; font-size:clamp(13px,1.55cqw,18px); }
#v3k-root .v3k-menu-tabs { position:sticky; top:max(62px,9.5cqw); z-index:4; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1cqw; padding:1.2cqw; border:1px solid #d7c7b5; border-radius:14px; background:#f6f0e7f2; box-shadow:0 12px 28px #2a160d18; backdrop-filter:blur(12px); }
#v3k-root .v3k-menu-tabs button { min-height:clamp(52px,6.5cqw,78px); padding:1cqw; border:1px solid #cdb9a3; border-radius:10px; background:#fffaf2; color:#4d352a; font-size:clamp(13px,1.55cqw,19px); font-weight:750; }
#v3k-root .v3k-menu-tabs button[aria-selected="true"] { border-color:#8a493b; background:#8f4a3b; color:#fff8ef; box-shadow:0 6px 18px #6d34232e; }
#v3k-root .v3k-menu-items { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.35cqw; }
#v3k-root .v3k-menu-item { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:1.5cqw; min-height:12cqw; padding:2.2cqw; border:1px solid var(--vk-line); border-radius:13px; background:#fffbf5; box-shadow:0 8px 22px #3c21100b; }
#v3k-root .v3k-menu-item > div { min-width:0; }
#v3k-root .v3k-menu-item h3 { margin:0; font:650 clamp(18px,2.3cqw,27px)/1.15 var(--vk-display); color:var(--vk-ink); }
#v3k-root .v3k-menu-item p { margin:.8cqw 0 0; font-size:clamp(12px,1.45cqw,17px); line-height:1.45; color:var(--vk-muted); }
#v3k-root .v3k-menu-item > strong { padding:.7cqw 1cqw; border-radius:8px; background:#eee0cf; color:#7a392f; font-size:clamp(13px,1.6cqw,19px); white-space:nowrap; }
#v3k-root .v3k-menu-item.has-price-variants { grid-template-columns:minmax(0,1fr); }
#v3k-root .v3k-menu-item.has-price-variants > strong { justify-self:start; display:grid; gap:.25cqw; max-width:100%; margin-top:.4cqw; white-space:normal; }
#v3k-root .v3k-menu-item.has-price-variants > strong span { display:block; }
#v3k-root .v3k-food-menu-foot { padding:2.6cqw; border-left:5px solid var(--vk-copper); border-radius:10px; background:#eee3d5; }
#v3k-root .v3k-food-menu-foot p { margin:0 0 .7cqw; font-size:clamp(14px,1.7cqw,20px); font-weight:700; }
#v3k-root .v3k-food-menu-foot small { font-size:clamp(11px,1.3cqw,16px); line-height:1.5; color:var(--vk-muted); }
#v3k-root .v3k-tasting { display:grid; gap:3cqw; }
#v3k-root .v3k-tasting-intro { display:grid; gap:2cqw; padding:3.6cqw; border-radius:16px; color:#fff8ed; background:linear-gradient(135deg,#2a1913,#633729); box-shadow:0 16px 38px #2a160d20; }
#v3k-root .v3k-tasting-intro > span { color:#e6bd7c; font-size:clamp(11px,1.35cqw,16px); font-weight:800; letter-spacing:.16em; }
#v3k-root .v3k-tasting-intro > div { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:2cqw; }
#v3k-root .v3k-tasting-intro h2 { margin:0; font:500 clamp(25px,3.8cqw,45px)/1.12 var(--vk-display); }
#v3k-root .v3k-tasting-intro > p { margin:0; color:#e7d9cd; font-size:clamp(13px,1.6cqw,19px); line-height:1.5; }
#v3k-root .v3k-tasting-price { display:grid; min-width:15cqw; padding:1.4cqw 1.7cqw; border:1px solid #e5be8377; border-radius:11px; background:#160d0961; text-align:right; }
#v3k-root .v3k-tasting-price small { color:#d9c4ad; font-size:clamp(10px,1.2cqw,14px); }
#v3k-root .v3k-tasting-price strong { color:#f2c986; font-size:clamp(20px,2.8cqw,33px); white-space:nowrap; }
#v3k-root .v3k-tasting-nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.2cqw; }
#v3k-root .v3k-tasting-nav button { display:grid; grid-template-columns:4.6cqw minmax(0,1fr); align-items:center; gap:1.2cqw; min-height:8cqw; padding:1.5cqw; border:1px solid #cdb79e; border-radius:12px; background:#fffaf3; color:#432d23; text-align:left; font-size:clamp(13px,1.6cqw,19px); font-weight:750; line-height:1.25; }
#v3k-root .v3k-tasting-nav button span { width:4.6cqw; height:4.6cqw; display:grid; place-items:center; border-radius:50%; color:#fff8ed; background:var(--vk-copper); font-size:clamp(12px,1.4cqw,17px); }
#v3k-root .v3k-tasting-menu-list { display:grid; gap:3.2cqw; }
#v3k-root .v3k-tasting-card { overflow:hidden; scroll-margin-top:max(76px,11cqw); border:1px solid var(--vk-line); border-radius:17px; background:#fffbf5; box-shadow:0 15px 36px #2f190d17; }
#v3k-root .v3k-tasting-card-hero { position:relative; min-height:31cqw; overflow:hidden; color:#fff7ea; background:#2a1913; }
#v3k-root .v3k-tasting-card-hero::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,#1b100a16,#1b100ad9 88%); }
#v3k-root .v3k-tasting-card-hero img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 48%; }
#v3k-root .v3k-tasting-card-hero > div { position:absolute; z-index:1; inset:auto 0 0; padding:3cqw; }
#v3k-root .v3k-tasting-card-hero span { color:#efc987; font-size:clamp(11px,1.35cqw,16px); font-weight:850; letter-spacing:.15em; }
#v3k-root .v3k-tasting-card-hero h2 { max-width:90%; margin:.7cqw 0; font:550 clamp(29px,4.4cqw,52px)/1.05 var(--vk-display); }
#v3k-root .v3k-tasting-card-hero p { margin:0; color:#eaded1; font-size:clamp(13px,1.6cqw,19px); }
#v3k-root .v3k-tasting-courses { display:grid; padding:1cqw 3cqw; }
#v3k-root .v3k-tasting-course { display:grid; grid-template-columns:6cqw minmax(0,1fr); gap:2cqw; padding:3cqw 0; border-bottom:1px solid var(--vk-line); }
#v3k-root .v3k-tasting-course:last-child { border-bottom:0; }
#v3k-root .v3k-tasting-number { display:flex; flex-direction:column; align-items:center; gap:.4cqw; }
#v3k-root .v3k-tasting-number span { width:5.5cqw; height:5.5cqw; display:grid; place-items:center; border-radius:50%; color:#fff8ed; background:#8f4a3b; font-size:clamp(14px,1.8cqw,22px); font-weight:800; }
#v3k-root .v3k-tasting-number small { color:#8b735f; font-size:clamp(9px,1.1cqw,13px); text-transform:uppercase; }
#v3k-root .v3k-tasting-course-label { color:#9b5546; font-size:clamp(10px,1.25cqw,15px); font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
#v3k-root .v3k-tasting-course h3 { margin:.6cqw 0 .8cqw; font:600 clamp(23px,3.2cqw,38px)/1.08 var(--vk-display); color:#32221b; }
#v3k-root .v3k-tasting-course p { margin:0; color:#655548; font-size:clamp(13px,1.6cqw,19px); line-height:1.55; }
#v3k-root .v3k-tasting-drink { display:grid; grid-template-columns:2.8cqw minmax(0,1fr); gap:1cqw; margin-top:1.5cqw; padding:1.3cqw 1.5cqw; border-radius:10px; color:#68452e; background:#f0e3d2; font-size:clamp(12px,1.45cqw,17px); line-height:1.45; font-weight:650; }
#v3k-root .v3k-tasting-drink span { color:#9b5546; font-size:clamp(16px,2cqw,24px); }
#v3k-root .v3k-tasting-card blockquote { margin:0; padding:2.7cqw 3.5cqw; border-top:1px solid #cfb998; color:#f7e9d2; background:#4b2c20; font:italic 500 clamp(18px,2.6cqw,31px)/1.35 var(--vk-display); }
#v3k-root .v3k-tasting-contact { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:2cqw; padding:3cqw; border-left:5px solid var(--vk-copper); border-radius:12px; background:#eee1d0; }
#v3k-root .v3k-tasting-contact span { color:#8b4b3d; font-size:clamp(11px,1.35cqw,16px); font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
#v3k-root .v3k-tasting-contact h2 { margin:.6cqw 0; font:600 clamp(22px,3cqw,36px)/1.12 var(--vk-display); }
#v3k-root .v3k-tasting-contact p,#v3k-root .v3k-tasting-contact small { display:block; margin:.5cqw 0 0; color:#6c5849; font-size:clamp(11px,1.4cqw,17px); }
#v3k-root .v3k-tasting-contact .v3k-primary { min-width:19cqw; }
#v3k-root .v3k-shop { display:grid; gap:2.6cqw; }
#v3k-root .v3k-ticket-catalogue { display:grid; gap:2.3cqw; }
#v3k-root .v3k-ticket-catalogue > header { padding:3.4cqw; border-radius:17px; color:#fff8ec; background:linear-gradient(135deg,#2b1912,#6a392a); }
#v3k-root .v3k-ticket-catalogue > header > span { color:#e7bd7b; font-size:clamp(11px,1.35cqw,16px); font-weight:850; letter-spacing:.16em; }
#v3k-root .v3k-ticket-catalogue > header h2 { margin:.6cqw 0; font:550 clamp(32px,4.8cqw,57px)/1.05 var(--vk-display); }
#v3k-root .v3k-ticket-catalogue > header p { margin:0; color:#eaded2; font-size:clamp(13px,1.6cqw,19px); line-height:1.48; }
#v3k-root .v3k-ticket-prices { display:grid; gap:1.2cqw; }
#v3k-root .v3k-ticket-prices article { display:flex; align-items:center; justify-content:space-between; gap:1.5cqw; min-height:10cqw; padding:1.8cqw 2cqw; border:1px solid #d2bfaa; border-radius:13px; color:#3f2a21; background:#fffaf3; }
#v3k-root .v3k-ticket-prices article > div { min-width:0; }
#v3k-root .v3k-ticket-prices h3 { margin:0; font:650 clamp(20px,2.6cqw,30px)/1.08 var(--vk-display); }
#v3k-root .v3k-ticket-prices p { margin:.5cqw 0 0; color:#756356; font-size:clamp(11px,1.3cqw,16px); line-height:1.4; }
#v3k-root .v3k-ticket-prices article > strong { flex:0 0 auto; color:#8e4738; font:800 clamp(18px,2.35cqw,28px)/1.1 var(--vk-sans); text-align:right; }
#v3k-root .v3k-ticket-catalogue > footer { display:grid; gap:1.4cqw; padding:2.5cqw; border:1px solid #c9d4bd; border-radius:13px; background:#f2f7ed; }
#v3k-root .v3k-ticket-catalogue > footer > p { margin:0; color:#3f5439; font-size:clamp(12px,1.45cqw,17px); }
#v3k-root .v3k-ticket-catalogue > footer > div { display:grid; grid-template-columns:minmax(0,1fr) 13cqw; align-items:center; gap:1.5cqw; }
#v3k-root .v3k-ticket-catalogue > footer button { min-height:60px; padding:1.4cqw; border:0; border-radius:11px; color:#fff7e9; background:#914a3b; font-size:clamp(13px,1.6cqw,19px); font-weight:850; }
#v3k-root .v3k-ticket-catalogue > footer aside { display:grid; justify-items:center; gap:.7cqw; text-align:center; }
#v3k-root .v3k-ticket-catalogue > footer aside small { color:#5d6e56; font-size:clamp(9px,1.1cqw,13px); }
#v3k-root .v3k-ticket-catalogue > footer > small { color:#71806d; font-size:clamp(9px,1.1cqw,13px); }
#v3k-root .v3k-shop-intro { display:grid; gap:1cqw; padding:3.5cqw; border-radius:17px; color:#fff8ec; background:linear-gradient(135deg,#2b1912,#6a392a); box-shadow:0 16px 38px #2a160d20; }
#v3k-root .v3k-shop-intro > span { color:#e7bd7b; font-size:clamp(11px,1.35cqw,16px); font-weight:850; letter-spacing:.16em; }
#v3k-root .v3k-shop-intro h2 { margin:0; font:550 clamp(32px,4.8cqw,57px)/1.05 var(--vk-display); }
#v3k-root .v3k-shop-intro p { margin:0; max-width:88%; color:#eaded2; font-size:clamp(14px,1.7cqw,20px); line-height:1.5; }
#v3k-root .v3k-shop-intro small { color:#d4beab; font-size:clamp(11px,1.3cqw,16px); }
#v3k-root .v3k-shop-categories { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.4cqw; }
#v3k-root .v3k-shop-categories button { position:relative; display:grid; grid-template-columns:7cqw minmax(0,1fr); align-items:center; gap:1.5cqw; min-height:13cqw; padding:2cqw; border:1px solid #d2bfaa; border-radius:14px; color:#3f2a21; background:#fffaf3; text-align:left; box-shadow:0 8px 22px #3c21100b; }
#v3k-root .v3k-shop-categories img { width:7cqw; height:7cqw; object-fit:contain; border-radius:50%; background:#4a2d22; }
#v3k-root .v3k-shop-categories strong,#v3k-root .v3k-shop-categories small { display:block; }
#v3k-root .v3k-shop-categories strong { font:650 clamp(18px,2.4cqw,29px)/1.08 var(--vk-display); }
#v3k-root .v3k-shop-categories small { margin-top:.6cqw; color:#756356; font-size:clamp(11px,1.35cqw,16px); line-height:1.4; }
#v3k-root .v3k-shop-categories i { position:absolute; top:1cqw; right:1.2cqw; color:#a98261; font-style:normal; font-size:clamp(15px,1.8cqw,22px); }
#v3k-root .v3k-shop-paths { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr); gap:1.5cqw; }
#v3k-root .v3k-shop-kiosk { display:grid; grid-template-columns:7cqw minmax(0,1fr); align-content:center; gap:.5cqw 1.5cqw; min-height:19cqw; padding:2.6cqw; border:1px solid #7e3e31; border-radius:15px; color:#fff7e9; background:linear-gradient(135deg,#914a3b,#6b342a); text-align:left; box-shadow:0 14px 32px #6f33252d; }
#v3k-root .v3k-shop-kiosk > span { grid-row:1 / 3; width:7cqw; height:7cqw; display:grid; place-items:center; border:1px solid #f1ce9473; border-radius:50%; color:#f2cd91; font-size:4cqw; }
#v3k-root .v3k-shop-kiosk strong { font:650 clamp(23px,3.3cqw,39px)/1.05 var(--vk-display); }
#v3k-root .v3k-shop-kiosk small { color:#ead5c3; font-size:clamp(11px,1.4cqw,17px); line-height:1.4; }
#v3k-root .v3k-shop-phone { display:grid; align-content:center; justify-items:center; gap:1cqw; min-height:19cqw; padding:1.5cqw; border:1px solid #d2bfaa; border-radius:15px; background:#fffaf3; text-align:center; }
#v3k-root .v3k-shop-qr { width:10cqw; min-width:78px; padding:.8cqw; border-radius:9px; background:#fff; }
#v3k-root .v3k-shop-qr svg { display:block; width:100%; height:auto; }
#v3k-root .v3k-shop-phone strong,#v3k-root .v3k-shop-phone small { display:block; }
#v3k-root .v3k-shop-phone strong { font-size:clamp(13px,1.65cqw,20px); }
#v3k-root .v3k-shop-phone small { margin-top:.5cqw; color:#756356; font-size:clamp(10px,1.2cqw,14px); line-height:1.35; }
#v3k-root .v3k-shop-trust { display:grid; grid-template-columns:4.5cqw minmax(0,1fr); align-items:center; gap:1.4cqw; padding:2.2cqw; border:1px solid #c9d4bd; border-radius:12px; color:#3f5439; background:#f2f7ed; }
#v3k-root .v3k-shop-trust > span { width:4.5cqw; height:4.5cqw; display:grid; place-items:center; border-radius:50%; color:#fff; background:#708b61; font-weight:900; }
#v3k-root .v3k-shop-trust p { margin:0; font-size:clamp(12px,1.5cqw,18px); line-height:1.5; }
#v3k-root .v3k-shop-legal { display:flex; flex-wrap:wrap; align-items:center; gap:1cqw; }
#v3k-root .v3k-shop-legal button { min-height:48px; padding:1cqw 1.5cqw; border:1px solid #c9b49c; border-radius:9px; color:#6b392f; background:transparent; font-size:clamp(11px,1.35cqw,16px); font-weight:750; }
#v3k-root .v3k-shop-legal small { width:100%; color:#857365; font-size:clamp(10px,1.2cqw,14px); }
#v3k-root .v3k-booking-handoff { display:grid; grid-template-columns:minmax(0,1fr) 13cqw; align-items:center; gap:2cqw; margin-bottom:2.5cqw; padding:2.7cqw; border:1px solid #d1b99d; border-radius:15px; color:#fff7eb; background:linear-gradient(135deg,#513025,#7c4334); box-shadow:0 12px 28px #4420141f; }
#v3k-root .v3k-booking-handoff > div > span { color:#ecc78d; font-size:clamp(10px,1.2cqw,14px); font-weight:850; letter-spacing:.13em; }
#v3k-root .v3k-booking-handoff h2 { margin:.7cqw 0; font:600 clamp(26px,3.8cqw,45px)/1.05 var(--vk-display); }
#v3k-root .v3k-booking-handoff p { margin:0; max-width:95%; color:#ead9cc; font-size:clamp(12px,1.5cqw,18px); line-height:1.45; }
#v3k-root .v3k-booking-handoff button { min-height:52px; margin-top:1.5cqw; padding:1cqw 1.7cqw; border:1px solid #efcb91; border-radius:9px; color:#3b241a; background:#f5ddba; font-size:clamp(12px,1.5cqw,18px); font-weight:800; }
#v3k-root .v3k-booking-handoff aside { display:grid; justify-items:center; gap:.8cqw; text-align:center; }
#v3k-root .v3k-booking-qr { width:11cqw; min-width:82px; padding:.7cqw; border-radius:9px; background:#fff; }
#v3k-root .v3k-booking-qr svg { display:block; width:100%; height:auto; }
#v3k-root .v3k-booking-handoff aside small { color:#e3cfbd; font-size:clamp(9px,1.1cqw,13px); line-height:1.3; }
#v3k-root .v3k-accommodation-catalogue { display:grid; gap:2.4cqw; }
#v3k-root .v3k-accommodation-catalogue > header { padding:3.2cqw; border-radius:17px; color:#fff8ec; background:linear-gradient(135deg,#2c1b15,#784736); }
#v3k-root .v3k-accommodation-catalogue > header > span { color:#e7bd7b; font-size:clamp(10px,1.25cqw,15px); font-weight:850; letter-spacing:.15em; }
#v3k-root .v3k-accommodation-catalogue > header h2 { margin:.6cqw 0; font:600 clamp(30px,4.5cqw,54px)/1.05 var(--vk-display); }
#v3k-root .v3k-accommodation-catalogue > header p { margin:0; color:#ead9cc; font-size:clamp(12px,1.45cqw,18px); line-height:1.5; }
#v3k-root .v3k-room-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.4cqw; }
#v3k-root .v3k-room-grid article { overflow:hidden; border:1px solid #d2bfaa; border-radius:15px; color:#3f2a21; background:#fffaf3; box-shadow:0 8px 22px #3c211010; }
#v3k-root .v3k-room-grid img { display:block; width:100%; height:15cqw; min-height:118px; object-fit:cover; }
#v3k-root .v3k-room-grid article > div { padding:1.8cqw; }
#v3k-root .v3k-room-grid article span { color:#9b684b; font-size:clamp(9px,1.1cqw,13px); font-weight:800; letter-spacing:.04em; }
#v3k-root .v3k-room-grid h3 { margin:.6cqw 0; font:650 clamp(19px,2.5cqw,30px)/1.08 var(--vk-display); }
#v3k-root .v3k-room-grid p { margin:0; color:#756356; font-size:clamp(10px,1.25cqw,15px); line-height:1.45; }
#v3k-root .v3k-room-grid strong { display:block; margin-top:1cqw; color:#794236; font-size:clamp(12px,1.45cqw,17px); }
#v3k-root .v3k-accommodation-catalogue > footer { display:grid; gap:1cqw; padding:2.4cqw; border:1px solid #c9d4bd; border-radius:13px; background:#f2f7ed; }
#v3k-root .v3k-accommodation-catalogue > footer p { margin:0; color:#3f5439; font-size:clamp(11px,1.4cqw,17px); line-height:1.45; }
#v3k-root .v3k-accommodation-catalogue > footer button { min-height:54px; border:0; border-radius:10px; color:#fff8ec; background:#8f4839; font-size:clamp(13px,1.6cqw,19px); font-weight:850; }
#v3k-root .v3k-accommodation-catalogue > footer small { color:#71806d; font-size:clamp(9px,1.1cqw,13px); }
.v3k-secure-service-open { overflow:hidden; }
.v3k-secure-service { position:fixed; z-index:10000; inset:0; display:grid; grid-template-rows:auto minmax(0,1fr); color:#fff7e9; background:#241712; }
.v3k-secure-service > header { display:flex; align-items:center; justify-content:space-between; gap:18px; min-height:76px; padding:10px 18px; border-bottom:1px solid #9b6b45; background:linear-gradient(90deg,#261813,#4b2b21); box-shadow:0 8px 28px #0005; }
.v3k-secure-service > header > div { display:flex; align-items:center; min-width:0; gap:12px; }
.v3k-secure-service > header img { width:52px; height:52px; flex:0 0 auto; border-radius:50%; object-fit:contain; background:#fff; }
.v3k-secure-service > header span,.v3k-secure-service > header strong,.v3k-secure-service > header small { display:block; }
.v3k-secure-service > header strong { overflow:hidden; font:650 clamp(18px,2.6vw,28px)/1.05 var(--vk-display,Georgia,serif); text-overflow:ellipsis; white-space:nowrap; }
.v3k-secure-service > header small { margin-top:4px; color:#e0c8b6; font-size:clamp(11px,1.4vw,15px); }
.v3k-secure-service > header button { min-width:190px; min-height:54px; padding:10px 18px; border:2px solid #e2bf7d; border-radius:14px; color:#382119; background:#fff4df; font-size:clamp(13px,1.5vw,17px); font-weight:850; }
.v3k-secure-service-stage { position:relative; min-height:0; background:#f7f1ea; }
.v3k-secure-service iframe { position:absolute; z-index:2; inset:0; width:100%; height:100%; border:0; background:#fff; }
.v3k-secure-service-loading { position:absolute; z-index:3; inset:0; display:grid; place-content:center; justify-items:center; gap:16px; color:#4a2b21; background:#f7f1ea; transition:opacity .25s ease,visibility .25s ease; }
.v3k-secure-service-loading span { width:46px; height:46px; border:4px solid #ddc6af; border-top-color:#914a3b; border-radius:50%; animation:v3k-secure-spin .8s linear infinite; }
.v3k-secure-service.is-loaded .v3k-secure-service-loading { visibility:hidden; opacity:0; }
.v3k-secure-service-protected { display:grid; place-items:center; padding:clamp(24px,5vw,72px); background:radial-gradient(circle at 50% 18%,#80503a 0,#3b241b 38%,#21140f 100%); }
.v3k-secure-service-protected article { width:min(720px,100%); padding:clamp(30px,6vw,70px); border:1px solid #c89b65; border-radius:26px; color:#fff7e9; background:#2f1d17e8; box-shadow:0 30px 90px #0007; text-align:center; }
.v3k-secure-service-protected article > span { width:78px; height:78px; display:grid; place-items:center; margin:0 auto 24px; border:2px solid #e2bf7d; border-radius:50%; color:#2f1d17; background:#efd39f; font-size:38px; font-weight:900; }
.v3k-secure-service-protected h2 { margin:0; font:650 clamp(30px,5vw,56px)/1.05 var(--vk-display,Georgia,serif); }
.v3k-secure-service-protected p { margin:22px auto 0; max-width:620px; color:#ead8ca; font-size:clamp(15px,2vw,20px); line-height:1.55; }
.v3k-secure-service-protected small { display:block; margin-top:22px; color:#d6b98c; font-size:clamp(12px,1.5vw,16px); line-height:1.45; }
@keyframes v3k-secure-spin { to { transform:rotate(360deg); } }
@media (max-width:620px) { .v3k-secure-service > header { min-height:68px; padding:8px 10px; } .v3k-secure-service > header img { width:44px; height:44px; } .v3k-secure-service > header button { min-width:142px; min-height:50px; padding:8px 11px; } }
#v3k-root .v3k-form-hero { min-height:26cqh; }
#v3k-root .v3k-fields { gap:2.2cqw; }
#v3k-root .v3k-fields label { font-size:clamp(15px,1.8cqw,22px); }
#v3k-root .v3k-fields input,#v3k-root .v3k-fields select,#v3k-root .v3k-fields textarea { min-height:64px; border-radius:8px; border-color:var(--vk-line); background:#fffbf5; font-size:clamp(17px,2cqw,24px); }
#v3k-root .v3k-status { background:linear-gradient(155deg,#2c1e18,#462b22); padding-bottom:12cqw; }
#v3k-root .v3k-status-card { border-radius:18px; background:var(--vk-paper); border:1px solid #c8ac86; box-shadow:none; }
#v3k-root .v3k-rail { width:10cqw; flex-basis:10cqw; padding:2cqw .8cqw; gap:1.15cqw; background:#291c17; border-right:1px solid #5c4131; }
#v3k-root .v3k-brand { width:8cqw; height:9cqw; margin-bottom:1.5cqw; border:0; }
#v3k-root .v3k-brand .v3k-official-logo { width:7cqw; height:7cqw; object-fit:contain; }
#v3k-root .v3k-rail button { width:8.2cqw; min-width:44px; min-height:8.5cqw; border-radius:10px; font-size:clamp(10px,1.3cqw,15px); font-weight:600; color:#e2d0b8; border:1px solid transparent; background:transparent; }
#v3k-root .v3k-rail button[data-go="home"] { min-height:9.6cqw; background:#ead3ad; color:#372318; border:1px solid #fae5c3; box-shadow:0 3px 14px #140b0770; }
#v3k-root .v3k-rail button.active:not([data-go="home"]),#v3k-root .v3k-rail button:active { background:#5f3828; border-color:#dbb57c; box-shadow:inset 0 0 22px #dfb98724,0 0 20px #c69b6438; }
#v3k-root .v3k-rail button svg { width:3.3cqw; height:3.3cqw; min-width:24px; min-height:24px; }
#v3k-root .v3k-rail button .v3k-generated-icon { width:4.8cqw; height:4.8cqw; }
#v3k-root .v3k-header { height:9.5cqw; min-height:62px; padding:1.3cqw 3cqw; background:linear-gradient(180deg,#1d141dcc,#1d141d00); border:0; color:#fff5e7; }
#v3k-root .v3k-header.solid { background:#f6f0e7f5; color:var(--vk-ink); border-bottom:1px solid var(--vk-line); }
#v3k-root .v3k-header button { min-height:44px; min-width:44px; height:5.5cqw; width:5.5cqw; border:1px solid currentColor; background:#281c1440; color:inherit; border-radius:50%; }
#v3k-root .v3k-header.solid button { background:transparent; }
#v3k-root .v3k-clock { font-size:clamp(13px,1.7cqw,19px); font-variant-numeric:tabular-nums; }
#v3k-root .v3k-chat-fab { width:8cqw; height:8cqw; min-width:62px; min-height:62px; bottom:2.6cqw; right:2.6cqw; border:1px solid #e4c696; background:#7b3f31; box-shadow:0 8px 30px #20110b45; }
#v3k-root .v3k-chat-fab > img { width:7cqw; height:7cqw; }
#v3k-root .v3k-canvas:has([data-screen-id="home"]) .v3k-chat-fab { bottom:2.6cqw; }
#v3k-root .v3k-ai-page { padding:12cqw 4cqw 14cqw; background:linear-gradient(155deg,#302119f5,#523126ef),url('/kiosk/media/castle-passage.webp') center/cover; }
#v3k-root .v3k-ai-page .v3k-display { font-size:clamp(48px,8cqw,90px); }
#v3k-root .v3k-ai-intro { max-width:92%; font-size:clamp(18px,2.3cqw,28px); line-height:1.5; }
#v3k-root .v3k-ai-trust { border:1px solid #8b6b50; background:#cba67716; padding:2.5cqw; }
#v3k-root .v3k-ai-trust strong { font-size:clamp(16px,2cqw,24px); }
#v3k-root .v3k-ai-trust small { font-size:clamp(13px,1.6cqw,19px); }
#v3k-root .v3k-suggestions button { min-height:74px; font-size:clamp(16px,2cqw,24px); padding:2.5cqw; border:1px solid #bb976c66; border-radius:10px; background:#fff7e909; }
#v3k-root .v3k-chatbox { border-radius:10px; overflow:hidden; background:#fffaf1; }
#v3k-root .v3k-chatbox input { min-height:72px; font-size:clamp(16px,2cqw,24px); color:var(--vk-ink); }
#v3k-root .v3k-chatbox button { min-width:72px; min-height:72px; }
#v3k-root .v3k-bubble { font-size:clamp(16px,2cqw,24px); line-height:1.6; padding:2.6cqw; border-radius:12px; }
#v3k-root .v3k-gallery { gap:2cqw; }
#v3k-root .v3k-gallery button { min-height:24cqw; border-radius:14px; padding:2.5cqw; }
#v3k-root .v3k-gallery strong { font:500 clamp(22px,3.3cqw,38px)/1.1 var(--vk-display); }
#v3k-root .v3k-region-shell { border-radius:14px; border-color:var(--vk-line); }
#v3k-root .v3k-region-filters { background:#efe5d6; padding:1.4cqw; }
#v3k-root .v3k-region-filters button { min-height:48px; }
#v3k-root .v3k-region-place-marker { min-width:48px; min-height:48px; background:#836247; }
#v3k-root .v3k-region-place { border-radius:10px; }
#v3k-root .v3k-region-place strong { font-size:clamp(14px,1.65cqw,20px); }
#v3k-root .v3k-region-place small { font-size:clamp(12px,1.4cqw,17px); }

/* Pinned introduction: photographs, type and aperture respond to scroll. */
#v3k-root .vk-intro { --stage-height:100cqh; position:relative; height:calc(var(--stage-height)*3.4); min-height:0; color:#fff5e4; background:var(--vk-dark); animation:none !important; }
#v3k-root .vk-intro-stage { position:sticky; top:0; width:100%; height:var(--stage-height); overflow:hidden; }
#v3k-root .vk-portal { position:absolute; inset:0; clip-path:inset(23% 10% 16% round 46% 46% 1.5% 1.5%); background:#2c2018; will-change:clip-path; }
#v3k-root .vk-scene-images,#v3k-root .vk-scene-image,#v3k-root .vk-scene-shade { position:absolute; inset:0; width:100%; height:100%; }
#v3k-root .vk-scene-image { object-fit:cover; object-position:49% 46%; opacity:0; will-change:transform,opacity; }
#v3k-root .vk-scene-image:first-child { opacity:1; object-position:48% 50%; }
#v3k-root .vk-scene-image[data-scene-image="3"] { object-position:18% 50%; }
#v3k-root .vk-scene-shade { background:linear-gradient(180deg,#1d161380,#1d1613b3 22%,#1d1613b3 30%,#1d161326 45%,#1d1613e0 88%,#1d1613); }
#v3k-root .vk-intro-nav { position:absolute; z-index:5; top:0; left:0; right:0; padding:4.4cqw; display:flex; align-items:center; justify-content:space-between; gap:3cqw; }
#v3k-root .vk-brand { display:flex; align-items:center; gap:1.5cqw; }
#v3k-root .vk-logo { width:9cqw; height:9cqw; min-width:55px; min-height:55px; object-fit:contain; border-radius:50%; }
#v3k-root .vk-brand-type { font:600 clamp(11px,1.65cqw,21px)/1.4 var(--vk-sans); letter-spacing:.12em; }
#v3k-root .vk-brand-type small { display:block; font-size:.65em; letter-spacing:.2em; opacity:.65; margin-top:.3em; }
#v3k-root .vk-skip { display:flex; align-items:center; gap:1.3cqw; min-height:50px; color:#f9edda; border:1px solid #c4aa8299; border-radius:40px; padding:1.4cqw 2.4cqw; background:#20151099; font-size:clamp(13px,1.6cqw,19px); font-weight:600; }
#v3k-root .vk-skip svg { width:2.5cqw; min-width:22px; }
#v3k-root .vk-intro-title { position:absolute; top:15%; left:3%; right:3%; text-align:center; z-index:3; will-change:transform,opacity; pointer-events:none; }
#v3k-root .vk-intro-title p:first-child { font-size:clamp(12px,1.6cqw,20px); letter-spacing:.27em; color:#dabe95; margin:0 0 1.2cqw; }
#v3k-root .vk-intro-title h1 { font:400 clamp(84px,17cqw,195px)/.94 var(--vk-display); margin:0; letter-spacing:-.055em; }
#v3k-root .vk-intro-title h1 span { color:#e2ba80; }
#v3k-root .vk-intro-title p:last-child { font:400 italic clamp(22px,4.1cqw,47px)/1.2 var(--vk-display); margin:2.2cqw 0 0; color:#f5e6cb; }
#v3k-root .vk-story-copies { position:absolute; inset:0; pointer-events:none; }
#v3k-root .vk-story-copy { position:absolute; left:7cqw; right:7cqw; top:59%; opacity:0; color:white; }
#v3k-root .vk-kicker { display:block; font-size:clamp(11px,1.5cqw,18px); letter-spacing:.18em; text-transform:uppercase; color:#dbba85; }
#v3k-root .vk-story-copy h2 { font:400 clamp(48px,9cqw,105px)/.98 var(--vk-display); letter-spacing:-.025em; margin:2.5cqw 0; max-width:82%; }
#v3k-root .vk-story-copy p { font-size:clamp(16px,2.35cqw,27px); line-height:1.5; max-width:84%; margin:0; color:#efe0c8; }
#v3k-root .vk-intro-controls { position:absolute; z-index:5; bottom:10%; left:7cqw; right:7cqw; display:flex; align-items:center; justify-content:space-between; gap:3cqw; }
#v3k-root .vk-primary { min-height:60px; border:1px solid #eacba0; padding:2.25cqw 3cqw; display:inline-flex; align-items:center; justify-content:space-between; gap:3cqw; color:#36251a; background:#edd9b8; font-size:clamp(14px,1.9cqw,23px); font-weight:700; border-radius:5px; }
#v3k-root .vk-primary svg { width:3cqw; min-width:25px; }
#v3k-root .vk-explore { border:0; padding:1.5cqw 0; min-height:60px; background:transparent; color:#f4e5ce; display:flex; gap:1.5cqw; align-items:center; font-size:clamp(13px,1.65cqw,20px); }
#v3k-root .vk-scroll-line { width:1px; height:4.6cqw; min-height:35px; display:block; background:#d6b27f66; position:relative; overflow:hidden; }
#v3k-root .vk-scroll-line::after { content:''; display:block; position:absolute; width:1px; height:65%; background:#e7c89c; animation:vk-scroll-cue 2.5s ease-in-out infinite; }
#v3k-root .vk-intro-footer { position:absolute; left:4.4cqw; right:4.4cqw; bottom:2.5cqw; display:flex; align-items:center; justify-content:space-between; gap:2cqw; }
#v3k-root .vk-motion { min-height:44px; color:#deccb1; display:flex; gap:1cqw; align-items:center; border:0; background:transparent; font-size:clamp(11px,1.3cqw,16px); }
#v3k-root .vk-motion > span:first-child { font-size:20px; }
#v3k-root .vk-chapters { display:flex; gap:.8cqw; }
#v3k-root .vk-chapters button { min-height:44px; min-width:44px; padding:0 .4cqw; display:flex; align-items:center; gap:.6cqw; color:#a58e73; border:0; background:transparent; font-size:clamp(10px,1.15cqw,14px); }
#v3k-root .vk-chapters i { width:2.3cqw; height:1px; display:block; background:#8b70524d; }
#v3k-root .vk-chapters [aria-current="step"] { color:#ffebcb; }
#v3k-root .vk-chapters [aria-current="step"] i { background:#e0bc85; }
#v3k-root .vk-intro-location { font-size:clamp(9px,1.1cqw,14px); letter-spacing:.08em; color:#baa486; }
#v3k-root .vk-intro-complete .vk-explore { visibility:hidden; }

/* Service menu. All visitor tasks remain visible together. */
#v3k-root .vk-menu { min-height:100%; background:var(--vk-paper); padding-bottom:2cqw; }
#v3k-root .vk-menu-cover { height:29cqh; min-height:245px; position:relative; overflow:hidden; background:#534130; }
#v3k-root .vk-cover-image,#v3k-root .vk-cover-shade { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:40% 52%; }
#v3k-root .vk-cover-video { position:absolute; z-index:1; inset:0; width:100%; height:100%; border:0; object-fit:cover; object-position:50% 50%; pointer-events:none; transform:scale(1.04); animation:vk-video-arrive 1.2s .35s both; }
#v3k-root .vk-cover-image { animation:vk-cover-arrive 1.3s cubic-bezier(.2,.7,.2,1) both; }
#v3k-root .vk-cover-shade { z-index:2; background:linear-gradient(180deg,#1a100f70,transparent 30%,#261c16c4 65%,#261c16eb); }
#v3k-root .vk-menu-title { position:absolute; z-index:3; bottom:4cqw; left:5cqw; right:12cqw; color:#fff4e0; }
#v3k-root .vk-menu-title > p { font-size:clamp(11px,1.5cqw,18px); letter-spacing:.22em; margin:0 0 1.5cqw; color:#edcf9d; }
#v3k-root .vk-menu-title h1 { font:400 clamp(44px,8cqw,93px)/.93 var(--vk-display); margin:0; letter-spacing:-.028em; }
#v3k-root .vk-menu-title em { display:block; font-weight:400; color:#f8e4c2; }
#v3k-root .vk-film-shortcut { position:absolute; right:4cqw; bottom:4.5cqw; width:7cqw; height:7cqw; min-width:58px; min-height:58px; border:1px solid #eedcba99; color:#fff5dc; border-radius:50%; background:#37241980; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; }
#v3k-root .vk-film-shortcut svg { width:2.8cqw; min-width:22px; }
#v3k-root .vk-film-shortcut span { font-size:clamp(9px,1.1cqw,13px); }
#v3k-root .vk-menu-body { padding:3.2cqw 3.5cqw 2cqw; }
#v3k-root .vk-menu-heading h2 { font:500 clamp(25px,4.2cqw,50px)/1.1 var(--vk-display); margin:0; }
#v3k-root .vk-menu-heading p { font-size:clamp(12px,1.65cqw,20px); margin:1cqw 0 2.3cqw; color:#7d6857; }
#v3k-root .vk-services { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.3cqw; }
#v3k-root .vk-service { position:relative; min-height:17.8cqw; gap:.8cqw; padding:1.8cqw .8cqw; display:flex; flex-direction:column; align-items:center; justify-content:center; border:1px solid #decfba; border-radius:12px; color:#493326; background:#fffbf4; box-shadow:none; transition:background .2s, border-color .2s, transform .2s; animation:vk-tile-arrive .5s cubic-bezier(.16,1,.3,1) both; animation-delay:calc(var(--tile-index)*28ms); }
#v3k-root .vk-service-featured { background:#f0e5d5; border-color:#d0b999; }
#v3k-root .vk-service-disc { width:9.5cqw; height:9.5cqw; min-width:58px; min-height:58px; display:grid; place-items:center; border:1px solid #c9a97488; border-radius:50%; background:radial-gradient(ellipse at 30% 20%,#674736,#30221b); box-shadow:inset 0 1px 0 #f0d09824; }
#v3k-root .vk-service-disc .v3k-generated-icon { width:8.4cqw; height:8.4cqw; min-width:53px; min-height:53px; object-fit:contain; }
#v3k-root .vk-service strong { font-size:clamp(13px,1.7cqw,21px); line-height:1.25; font-weight:600; max-width:100%; text-shadow:none; }
#v3k-root .vk-service > svg { position:absolute; right:1cqw; top:1cqw; width:1.7cqw; height:1.7cqw; color:#ba9974; opacity:.8; }
#v3k-root .vk-service:active { background:#e4c7a2; border-color:#8b4b35; transform:scale(.97); }
#v3k-root .vk-opening-times { display:grid; grid-template-columns:repeat(3,1fr); gap:1cqw; margin-top:2.5cqw; padding:2cqw 0 1cqw; border-top:1px solid #d6c5ad; }
#v3k-root .vk-opening-times div { display:flex; flex-direction:column; gap:.5cqw; font-size:clamp(11px,1.4cqw,17px); color:#836f59; }
#v3k-root .vk-opening-times strong { font-size:clamp(14px,1.85cqw,22px); font-weight:600; color:#493427; font-variant-numeric:tabular-nums; }
#v3k-root .vk-replay { min-height:44px; display:flex; align-items:center; gap:1.5cqw; font-size:clamp(11px,1.3cqw,16px); color:#8f755c; background:none; border:0; padding:0; }

/* A separate, photo-led language page. */
#v3k-root .vk-language { position:relative; min-height:100cqh; display:flex; flex-direction:column; overflow:hidden; background:var(--vk-dark); color:#f9edda; }
#v3k-root .vk-language-image,#v3k-root .vk-language-shade { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:52% 40%; }
#v3k-root .vk-language-image { animation:vk-cover-arrive 1.6s cubic-bezier(.2,.7,.2,1) both; }
#v3k-root .vk-language-shade { background:linear-gradient(180deg,#241911b0, #25191120 35%,#241911c7 65%,#241911f5); }
#v3k-root .vk-language-nav { position:relative; z-index:1; display:flex; justify-content:space-between; padding:4.4cqw; }
#v3k-root .vk-round-back { width:6cqw; height:6cqw; min-height:48px; min-width:48px; color:#f8ebcf; border:1px solid #edcf9d99; border-radius:50%; background:#21170d55; }
#v3k-root .vk-round-back svg { width:26px; transform:rotate(180deg); }
#v3k-root .vk-language-copy { position:relative; padding:9cqh 7cqw 4cqh; z-index:1; }
#v3k-root .vk-language-copy h1 { font:400 clamp(38px,6.4cqw,76px)/1.04 var(--vk-display); letter-spacing:-.03em; margin:2cqw 0; }
#v3k-root .vk-language-copy em { color:#e3bf88; }
#v3k-root .vk-language-panel { position:relative; z-index:1; margin:auto 5cqw 5cqw; border:1px solid #a9875f80; border-radius:18px; padding:4cqw 2cqw; background:#211710dc; text-align:center; }
#v3k-root .vk-language-panel h2 { font:500 clamp(32px,5.2cqw,62px)/1.1 var(--vk-display); margin:0; }
#v3k-root .vk-language-panel > p { font-size:clamp(12px,1.6cqw,19px); color:#baa88b; margin:1.4cqw 0 4cqw; }
#v3k-root .vk-language-options { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); width:100%; max-width:none; gap:1cqw; }
#v3k-root .vk-language-options .v3k-language-option { grid-column:span 2; }
#v3k-root .vk-language-options .v3k-language-option:nth-child(4) { grid-column:2 / span 2; }
#v3k-root .vk-language-options .v3k-language-option:nth-child(5) { grid-column:4 / span 2; }
#v3k-root .vk-language-options .v3k-language-option { background:none; border:0; color:#f9edda; padding:1cqw; gap:1.5cqw; }
#v3k-root .vk-language-options .v3k-flag { width:16cqw; height:16cqw; min-width:76px; min-height:76px; border:5px solid #dfc398; box-shadow:0 7px 22px #0003; }
#v3k-root .v3k-flag-ru { background:linear-gradient(#fff 0 33.333%,#0039a6 33.333% 66.666%,#d52b1e 66.666%); }
#v3k-root .v3k-flag-vi { background:#da251d; }
#v3k-root .v3k-flag-vi::after { content:"★"; position:absolute; inset:0; display:grid; place-items:center; color:#ffdd00; font-size:8cqw; line-height:1; }
#v3k-root .vk-language-options strong { font-size:clamp(18px,2.8cqw,33px); font-weight:500; }
#v3k-root .vk-language-options small { font-size:clamp(11px,1.45cqw,17px); color:#d5c09d; }
#v3k-root .vk-language-foot { display:block; margin:4cqw 0 1cqw; letter-spacing:.25em; font-size:clamp(10px,1.35cqw,16px); color:#b09673; }

/* Official film remains a deliberately opened player, with a persistent exit. */
#v3k-root .vk-film-card { position:relative; width:100%; display:flex; gap:3cqw; align-items:center; overflow:hidden; min-height:20cqw; margin-bottom:3cqw; border:0; border-radius:12px; padding:3cqw; text-align:left; color:#fff1d9; background:#251711; }
#v3k-root .vk-film-card > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 50%; opacity:.38; }
#v3k-root .vk-film-card > span { position:relative; display:grid; gap:1cqw; }
#v3k-root .vk-film-card strong { font:500 clamp(26px,4.5cqw,54px)/1.05 var(--vk-display); }
#v3k-root .vk-film-card small { font-size:clamp(12px,1.5cqw,18px); }
#v3k-root .vk-film-card i { position:relative; margin-left:auto; border:1px solid #dfbd87; display:grid; place-items:center; width:7cqw; height:7cqw; min-width:52px; min-height:52px; border-radius:50%; }
#v3k-root .vk-film-card svg { width:30px; }
#v3k-root .vk-film-dialog { position:fixed; inset:0; margin:auto; width:min(920px,90vw); max-height:90vh; box-sizing:border-box; overflow:auto; border:1px solid #a78056; border-radius:18px; padding:clamp(20px,4vw,42px); color:#f4e4cc; background:#261b15; }
#v3k-root .vk-film-dialog::backdrop { background:#100b08e8; }
#v3k-root .vk-film-header { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:22px; }
#v3k-root .vk-film-header h2 { font:500 clamp(24px,4vw,44px)/1.15 var(--vk-display); margin:8px 0; }
#v3k-root .vk-film-header button { min-width:90px; min-height:54px; padding:10px 14px; color:#f6e2bf; background:transparent; border:1px solid #b28b5c; border-radius:8px; display:flex; gap:16px; align-items:center; font-size:16px; }
#v3k-root .vk-film-header button span { font-size:28px; }
#v3k-root .vk-film-screen { position:relative; aspect-ratio:16/9; min-height:220px; background:#100c09; border-radius:8px; overflow:hidden; }
#v3k-root .vk-film-screen iframe,#v3k-root .vk-film-screen img { position:absolute; width:100%; height:100%; border:0; object-fit:cover; }
#v3k-root .vk-film-notice,#v3k-root .vk-film-hint { font-size:16px; line-height:1.5; color:#d2bc9a; }
#v3k-root .vk-film-dialog .vk-primary { margin-top:12px; }
#v3k-root .v3k-region-address { min-height:66px; padding:10px 12px; display:grid; grid-template-columns:38px minmax(0,1fr); align-items:center; gap:10px; border-top:1px solid #d8cec0; color:var(--vk-ink); background:#fffaf2; }
#v3k-root .v3k-region-address-icon { width:38px; height:38px; display:grid; place-items:center; border-radius:50%; color:#fff5e4; background:var(--vk-copper); font-size:24px; line-height:1; }
#v3k-root .v3k-region-address strong,#v3k-root .v3k-region-address small { display:block; }
#v3k-root .v3k-region-address strong { font-size:clamp(15px,1.8cqw,22px); font-weight:700; }
#v3k-root .v3k-region-address small { margin-top:3px; color:var(--vk-muted); font-size:clamp(13px,1.45cqw,17px); }

/* Touch keyboard for the public kiosk forms. It stays inside the kiosk chrome
   and never opens a browser window or a system control surface. */
#v3k-root.v3k-keyboard-open .v3k-main { scroll-padding-bottom:min(48cqh,620px); }
#v3k-root .v3k-touch-keyboard { position:fixed; z-index:145; left:10cqw; right:0; bottom:0; display:grid; gap:clamp(8px,1cqw,14px); padding:clamp(10px,1.4cqw,20px) clamp(12px,2cqw,26px) clamp(12px,1.8cqw,24px); color:#f8ead4; border-top:1px solid #bd9666; background:rgba(39,26,21,.985); box-shadow:0 -18px 50px rgba(25,12,8,.38); backdrop-filter:blur(14px); }
#v3k-root .v3k-touch-keyboard[hidden] { display:none; }
#v3k-root .v3k-touch-keyboard-head { display:flex; align-items:center; justify-content:space-between; gap:16px; }
#v3k-root .v3k-touch-keyboard-head span { display:grid; gap:2px; min-width:0; }
#v3k-root .v3k-touch-keyboard-head strong { font:600 clamp(16px,2cqw,25px)/1.1 var(--vk-sans); }
#v3k-root .v3k-touch-keyboard-head small { overflow:hidden; color:#d9bf9c; font-size:clamp(12px,1.4cqw,17px); white-space:nowrap; text-overflow:ellipsis; }
#v3k-root .v3k-touch-keyboard button { min-width:44px; min-height:54px; padding:8px 10px; border:1px solid #8f6d4e; border-radius:8px; color:#fff4e0; background:#4a3025; font-size:clamp(15px,2cqw,24px); font-weight:650; touch-action:manipulation; }
#v3k-root .v3k-touch-keyboard button:active,#v3k-root .v3k-touch-keyboard button[aria-pressed="true"] { color:#352218; border-color:#f0d19c; background:#e9c992; transform:translateY(1px); }
#v3k-root .v3k-touch-keyboard-head button { min-width:88px; min-height:48px; color:#f4d6a4; background:transparent; }
#v3k-root .v3k-touch-keyboard-rows { display:grid; gap:clamp(6px,.8cqw,10px); }
#v3k-root .v3k-touch-keyboard-row { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); gap:clamp(5px,.7cqw,9px); }
#v3k-root .v3k-touch-keyboard-actions { display:grid; grid-template-columns:1.3fr 1.3fr 1.1fr 2.6fr 1.4fr 1.3fr; gap:clamp(5px,.7cqw,9px); }
#v3k-root .v3k-touch-keyboard-actions .wide { min-width:0; }
#v3k-root [data-touch-keyboard-active] { border-color:#a45a43 !important; box-shadow:0 0 0 3px #d5a76a66; }
@media (max-width:600px) {
  #v3k-root .v3k-touch-keyboard { left:0; padding-inline:8px; }
  #v3k-root .v3k-touch-keyboard button { min-height:48px; padding-inline:5px; }
  #v3k-root .v3k-touch-keyboard-actions { grid-template-columns:1fr 1fr 1fr 2fr 1fr 1fr; }
}

@keyframes vk-cover-arrive { from { transform:scale(1.045); opacity:.3; } to { transform:scale(1); opacity:1; } }
@keyframes vk-video-arrive { from { opacity:0; } to { opacity:1; } }
@keyframes vk-tile-arrive { from { transform:translate3d(0,20px,0); opacity:0; } to { transform:translate3d(0,0,0); opacity:1; } }
@keyframes vk-scroll-cue { 0%,100% { transform:translateY(-120%); } 70% { transform:translateY(180%); } }
@keyframes vk-page-arrive { from { opacity:0; transform:translate3d(0,26px,0); } to { opacity:1; transform:none; } }
@keyframes vk-page-back { from { opacity:0; transform:translate3d(-24px,0,0); } to { opacity:1; transform:none; } }
#v3k-root .v3k-enter-forward,#v3k-root .v3k-enter-opening,#v3k-root .v3k-enter-home { animation:vk-page-arrive .55s cubic-bezier(.16,1,.3,1) both; }
#v3k-root .v3k-enter-back { animation:vk-page-back .4s cubic-bezier(.16,1,.3,1) both; }
#v3k-root .vk-intro.v3k-enter-opening { animation:none; }
@media (hover:hover) { #v3k-root .vk-service:hover { border-color:#b08c61; background:#f0e1ca; transform:translateY(-2px); } #v3k-root .vk-primary:hover { background:#fae8c9; } }
@media (max-width:600px) {
  #v3k-root .vk-intro-footer { flex-wrap:wrap; }
  #v3k-root .vk-intro-location { display:none; }
  #v3k-root .vk-brand-type { display:none; }
  #v3k-root .vk-intro-controls { flex-direction:column; align-items:stretch; bottom:9%; gap:1cqw; }
  #v3k-root .vk-explore { justify-content:center; min-height:44px; }
  #v3k-root .vk-primary { justify-content:center; }
  #v3k-root .vk-story-copy { top:48%; }
  #v3k-root .vk-story-copy h2 { max-width:100%; }
  #v3k-root .vk-menu-cover { min-height:220px; }
  #v3k-root .vk-service { min-height:110px; }
  #v3k-root .vk-opening-times { padding-right:58px; grid-template-columns:1fr 1fr; }
  #v3k-root .vk-language-copy { padding-top:4cqh; }
  #v3k-root .vk-language-panel { margin-bottom:5cqw; }
  #v3k-root .vk-language-options small { display:none; }
}
@media (prefers-reduced-motion:reduce) { #v3k-root * { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }
#v3k-root.v3k-reduced-motion *,#v3k-root .vk-motion-reduced .vk-scroll-line::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
#v3k-root.v3k-high-contrast { --vk-muted:#514334; }
