/*
  main.css v1.2.0
  (c) 2025 Sorwell Media & Events e.U., Bäckerstraße 3/10, 1010 Wien, office@sorwell.eu
  Coded with ♥ & a pinch of schnitzel-power for Pension Mozart, Vienna
*/

/* Global variables, fonts and base styles */

/* Raleway font family (self-hosted) */
@font-face{
  font-family:'Raleway';
  src:url('/assets/fonts/Raleway-Thin.woff2') format('woff2');
  font-weight:100;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:'Raleway';
  src:url('/assets/fonts/Raleway-ThinItalic.woff2') format('woff2');
  font-weight:100;
  font-style:italic;
  font-display:swap;
}
@font-face{
  font-family:'Raleway';
  src:url('/assets/fonts/Raleway-ExtraLight.woff2') format('woff2');
  font-weight:200;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:'Raleway';
  src:url('/assets/fonts/Raleway-ExtraLightItalic.woff2') format('woff2');
  font-weight:200;
  font-style:italic;
  font-display:swap;
}
@font-face{
  font-family:'Raleway';
  src:url('/assets/fonts/Raleway-Light.woff2') format('woff2');
  font-weight:300;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:'Raleway';
  src:url('/assets/fonts/Raleway-LightItalic.woff2') format('woff2');
  font-weight:300;
  font-style:italic;
  font-display:swap;
}
@font-face{
  font-family:'Raleway';
  src:url('/assets/fonts/Raleway-Regular.woff2') format('woff2');
  font-weight:400;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:'Raleway';
  src:url('/assets/fonts/Raleway-Italic.woff2') format('woff2');
  font-weight:400;
  font-style:italic;
  font-display:swap;
}
@font-face{
  font-family:'Raleway';
  src:url('/assets/fonts/Raleway-Medium.woff2') format('woff2');
  font-weight:500;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:'Raleway';
  src:url('/assets/fonts/Raleway-MediumItalic.woff2') format('woff2');
  font-weight:500;
  font-style:italic;
  font-display:swap;
}
@font-face{
  font-family:'Raleway';
  src:url('/assets/fonts/Raleway-SemiBold.woff2') format('woff2');
  font-weight:600;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:'Raleway';
  src:url('/assets/fonts/Raleway-SemiBoldItalic.woff2') format('woff2');
  font-weight:600;
  font-style:italic;
  font-display:swap;
}
@font-face{
  font-family:'Raleway';
  src:url('/assets/fonts/Raleway-Bold.woff2') format('woff2');
  font-weight:700;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:'Raleway';
  src:url('/assets/fonts/Raleway-BoldItalic.woff2') format('woff2');
  font-weight:700;
  font-style:italic;
  font-display:swap;
}
@font-face{
  font-family:'Raleway';
  src:url('/assets/fonts/Raleway-ExtraBold.woff2') format('woff2');
  font-weight:800;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:'Raleway';
  src:url('/assets/fonts/Raleway-ExtraBoldItalic.woff2') format('woff2');
  font-weight:800;
  font-style:italic;
  font-display:swap;
}
@font-face{
  font-family:'Raleway';
  src:url('/assets/fonts/Raleway-Black.woff2') format('woff2');
  font-weight:900;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:'Raleway';
  src:url('/assets/fonts/Raleway-BlackItalic.woff2') format('woff2');
  font-weight:900;
  font-style:italic;
  font-display:swap;
}

:root{
  --brand:#927347;
  --muted:#818a96;
  --fg:#0c0d0e;
  --bg:#faf9f5;
  --border:#e6e8ea;
  --hover:#f1f2f3;
  --beige:#fbfaf5;
  --ink:#000;
  --shadow:0 10px 30px rgba(0,0,0,.12);
  --field-h:56px;
  --field-fz:18px;
  --cell-h:46px;
  --anim:.45s cubic-bezier(.75,.01,.13,1.01);
  --label-w:clamp(140px,42vw,220px);
  --ctrl-w:clamp(184px,40vw,240px);
  --num-h:56px;
  --num-w:72px;
  --btn-w:260px;
  --g-footer-h:68px;   /* guests popover footer */
  --footer-h:42px;     /* global micro footer height */
  --col1:160px;
  --logo-box:120px;
  --logo-offset-y:0px;
}

