/* Spa Suites Buchung: Gast-Widget
   Marke wie spa-suites.de: Cormorant Garamond (Überschriften, Auswahl) + Inter (kleine UI-Texte, Zahlen),
   Tinte #372718, Creme #fff7f0, Akzent Orange (für Text/Flächen mit weißer Schrift auf AA abgedunkelt).
   Elementor setzt Button-Stile global, daher die gezielten !important-Regeln. */
.ssb{
  --ink:#372718; --ink2:#5f5246; --ink3:#6f6357;
  --line:#e3dccd; --line2:#c9bca6; --edge:#b8a990;
  --bg:#fffdfa; --panel:#f5eacc; --sel:#372718; --sel-ink:#fff7f0;
  --accent:#b5541f; --accent-hover:#9c4718; --accent-soft:#fbe7d9;
  --free:#e8ebda; --few:#f7dfc6; --err-bg:#fbe6e3; --err:#8f2a20;
  --serif:"Cormorant Garamond",Georgia,serif; --sans:var(--serif); /* Misha 25.10.: überall die Website-Schrift */
  --ease:cubic-bezier(.23,1,.32,1); --r:12px; --r-s:10px;
  max-width:540px; margin:0 auto; font-family:var(--sans); font-size:17px; font-weight:500; line-height:1.5; color:var(--ink);
  -webkit-tap-highlight-color:transparent; font-variant-numeric:lining-nums;
}
.ssb *{box-sizing:border-box}
.ssb button,.ssb input{all:unset;box-sizing:border-box;display:block;font:inherit;color:inherit;text-align:center;line-height:1.3}
.ssb button{cursor:pointer;touch-action:manipulation}
.ssb button[disabled]{cursor:not-allowed}
.ssb button:focus-visible,.ssb input:focus-visible{outline:2px solid var(--accent)!important;outline-offset:2px}

