/* Herzlich booking widget – uses the design tokens of the Herzlich design pattern. */
.hz-book{--hz-line:var(--line,#eadfd8);--hz-rose:var(--rose,#c23e4e);font-family:var(--sans,system-ui,sans-serif);color:var(--ink,#352826)}
.hz-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;align-items:start}
.hz-cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.hz-cal-head strong{font:500 20px/1.2 var(--serif,Georgia,serif)}
.hz-nav{width:38px;height:38px;border-radius:50%;border:1.5px solid var(--hz-line);background:transparent;font-size:20px;line-height:1;cursor:pointer;color:inherit}
.hz-nav:disabled{opacity:.3;cursor:default}
.hz-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;text-align:center}
.hz-wd{font:700 11.5px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft,#6b5a56);padding:6px 0}
.hz-day{display:grid;place-items:center;aspect-ratio:1/1;border-radius:12px;font-size:15px;color:#b8aaa5;border:0;background:none;font-family:inherit}
.hz-day.past{opacity:.45}
.hz-day.has{background:var(--rose-tint,#fbe9ea);color:var(--rose-hover,#a8323f);font-weight:700;cursor:pointer;transition:background .15s,color .15s}
.hz-day.has:hover,.hz-day.sel{background:var(--hz-rose);color:#fff}
.hz-h{font:500 20px/1.3 var(--serif,Georgia,serif);margin:0 0 12px}
.hz-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px}
.hz-slot{display:flex;flex-direction:column;gap:2px;padding:12px 10px;border-radius:12px;border:1.5px solid var(--hz-line);background:var(--surface,#fff);cursor:pointer;font-family:inherit;color:inherit;text-align:center;transition:border-color .15s,background .15s}
.hz-slot:hover{border-color:var(--hz-rose);background:var(--rose-tint,#fbe9ea)}
.hz-slot b{font-size:16px}
.hz-slot small{font-size:12.5px;color:var(--ink-soft,#6b5a56)}
.hz-msg{color:var(--ink-soft,#6b5a56);margin:0}
.hz-err{color:#a8323f;background:#fbe9ea;padding:12px 14px;border-radius:10px}
.hz-link{background:none;border:0;padding:0;color:var(--hz-rose);font:700 15px var(--sans);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.hz-summary{display:flex;flex-direction:column;gap:2px;background:var(--bg-alt,#f4ece6);border-radius:14px;padding:14px 16px;margin:12px 0 18px}
.hz-summary span{color:var(--ink-soft,#6b5a56);font-size:15px}
.hz-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.hz-form label{display:flex;flex-direction:column;gap:6px;font-weight:700;font-size:14.5px}
.hz-form .hz-full{grid-column:1/-1}
.hz-form input,.hz-form textarea{border:1.5px solid var(--hz-line);border-radius:12px;padding:12px 14px;font:400 16px var(--sans);background:var(--bg,#fbf7f3);color:inherit;width:100%;box-sizing:border-box}
.hz-form input:focus,.hz-form textarea:focus{outline:none;border-color:var(--taupe,#cdada4)}
.hz-form .hz-check{flex-direction:row;align-items:flex-start;font-weight:400;font-size:14px;color:var(--ink-soft,#6b5a56)}
.hz-form .hz-check input{width:20px;height:20px;flex:none;margin-top:1px}
.hz-form .hz-check a{color:var(--hz-rose)}
.hz-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.hz-done{text-align:center;padding:12px 0}
.hz-done p{color:var(--ink-soft,#6b5a56);margin:0 0 10px}
.hz-ok{width:56px;height:56px;border-radius:50%;background:#e6ebe1;color:#4d5b45;display:grid;place-items:center;font-size:28px;margin:0 auto 12px}
.hz-empty p{margin:0 0 14px;color:var(--ink-soft,#6b5a56)}
.hz-empty .btn{margin:0 6px 6px 0}
.hz-loading{color:var(--ink-soft,#6b5a56)}
.hz-modal{position:fixed;inset:0;background:rgba(53,40,38,.55);display:grid;place-items:center;z-index:9999;padding:16px}
.hz-dialog{position:relative;background:var(--surface,#fff);border-radius:24px;padding:32px;max-width:460px;width:100%;box-shadow:0 20px 60px rgba(0,0,0,.25)}
.hz-dialog h3{font:500 26px/1.2 var(--serif,Georgia,serif);margin:0 0 14px}
.hz-dialog p{margin:0 0 12px;color:var(--ink-soft,#6b5a56)}
.hz-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.hz-x{position:absolute;top:14px;right:14px;border:0;background:none;font-size:18px;cursor:pointer;color:inherit}
@media (max-width:760px){.hz-wrap{grid-template-columns:1fr}.hz-form{grid-template-columns:1fr}}