*{box-sizing:border-box}
html,body{height:100%;scroll-behavior: smooth;}
body{
  margin:0;
  background:var(--bg);
  color:var(--fg);
  font:16px/1.55 Raleway,Arial,Helvetica,sans-serif;
}

/* Background slideshow */

.bgshow{
  position:fixed;
  inset:0;
  z-index:-2;
  overflow:hidden;
}
.bgshow img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:0;
  transition:opacity 1.2s ease;
}
.bgshow img.show{opacity:.9}
.bgshade{
  position:fixed;
  inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.45),rgba(0,0,0,.3));
  z-index:-1;
}

/* Slideshow caption overlay */

.slide-caption{
  position:fixed;
  left:50%;
  bottom:8vh;
  transform:translateX(-50%);
  width:min(1200px,92vw);
  color:#fff;
  text-shadow:0 2px 10px rgba(0,0,0,.7);
  pointer-events:none;
  transition:opacity .8s ease;
  opacity:1;
  z-index:0;
}
.slide-caption h2{
  margin:0 0 4px;
  font:600 clamp(22px,3vw,30px)/1.2 Raleway,Arial,sans-serif;
}
.slide-caption p{
  margin:0;
  font:400 clamp(14px,2vw,17px)/1.4 Raleway,Arial,sans-serif;
  max-width:620px;
}
.slide-caption.is-hidden{opacity:0;}

/* Hero layout and booking grid */

.hero{
  min-height:100vh;
  display:grid;
  align-items:flex-start;
  place-items:start center;
}
.wrap{
  width:min(1200px,92%);
  padding:32px 0;
}

/* Main booking bar container */

.sorwell-content-grid{
  display:grid;
  grid-template-columns:var(--logo-box) 1fr;
  grid-auto-rows:auto;
  gap:8px 16px;
  background:#faf9f5;
  border:1px solid rgba(0,0,0,.18);
  border-radius:0;
  box-shadow:var(--shadow);
  padding:16px 20px;
  position:relative;
}

.sorwell--logo{
  grid-column:1;
  grid-row:1/3;
  align-self:stretch;
  height:100%;
  display:grid;
  place-items:center;
  border-right:1px solid var(--border);
}
.sorwell--logo img{
  max-height:clamp(54px,7vw,84px);
  max-width:calc(var(--logo-box) - 16px);
  width:auto;
  height:auto;
  display:block;
  object-fit:contain;
  transform:translateY(var(--logo-offset-y));
}

.sorwell-m-form{
  grid-column:2;
  grid-row:1;
  display:flex;
  align-items:flex-end;
  gap:16px;
  flex-wrap:nowrap;
}
.sorwell-m-field{
  flex:1 1 320px;
  min-width:260px;
  position:relative;
}
.sorwell--submit{
  flex:0 0 var(--btn-w);
  margin-left:auto;
}

.sorwell-m-field label{
  display:block;
  margin:0 0 6px;
  font:500 12px/1.6 Raleway,Arial,Helvetica,sans-serif;
  letter-spacing:.25em;
  text-transform:uppercase;
  color:var(--ink);
}
.sorwell-m-field-input{
  width:100%;
  height:var(--field-h);
  padding:0 16px;
  font:400 var(--field-fz)/var(--field-h) Raleway,Arial;
  color:#4d4d4d;
  background:#fff;
  border:1px solid rgba(0,0,0,.18);
  border-radius:0;
}

/* Primary CTA button */

