/* OS Layout System Bundle
 * Bundles the refactored header system and additional footer/layover variants.
 * Keeping this as a single file reduces frontend requests for the layout system.
 */

/* Header V2 - base */
.os-header-v2{position:fixed!important;top:0;left:0;width:100%;height:88px;z-index:99;display:flex;justify-content:center;align-items:flex-start}
.os-header-v2 #mainheader.os-header-v2-main{display:flex;flex-direction:column;width:100%;min-height:88px;background:var(--main-menu-color)}
.isSticky .os-header-v2 #mainheader.os-header-v2-main{background:var(--sticky-menu-bg-color)}
body.layover-active .os-header-v2 #mainheader.os-header-v2-main{background:var(--main-menu-color)}
.os-header-v2 .os-header-grid{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;width:100%;max-width:calc(100% - 6vw);min-height:88px;padding:0}
.os-header-v2 #main-header-container{margin:auto!important}
.os-header-v2 .os-header-slot{display:flex;align-items:center;min-width:0}
.os-header-v2 .os-header-slot--left{justify-content:flex-start}
.os-header-v2 .os-header-slot--center{justify-content:center}
.os-header-v2 .os-header-slot--right{justify-content:flex-end}
.os-header-v2 .os-slot-group{display:flex;align-items:center;gap:10px;min-width:0}
.os-header-v2 .os-slot-group--mobile{display:none!important}
.os-header-v2 .os-slot-group .os-header-icons{display:flex;align-items:center;gap:0;flex-direction:row!important}
.os-header-v2 .header-icons-group{display:flex;align-items:center;flex-direction:row!important;gap:0}
.os-header-v2 .icon_header{margin:0 6px;display:flex;align-items:center;flex:0 0 auto}
.os-header-v2 .icon_header svg{width:26px!important;height:26px!important}
.os-header-v2 .icon_header.menu-icon{padding:0;border:0;background:none;color:var(--menu_icon_color);cursor:pointer}
.isSticky .os-header-v2 .icon_header.menu-icon{color:var(--sticky-menu-icons-color)}
.os-header-v2 .icon_header.menu-icon svg{display:block;width:40px!important;height:40px!important;border-radius:99px;background:var(--main-color)}
.os-header-v2 .js-menu-toggle .mt-close{display:none}
.os-header-v2 .js-menu-toggle[aria-expanded="true"] .mt-open{display:none}
.os-header-v2 .js-menu-toggle[aria-expanded="true"] .mt-close{display:block}
.os-header-v2 .js-menu-toggle[aria-expanded="false"] .mt-open{display:block}
.os-header-v2 .js-menu-toggle[aria-expanded="false"] .mt-close{display:none}
.os-header-v2 .os-site-logo{display:flex;align-items:center;height:66px;min-width:0}
.os-header-v2 .os-site-logo a{display:flex;align-items:center;justify-content:center;height:100%;width:100%}
.os-header-v2 .os-site-logo--left{justify-content:flex-start;width:min(30vw,340px)}
.os-header-v2 .os-site-logo--centered{justify-content:center;width:min(30vw,340px)}
.os-header-v2 .os-header-slot--center .os-site-logo--centered{width:auto;max-width:min(32vw,360px)}
.os-header-v2 .os-header-slot--center .os-site-logo--centered a{max-width:100%}
.os-header-v2 .os-header-slot--center .os-site-logo img{max-width:100%;height:auto}
.os-header-v2 .langswitcher.langswitcher--inline{position:static!important;right:auto}
.os-header-v2 .os-header-buttons--inline{position:static!important;transform:none!important;opacity:1!important;visibility:visible!important;transition:none!important;margin:0!important;box-shadow:none!important;pointer-events:auto}
.os-header-v2 .os-header-buttons--inline .btnholder{display:flex}
.os-header-v2 .header-submenu{width:100%;min-height:50px;display:flex;align-items:stretch;justify-content:center;background:var(--main-menu-color);border-top:1px solid rgba(0,0,0,.08)}
.isSticky .os-header-v2 .header-submenu{background:var(--sticky-menu-bg-color)}
.os-header-v2 .header-submenu .main-navigation{width:100%;max-width:calc(100% - 6vw);display:flex;align-items:stretch}
.os-header-v2 .header-submenu .main-menu{display:flex;align-items:stretch;justify-content:center;gap:22px;list-style:none;margin:0;padding:0;width:100%}
.os-header-v2 .header-submenu .menu-item{position:relative;display:flex;align-items:stretch}
.os-header-v2 .header-submenu .menu-item > a{display:flex;align-items:center;white-space:nowrap;padding:0 14px;text-decoration:none;color:inherit;min-height:50px}
.os-header-v2 .header-submenu .menu-item:hover > a{background:rgba(0,0,0,.04)}
.os-header-v2 .header-submenu .sub-menu{position:absolute;top:100%;left:0;min-width:220px;list-style:none;margin:0;padding:8px 0;background:var(--main-menu-color);border:1px solid rgba(0,0,0,.12);border-radius:12px;box-shadow:0 8px 28px rgba(0,0,0,.12);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .2s ease,transform .2s ease,visibility .2s ease;z-index:120}
.isSticky .os-header-v2 .header-submenu .sub-menu{background:var(--sticky-menu-bg-color)}
.os-header-v2 .header-submenu .sub-menu .menu-item{width:100%}
.os-header-v2 .header-submenu .sub-menu .menu-item > a{min-height:unset;padding:8px 14px;width:100%}
.os-header-v2 .header-submenu .menu-item:hover > .sub-menu{opacity:1;visibility:visible;transform:translateY(0)}
.os-header-v2 .header-submenu .sub-menu .sub-menu{top:0;left:100%;margin-left:8px}/* Layout 6 & 7 submenu colors come from OS Theme Settings (Sub-Menu Background / Text). */
#header-container-master.os-header-v2.header-wrapper-layout-6 .header-submenu,
#header-container-master.os-header-v2.header-wrapper-layout-7 .header-submenu{
  background:var(--os-submenu-bg,var(--main-menu-color))!important;
  color:var(--os-submenu-text,var(--fonts-color))!important;
}
#header-container-master.os-header-v2.header-wrapper-layout-6 .header-submenu a,
#header-container-master.os-header-v2.header-wrapper-layout-7 .header-submenu a{
  color:var(--os-submenu-text,var(--fonts-color))!important;
}
#header-container-master.os-header-v2.header-wrapper-layout-6 .header-submenu .sub-menu,
#header-container-master.os-header-v2.header-wrapper-layout-7 .header-submenu .sub-menu{
  background:var(--os-submenu-bg,var(--main-menu-color))!important;
  color:var(--os-submenu-text,var(--fonts-color))!important;
}
#header-container-master.os-header-v2.header-wrapper-layout-6 .header-submenu .menu-item:hover>a,
#header-container-master.os-header-v2.header-wrapper-layout-7 .header-submenu .menu-item:hover>a{
  background:rgba(0,0,0,.04);
}
/* Layout-specific global helper: hide floating booking on desktop if inline booking exists */
#mainheader.booking-in-header ~ #os-header-buttons-container{display:none!important}
@media (max-width: 768px){
  .os-header-v2{height:72px}
  .os-header-v2 #mainheader.os-header-v2-main{min-height:72px}
  .os-header-v2 .os-header-grid{grid-template-columns:1fr auto 1fr;min-height:72px;max-width:calc(100% - 24px);gap:6px}
  .os-header-v2 .os-slot-group--desktop{display:none!important}
  .os-header-v2 .os-slot-group--mobile{display:flex!important}
  .os-header-v2 .os-header-slot--left{justify-content:flex-start}
  .os-header-v2 .os-header-slot--center{justify-content:center}
  .os-header-v2 .os-header-slot--right{justify-content:flex-end}
  .os-header-v2 .os-header-slot--center .os-site-logo{width:auto;max-width:52vw}
  .os-header-v2 .os-header-slot--center .os-site-logo img{height:44px;max-width:100%;width:auto;object-fit:contain}
  .os-header-v2 .icon_header svg{width:26px!important;height:26px!important}
  .os-header-v2 .icon_header.menu-icon svg{width:40px!important;height:40px!important}
  .os-header-v2 .header-submenu{display:none!important}
  .os-header-v2 .os-header-buttons--inline{display:none!important}
  .os-header-v2 .os-header-icons,.os-header-v2 .header-icons-group{display:none!important}
  .os-header-v2 .langswitcher.langswitcher--inline{position:static!important;top:auto!important;left:auto!important}
  #os-header-buttons-container{display:flex!important}
}

