/* Heilhornet Buchungs-Widget — eingebettet via [hh_booking]. Scope: .hhb */
.hhb { --hhb-accent:#c1121f; --hhb-bg:#fff; --hhb-line:#e3ddd2; --hhb-ink:#2a2722; --hhb-muted:#7d756a;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; color:var(--hhb-ink);
  max-width:760px; line-height:1.45; }
.hhb *{ box-sizing:border-box; }
.hhb h3{ margin:0 0 2px; font-size:20px; }
.hhb .hhb-place{ color:var(--hhb-muted); font-size:14px; margin-bottom:8px; }
.hhb .hhb-from{ font-size:15px; margin:6px 0 14px; }
.hhb .hhb-from b{ color:var(--hhb-accent); font-size:17px; }
.hhb-card{ border:1px solid var(--hhb-line); border-radius:10px; padding:14px; margin-bottom:14px; background:var(--hhb-bg); }
.hhb-sec-title{ font-weight:700; font-size:14px; margin:0 0 10px; }
/* Kalender */
.hhb-cal-nav{ display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
.hhb-cal-nav button{ border:1px solid var(--hhb-line); background:#fff; border-radius:7px; padding:4px 11px; cursor:pointer; font-size:16px; }
.hhb-cal-nav button:disabled{ opacity:.35; cursor:default; }
.hhb-month-name{ font-weight:700; font-size:14px; }
.hhb-week{ display:grid; grid-template-columns:repeat(7,1fr); gap:3px; }
.hhb-dow{ text-align:center; font-size:11px; color:var(--hhb-muted); padding:2px 0; }
.hhb-day{ text-align:center; padding:7px 0; font-size:13px; border-radius:6px; }
.hhb-day.avail{ background:#e8f3ec; color:#1c6b3a; cursor:pointer; }
.hhb-day.avail:hover{ background:#d3eada; }
.hhb-day.booked{ background:#f3efe9; color:#bcb3a6; }
.hhb-day.tooshort{ background:#eef5ef; color:#acc7b5; cursor:not-allowed; }
.hhb-day.sel{ background:var(--hhb-accent); color:#fff; cursor:pointer; }
.hhb-day.empty{ background:transparent; }
.hhb-cal-hint{ font-size:13px; color:var(--hhb-muted); margin:2px 0 8px; }
.hhb-cal-hint.active{ background:var(--hhb-accent); color:#fff; padding:8px 11px; border-radius:8px; line-height:1.35; }
.hhb-cal-hint.active b{ font-weight:700; }
.hhb-range{ margin-top:10px; font-size:13px; padding:8px 10px; border-radius:7px; background:#faf7f2; border:1px solid var(--hhb-line); }
.hhb-range.ok{ background:#e8f3ec; border-color:#aedcbf; color:#1c6b3a; }
.hhb-range.warn{ background:#f7dede; border-color:#e6a8a8; color:#9c3030; }
/* Bookables */
.hhb-unit{ display:flex; align-items:center; gap:9px; padding:7px 0; border-top:1px solid var(--hhb-line); }
.hhb-unit:first-child{ border-top:0; }
.hhb-unit input{ width:17px; height:17px; }
.hhb-unit .hhb-u-name{ flex:1; font-size:14px; }
.hhb-unit .hhb-u-type{ font-size:11px; color:var(--hhb-muted); }
.hhb-btn{ background:var(--hhb-accent); color:#fff; border:0; border-radius:8px; padding:10px 16px; font-size:15px; font-weight:600; cursor:pointer; }
.hhb-btn:disabled{ opacity:.45; cursor:default; }
.hhb-btn.ghost{ background:#fff; color:var(--hhb-ink); border:1px solid var(--hhb-line); }
/* Warenkorb / Formular */
.hhb-cart-item{ display:flex; justify-content:space-between; gap:10px; font-size:13px; padding:6px 0; border-top:1px dashed var(--hhb-line); }
.hhb-cart-item:first-child{ border-top:0; }
.hhb-cart-rm{ color:var(--hhb-accent); cursor:pointer; background:none; border:0; font-size:13px; }
.hhb-total{ text-align:right; font-weight:700; margin-top:8px; }
.hhb-field{ margin:8px 0; }
.hhb-field label{ display:block; font-size:12px; color:var(--hhb-muted); margin-bottom:3px; }
.hhb-field input, .hhb-field textarea{ width:100%; padding:9px 10px; border:1px solid var(--hhb-line); border-radius:7px; font:inherit; }
.hhb-ok{ background:#e8f3ec; border:1px solid #aedcbf; color:#1c6b3a; border-radius:8px; padding:12px; font-size:14px; }
.hhb-err{ background:#f7dede; border:1px solid #e6a8a8; color:#9c3030; border-radius:8px; padding:10px; font-size:13px; margin-top:8px; }
.hhb-loading{ color:var(--hhb-muted); padding:20px; text-align:center; }
.hhb-muted{ color:var(--hhb-muted); font-size:12px; }
/* Hero + Info-Widgets */
.hhb-hero{ width:100%; height:300px; object-fit:cover; border-radius:10px; margin-bottom:8px; }
.hhb-thumbs{ display:flex; gap:6px; overflow-x:auto; margin-bottom:12px; padding-bottom:2px; }
.hhb-thumb{ width:64px; height:48px; object-fit:cover; border-radius:7px; cursor:pointer; opacity:.7; flex:0 0 auto; border:2px solid transparent; }
.hhb-thumb:hover{ opacity:1; }
.hhb-thumb.active{ opacity:1; border-color:var(--hhb-accent); }
.hhb-widgets{ display:flex; flex-wrap:wrap; gap:8px; margin:8px 0 14px; }
.hhb-widget{ display:flex; flex-direction:column; align-items:center; gap:3px; border:1px solid var(--hhb-line); border-radius:9px; padding:8px 6px; cursor:pointer; font-size:11px; min-width:80px; background:#fff; text-align:center; }
.hhb-widget:hover{ background:#faf7f2; }
.hhb-widget .ic{ font-size:20px; }
/* Modal-Popup für Info-Widgets */
.hhb-modal{ position:fixed; inset:0; z-index:9999; background:rgba(0,0,0,.5); display:flex; align-items:center; justify-content:center; padding:16px; }
.hhb-modal-card{ position:relative; background:#fff; border-radius:14px; width:100%; max-width:460px; max-height:85vh; overflow:auto; padding:20px 20px 18px; box-shadow:0 24px 64px rgba(0,0,0,.32); }
.hhb-modal-close{ position:absolute; top:8px; right:12px; border:0; background:none; font-size:26px; line-height:1; cursor:pointer; color:#9b9384; }
.hhb-modal-close:hover{ color:var(--hhb-ink); }
.hhb-modal-body h4{ margin:0 0 12px; font-size:17px; }
.hhb-modal-body .hhb-now{ font-size:15px; margin-bottom:8px; }
.hhb-modal-body table{ width:100%; border-collapse:collapse; font-size:13px; margin:4px 0 8px; }
.hhb-modal-body td{ padding:5px 6px; border-bottom:1px solid var(--hhb-line); }
.hhb-modal-body td:first-child{ white-space:nowrap; color:var(--hhb-muted); }
.hhb-map{ width:100%; height:320px; border-radius:9px; overflow:hidden; margin-bottom:8px; background:#dde6ee; }
.hhb-map .leaflet-control-attribution{ font-size:9px; }
.hhb-maplink{ font-size:13px; color:var(--hhb-accent); text-decoration:none; font-weight:600; }
.hhb-maplink:hover{ text-decoration:underline; }
.hhb-static-img{ width:100%; border-radius:9px; margin-bottom:12px; display:block; }
.hhb-modal-body p{ margin:0 0 10px; }
.hhb-modal-body a{ color:var(--hhb-accent); }
/* Einheiten/Boote als Bildkarten */
.hhb-grouptitle{ font-size:13px; font-weight:700; margin:10px 0 6px; }
.hhb-units{ display:grid; grid-template-columns:repeat(auto-fill,minmax(215px,1fr)); gap:12px; }
.hhb-ucard{ border:1px solid var(--hhb-line); border-radius:10px; overflow:hidden; background:#fff; display:flex; flex-direction:column; }
.hhb-ucard.sel{ outline:2px solid var(--hhb-accent); }
.hhb-ucard img{ width:100%; height:135px; object-fit:cover; background:#f1ece3; }
.hhb-ucard .ub{ padding:9px 10px; display:flex; flex-direction:column; gap:5px; flex:1; }
.hhb-ucard .un{ font-weight:700; font-size:13px; line-height:1.3; }
.hhb-ucard .ua{ font-size:12px; color:var(--hhb-muted); }
.hhb-ucard .up{ font-weight:700; color:var(--hhb-accent); font-size:13px; }
.hhb-ucard .usel{ margin-top:auto; border:1px solid var(--hhb-line); background:#fff; border-radius:7px; padding:7px; cursor:pointer; font-size:13px; }
.hhb-ucard.sel .usel{ background:var(--hhb-accent); color:#fff; border-color:var(--hhb-accent); }