.sorwell-button{
  position:relative;
  display:inline-block;
  width:100%;
  height:var(--field-h);
  border:1px solid rgba(0,0,0,.6);
  background:transparent;
  color:#000;
  letter-spacing:.25em;
  text-transform:uppercase;
  line-height:var(--field-h);
  text-align:center;
  border-radius:0;
  cursor:pointer;
  overflow:hidden;
  white-space:nowrap;
}
.sorwell-button .sorwell-m-text{
  position:relative;
  z-index:1;
}
.sorwell-button::before{
  content:"";
  position:absolute;
  inset:-1px -1px -1px -1px;
  background:var(--brand);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform var(--anim);
  z-index:0;
}
.sorwell-button:hover .sorwell-m-text{color:#fff}
.sorwell-button:hover::before{transform:scaleX(1)}

/* Promo row below booking bar */

.promo-row{
  grid-column:2;
  grid-row:2;
  display:grid;
  grid-template-columns:1fr var(--btn-w);
  gap:16px;
  align-items:center;
  margin-top:4px;
}
.promo-lhs{
  min-width:0;
  color:#222;
}
.promo-chip{
  border:1px dashed #7a5a2d;
  background:#fffaf0;
  color:#7a5a2d;
  border-radius:999px;
  padding:3px 10px;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  margin:0 6px;
  font-weight:700;
  font-size:1rem;
}
.promo-rhs{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
  border-left:1px solid var(--border);
  padding-left:16px;
  min-height:40px;
}

.promo-inline{
  display:flex;
  align-items:center;
  gap:10px;
}
.promo-enter{
  background:none;
  border:0;
  color:#7a5a2d;
  text-decoration:underline;
  cursor:pointer;
  padding:0;
}
.promo-editor{
  display:none;
  align-items:center;
  gap:8px;
}
.promo-input{
  height:40px;
  border:1px solid var(--border);
  padding:0 10px;
  min-width:160px;
}
.promo-input::placeholder{color:#777}
.promo-ok{
  height:40px;
  border:1px solid rgba(0,0,0,.18);
  background:var(--brand);
  color:#fff;
  padding:0 12px;
  cursor:pointer;
}
.promo-view{
  display:none;
  align-items:center;
  gap:8px;
}
.promo-label{
  font-weight:600;
  margin-right:4px;
}
.promo-trash{
  background:none;
  border:0;
  cursor:pointer;
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
}

@keyframes promoPulse{
  0%{box-shadow:0 0 0 0 rgba(146,115,71,.35)}
  100%{box-shadow:0 0 0 18px rgba(146,115,71,0)}
}
.promo-chip.engage{animation:promoPulse 1200ms ease-out 1}
@media (prefers-reduced-motion: reduce){
  .promo-chip.engage{animation:none}
}

/* Popover base (date & guests) */

.popover{
  position:absolute;
  left:0;
  top:calc(100% + 8px);
  z-index:50;
  background:#fff;
  border:1px solid rgba(0,0,0,.18);
  border-radius:0;
  box-shadow:0 2px 15px rgba(0,0,0,.2);
  padding:0;
  display:none;
  max-width:1100px;
}
.popover.show{display:block}

/* Datepicker header for mobile */

.sorwell-header,
.g-header{
  display:none;
}

/* Datepicker layout (desktop + mobile) */

#dateField{position:relative}
#datePopover{min-width:min(860px,92vw)}

.sorwell-cal{
  background:var(--beige);
  padding:20px 20px;
  border-bottom:1px solid var(--border);
}
.sorwell-cal-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:16px;
}
.sorwell-arw{
  display:inline-grid;
  place-items:center;
  width:40px;
  height:40px;
  border:1px solid rgba(0,0,0,.18);
  background:#fff;
  cursor:pointer;
}
.sorwell-arw svg{
  width:16px;
  height:16px;
  stroke:#000;
  fill:none;
}
.sorwell-arw[disabled]{
  opacity:.4;
  cursor:default;
}

.sorwell-months{
  display:flex;
  gap:24px;
  margin:0 0 16px;
}
.sorwell-month{
  flex:1 1 0;
}
.sorwell-month-title{
  text-align:center;
  margin:0 0 12px;
  font:500 12px/22px Raleway,Arial,Helvetica,sans-serif;
  letter-spacing:.25em;
  text-transform:uppercase;
}
.sorwell-grid{
  width:100%;
  border-collapse:separate;
  border-spacing:6px;
  table-layout:fixed;
}
.sorwell-grid th{
  padding:0 0 8px;
  color:#b56953;
  font-weight:500;
  text-align:center;
}
.sorwell-grid td{
  padding:0;
  width:calc(100%/7);
}
.sorwell-cell{
  display:block;
  width:100%;
  height:var(--cell-h);
  line-height:var(--cell-h);
  padding:0;
  margin:0;
  background:transparent;
  color:#000;
  text-align:center;
  border:0;
  text-decoration:none;
  border-radius:8px;
  box-sizing:border-box;
  font:inherit;
}
.sorwell-cell:hover{background:var(--hover)}
.sorwell-empty{height:var(--cell-h)}
.sorwell-today{color:#b56953}
.sorwell-selected{
  background:var(--brand)!important;
  color:#fff!important;
}
.sorwell-inrange{background:#f5efe2}
.sorwell-disabled{
  background:#f2f2f2;
  color:#aaa;
  cursor:not-allowed;
  pointer-events:none;
}
.sorwell-cal-foot{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:12px;
  padding:12px 16px;
  background:#fff;
  border-top:1px solid var(--border);
}
.sorwell-note{
  margin-right:auto;
  font-size:16px;
  color:#4d4d4d;
}
.sorwell-btn{
  min-width:160px;
  height:44px;
  border-radius:0;
  border:1px solid rgba(0,0,0,.18);
  background:#fff;
  color:#000;
  cursor:pointer;
}
.sorwell-btn--done{
  background:var(--brand);
  color:#fff;
}
.sorwell-btn--reset{}

/* Infinite scroll container (mobile datepicker) */

.sorwell-stack{
  display:none;
  padding:16px;
}
.sorwell-sentinel{
  width:100%;
  height:1px;
}

/* Guests popover */

#guestsField{position:relative}
.guests{
  padding:16px;
  background:#fff;
  min-width:min(860px,92vw);
}
.guests-head{
  display:grid;
  grid-template-columns:var(--col1) 1fr 1fr 1fr;
  gap:12px;
  padding:6px 16px 12px;
  border-bottom:1px solid var(--border);
  font:600 14px/1.4 Raleway,Arial,Helvetica,sans-serif;
}
.guests-head span{text-align:center}
.guests-head span:first-child{text-align:left}

.room-row{
  display:grid;
  grid-template-columns:var(--col1) 1fr 1fr 1fr;
  gap:12px;
  align-items:center;
  padding:14px 16px;
  border-bottom:1px solid var(--border);
  min-height:var(--field-h);
}
.room-row:last-child{border-bottom:0}
.room-head{
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-height:var(--field-h);
}
.room-title{
  font:600 16px/1.4 Raleway,Arial,Helvetica,sans-serif;
}
.trash-icon{
  display:inline-grid;
  place-items:center;
  width:28px;
  height:28px;
  border:0;
  background:none;
  cursor:pointer;
}
.trash-icon svg{width:16px;height:16px}
.trash-icon[hidden]{display:none}

.counter{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
}
.counter .m-label{display:none}
.counter .ctrls{
  display:flex;
  align-items:center;
  gap:10px;
}
.counter[data-type="adults"]{grid-column:2}
.counter[data-type="children"]{grid-column:3}
.counter[data-type="infants"]{grid-column:4}
.counter input{
  width:64px;
  height:var(--field-h);
  text-align:center;
  border:1px solid var(--border);
  padding:0;
  border-radius:0;
  background:#fff;
  font:500 18px/var(--field-h) Raleway,Arial;
  pointer-events:none;
}
.icon-btn{
  display:inline-grid;
  place-items:center;
  width:40px;
  height:40px;
  border:1px solid var(--border);
  background:var(--beige);
  border-radius:50%;
  cursor:pointer;
}

.g-footer{
  display:flex;
  justify-content:flex-end;
  gap:12px;
  padding:12px 16px;
  background:#fff;
  border-top:1px solid var(--border);
}

/* Responsive layout tweaks */

@media (max-width: 800px){
  .sorwell-content-grid{
    grid-template-columns:1fr;
  }
  .sorwell--logo{
    grid-column:1;
    grid-row:1;
    justify-content:center;
    border-right:0;
    width:100%;
  }
  .sorwell-m-form{
    grid-column:1;
    grid-row:2;
    flex-wrap:wrap;
    gap:12px;
  }
  .sorwell--submit{
    flex:1 1 100%;
    margin-left:0;
  }
  .sorwell-button{width:100%}
  .promo-row{
    grid-column:1;
    grid-row:3;
    grid-template-columns:1fr;
    gap:10px;
  }
  .promo-rhs{
    border-left:0;
    border-top:1px solid var(--border);
    padding-left:0;
    padding-top:10px;
    justify-content:flex-start;
  }
  .promo-inline{gap:12px}

  /* Popovers go full-screen on mobile */

  .popover{
    position:fixed;
    left:0;
    top:0;
    width:100vw;
    height:100vh;
    overflow:auto;
    border:0;
    border-radius:0;
    box-shadow:none;
    z-index:9999;
  }
  .sorwell-header,
  .g-header{
    position:sticky;
    top:0;
    display:flex;
    align-items:center;
    justify-content:center;
    height:44px;
    background:#fff;
    border-bottom:1px solid var(--border);
    font:500 12px/1 Raleway,Arial;
    letter-spacing:.05em;
    z-index:3;
  }
  .sorwell-header .back,
  .g-header .back{
    position:absolute;
    left:8px;
    top:50%;
    transform:translateY(-50%);
    width:34px;
    height:34px;
    border:1px solid var(--border);
    background:#fff;
    display:grid;
    place-items:center;
  }
  .sorwell-header .back svg,
  .g-header .back svg{
    width:16px;
    height:16px;
    stroke:#000;
    fill:none;
  }

  /* Mobile datepicker: stacked months with infinite scroll */

  .sorwell-cal-head{display:none}
  .sorwell-months{display:none}
  .sorwell-stack{
    display:block;
    padding:16px;
  }
  .sorwell-cal{
    padding:0;
    background:#fff;
    border-bottom:0;
  }
  .sorwell-month-title{
    margin:16px 0 10px;
  }
  .sorwell-cal-foot{
    position:fixed;
    bottom:0;
    background:#fff;
    border-top:1px solid var(--border);
    z-index:3;
    display:flex;
    justify-content:space-between;
    width:100%;
    box-sizing:border-box;
    padding:12px 16px;
  }
  .sorwell-btn--reset{display:none;}
  .sorwell-note{margin-right:auto;}
  .sorwell-btn{margin-left:auto;}

  /* Guests popover mobile */

  .guests{
    min-width:100vw;
    padding:0;
    padding-bottom:calc(var(--g-footer-h) + env(safe-area-inset-bottom, 0px) + 64px);
  }
  .guests-head{display:none}
  .room-row{
    grid-template-columns:1fr;
    gap:10px;
    padding:16px;
    border-bottom:1px solid var(--border);
  }
  .room-head{
    grid-column:1;
    display:flex;
    align-items:center;
    justify-content:space-between;
  }
  .counter{
    display:grid;
    grid-template-columns:var(--label-w) 1fr auto;
    align-items:center;
    gap:8px;
  }
  .counter[data-type]{grid-column:1 / -1 !important}
  .counter .m-label{
    display:block;
    grid-column:1;
  }
  .counter .ctrls{
    grid-column:3;
    display:grid;
    grid-template-columns:44px var(--num-w) 44px;
    align-items:center;
    justify-items:center;
    justify-self:end;
  }
  .counter input{
    width:var(--num-w);
    height:var(--num-h);
    line-height:var(--num-h);
  }
  .icon-btn{
    width:44px;
    height:44px;
  }
  #mobileAdd{
    display:block;
    padding:12px 18px;
    border-top:1px dashed var(--border);
    font:600 15px/1.6 Raleway,Arial;
    color:var(--brand);
  }
  .g-footer{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    height:var(--g-footer-h);
    background:#fff;
    border-top:1px solid var(--border);
    z-index:3;
    justify-content:flex-end;
  }
  .g-footer #addRoomBtn{display:none}

  .slide-caption{bottom:16vh;}
  .slide-caption h2{
    font-size:clamp(18px, 3vw, 28px);
  }
  .slide-caption p{
    font-size:clamp(12px, 2vw, 15px);
  }
}

/* Screenreader‑only helper */

.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;
}

/* Cookie modal and backdrop */

.cookie-backdrop{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.45);
  z-index:10000;
  display:none;
}
.cookie-modal{
  position:fixed;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  background:#fff;
  max-width:min(560px,92vw);
  padding:18px;
  border-radius:8px;
  box-shadow:var(--shadow);
  z-index:10001;
  display:none;
  max-height:90vh;
  overflow:auto;
}
.cookie-modal.show,
.cookie-backdrop.show{
  display:block;
}
@media (max-width:800px){
  .cookie-modal{
    width:95vw;
    max-width:95vw;
    max-height:95vh;
  }
}