/* Layout 6 and 7 reserve extra height for the submenu row (desktop requirement). */
@media (min-width: 769px){
  #header-container-master.os-header-v2.header-wrapper-layout-6,
  #header-container-master.os-header-v2.header-wrapper-layout-7{height:140px!important}
}

/* Header V2 - per-layout tweaks */
/* Keep desktop visual order and alignment while structure remains left|center|right */
.os-header-v2 .header_a .os-header-slot--right .os-slot-group--desktop,
.os-header-v2 .header_b .os-header-slot--left .os-slot-group--desktop,
.os-header-v2 .header_c .os-header-slot--right .os-slot-group--desktop,
.os-header-v2 .header_d .os-header-slot--right .os-slot-group--desktop,
.os-header-v2 .header_e .os-header-slot--left .os-slot-group--desktop,
.os-header-v2 .header_f .os-header-slot--left .os-slot-group--desktop,
.os-header-v2 .header_g .os-header-slot--right .os-slot-group--desktop{gap:8px;flex-wrap:nowrap}

.os-header-v2 .header_a .os-header-slot--center .os-slot-group--desktop,
.os-header-v2 .header_d .os-header-slot--center .os-slot-group--desktop,
.os-header-v2 .header_g .os-header-slot--center .os-slot-group--desktop{display:none!important}

