.bearing{position:fixed;right:24px;bottom:calc(24px + env(safe-area-inset-bottom,0px));z-index:20;display:flex;align-items:center;gap:12px;opacity:0;transform:translateY(20px);pointer-events:none;transition:opacity .4s,transform .4s}
.bearing.is-visible{opacity:1;transform:none;pointer-events:auto}
.bearing-label{display:flex;flex-direction:column;align-items:flex-end;font-family:var(--display);text-transform:uppercase;letter-spacing:.1em;line-height:1;background:#fff;padding:10px 14px 8px;border-radius:14px;border:1px solid var(--line);box-shadow:0 10px 30px rgba(120,80,40,.12)}
.bearing-course{font-style:normal;font-size:13px;color:var(--accent-dark);margin-bottom:3px}
.bearing-course:empty{display:none}
.bearing-label small{font-size:14px;color:var(--dim)}
.bearing-label span{font-size:21px;color:var(--accent-dark)}
.bearing-btn{width:72px;height:72px;border-radius:50%;border:6px solid #fff;background:var(--creme);display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;padding:0;box-shadow:0 12px 30px rgba(120,80,40,.22);color:var(--fg)}
.bearing-needle{width:40px;height:40px;flex-shrink:0;transition:transform .7s cubic-bezier(.34,1.4,.64,1)}
.bearing-cap{display:none;font-family:var(--display);font-size:21px;line-height:1;letter-spacing:.1em;text-transform:uppercase;padding-top:3px}
.bearing.is-arrived .bearing-btn{background:var(--accent);color:#fff}
@media (min-width:1025px){.bearing.no-wps{display:none}}
@media (max-width:1024px){
  .bearing{right:14px;bottom:calc(14px + env(safe-area-inset-bottom,0px))}
  .bearing-label{display:none}
  .bearing-btn{width:auto;height:54px;border-width:4px;border-radius:999px;padding:0 18px 0 10px}
  .bearing-needle{width:30px;height:30px}
  .bearing-cap{display:block}
}
/* Kursliste (mobil) */
.course-sheet{position:fixed;inset:0;z-index:60;visibility:hidden;pointer-events:none}
.course-sheet.is-open{visibility:visible;pointer-events:auto}
.cs-backdrop{position:absolute;inset:0;background:rgba(20,20,20,.38);opacity:0;transition:opacity .3s}
.course-sheet.is-open .cs-backdrop{opacity:1}
.cs-panel{position:absolute;left:0;right:0;bottom:0;max-width:640px;margin:0 auto;max-height:88svh;overflow:auto;overscroll-behavior:contain;background-color:var(--bg);background-image:repeating-linear-gradient(0deg,transparent 0 47px,#f0e8dc 47px 48px),repeating-linear-gradient(90deg,transparent 0 47px,#f0e8dc 47px 48px);border-radius:26px 26px 0 0;padding:8px 24px calc(24px + env(safe-area-inset-bottom,0px));transform:translateY(100%);transition:transform .45s cubic-bezier(.2,.8,.2,1);box-shadow:0 -20px 60px rgba(0,0,0,.18)}
.course-sheet.is-open .cs-panel{transform:none}
.cs-handle{width:46px;height:5px;border-radius:3px;background:var(--ring);margin:6px auto 10px}
.cs-head{display:flex;justify-content:space-between;align-items:center}
.cs-title{display:flex;align-items:center;gap:10px;font-family:var(--display);font-size:24px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-dark);padding-top:3px}
.cs-title svg{width:16px;height:16px;transform:rotate(135deg)}
.cs-course{font-style:normal;color:var(--dim);font-size:20px}
.cs-course:empty{display:none}
.cs-close{width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--fg);padding:0}
.cs-close svg{width:20px;height:20px}
.cs-wps{list-style:none;margin:10px 0 0;padding:0;position:relative}
.cs-wps:empty{display:none}
.cs-wps::before{content:"";position:absolute;left:11px;top:24px;bottom:24px;width:2px;background:repeating-linear-gradient(180deg,var(--ring) 0 6px,transparent 6px 12px)}
.cs-wps a{display:flex;align-items:center;gap:16px;padding:10px 0;text-decoration:none;font-family:var(--display);font-size:30px;line-height:1;text-transform:uppercase;color:var(--fg)}
.cs-wps .lbl{padding-top:4px}
.cs-wps .dot{position:relative;z-index:1;width:24px;height:24px;border-radius:50%;border:3px solid var(--ring);background:var(--bg);flex-shrink:0;transition:background .3s,border-color .3s}
.cs-wps .nr{margin-left:auto;font-size:18px;letter-spacing:.1em;color:var(--dim);padding-top:4px}
.cs-wps .is-passed .dot{border-color:var(--accent);background:var(--creme)}
.cs-wps .is-current .dot{border-color:var(--accent);background:var(--accent);box-shadow:0 0 0 5px rgba(228,74,31,.18)}
.cs-wps .is-current a{color:var(--accent-dark)}
.cs-sub{margin:16px 0 0;padding-top:16px;border-top:1px solid var(--line);font-family:var(--display);font-size:18px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
.cs-links{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column}
.cs-links a{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:9px 0;text-decoration:none;font-weight:700;font-size:18px;color:var(--fg)}
.cs-links .is-sub a{padding:7px 0 7px 18px;font-weight:600;font-size:16px;color:var(--muted);border-left:2px solid var(--line)}
.cs-links small{font-family:var(--display);font-weight:400;font-size:17px;letter-spacing:.08em;color:var(--accent-dark)}
.cs-cta{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:20px}
.cs-cta .btn{flex:1 1 auto;justify-content:center}
.cs-tel{font-weight:700;text-decoration:none;white-space:nowrap}
@media (min-width:1025px){.course-sheet{display:none}}
@media (prefers-reduced-motion: reduce){.cs-panel,.cs-backdrop{transition:none}}