.cookie-actions{
  display:flex;
  gap:10px;
  justify-content:flex-end;
  margin-top:12px;
  flex-wrap:wrap;
}
.cookie-actions button{
  height:40px;
  padding:0 14px;
  border:1px solid #ccc;
  background:#fff;
  cursor:pointer;
}
.cookie-actions .primary{
  background:var(--brand);
  color:#fff;
  border-color:#0000;
}

/* Legal modal */

.legal-modal{
  position:fixed;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  background:#fff;
  max-width:min(780px,92vw);
  max-height:90vh;
  border-radius:8px;
  box-shadow:var(--shadow);
  z-index:10001;
  display:flex;
  flex-direction:column;
  padding:0;
  overflow:hidden;
}
.legal-inner{
  display:flex;
  flex-direction:column;
  height:100%;
}
.legal-body{
  flex:1 1 auto;
  overflow:auto;
  padding:18px 18px 12px;
  font-size:14px;
  line-height:1.6;
  color:#222;
  max-height:calc(90vh - 60px);
  -webkit-user-select: none; /* Safari */
  -moz-user-select: none;    /* Firefox */
  -ms-user-select: none;     /* IE/Edge legacy */
  user-select: none;         /* Standard */
}
.legal-body h2,
.legal-body h3{
  margin:0 0 8px;
  font-weight:600;
}
.legal-body h2{font-size:18px;}
.legal-body h3{
  font-size:15px;
  margin-top:18px;
}
.legal-body p{margin:0 0 8px;}
.legal-body ul{
  margin:0 0 8px 20px;
  padding:0;
}
.legal-body li{margin-bottom:4px;}

