
.hlv-front-card,.hlv-public-plan-wrap{max-width:1100px;margin:30px auto;font-family:Inter,Arial,sans-serif;color:#17211c}
.hlv-front-card{background:#fff;border:1px solid #e4ebe7;border-radius:22px;padding:30px;box-shadow:0 18px 50px rgba(24,60,42,.10)}
.hlv-front-heading span,.hlv-public-plan-title span{color:#176b4d;text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:800}
.hlv-front-heading h2,.hlv-public-plan-title h2{font-size:32px;margin:6px 0 8px}.hlv-front-heading p{color:#6f7b75}
.hlv-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.hlv-booking-form label{display:block;margin-bottom:16px}.hlv-booking-form label span{display:block;font-weight:700;margin-bottom:7px}
.hlv-booking-form input,.hlv-booking-form textarea{width:100%;box-sizing:border-box;border:1px solid #cad6cf;border-radius:10px;padding:12px 13px;font-size:16px}
.hlv-front-button{border:0;border-radius:10px;padding:14px 22px;background:#176b4d;color:#fff;font-weight:800;font-size:16px;cursor:pointer}
.hlv-success{margin:16px 0;padding:14px;border-radius:10px;background:#eaf7f0;color:#176b4d;font-weight:700}
.hlv-public-plan-wrap{background:#fff;border:1px solid #e4ebe7;border-radius:22px;padding:24px;box-shadow:0 18px 50px rgba(24,60,42,.08)}
.hlv-public-plan{position:relative;min-height:560px;margin-top:20px;overflow:hidden;border-radius:16px;background:linear-gradient(rgba(23,107,77,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(23,107,77,.05) 1px,transparent 1px),#f9fcfa;background-size:24px 24px}
.hlv-public-table{position:absolute;transform:translate(-50%,-50%);width:90px;height:90px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:3px solid #1b8f5d;background:#ecfaf3;color:#154c37;box-shadow:0 8px 18px rgba(23,107,77,.13)}
.hlv-public-table span{font-size:11px;margin-top:3px}.hlv-public-round{border-radius:50%}.hlv-public-square{border-radius:14px}.hlv-public-rectangle{width:128px;height:76px;border-radius:14px}
.hlv-public-reserved{border-color:#dc5a3f;background:#fff1ed;color:#8c2d1b}.hlv-public-occupied{border-color:#3178c6;background:#edf5ff;color:#1f4d82}.hlv-public-disabled{border-color:#9aa39e;background:#f0f2f1;color:#636b67}
@media(max-width:700px){.hlv-form-grid{grid-template-columns:1fr}.hlv-public-plan{min-height:430px}.hlv-front-card{padding:20px}}

.hlv-booking-experience{max-width:1320px;margin:35px auto;font-family:Inter,Arial,sans-serif;color:#17211c}
.hlv-booking-intro{text-align:center;margin-bottom:24px}.hlv-booking-intro h2{font-size:40px;margin:8px 0}.hlv-booking-intro p{color:#6f7b75;font-size:17px}
.hlv-kicker{color:#176b4d;text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:800}
.hlv-booking-layout{display:grid;grid-template-columns:minmax(340px,480px) minmax(0,1fr);gap:22px;align-items:start}
.hlv-pro-form,.hlv-live-floor{background:#fff;border:1px solid #e4ebe7;border-radius:22px;box-shadow:0 18px 50px rgba(24,60,42,.10)}
.hlv-pro-form{padding:26px;position:sticky;top:25px}.hlv-step{display:flex;gap:12px;align-items:center;margin:8px 0 18px}.hlv-step>span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#eaf5ef;color:#176b4d;font-weight:900}.hlv-step small{display:block;color:#738078;margin-top:2px}
.hlv-selected-table-box{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:14px;margin:4px 0 18px;border:1px solid #dfe8e3;background:#f7faf8;border-radius:12px}.hlv-selected-table-box>span{width:100%;font-size:12px;color:#718078;text-transform:uppercase;font-weight:800}.hlv-selected-table-box strong{flex:1}.hlv-selected-table-box button{border:0;background:transparent;color:#176b4d;font-weight:800;cursor:pointer}
.hlv-submit-button{width:100%;min-height:52px;font-size:17px}.hlv-form-note{text-align:center;color:#748078;font-size:13px;margin-bottom:0}
.hlv-live-floor{padding:22px}.hlv-live-floor-head{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:14px}.hlv-live-floor-head h3{margin:5px 0 0;font-size:25px}.hlv-floor-legend{font-size:13px;color:#65736b;white-space:nowrap}.hlv-floor-legend i{display:inline-block;width:10px;height:10px;border-radius:50%;background:#1b8f5d;margin-right:6px}
.hlv-area-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.hlv-area-tabs button{border:1px solid #dce5e0;background:#f5f8f6;border-radius:999px;padding:9px 14px;font-weight:800;cursor:pointer}.hlv-area-tabs button.is-active{background:#176b4d;color:#fff;border-color:#176b4d}
.hlv-live-canvas{display:none;position:relative;min-height:610px;overflow:hidden;border-radius:17px;background:linear-gradient(rgba(23,107,77,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(23,107,77,.05) 1px,transparent 1px),#f9fcfa;background-size:24px 24px}.hlv-live-canvas.is-active{display:block}
.hlv-select-table{position:absolute;transform:translate(-50%,-50%);width:92px;height:92px;border:3px solid #1b8f5d;background:#ecfaf3;color:#154c37;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 8px 18px rgba(23,107,77,.13);cursor:pointer;transition:.18s ease}.hlv-select-table:hover{transform:translate(-50%,-50%) scale(1.05)}.hlv-select-table.is-selected{box-shadow:0 0 0 6px rgba(23,107,77,.20),0 12px 22px rgba(23,107,77,.18);background:#dff5e9}.hlv-select-table.is-too-small{opacity:.25;cursor:not-allowed;filter:grayscale(1)}.hlv-select-table span{font-size:11px;margin-top:3px}.hlv-floor-help{color:#748078;font-size:13px;margin-bottom:0}
.hlv-success-large{display:flex;gap:8px;flex-direction:column;margin-bottom:20px}
@media(max-width:980px){.hlv-booking-layout{grid-template-columns:1fr}.hlv-pro-form{position:static}.hlv-live-canvas{min-height:520px}}

.hlv-pro-form input,.hlv-pro-form select,.hlv-pro-form textarea{min-height:48px;border:1px solid #cbd8d1;border-radius:11px;background:#fcfefd}.hlv-pro-form input:focus,.hlv-pro-form select:focus,.hlv-pro-form textarea:focus{outline:none;border-color:#176b4d;box-shadow:0 0 0 4px rgba(23,107,77,.1)}.hlv-error-message{display:flex;flex-direction:column;gap:5px;margin-bottom:20px;padding:15px 17px;border:1px solid #f3c6bd;border-radius:12px;background:#fff2ef;color:#9a3022}.hlv-live-canvas{min-height:660px;border:10px solid #fff;background:radial-gradient(circle at 1px 1px,rgba(23,107,77,.08) 1px,transparent 1.4px),#f9fcfa;background-size:24px 24px}.hlv-select-table{border-width:2px;background:linear-gradient(145deg,#f2fcf6,#e2f5ea);box-shadow:0 12px 24px rgba(23,107,77,.12)}
@media(max-width:700px){.hlv-booking-experience{padding:0 10px}.hlv-pro-form,.hlv-live-floor{padding:18px}.hlv-live-floor-head{align-items:flex-start;flex-direction:column}.hlv-live-canvas{min-height:500px;border-width:6px}}

/* v0.7.0 realistic table and chair styling */
.hlv-public-table,.hlv-select-table{width:132px;height:132px;padding:0;border:0;background:transparent;box-shadow:none;overflow:visible;color:inherit}
.hlv-public-rectangle,.hlv-select-table.hlv-public-rectangle{width:176px;height:132px}
.hlv-public-tabletop{position:absolute;left:50%;top:50%;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;width:76px;height:76px;padding:7px;box-sizing:border-box;transform:translate(-50%,-50%);border:2px solid rgba(57,39,24,.32);background:linear-gradient(145deg,#bd8550,#7a4a29);color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 10px 18px rgba(54,36,23,.22)}
.hlv-public-round .hlv-public-tabletop{border-radius:50%}.hlv-public-square .hlv-public-tabletop{border-radius:12px}.hlv-public-rectangle .hlv-public-tabletop{width:118px;height:62px;border-radius:12px}
.hlv-public-tabletop strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.hlv-public-tabletop small{margin-top:3px;font-size:10px;opacity:.8}
.hlv-public-chair{position:absolute;z-index:1;width:21px;height:27px;border-radius:7px 7px 5px 5px;background:linear-gradient(180deg,#3d4943,#17201c);box-shadow:0 4px 8px rgba(14,22,18,.28);pointer-events:none}
.hlv-public-chair::before{content:"";position:absolute;left:3px;right:3px;top:3px;height:8px;border-radius:4px;background:rgba(255,255,255,.15)}
.hlv-public-style-marble .hlv-public-tabletop{border-color:#d7d7d2;background:linear-gradient(135deg,#fff,#e8e8e3 58%,#c7c7c2);color:#252525}
.hlv-public-style-black .hlv-public-tabletop{border-color:#494949;background:linear-gradient(145deg,#343434,#101010);color:#efd18f}
.hlv-public-style-white .hlv-public-tabletop{border-color:#d5deda;background:linear-gradient(145deg,#fff,#eef3f0);color:#24312b}
.hlv-public-style-rustic .hlv-public-tabletop{border-color:#5a351d;background:repeating-linear-gradient(90deg,#8b572f 0 10px,#754222 10px 20px)}
.hlv-public-style-glass .hlv-public-tabletop{border-color:rgba(127,166,183,.65);background:linear-gradient(145deg,rgba(220,246,255,.8),rgba(130,190,210,.48));color:#164354;backdrop-filter:blur(4px)}
.hlv-public-reserved .hlv-public-tabletop{outline:4px solid rgba(220,90,63,.42)}.hlv-public-occupied .hlv-public-tabletop{outline:4px solid rgba(49,120,198,.42)}.hlv-public-disabled{filter:grayscale(1);opacity:.55}
.hlv-select-table:hover{transform:translate(-50%,-50%) scale(1.06)}.hlv-select-table.is-selected .hlv-public-tabletop{box-shadow:0 0 0 6px rgba(23,107,77,.2),0 14px 26px rgba(23,107,77,.24)}
@media(max-width:700px){.hlv-public-table,.hlv-select-table{transform:translate(-50%,-50%) scale(.82)}.hlv-select-table:hover{transform:translate(-50%,-50%) scale(.87)}}

/* v0.8.0 floor environments */
.hlv-floor-style-modern{background-color:#edf0f1!important;background-image:linear-gradient(90deg,rgba(80,90,96,.08) 1px,transparent 1px),linear-gradient(rgba(80,90,96,.08) 1px,transparent 1px)!important;background-size:28px 28px!important}
.hlv-floor-style-luxury{background-color:#171a1c!important;background-image:radial-gradient(circle at 1px 1px,rgba(218,183,110,.16) 1px,transparent 1.5px)!important;background-size:26px 26px!important}
.hlv-floor-style-garden{background-color:#eef5eb!important;background-image:radial-gradient(circle at 20% 10%,rgba(95,145,87,.13),transparent 28%),radial-gradient(circle at 80% 75%,rgba(95,145,87,.12),transparent 30%)!important}
.hlv-floor-style-terrace{background-color:#f5eee2!important;background-image:repeating-linear-gradient(90deg,rgba(126,91,49,.08) 0,rgba(126,91,49,.08) 2px,transparent 2px,transparent 42px)!important}
.hlv-floor-style-industrial{background-color:#e8e7e3!important;background-image:linear-gradient(135deg,rgba(39,44,47,.06) 25%,transparent 25%),linear-gradient(315deg,rgba(39,44,47,.06) 25%,transparent 25%)!important;background-size:34px 34px!important}

.hlv-opening-hours-card{max-width:760px;margin:28px auto;padding:28px;border:1px solid rgba(20,44,34,.12);border-radius:22px;background:#fff;box-shadow:0 18px 48px rgba(20,44,34,.09)}
.hlv-opening-hours-head span{display:block;text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:800;color:#176b4d}.hlv-opening-hours-head h2{margin:5px 0 20px}.hlv-opening-hours-list{display:grid;gap:3px}.hlv-opening-hours-row{display:flex;justify-content:space-between;gap:20px;padding:12px 14px;border-radius:10px}.hlv-opening-hours-row:nth-child(even){background:#f5f8f6}.hlv-opening-hours-row.is-today{background:#e9f5ef;color:#11593f}.hlv-opening-hours-row span{text-align:right}
@media(max-width:560px){.hlv-opening-hours-row{align-items:flex-start;flex-direction:column;gap:4px}.hlv-opening-hours-row span{text-align:left}}

/* Helveti 1.2.1: shared public language and back-to-top controls. */
.hlv-public-language{
 position:fixed!important;left:22px!important;bottom:max(24px,env(safe-area-inset-bottom))!important;
 z-index:99990!important;width:54px!important;height:54px!important;
}
.hlv-public-language-trigger{
 display:grid!important;place-items:center!important;width:54px!important;height:54px!important;
 margin:0!important;padding:0!important;border:2px solid #fff!important;border-radius:50%!important;
 background:#0b0b0b!important;box-shadow:0 10px 30px rgba(0,0,0,.30),0 0 0 1px rgba(0,0,0,.20)!important;
 cursor:pointer!important;transition:transform .18s ease,background-color .18s ease!important;
}
.hlv-public-language-trigger:hover,.hlv-public-language-trigger:focus-visible,.hlv-public-language.is-open .hlv-public-language-trigger{
 background:#202020!important;transform:translateY(-2px)!important;outline:3px solid rgba(0,0,0,.18)!important;
}
.hlv-public-language-menu{
 position:absolute!important;left:0!important;bottom:64px!important;width:54px!important;padding:6px!important;
 border:2px solid #fff!important;border-radius:999px!important;background:#0b0b0b!important;
 box-shadow:0 12px 34px rgba(0,0,0,.34)!important;
}
.hlv-public-language-menu[hidden]{display:none!important}
.hlv-public-language-choice{
 position:relative!important;display:flex!important;align-items:center!important;justify-content:center!important;
 width:40px!important;min-width:40px!important;height:36px!important;min-height:36px!important;margin:0 auto 5px!important;
 padding:0!important;border:1px solid transparent!important;border-radius:18px!important;color:#fff!important;
 background:transparent!important;text-decoration:none!important;transition:background-color .18s ease,border-color .18s ease,transform .18s ease!important;
}
.hlv-public-language-choice:last-child{margin-bottom:0!important}
.hlv-public-language-choice:hover,.hlv-public-language-choice:focus-visible{
 background:rgba(255,255,255,.16)!important;border-color:rgba(255,255,255,.55)!important;
 outline:none!important;transform:scale(1.05)!important;
}
.hlv-public-language-choice.is-active{background:#fff!important;border-color:#fff!important;box-shadow:0 4px 12px rgba(0,0,0,.24)!important}
.hlv-public-language-choice span{
 position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;
 overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;
}
.hlv-control-flag{display:block!important;width:27px!important;height:18px!important;border-radius:2px!important;box-shadow:0 0 0 1px rgba(255,255,255,.5)!important}
.hlv-public-language-trigger .hlv-control-flag{width:29px!important;height:20px!important;border-radius:3px!important}
.hlv-public-back-to-top{
 position:fixed!important;right:22px!important;bottom:max(24px,env(safe-area-inset-bottom))!important;z-index:99990!important;
 display:grid!important;place-items:center!important;align-content:center!important;gap:1px!important;
 width:54px!important;height:54px!important;margin:0!important;padding:0!important;border:2px solid #fff!important;
 border-radius:50%!important;background:#d62b1f!important;color:#fff!important;
 box-shadow:0 10px 30px rgba(214,43,31,.30),0 0 0 1px rgba(214,43,31,.12)!important;cursor:pointer!important;
 opacity:0!important;visibility:hidden!important;transform:translateY(14px) scale(.92)!important;
 transition:opacity .2s ease,transform .2s ease,background .2s ease,visibility .2s!important;
}
.hlv-public-back-to-top.is-visible{opacity:1!important;visibility:visible!important;transform:translateY(0) scale(1)!important}
.hlv-public-back-to-top:hover,.hlv-public-back-to-top:focus-visible{
 background:#b82017!important;transform:translateY(-2px) scale(1)!important;outline:3px solid rgba(214,43,31,.20)!important;
}
.hlv-public-back-to-top span{font-size:22px!important;font-weight:800!important;line-height:17px!important}
.hlv-public-back-to-top small{font-size:8px!important;font-weight:900!important;letter-spacing:.12em!important;line-height:10px!important}
@media(max-width:640px){
 .hlv-public-language{left:14px!important;bottom:max(16px,env(safe-area-inset-bottom))!important;width:50px!important;height:50px!important}
 .hlv-public-language-trigger{width:50px!important;height:50px!important}
 .hlv-public-language-menu{bottom:60px!important;width:50px!important;padding:5px!important}
 .hlv-public-back-to-top{right:14px!important;bottom:max(16px,env(safe-area-inset-bottom))!important;width:50px!important;height:50px!important}
}
@media(prefers-reduced-motion:reduce){
 .hlv-public-language-trigger,.hlv-public-language-choice,.hlv-public-back-to-top{transition:none!important}
}
