.hhsv{
  --hhsv-main:#17365d;
  --hhsv-accent:#eef4fb;
  --hhsv-button:#17365d;
  --hhsv-today:#c62828;
  --hhsv-text:#1f2937;
  --hhsv-muted:#667085;
  --hhsv-line:#dfe5ec;
  --hhsv-radius:12px;
  max-width:100%;
  color:var(--hhsv-text);
  font-family:inherit;
  line-height:1.45;
  box-sizing:border-box;
}
.hhsv *{box-sizing:border-box}
.hhsv button,.hhsv select,.hhsv input,.hhsv textarea{font:inherit}
.hhsv button{cursor:pointer}
.hhsv button:focus-visible,.hhsv select:focus-visible,.hhsv input:focus-visible,.hhsv textarea:focus-visible,.hhsv a:focus-visible{outline:3px solid rgba(23,54,93,.22);outline-offset:2px}

/* Kopf / Navigation */
.hhsv-toolbar{
  position:relative;
  display:grid;
  gap:5px;
  margin:0 0 16px;
  padding:10px 225px 10px 12px;
  border:1px solid var(--hhsv-line);
  border-radius:var(--hhsv-radius);
  background:#fff;
  box-shadow:0 2px 10px rgba(15,23,42,.04);
}
.hhsv-toolbar-row{display:flex;gap:9px;align-items:center;flex-wrap:wrap;min-width:0}
.hhsv-toolbar-row-options{padding-bottom:5px;border-bottom:1px solid #edf0f3}
.hhsv-toolbar label{display:flex;gap:6px;align-items:center;font-weight:600;color:#344054;min-width:0}
.hhsv-field-label{white-space:nowrap}
.hhsv-period-word{display:none}
.hhsv-toolbar select{min-height:38px;max-width:100%;padding:6px 30px 6px 9px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:var(--hhsv-text)}
.hhsv-toolbar button{min-height:38px;padding:7px 11px;background:#fff;border:1px solid #cbd5e1;border-radius:8px;color:#344054;font-weight:600}
.hhsv-toolbar button:hover{border-color:var(--hhsv-main);color:var(--hhsv-main)}
.hhsv-toolbar button.is-active{background:var(--hhsv-main);border-color:var(--hhsv-main);color:#fff}
.hhsv-toolbar #hhsv-prev,.hhsv-toolbar #hhsv-next{min-width:38px;font-size:20px;line-height:1}
.hhsv-toolbar strong{color:var(--hhsv-main);font-size:1.03em;min-width:150px;text-align:center}
.hhsv-toolbar-label,.hhsv-view-label{font-weight:700;color:#344054;white-space:nowrap}
.hhsv-view-label{margin-left:16px}
.hhsv-step-control{display:flex;align-items:center;gap:7px;min-width:0}
.hhsv-step-options{display:flex;gap:4px;flex-wrap:wrap}
.hhsv-step-options label{display:block}
.hhsv-step-options input{position:absolute;opacity:0;pointer-events:none}
.hhsv-step-options span{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:6px 10px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#344054;font-weight:650;cursor:pointer;white-space:nowrap}
.hhsv-step-options input:checked+span{background:var(--hhsv-main);border-color:var(--hhsv-main);color:#fff;box-shadow:0 1px 4px rgba(15,23,42,.12)}
.hhsv-step-options input:focus-visible+span{outline:3px solid rgba(23,54,93,.22);outline-offset:2px}

.hhsv-toolbar-row-options>label:first-child{margin-right:14px}
.hhsv-tariff-hints{position:absolute;top:8px;right:10px;width:200px;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:2px;color:#667085;font-size:.66em}
.hhsv-tariff-hints-head{display:grid;grid-template-columns:1fr auto;gap:7px;align-items:center;padding:0 5px 2px;color:#475467;font-weight:700;white-space:nowrap}
.hhsv-tariff-hints-head b{font-weight:700;text-align:right}
.hhsv-tariff-rate{display:grid;grid-template-columns:1fr auto;gap:7px;align-items:center;padding:2px 5px;border-radius:5px;background:var(--hhsv-zone,#f8fafc);line-height:1.12;white-space:nowrap}
.hhsv-tariff-rate span{color:#667085}
.hhsv-tariff-rate b{color:#344054;font-weight:700}
.hhsv-inquiry-card{display:grid;gap:6px;padding:8px 9px;border:1px solid #d7e0ea;border-radius:8px;background:#fff;color:#344054;line-height:1.2}
.hhsv-inquiry-card>strong{color:var(--hhsv-main);font-size:1.05em}
.hhsv-inquiry-card small{font-size:.9em;color:#667085;white-space:normal}
.hhsv-inquiry-actions{display:flex;gap:5px;flex-wrap:wrap}
.hhsv-inquiry-action{display:inline-block;padding:5px 7px;border:1px solid var(--hhsv-main);border-radius:6px;color:var(--hhsv-main);background:#fff;text-decoration:none;font-weight:700;font-size:.94em}
.hhsv-inquiry-action:hover{background:var(--hhsv-accent)}

.hhsv-info{margin:0 0 16px;padding:13px 15px;border:1px solid var(--hhsv-line);border-radius:10px;background:#fafbfd;white-space:pre-line;line-height:1.5;color:#475467}
.hhsv-loading,.hhsv-error{padding:18px;border:1px solid var(--hhsv-line);border-radius:10px;background:#fafbfd}
.hhsv-error{background:#fff4f4;border-color:#efcaca;color:#8b1e1e}

/* Monatsansicht */
.wd,.days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.wd{margin-bottom:6px}
.wd b{text-align:center;padding:7px 4px;color:#667085;font-size:.9em}
.days button{
  min-height:104px;
  background:#fff;
  border:1px solid var(--hhsv-line);
  border-radius:10px;
  padding:9px;
  text-align:left;
  display:flex;
  flex-direction:column;
  gap:8px;
  transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease;
}
.days button:not(:disabled):hover{border-color:var(--hhsv-main);box-shadow:0 4px 14px rgba(15,23,42,.08);transform:translateY(-1px)}
.days button b{font-size:1.05em;color:#1f2937}
.days button small{font-size:.76em;line-height:1.28;color:#475467;overflow-wrap:anywhere}
.days button.has-free{background:#f6fbf7;border-color:#cfe3d3}
.days button.no-free{background:#fafafa;border-color:#e5e7eb}
.days button.no-free small{color:#8b1e1e;font-weight:600}
.days button.today{background:var(--hhsv-today);border-color:var(--hhsv-today)}
.days button.today:disabled{opacity:1}
.days button:disabled{opacity:.52;cursor:not-allowed;transform:none;box-shadow:none}

/* Wochenansicht */
.week{display:grid;grid-template-columns:repeat(7,minmax(132px,1fr));gap:8px;overflow-x:auto;padding-bottom:4px}
.week section{min-width:132px;border:1px solid var(--hhsv-line);border-radius:11px;background:#fff;padding:7px}
.week h4{margin:0 0 8px;padding:8px 5px;text-align:center;border-bottom:1px solid var(--hhsv-line);color:var(--hhsv-main);font-size:.96em}
.hhsv-time-request{display:block;margin:4px 0 7px;padding:6px 5px;border:1px dashed #bdc9d8;border-radius:7px;background:rgba(255,255,255,.78);color:var(--hhsv-main);font-size:.72em;line-height:1.2;text-align:center;text-decoration:none;font-weight:650}
.hhsv-time-request:hover{background:#fff;border-color:var(--hhsv-main);text-decoration:underline}
.week section.today{background:var(--hhsv-today);border-color:var(--hhsv-today)}
.week button{display:flex;justify-content:space-between;align-items:center;gap:5px;width:100%;height:38px;min-height:38px;max-height:38px;margin:4px 0;padding:6px 7px;border:1px solid #dfe5ec;border-left:5px solid var(--hhsv-zone,#dfe5ec);border-radius:7px;text-align:left;overflow:hidden;transition:box-shadow .15s ease,border-color .15s ease,transform .15s ease;font-size:.88em;line-height:1}
.week .hhsv-slot-time{flex:0 0 auto;font-weight:750;white-space:nowrap}
.week .hhsv-slot-state{flex:1 1 auto;min-width:0;font-size:.88em;text-align:right;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.week .free{background:var(--hhsv-zone,#f2faf3);color:#243b2b}
.week .free:not(:disabled):hover{border-color:var(--hhsv-main);box-shadow:0 2px 8px rgba(26,80,35,.10);transform:translateY(-1px)}
.week .busy{background:#f3f4f6;color:#667085;opacity:.88}
.week .noduration{background:var(--hhsv-zone,#fff8e8);color:#665322;opacity:.78}
.week .past{justify-content:flex-start;background:rgba(255,255,255,.55);color:#98a2b3;border-left-color:#dfe5ec;opacity:.72}
.week button:disabled{cursor:not-allowed}
.week button.inquiry-view:disabled{opacity:1;cursor:default}
.days button.view-only{cursor:default}
.week button.selected-slot{outline:3px solid var(--hhsv-main);outline-offset:1px;box-shadow:0 3px 12px rgba(23,54,93,.15)}

/* Dialog / Buchung */
#hhsv-dialog{
  border:0;
  border-radius:16px;
  width:min(520px,calc(100vw - 24px));
  max-width:calc(100vw - 24px);
  max-height:min(88vh,820px);
  padding:0;
  overflow:auto;
  background:#fff;
  box-shadow:0 24px 70px rgba(15,23,42,.28);
}
#hhsv-dialog::backdrop{background:rgba(15,23,42,.55);backdrop-filter:blur(2px)}
#hhsv-form{display:grid;gap:14px;padding:24px;position:relative}
#hhsv-booking-head{display:grid;gap:11px;padding:16px;border:1px solid var(--hhsv-line);border-radius:13px;background:var(--hhsv-accent)}
#hhsv-booking-head h3,#hhsv-review-step h3{margin:0;color:var(--hhsv-main);font-size:1.3em}
.hhsv-choice-line{margin:0;font-weight:700;color:#344054}.hhsv-choice-date{font-weight:650;color:#475467}
#hhsv-form label{display:grid;gap:5px;font-weight:650;color:#344054}
#hhsv-form input:not([type="checkbox"]):not([type="hidden"]),#hhsv-form select,#hhsv-form textarea{width:100%;max-width:100%;min-width:0;min-height:43px;padding:9px 10px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;color:var(--hhsv-text);box-shadow:inset 0 1px 2px rgba(15,23,42,.03)}
#hhsv-form input:focus,#hhsv-form select:focus,#hhsv-form textarea:focus{border-color:var(--hhsv-main);outline:none;box-shadow:0 0 0 3px rgba(23,54,93,.10)}
#hhsv-start{transition:background-color .15s ease,border-color .15s ease}
#hhsv-form .check{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:9px;font-weight:400}
#hhsv-form .check input{margin-top:4px}
#hhsv-form .check a{color:var(--hhsv-main);font-weight:700;text-decoration:underline;text-underline-offset:2px}
.hhsv-close{position:absolute;right:12px;top:10px;z-index:3;width:36px;height:36px;border:0;border-radius:50%;background:#f3f4f6;color:#475467;font-size:24px;line-height:1}
.hhsv-close:hover{background:#e5e7eb;color:#111827}
.hhsv-help{font-size:.9em;color:var(--hhsv-muted);line-height:1.4}.hhsv-phone-help{font-size:.72em;line-height:1.15;white-space:nowrap;letter-spacing:-.01em}
.hhsv select:disabled{background:#f3f4f6;color:#777;cursor:not-allowed}
#hhsv-price{color:var(--hhsv-main);font-size:1.1em}

/* Preiswechsel im Buchungsfenster */
.hhsv-price-bands{margin-top:2px;padding:10px 12px;border:1px solid #d8e1eb;border-radius:10px;background:#fff;font-size:.9em}
.hhsv-price-bands[hidden]{display:none}
.hhsv-price-bands>strong{display:block;margin-bottom:5px;color:var(--hhsv-main)}
.hhsv-price-band{display:flex;justify-content:space-between;gap:12px;padding:7px 9px;color:#475467;background:var(--hhsv-zone,#fff);border-radius:7px}
.hhsv-price-band b{color:#1f2937;white-space:nowrap}

/* Buttons */
.primary,#hhsv-confirm-booking{min-height:44px;padding:10px 16px;border:1px solid var(--hhsv-button);border-radius:9px;background:var(--hhsv-button);color:#fff;font-weight:750;box-shadow:0 2px 7px rgba(15,23,42,.10)}
.primary:hover,#hhsv-confirm-booking:hover{filter:brightness(.94)}
.hhsv-review-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:2px}
.hhsv-review-actions button{min-height:44px;padding:10px 14px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;color:#344054;font-weight:650}
.hhsv-review-actions #hhsv-review-back{border-color:var(--hhsv-main);color:var(--hhsv-main)}
.hhsv-review-actions #hhsv-review-cancel-button{border-color:#d0d5dd;color:#667085;background:#f9fafb}
.hhsv-review-actions #hhsv-confirm-booking{background:var(--hhsv-button);border-color:var(--hhsv-button);color:#fff}
.hhsv-review-actions button:disabled{opacity:.55;cursor:wait}

/* Buchungskontrolle */
#hhsv-entry-step{display:grid;gap:12px}
#hhsv-booking-head[hidden],#hhsv-entry-step[hidden],#hhsv-review-step[hidden]{display:none!important}
#hhsv-form.is-review #hhsv-booking-head,#hhsv-form.is-review #hhsv-entry-step{display:none!important}
#hhsv-review-step{display:grid;gap:13px}
#hhsv-review-step>p{margin:0;color:#475467}
.hhsv-review{display:grid;gap:10px;margin:0}
.hhsv-review-section{border:1px solid var(--hhsv-line);border-radius:12px;overflow:hidden;background:#fff}
.hhsv-review-section h4{margin:0;padding:10px 12px;background:var(--hhsv-accent);border-bottom:1px solid var(--hhsv-line);color:var(--hhsv-main);font-size:1em}
.hhsv-review-row{display:grid;grid-template-columns:minmax(110px,34%) minmax(0,1fr);gap:12px;padding:9px 12px;border-bottom:1px solid #edf0f3}
.hhsv-review-row:last-of-type{border-bottom:0}
.hhsv-review dt{font-weight:700;color:#344054}
.hhsv-review dd{margin:0;overflow-wrap:anywhere;white-space:pre-line}
.hhsv-review-route{padding:0 12px 11px}
.hhsv-review-route a{display:inline-block;padding:7px 10px;border:1px solid var(--hhsv-main);border-radius:8px;color:var(--hhsv-main);text-decoration:none;font-weight:700}
.hhsv-review-route a:hover{background:var(--hhsv-accent)}

/* Meldungen */
.hhsv-booking-success{margin:0 0 16px;padding:15px 17px;border:1px solid #a9d3b1;border-left:5px solid #3b8f4b;border-radius:11px;background:#f1faf3;color:#245c2f;font-weight:700;line-height:1.45;box-shadow:0 3px 12px rgba(21,87,36,.08)}
.hhsv-booking-success[hidden]{display:none}
.hhsv-cancel{margin:0 0 18px;padding:16px;border:1px solid #e2d6ba;border-radius:11px;background:#fff8e8;line-height:1.45}
.hhsv-cancel h3{margin-top:0;color:#6f5822}
.hhsv-cancel-success{background:#f1faf3;border-color:#b8d9bd}
.hhsv-cancel-button{min-height:44px;padding:10px 14px;border:0;border-radius:9px;background:var(--hhsv-button);color:#fff;font-weight:700;cursor:pointer}
.hhsv-contact,.hhsv-location{margin:0 0 14px;padding:12px 14px;border:1px solid var(--hhsv-line);border-radius:10px;background:#f8fbff;line-height:1.5}
.hhsv-contact[hidden],.hhsv-location[hidden]{display:none}
.hhsv-contact a{overflow-wrap:anywhere}.hhsv-contact-note{display:inline-block;margin-top:6px;white-space:normal}.hhsv-location{white-space:pre-line;background:#fafafa}

/* Keine überstehenden Formularfelder */
#hhsv-form,#hhsv-entry-step,#hhsv-review-step,#hhsv-booking-head{min-width:0;max-width:100%}
#hhsv-form label{min-width:0;max-width:100%}

@media(max-width:760px){
  .hhsv-toolbar{padding:10px;gap:8px}
  .hhsv-toolbar-row{align-items:stretch}
  .hhsv-toolbar-row-options{display:grid;grid-template-columns:1fr;gap:8px}
  .hhsv-toolbar-row-options>label{width:100%;display:grid;grid-template-columns:108px minmax(0,1fr);align-items:center}
  .hhsv-toolbar select{width:100%;min-height:44px}
  .hhsv-step-control{display:grid;grid-template-columns:108px minmax(0,1fr);gap:6px;align-items:center}
  .hhsv-step-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
  .hhsv-step-options span{width:100%;min-height:44px;padding:6px 5px;font-size:.9em}
  .hhsv-field-label,.hhsv-step-control>.hhsv-toolbar-label{font-size:.80em;line-height:1.15;white-space:nowrap;letter-spacing:-.01em}
  .hhsv-toolbar-row-date{display:flex;gap:6px;align-items:center}
  #hhsv-period{display:grid;grid-template-columns:1fr;gap:0;min-width:142px;line-height:1.18;text-align:center;font-size:.86em}
  #hhsv-period .hhsv-period-from,#hhsv-period .hhsv-period-to{display:block;white-space:nowrap}
  #hhsv-period .hhsv-period-word{display:inline}
  #hhsv-period .hhsv-period-sep{display:none}
  .hhsv-toolbar-row-date .hhsv-toolbar-label{width:100%}
  .hhsv-toolbar-row-date .hhsv-view-label{margin-left:10px}
  .hhsv-toolbar-row-options>label:first-child{margin-right:0}
  .hhsv-tariff-hints{position:static;margin-left:0;width:100%;max-width:none;min-width:0;font-size:.72em}
  .hhsv-tariff-hints-head{margin-top:2px}
  .hhsv-tariff-rate{grid-template-columns:1fr auto;min-height:28px}
  .hhsv-inquiry-actions{display:grid;grid-template-columns:1fr 1fr}
  .hhsv-inquiry-action{text-align:center;min-height:38px;display:flex;align-items:center;justify-content:center}
  .hhsv-toolbar button{min-height:44px}
  .hhsv-toolbar strong{flex:1 1 150px;min-width:120px;text-align:center;padding:5px 0}
  .week{grid-template-columns:1fr;overflow:visible;gap:12px}
  .week section{min-width:0;width:100%}
  .week h4{font-size:1.02em;padding:9px}
  .week button{height:46px;min-height:46px;max-height:46px;padding:9px 10px;font-size:.94em}
  #hhsv-dialog{width:calc(100vw - 14px);max-width:calc(100vw - 14px);max-height:94vh;border-radius:14px}
  #hhsv-form{padding:18px 14px;gap:13px}
  #hhsv-booking-head{padding:13px}
  #hhsv-form input:not([type="checkbox"]):not([type="hidden"]),#hhsv-form select,#hhsv-form textarea{min-height:46px;font-size:16px}
  .primary,.hhsv-review-actions button{min-height:48px}
  .hhsv-review-actions{display:grid;grid-template-columns:1fr}
  .hhsv-review-actions #hhsv-confirm-booking{order:1}
  .hhsv-review-actions #hhsv-review-back{order:2}
  .hhsv-review-actions #hhsv-review-cancel-button{order:3}
}

@media(max-width:650px){
  .wd,.days{gap:3px}
  .wd b{padding:5px 1px;font-size:.78em}
  .days button{min-height:86px;padding:6px 5px;border-radius:7px;gap:4px}
  .days button b{font-size:.92em}
  .days button small{font-size:.61em;line-height:1.18}
}


@media(max-width:560px){
  .hhsv-phone-help{font-size:.64em;letter-spacing:-.025em}
}
@media(max-width:480px){
  .hhsv-review-row{grid-template-columns:1fr;gap:2px;padding:9px 11px}
  .hhsv-review dt{font-size:.88em;color:#667085}
  .hhsv-price-band{display:grid;grid-template-columns:1fr auto;gap:6px}
}

.hhsv-no-rooms{padding:16px 18px;border:1px solid var(--hhsv-line,#d8e1eb);border-radius:11px;background:#f8fbff;color:#475467;font-weight:650}

#hhsv-discount-code-wrap[hidden]{display:none!important}

/* Serienbuchung / Wiederholung */
.hhsv-repeat-box{display:grid;gap:8px;padding:10px 12px;border:1px solid var(--hhsv-line);border-radius:10px;background:#fbfcfe}
.hhsv-repeat-options{display:grid;grid-template-columns:1fr 1fr;gap:9px 12px;padding-top:4px}
.hhsv-repeat-options[hidden]{display:none!important}
.hhsv-repeat-choice{grid-column:1/-1;display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.hhsv-repeat-choice label{display:flex!important;align-items:center;gap:6px;font-weight:600!important}
.hhsv-repeat-choice input{width:auto!important;min-height:0!important}
.hhsv-series-review-section{overflow:visible}
.hhsv-series-review-list{display:grid;gap:0}
.hhsv-series-review-item{display:grid!important;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid #edf0f3;font-weight:400!important;cursor:pointer}
.hhsv-series-review-item input{width:auto!important;min-height:0!important;margin:0}
.hhsv-series-review-item span{display:grid;gap:2px}
.hhsv-series-review-item small{color:#667085}
.hhsv-series-review-item.is-unavailable{background:#f7f7f8;color:#8a8f98;cursor:not-allowed}
.hhsv-series-review-item.is-unavailable small{color:#9a5f5f}
.hhsv-series-total{display:flex;justify-content:space-between;gap:12px;padding:11px 12px;background:var(--hhsv-accent);color:var(--hhsv-main);font-weight:700}
.hhsv-series-cancel-list{display:grid;gap:7px;margin:12px 0 14px}
.hhsv-series-cancel-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;padding:10px 12px;border:1px solid #e3e7ec;border-radius:9px;background:#fff;cursor:pointer}
.hhsv-series-cancel-item input{margin:0}
.hhsv-series-cancel-item span{display:grid;gap:2px}
.hhsv-series-cancel-item small{color:#667085}
.hhsv-series-cancel-item.is-disabled{background:#f5f5f5;color:#8c8c8c;cursor:not-allowed}
.hhsv-series-cancel-actions{display:flex;gap:9px;flex-wrap:wrap}
.hhsv-cancel-all{background:#7a2430}
@media(max-width:760px){
  .hhsv-repeat-options{grid-template-columns:1fr}
  .hhsv-repeat-choice{grid-column:auto}
  .hhsv-series-total{display:grid;grid-template-columns:1fr;gap:3px}
  .hhsv-series-cancel-actions{display:grid;grid-template-columns:1fr}
}