.legal-toc{
  margin:4px 0 10px;
  padding:8px 0 8px;
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
  font-size:13px;
}
.legal-toc ul{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-wrap:wrap;
  gap:6px 14px;
}
.legal-toc a{
  color:#444;
  text-decoration:none;
  border-bottom:1px dashed rgba(0,0,0,.3);
  padding-bottom:1px;
}
.legal-toc a:hover{
  color:#000;
  border-bottom-color:#000;
}

.legal-footer{
  position:sticky;
  bottom:0;
  padding:10px 16px;
  border-top:1px solid var(--border);
  background:#fff;
  display:flex;
  justify-content:flex-end;
}
.legal-footer button{
  height:40px;
  padding:0 18px;
  border:1px solid rgba(0,0,0,.3);
  background:var(--brand);
  color:#fff;
  cursor:pointer;
  border-radius:0;
  font:500 12px/40px Raleway,Arial,Helvetica,sans-serif;
  letter-spacing:.12em;
  text-transform:uppercase;
}

@media (max-width:800px){
  .legal-modal{
    width:95vw;
    max-width:95vw;
    max-height:95vh;
    border-radius:4px;
  }
  .legal-body{
    padding:14px 14px 8px;
    font-size:13px;
    max-height:calc(95vh - 60px);
  }
}