/* Desktop burger stays visible in layouts F and G by requirement. */

/* Layout-specific balancing */
.os-header-v2 .header_d .os-header-slot--right .os-header-buttons--inline,
.os-header-v2 .header_e .os-header-slot--right .os-header-buttons--inline,
.os-header-v2 .header_f .os-header-slot--right .os-header-buttons--inline{margin-left:6px!important}

.os-header-v2 .header_e .os-header-slot--left .os-slot-group--desktop{justify-content:flex-start}
.os-header-v2 .header_c .os-header-slot--right .os-slot-group--desktop{justify-content:flex-end}

/* Mobile: force canonical order only visible elements */
@media (max-width: 768px){
  .os-header-v2 #mainheader.os-header-v2-main{background:var(--main-menu-color)}
  .isSticky .os-header-v2 #mainheader.os-header-v2-main{background:var(--sticky-menu-bg-color)}
  .os-header-v2 .os-header-slot--left > .os-slot-group--mobile,
  .os-header-v2 .os-header-slot--center > .os-slot-group--mobile,
  .os-header-v2 .os-header-slot--right > .os-slot-group--mobile{width:auto}
}

/* ==========================================================================
   Footer Layout Variants (A/B/C)
   These rules style the new selectable footer layouts and reuse the global
   theme variables so colors and typography remain consistent.
   ========================================================================== */

/* Shared footer layout wrapper */
#os-footer-menu.os-footer-layout-wrapper { position: relative; }
#os-footer-menu.os-footer-layout-wrapper .os-footer-layout { width: 100%; }

/* Layout B: brand/info highlighted, menus grouped in cards */
#os-footer-menu.footer-layout--b .os-footer-grid .row.top-footer.os-footer-redesign {
  display: flex;
  flex-direction: column;
  gap: 26px;
}
#os-footer-menu.footer-layout--b .os-footer-row-top {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr) minmax(0, 1fr);
  gap: 24px;
  align-items: start;
}
#os-footer-menu.footer-layout--b .os-footer-row-bottom {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 24px;
  align-items: start;
}
#os-footer-menu.footer-layout--b .os-footer-col-brand,
#os-footer-menu.footer-layout--b .os-footer-col-partnership,
#os-footer-menu.footer-layout--b .os-footer-contact-card {
  padding: 18px;
  border: 1px solid rgba(255,255,255,0.14);
  border-radius: 16px;
  background: rgba(255,255,255,0.03);
}
#os-footer-menu.footer-layout--b .os-footer-col-brand .social-list,
#os-footer-menu.footer-layout--b .os-footer-contact-card .social-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
#os-footer-menu.footer-layout--b .os-footer-col-brand .social-list li,
#os-footer-menu.footer-layout--b .os-footer-contact-card .social-list li { margin: 0; }
#os-footer-menu.footer-layout--b .os-footer-contact-card .social-list { margin-top: 14px; }