/* Rahmen */
.ssb-box{background:var(--bg);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.ssb-steps{display:flex;border-bottom:1px solid var(--line);font-size:.9rem;font-weight:500;letter-spacing:.01em}
.ssb-steps div{flex:1;text-align:center;padding:12px 4px 11px;color:var(--ink3);border-bottom:2px solid transparent;transition:color .2s var(--ease),border-color .2s var(--ease);white-space:nowrap}
.ssb-steps .on{color:var(--ink);font-weight:600;border-bottom-color:var(--accent)}
.ssb-steps .done{color:var(--ink2)}
.ssb-body{padding:18px 18px 8px}
.ssb-body.ssb-enter{animation:ssb-in .28s var(--ease) both}
@keyframes ssb-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* Abschnittstitel: ruhige Serifen statt Versal-Etiketten */
.ssb .ssb-body h4{font-family:var(--serif)!important;font-size:1.3rem!important;font-weight:600!important;line-height:1.2!important;letter-spacing:0!important;text-transform:none!important;color:var(--ink)!important;margin:22px 0 10px!important;text-wrap:balance}
.ssb .ssb-body h4:first-child{margin-top:2px!important}
.ssb .ssb-body h4 small{font-family:var(--sans);font-size:.9rem;font-weight:500;color:var(--ink3);margin-left:6px}

/* Auswahl-Kacheln (Kategorie, Dauer, Startzeit) */
.ssb-cats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.ssb-durs{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.ssb-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:8px}
.ssb .ssb-cat,.ssb .ssb-dur,.ssb .ssb-slot{
  background:#fff!important;color:var(--ink)!important;border:1px solid var(--line2)!important;border-radius:var(--r-s)!important;
  min-height:48px;padding:10px 6px!important;font-family:var(--sans)!important;font-size:1.05rem!important;font-weight:600!important;
  text-transform:none!important;letter-spacing:0!important;box-shadow:none!important;line-height:1.25!important;
  display:flex!important;flex-direction:column;align-items:center;justify-content:center;
  transition:background-color .18s var(--ease),border-color .18s var(--ease),color .18s var(--ease),transform .12s var(--ease)}
.ssb .ssb-cat{font-family:var(--serif)!important;font-size:1.12rem!important;line-height:1.15!important;min-height:64px;text-wrap:balance}
.ssb .ssb-cat small,.ssb .ssb-dur small{display:block;margin-top:3px;font-family:var(--sans);font-size:.98rem!important;font-weight:500!important;color:var(--ink2)!important;text-transform:none!important;letter-spacing:0!important}
.ssb .ssb-cat.on,.ssb .ssb-dur.on,.ssb .ssb-slot.on{background:var(--sel)!important;border-color:var(--sel)!important;color:var(--sel-ink)!important}
.ssb .ssb-cat.on small,.ssb .ssb-dur.on small{color:rgba(255,247,240,.82)!important}
.ssb .ssb-cat:active,.ssb .ssb-dur:active,.ssb .ssb-slot:active,.ssb .ssb-day:not([disabled]):active,.ssb .ssb-btn:not([disabled]):active,.ssb .ssb-ex button:not([disabled]):active,.ssb .ssb-pers button:active{transform:scale(.97)}
@media (hover:hover) and (pointer:fine){
  .ssb .ssb-cat:not(.on):hover,.ssb .ssb-dur:not(.on):hover,.ssb .ssb-slot:not(.on):hover{border-color:var(--ink)!important}
  .ssb .ssb-day:not([disabled]):not(.on):hover{border-color:var(--ink)!important}
}

/* Personen */
.ssb-pers{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.ssb-pers span{font-family:var(--serif);font-size:1.15rem;font-weight:600}
.ssb-pers span small{display:block;font-family:var(--sans);font-size:.9rem;font-weight:400;color:var(--ink2);margin-top:2px}
.ssb-pers div{display:flex;align-items:center;gap:10px}
.ssb-pers b{min-width:18px;text-align:center;font-size:1.05rem;font-variant-numeric:lining-nums tabular-nums}
.ssb .ssb-pers button,.ssb .ssb-calhd button,.ssb .ssb-exq button{
  background:#fff!important;color:var(--ink)!important;border:1px solid var(--line2)!important;border-radius:999px!important;
  width:44px!important;height:44px!important;padding:0!important;font-family:var(--sans)!important;font-size:1.2rem!important;font-weight:500!important;
  line-height:1!important;box-shadow:none!important;display:flex!important;align-items:center;justify-content:center;
  transition:border-color .18s var(--ease),background-color .18s var(--ease),transform .12s var(--ease)}
.ssb .ssb-exq button[disabled]{opacity:.35}
@media (hover:hover) and (pointer:fine){.ssb .ssb-pers button:hover,.ssb .ssb-calhd button:hover,.ssb .ssb-exq button:not([disabled]):hover{border-color:var(--ink)!important}}

/* Kalender */
.ssb-cal{margin-top:2px}
.ssb-calhd{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.ssb-calhd b{font-family:var(--serif);font-size:1.2rem;font-weight:600}
.ssb-calg{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}
.ssb-wd{color:var(--ink3);font-size:.88rem;font-weight:500;padding:4px 0}
.ssb .ssb-day{
  min-height:44px;padding:0!important;border:1px solid transparent!important;border-radius:var(--r-s)!important;background:var(--free)!important;
  color:var(--ink)!important;font-family:var(--sans)!important;font-size:1.05rem!important;font-weight:600!important;font-variant-numeric:lining-nums tabular-nums;
  display:flex!important;align-items:center;justify-content:center;box-shadow:none!important;text-transform:none!important;letter-spacing:0!important;
  transition:background-color .18s var(--ease),border-color .18s var(--ease),color .18s var(--ease),transform .12s var(--ease)}
.ssb .ssb-day.few{background:var(--few)!important}
.ssb .ssb-day.wait{background:#f4efe6!important;color:var(--ink3)!important}
.ssb .ssb-day.no{background:transparent!important;color:#a99d8b!important;font-weight:400!important;text-decoration:none!important}
.ssb .ssb-day.on{background:var(--sel)!important;color:var(--sel-ink)!important;border-color:var(--sel)!important}
.ssb-callegend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.9rem;color:var(--ink2);margin-top:10px}
.ssb-callegend i{display:inline-block;width:12px;height:12px;border-radius:4px;margin-right:6px;vertical-align:-2px}
.ssb-callegend i.ok{background:var(--free)}.ssb-callegend i.few{background:var(--few)}.ssb-callegend i.no{background:transparent;border:1px solid var(--line2)}

.ssb-hint{font-size:.95rem;color:var(--ink2);margin:10px 0 6px;grid-column:1/-1;text-wrap:pretty}

/* Zusammenfassung + Hauptknopf */
.ssb-sum{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 18px;border-top:1px solid var(--line);background:var(--panel)}
.ssb-sum small{display:block;font-size:.9rem;color:var(--ink2)}
.ssb-sum b{display:block;font-family:var(--serif);font-size:1.6rem;font-weight:600;line-height:1.1;font-variant-numeric:lining-nums tabular-nums}
.ssb-sumtxt{max-width:34ch;margin-top:2px}
.ssb .ssb-btn{
  display:inline-flex!important;align-items:center;justify-content:center;min-height:48px;
  background:var(--accent)!important;color:#fff!important;border:0!important;border-radius:999px!important;padding:12px 26px!important;
  font-family:var(--sans)!important;font-weight:600!important;font-size:1.1rem!important;text-transform:none!important;letter-spacing:.01em!important;
  box-shadow:none!important;white-space:nowrap;transition:background-color .18s var(--ease),transform .12s var(--ease),opacity .18s var(--ease)}
@media (hover:hover) and (pointer:fine){.ssb .ssb-btn:not([disabled]):hover{background:var(--accent-hover)!important}}
.ssb .ssb-btn[disabled]{background:#e4d6c3!important;color:var(--ink3)!important;opacity:1!important}
.ssb .ssb-link{display:inline-block;background:none!important;border:0!important;color:var(--ink2)!important;padding:12px 0!important;text-decoration:underline!important;text-underline-offset:3px;font-family:var(--sans)!important;font-size:.98rem!important;font-weight:500!important;text-transform:none!important;letter-spacing:0!important;text-align:left}

/* Extras */
.ssb-extras{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}
.ssb-exgrp{font-family:var(--serif);font-size:1.05rem;font-weight:600;color:var(--ink2);margin:10px 0 0}
.ssb-ex{display:flex;align-items:center;gap:12px;border:1px solid var(--line2);border-radius:var(--r);padding:10px;background:#fff;transition:border-color .18s var(--ease),background-color .18s var(--ease)}
.ssb-ex.on{border-color:var(--ink);background:var(--accent-soft)}
.ssb-ex img{width:56px;height:56px;object-fit:cover;border-radius:8px;flex:none;background:var(--line)}
.ssb-exinfo{flex:1;min-width:0}
.ssb-exinfo b{display:block;font-family:var(--serif);font-size:1.12rem;font-weight:600;line-height:1.2}
.ssb-exinfo small{color:var(--ink2);font-size:.9rem;line-height:1.35;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:2px}
.ssb-exinfo span{display:block;font-size:.95rem;font-weight:600;margin-top:3px;font-variant-numeric:lining-nums tabular-nums}
.ssb-exq{display:flex;align-items:center;gap:6px;flex:none}
.ssb-exq b{min-width:16px;text-align:center;font-variant-numeric:lining-nums tabular-nums}

/* Formular */
.ssb-form{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.ssb .ssb-form label{display:block;font-family:var(--sans)!important;font-size:1.05rem!important;font-weight:500!important;color:var(--ink2)!important;text-transform:none!important;letter-spacing:0!important}
.ssb-form label small{color:var(--ink3);font-weight:400}
.ssb .ssb-form input{display:block;width:100%!important;margin-top:6px;min-height:48px;padding:12px 14px!important;border:1px solid var(--edge)!important;border-radius:var(--r-s)!important;
  font-family:var(--sans)!important;font-size:16px!important;color:var(--ink)!important;background:#fff!important;box-shadow:none!important;text-align:left;
  transition:border-color .18s var(--ease),box-shadow .18s var(--ease)}
.ssb .ssb-form input:focus{border-color:var(--ink)!important;box-shadow:0 0 0 3px rgba(181,84,31,.22)!important;outline:0!important}
.ssb-form .full{grid-column:1/-1}
.ssb-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.ssb-err{background:var(--err-bg);color:var(--err);border-radius:var(--r-s);padding:12px 14px;font-size:.9rem;margin:0 0 12px}
.ssb-loading{padding:40px 20px;text-align:center;color:var(--ink2);font-family:var(--serif);font-size:1.2rem}

@media (max-width:540px){
  .ssb-body{padding:16px 14px 6px}
  .ssb-sum{padding:12px 14px}
  .ssb-durs{grid-template-columns:repeat(3,1fr)}
  .ssb-form{grid-template-columns:1fr}
  .ssb-sum{flex-wrap:wrap}
  .ssb .ssb-btn{width:100%}
  .ssb-steps{font-size:.95rem}
}
@media (prefers-reduced-motion:reduce){
  .ssb-body.ssb-enter{animation:ssb-fade .2s linear both}
  @keyframes ssb-fade{from{opacity:0}to{opacity:1}}
  .ssb *{transition-property:background-color,border-color,color,opacity!important}
  .ssb button:active{transform:none!important}
}
.ssb .ssb-slot,.ssb .ssb-dur,.ssb .ssb-day,.ssb-sum b,.ssb-exinfo span,.ssb-pers b{font-variant-numeric:lining-nums tabular-nums!important}