/* Cookie switches */

.switch{
  position:relative;
  width:46px;
  height:26px;
}
.switch input{display:none}
.slider{
  position:absolute;
  cursor:pointer;
  inset:0;
  background:#e6e6e6;
  border-radius:26px;
  transition:.2s;
}
.slider:before{
  content:"";
  position:absolute;
  height:22px;
  width:22px;
  left:2px;
  top:2px;
  background:#fff;
  border-radius:50%;
  transition:.2s;
  box-shadow:0 1px 2px rgba(0,0,0,.2);
}
.switch input:checked + .slider{background:#c7b08c}
.switch input:checked + .slider:before{transform:translateX(20px)}

.cookie-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:8px 0;
  border-top:1px dashed var(--border);
}
.cookie-row:first-of-type{border-top:0}
.cookie-left{font-size:15px}
.cookie-note{
  font-size:12px;
  color:#666;
  margin-top:2px;
}

/* Micro footer (fixed, 20% opaque black background) */

.micro-footer{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  height:var(--footer-h);
  padding:4px 10px;
  font:12px/1.4 Raleway,Arial,sans-serif;
  color:#fff;
  background:rgba(0,0,0,0.2);
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  flex-wrap:wrap;
  row-gap:4px;
  z-index:9998;
}

.micro-footer a{
  color:#fff;
  text-decoration:underline;
  cursor:pointer;
  word-break:break-word;
}