/* Layout C: compact menu cards on top + center brand panel */
#os-footer-menu.footer-layout--c .os-footer-grid .row.top-footer.os-footer-redesign {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
#os-footer-menu.footer-layout--c .os-footer-row-top {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  align-items: start;
}
#os-footer-menu.footer-layout--c .os-footer-row-bottom {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr) minmax(0, 1fr);
  gap: 20px;
  align-items: start;
}
#os-footer-menu.footer-layout--c .os-footer-panel {
  padding: 16px;
  border: 1px solid rgba(255,255,255,0.14);
  border-radius: 16px;
  background: rgba(255,255,255,0.03);
}
#os-footer-menu.footer-layout--c .os-footer-panel h4 { margin-top: 0; }
#os-footer-menu.footer-layout--c .os-footer-panel .social-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
#os-footer-menu.footer-layout--c .os-footer-panel .social-list li { margin: 0; }
#os-footer-menu.footer-layout--c .os-footer-panel--center { text-align: center; }
#os-footer-menu.footer-layout--c .os-footer-panel--center .footer-logo {
  display: flex;
  justify-content: center;
}
#os-footer-menu.footer-layout--c .os-footer-panel--center .social-list { justify-content: center; }
#os-footer-menu.footer-layout--c .copyright-footer .os-copyfooter {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto minmax(0,1fr);
  align-items: center;
}
#os-footer-menu.footer-layout--c .copyright-footer .os-copy-left { justify-self: start; }
#os-footer-menu.footer-layout--c .copyright-footer .os-copy-center { justify-self: center; }
#os-footer-menu.footer-layout--c .copyright-footer .os-copy-right { justify-self: end; }

/* Mobile normalization for variant B/C */
@media (max-width: 768px) {
  #os-footer-menu.footer-layout--b .os-footer-row-top,
  #os-footer-menu.footer-layout--b .os-footer-row-bottom,
  #os-footer-menu.footer-layout--c .os-footer-row-top,
  #os-footer-menu.footer-layout--c .os-footer-row-bottom {
    display: block;
  }
  #os-footer-menu.footer-layout--b .os-footer-row-top > *,
  #os-footer-menu.footer-layout--b .os-footer-row-bottom > *,
  #os-footer-menu.footer-layout--c .os-footer-row-top > *,
  #os-footer-menu.footer-layout--c .os-footer-row-bottom > * {
    margin-bottom: 14px;
  }
  #os-footer-menu.footer-layout--c .copyright-footer .os-copyfooter {
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-items: flex-start;
  }
  #os-footer-menu.footer-layout--b .os-footer-col-brand,
  #os-footer-menu.footer-layout--b .os-footer-col-partnership,
  #os-footer-menu.footer-layout--b .os-footer-contact-card,
  #os-footer-menu.footer-layout--c .os-footer-panel {
    border-radius: 12px;
    padding: 14px;
  }
}



/* Footer Layout D */
#os-footer-menu.footer-layout--d .os-footer-layout-d .os-footer-row-top {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(280px,1.2fr) minmax(0,1fr);
  gap: 18px;
  align-items: stretch;
}
#os-footer-menu.footer-layout--d .os-footer-layout-d .os-footer-row-bottom--menus {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 18px;
  margin-top: 18px;
}
#os-footer-menu.footer-layout--d .os-footer-panel,
#os-footer-menu.footer-layout--d .os-footer-row-bottom--menus > .os-footer-col {
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 14px;
  padding: 16px;
  background: rgba(255,255,255,0.02);
}
#os-footer-menu.footer-layout--d .brand-panel {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
}
#os-footer-menu.footer-layout--d .brand-panel .social-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
}
#os-footer-menu.footer-layout--d .copyright-footer .os-copyfooter {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto minmax(0,1fr);
  align-items: center;
}
#os-footer-menu.footer-layout--d .copyright-footer .os-copy-left { justify-self: start; }
#os-footer-menu.footer-layout--d .copyright-footer .os-copy-center { justify-self: center; }
#os-footer-menu.footer-layout--d .copyright-footer .os-copy-right { justify-self: end; }
@media (max-width: 900px) {
  #os-footer-menu.footer-layout--d .os-footer-layout-d .os-footer-row-top,
  #os-footer-menu.footer-layout--d .os-footer-layout-d .os-footer-row-bottom--menus {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 768px) {
  #os-footer-menu.footer-layout--d .os-footer-panel,
  #os-footer-menu.footer-layout--d .os-footer-row-bottom--menus > .os-footer-col {
    border-radius: 12px;
    padding: 14px;
  }
  #os-footer-menu.footer-layout--d .copyright-footer .os-copyfooter {
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-items: flex-start;
  }
}
/* ==========================================================================
   Simple Layover Variants (B/C)
   Variant A continues to use the legacy visual style from opensmjle.styles.css.
   ========================================================================== */

