/* Gemeinsame Basis für alle Website-Mockups.
   Jede Seite bringt ihr eigenes Design mit; hier stehen nur Mechanik und sichere Voreinstellungen. */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;overflow-x:hidden}
img,svg,video{max-width:100%}
a{color:inherit}
/* lange Adressen (z. B. kontakt@schmeißervermietung.de) dürfen in schmalen Spalten umbrechen */
a[href^="mailto:"]{overflow-wrap:anywhere}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid currentColor;outline-offset:3px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:12px;top:-60px;z-index:1000;padding:10px 14px;background:#000;color:#fff;border-radius:6px;text-decoration:none}
.skip:focus{top:12px}

/* Custom Cursor: nur aktiv mit Maus (html.cursor-on), Aussehen definiert jede Seite selbst */
.cursor{position:fixed;left:0;top:0;z-index:9999;pointer-events:none;display:none}
html.cursor-on .cursor{display:block}
/* Mit Maus nur den eigenen Cursor zeigen, auch über Formularfeldern und Elementen mit eigener cursor-Regel */
html.cursor-on,html.cursor-on *,html.cursor-on *::before,html.cursor-on *::after{cursor:none!important}
.cursor-dot,.cursor-ring{position:fixed;left:0;top:0;transform:translate3d(var(--x,-100px),var(--y,-100px),0) translate(-50%,-50%);will-change:transform}
.cursor-label{white-space:nowrap}

/* Einblenden beim Scrollen: Elemente im ersten Bildschirm bleiben immer sichtbar */
[data-reveal].rv-pre{opacity:0;transform:var(--rv-from,translate3d(0,28px,0))}
[data-reveal="left"].rv-pre{--rv-from:translate3d(-32px,0,0)}
[data-reveal="right"].rv-pre{--rv-from:translate3d(32px,0,0)}
[data-reveal="scale"].rv-pre{--rv-from:scale(.94)}
[data-reveal="fade"].rv-pre{--rv-from:none}
[data-reveal].rv-in{opacity:1;transform:none;transition:opacity .8s cubic-bezier(.2,.7,.2,1) var(--d,0s),transform .9s cubic-bezier(.2,.7,.2,1) var(--d,0s)}

[data-parallax]{transform:translate3d(0,var(--py,0px),0);will-change:transform}
[data-magnetic]{transition:transform .25s cubic-bezier(.2,.7,.2,1)}

/* Laufband */
.marquee{overflow:hidden;white-space:nowrap}
.marquee-track{display:inline-flex;gap:var(--marquee-gap,48px);animation:marquee var(--marquee-speed,30s) linear infinite;padding-right:var(--marquee-gap,48px)}
@keyframes marquee{to{transform:translateX(-50%)}}

/* Eigene Auswahlliste (Select-only-Combobox, siehe Designrichtlinie Kapitel 07).
   Das <select> bleibt im Formular, wird aber ausgeblendet. Farben und Maße setzt die Seite über --sel-* auf :root. */