/* Direct booking layout: header + scrollable booking area between header and footer */

body.directbook-page{
  --direct-header-h: 70px;
  overflow:hidden;
}

@media (max-width:800px){
  body.directbook-page{
    --direct-header-h: 100px;
  }
}

/* Direct booking layout:
   - header on top
   - fixed footer at bottom (global)
   - iframe exactly fills space between header and footer
*/

body.directbook-page .hero{
  min-height:100vh;
}

body.directbook-page .wrap{
  width:min(1200px,92%);
  padding:32px 0;
  box-sizing:border-box;
}

/* Scrollbarer Bereich für die Booking Engine:
   Höhe = Viewport - globaler Footer - Directbook-Header */
body.directbook-page .directbook-embed{
  max-width:1200px;
  width:100%;
  margin:0 auto;
  box-sizing:border-box;
  overflow:hidden; /* kein Scrollen im Wrapper */
  height:calc(100vh - var(--footer-h) - var(--direct-header-h));
}

/* Innerer Widget-Container */
body.directbook-page .directbook-embed .ibe{
  width:100%;
  height:100%;
}

/* Iframe füllt den Bereich vollständig;
   SiteMinder kümmert sich um den internen Scroll und den Fixed-Button */
body.directbook-page .directbook-embed iframe.ibefr{
  width:100% !important;
  max-width:100% !important;
  height:100% !important;
  max-height:none !important;
  border-radius:0 !important;
  border:none !important;
}

/* Direct booking header: same width as landing, only less height and simpler content */
body.directbook-page .directbook-header{
  grid-template-columns:auto 1fr;
  /* keine max-width, keine zentrierte Breite -> übernimmt wrap-Breite (bis 1200px) */
  padding:10px 18px;       /* weniger Padding als Standard 16/20 */
  align-items:center;
}

/* Logo im Directbook-Header kleiner machen */
body.directbook-page .directbook-header .sorwell--logo{
  border-right:none;       /* optional: Trennlinie entfernen, wirkt "leichter" */
  justify-content:flex-start;
}
body.directbook-page .directbook-header .sorwell--logo img{
  max-height:60px;
  max-width:90px;
}

/* "Direktbuchung"-Text kompakt */
body.directbook-page .directbook-header-text span{
  display:block;
  font:600 13px/1.4 Raleway,Arial,Helvetica,sans-serif;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#000;
  margin-left:8px;
}

/* Mobile: minimal anpassen, Breite bleibt voll */
@media (max-width:800px){
  body.directbook-page .directbook-header{
    grid-template-columns:auto 1fr;
    padding:8px 12px;
  }
  body.directbook-page .directbook-header .sorwell--logo img{
    max-height:50px;
    max-width:80px;
  }
  body.directbook-page .directbook-header-text span{
    font-size:12px;
    letter-spacing:.2em;
  }
}