/* Shared variant helpers */
.layover-menu.layover-menu--b .layover-inner,
.layover-menu.layover-menu--c .layover-inner,
.layover-menu.layover-menu--d .layover-inner {
  gap: 28px;
}
.layover-menu.layover-menu--b .layover-col,
.layover-menu.layover-menu--c .layover-col,
.layover-menu.layover-menu--d .layover-col { min-width: 0; }

/* Variant B: wider menu column + info card */
.layover-menu.layover-menu--b .layover-inner { align-items: stretch; }
.layover-menu.layover-menu--b .layover-menu-col { flex: 1 1 62%; }
.layover-menu.layover-menu--b .layover-extra-col { flex: 1 1 38%; display: flex; align-items: stretch; }
.layover-menu.layover-menu--b .footer-links.social-kontakt.layover {
  width: 100%;
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 18px;
  padding: 18px;
  background: rgba(255,255,255,0.03);
}
.layover-menu.layover-menu--b .layover-root-menu {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 10px 18px;
}
.layover-menu.layover-menu--b .layover-root-menu > .layover-item {
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.layover-menu.layover-menu--b .layover-row { padding: 6px 0; }

/* Variant C: info panel on top + menu grid below */
.layover-menu.layover-menu--c .layover-inner {
  display: flex;
  flex-direction: column;
  max-width: min(1100px, calc(100% - 32px));
  margin: 0 auto;
}
.layover-menu.layover-menu--c .layover-extra-col { order: 1; }
.layover-menu.layover-menu--c .layover-menu-col { order: 2; }
.layover-menu.layover-menu--c .footer-links.social-kontakt.layover {
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 18px;
  padding: 16px 18px;
  background: rgba(255,255,255,0.03);
}
.layover-menu.layover-menu--c .layover-address { margin-bottom: 12px; }
.layover-menu.layover-menu--c .social-list {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.layover-menu.layover-menu--c .social-list li { margin: 0; }
.layover-menu.layover-menu--c .layover-root-menu {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 8px 20px;
}
.layover-menu.layover-menu--c .layover-item {
  border-bottom: 1px solid rgba(255,255,255,0.07);
}

/* Variant D: compact menu card + stacked info modules */
.layover-menu.layover-menu--d .layover-inner {
  align-items: stretch;
  max-width: min(1160px, calc(100% - 32px));
  margin: 0 auto;
}
.layover-menu.layover-menu--d .layover-menu-col {
  flex: 1 1 58%;
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 18px;
  padding: 18px;
  background: rgba(255,255,255,0.03);
}
.layover-menu.layover-menu--d .layover-extra-col {
  flex: 1 1 42%;
  display: flex;
}
.layover-menu.layover-menu--d .footer-links.social-kontakt.layover {
  width: 100%;
  display: grid;
  grid-template-rows: auto auto;
  gap: 16px;
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 18px;
  padding: 18px;
  background: rgba(255,255,255,0.03);
}
.layover-menu.layover-menu--d .layover-address {
  border-bottom: 1px solid rgba(255,255,255,0.08);
  padding-bottom: 12px;
}
.layover-menu.layover-menu--d .layover-root-menu > .layover-item {
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.layover-menu.layover-menu--d .layover-row { padding: 6px 0; }

@media (max-width: 900px) {
  .layover-menu.layover-menu--b .layover-root-menu,
  .layover-menu.layover-menu--c .layover-root-menu {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 768px) {
  .layover-menu.layover-menu--b .layover-inner,
  .layover-menu.layover-menu--c .layover-inner,
  .layover-menu.layover-menu--d .layover-inner { gap: 16px; }
  .layover-menu.layover-menu--b .footer-links.social-kontakt.layover,
  .layover-menu.layover-menu--c .footer-links.social-kontakt.layover,
  .layover-menu.layover-menu--d .footer-links.social-kontakt.layover {
    border-radius: 12px;
    padding: 14px;
  }
}


/* KPM */

.os-header-v2 .icon_header.menu-icon {
  color: #fff !important;
}

.layover-pro-item.is-active .layover-pro-main {
  color: #fff;
}