select.sel-native{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;margin:-1px!important;padding:0!important;border:0!important;overflow:hidden;clip:rect(0 0 0 0);opacity:0;pointer-events:none}
.sel-btn{display:flex;align-items:center;gap:12px;width:100%;min-width:0;min-height:var(--sel-height,50px);margin:0;padding:9px 10px 9px 14px;
  background:var(--sel-bg,#fff);color:var(--sel-fg,#222);border:var(--sel-border-width,1.5px) solid var(--sel-line,#ccc);border-radius:var(--sel-radius,10px);
  font:400 var(--sel-size,16px)/1.3 var(--sel-font,inherit);text-align:left;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease}
.sel-btn:hover{border-color:var(--sel-line-hover,currentColor)}
.sel-btn:focus-visible{outline:none;border-color:var(--sel-fg,currentColor);box-shadow:0 0 0 4px var(--sel-ring,rgba(0,0,0,.18))}
.sel-btn[aria-expanded="true"]{border-color:var(--sel-fg,currentColor)}
.sel-btn:disabled{opacity:.55;cursor:not-allowed}
.sel-val{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sel-val small{margin-left:8px;font-size:.84em;color:var(--sel-muted,inherit)}
.sel-val.is-ph{color:var(--sel-muted,inherit)}
.sel-chev{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--sel-chev-bg,rgba(0,0,0,.06));color:var(--sel-fg,currentColor);
  transition:transform .35s cubic-bezier(.25,.8,.25,1),background .2s ease,color .2s ease}
.sel-chev svg{width:12px;height:8px;display:block}
.sel-btn[aria-expanded="true"] .sel-chev{transform:rotate(180deg);background:var(--sel-chev-open-bg,var(--sel-fg,#222));color:var(--sel-chev-open-fg,#fff)}
.sel-list{position:fixed;z-index:9000;box-sizing:border-box;margin:0;padding:var(--sel-pad,6px);list-style:none;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;
  background:var(--sel-bg,#fff);color:var(--sel-fg,#222);border:var(--sel-border-width,1.5px) solid var(--sel-line,#ccc);border-radius:var(--sel-list-radius,12px);
  box-shadow:var(--sel-shadow,0 18px 40px -12px rgba(0,0,0,.35));font:400 var(--sel-size,16px)/1.3 var(--sel-font,inherit);
  opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .18s ease,transform .22s cubic-bezier(.25,.8,.25,1),visibility 0s linear .22s}
.sel-list.sel-up{transform:translateY(6px)}
.sel-list.is-open{opacity:1;visibility:visible;transform:none;transition:opacity .18s ease,transform .22s cubic-bezier(.25,.8,.25,1)}
.sel-list ul{list-style:none;margin:0;padding:0}
.sel-group{display:block;padding:12px 12px 6px;font-size:11px;font-weight:600;line-height:1;letter-spacing:.14em;text-transform:uppercase;color:var(--sel-group,var(--sel-muted,inherit))}
.sel-list>li:first-child>.sel-group{padding-top:8px}
.sel-opt{display:flex;align-items:center;gap:10px;min-height:44px;padding:8px 10px 8px 12px;border-radius:8px;cursor:pointer;user-select:none}
.sel-opt .o-t{flex:1;min-width:0;padding-right:12px}
.sel-opt .o-m{font-size:.84em;font-weight:400;color:var(--sel-muted,inherit);white-space:nowrap}
.sel-opt .o-c{flex:none;position:relative;width:18px;height:18px}
.sel-opt.is-active{background:var(--sel-hover,rgba(0,0,0,.06))}
.sel-opt[aria-selected="true"]{background:var(--sel-selected-bg,rgba(0,0,0,.04));font-weight:600}
.sel-opt[aria-selected="true"].is-active{background:var(--sel-selected-hover,var(--sel-selected-bg,rgba(0,0,0,.08)))}
.sel-opt[aria-selected="true"] .o-c::after{content:"";position:absolute;left:3px;top:3px;width:11px;height:6px;border-left:2px solid var(--sel-check,currentColor);border-bottom:2px solid var(--sel-check,currentColor);transform:rotate(-45deg)}
.sel-opt[aria-disabled="true"]{cursor:not-allowed;color:var(--sel-muted,inherit)}
.sel-opt .o-busy{font-size:12px;font-weight:500;padding:4px 9px;border-radius:999px;background:var(--sel-busy-bg,#F9E3E1);color:var(--sel-busy-fg,#8E2A20);white-space:nowrap}

/* „Designed by BlackCore Group“ im Hero (wie auf ba-heisterkamp.de und studio-one).
   Standard: helles Logo für dunkle Flächen. .bc-dark spiegelt das Logo für helle Flächen, .bc-row stellt es in eine Zeile.
   Die Position setzt jede Seite in <style id="bc-place">. */
.bc-credit{--bc-logo:84px;display:inline-flex;flex-direction:column;align-items:flex-end;gap:10px;z-index:4;
  color:var(--bc-fg,#fff);text-decoration:none;width:max-content;max-width:100%}
.bc-credit img{display:block;height:var(--bc-logo);width:auto;max-width:none;opacity:.75;
  filter:drop-shadow(0 2px 12px rgba(13,13,13,.6));transition:opacity .4s ease,transform .6s cubic-bezier(.2,.7,.2,1)}
.bc-credit span{font-family:var(--bc-font,inherit);font-size:12px;line-height:1.25;letter-spacing:.08em;white-space:nowrap;opacity:.78;transition:opacity .4s ease}
.bc-credit b{font-weight:600}
.bc-credit:hover img,.bc-credit:focus-visible img{opacity:1;transform:rotate(-4deg)}
.bc-credit:hover span,.bc-credit:focus-visible span{opacity:1}
.bc-credit:focus-visible{outline-offset:6px}
.bc-credit.bc-dark{--bc-fg:#161616}
.bc-credit.bc-dark img{filter:invert(1);opacity:.82}
.bc-credit.bc-row{flex-direction:row;align-items:center;gap:12px}
@media (max-width:900px){
  .bc-credit{--bc-logo:60px;position:static!important;align-items:flex-start;justify-self:start;align-self:flex-start;margin:0 0 20px}
  .bc-credit.bc-row{align-items:center}
}

/* Verfügbarkeits-Demo */
[data-avail-result]:empty{display:none}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  [data-reveal].rv-pre{opacity:1;transform:none}
  [data-parallax]{transform:none}
}
