/* CSS-Korrekturen & Optimierungen - Hotel Baggernpuhl */

/* ==========================================================================
   1. Globales & Typografie
   ========================================================================== */

/* Überschriften allgemein */
.ce-bodytext h2,
.bodytext h2 {
  font-family: 'quattrocento_sansbold', Arial, sans-serif !important;
  font-size: 18px;
  color: #7c0e0a;
  margin-top: 0 !important;
}

/* Fettdruck */
b,
strong {
  font-family: 'quattrocento_sansbold' !important;
  font-weight: normal;
}

/* Link zur Speisekarte */
h5 a[href*="speisekarte-06032026.pdf"] {
  text-decoration: none;
}

h5:hover a[href*="speisekarte-06032026.pdf"] {
  text-decoration: underline;
}

/* Footer-Bilder */
#footer img {
  max-width: 100px;
  max-height: 96px;
  width: auto;
  height: auto;
  display: block;
  margin: auto;
}

/* Footer-Abstände optimieren */
#footer .ce-frame,
#footer .ce-bodytext,
#footer p,
#footer h2 {
  margin-bottom: 0 !important;
  margin-top: 0 !important;
  padding-bottom: 0 !important;
  padding-top: 5px !important;
}

#footer h2 {
  line-height: 1.2 !important;
}

/* ==========================================================================
   2. Komponenten & Layout
   ========================================================================== */

/* Zwei-Spalten-Container */
.two-column-container .ce-media img,
.two-column-container .ce-gallery img,
.two-column-container .ce-textpic img {
  position: static !important;
  transform: none !important;
  margin: 0 0px 25px 0 !important;
  display: block !important;
  width: 300px !important;
  height: auto !important;
  max-width: 100% !important;
  object-fit: contain !important;
}

.two-column-container .ce-gallery,
.two-column-container .ce-media,
.two-column-container .ce-textpic,
.two-column-container .ce-column {
  overflow: visible !important;
  height: auto !important;
}

/* Standard Zwei-Spalten-Container - Strukturelle Ausrichtung */
.two-column-standard-container {
  margin-right: auto;
  margin-left: auto;
  padding-left: 15px;
  padding-right: 15px;
  margin-bottom: 0 !important;
}

.two-column-standard-container>.row {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* Galerie-Element */
.lightbox-slideshow .thumbnail {
  position: relative !important;
  display: block;
}

.lightbox-slideshow .gallerytitle {
  top: auto !important;
  bottom: 35px !important;
  left: 35px !important;
  z-index: 10;
}

/* Text-Wrapper Fix */
.text-wrapper>.wrapper>.inner>.content .text {
  padding-bottom: 0 !important;
}

/* Angebot-Element */
.angebot-wrapper>.inner>.angebot .text>.inner .wrapper p {
  margin-bottom: 5px;
}

.angebot-wrapper>.inner>.angebot .text>.inner .wrapper p:last-child {
  margin-bottom: 0;
}

.angebot-wrapper>.inner>.angebot .text>.inner .wrapper p br {
  clear: left;
}

.angebot-anfrage a {
  background: transparent !important;
  color: inherit;
  text-decoration: none;
}

.angebot-anfrage a:hover {
  text-decoration: underline !important;
}

/* Benutzerdefinierter Button: Ausflüge */
.btn-ausfluege {
  background-color: #7c0e0a;
  color: #fff !important;
  border-radius: 50px;
  padding: 12px 35px 12px 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  text-decoration: none !important;
  text-align: center;
  line-height: 1.2;
  margin-block-end: 90px;
  max-width: 335px;
  white-space: normal;
}

.btn-ausfluege:hover {
  background-color: #a0140d;
}

.btn-ausfluege::after {
  content: '\f054';
  font-family: 'FontAwesome';
  position: absolute;
  right: 26px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1em;
}

.btn-ausfluege .fa-chevron-right {
  display: none;
}

/* ==========================================================================
   3. Header & Bottom-Links (Desktop Fokus)
   ========================================================================== */

/* Navbar Fixierung oben */
#navbar {
  z-index: 1000 !important;
}

/* Header-Abstand */
#header {
  padding-bottom: 75px !important;
  background: white;
  margin-bottom: 60px;
}

/* Bottom-Links Struktur */
#header .bottom-links {
  bottom: -20px !important;
  margin: auto !important;
  left: 0 !important;
  right: 0 !important;
  position: absolute !important;
}

#header .bottom-links>.inner {
  flex-grow: 1 !important;
}

#header .bottom-links>.inner .wrapper {
  top: -46px !important;
  position: relative !important;
}

#header .bottom-links>.inner .wrapper .link {
  width: calc(100% / 3) !important;
  border-left: none !important;
  border-right: none !important;
  position: relative !important;
  top: 6px !important;
  background: transparent !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-items: center !important;
}

/* Vertikale Trennlinien in Bottom-Links */
#header .bottom-links>.inner .wrapper .link:not(:first-child) {
  background: linear-gradient(to bottom,
      transparent 1%,
      #7c0e0a 1%,
      #7c0e0a 90%,
      transparent 90%) no-repeat left / 1px 100% !important;
}

#header .bottom-links>.inner .wrapper .link>a {
  bottom: 5px !important;
}

/* Kontakt-Bereich Positionierung */
#header .bottom-links .contact {
  position: absolute;
  left: 0;
  top: -102px;
  z-index: 100;
}

#header .bottom-links .contact>a {
  color: #7c0e0a !important;
  text-decoration: none !important;
  font-family: 'quattrocento_sansbold', sans-serif !important;
  width: 120px !important;
  height: 3rem !important;
  display: block !important;
  position: absolute !important;
  left: 0 !important;
  background: white !important;
  padding: 5px 20px 5px 1.5rem !important;
  top: 5.7rem !important;
  transition: width 500ms linear, height 500ms linear !important;
}

#header .bottom-links .contact>a:hover {
  text-decoration: underline !important;
  text-decoration-color: #7c0e0a !important;
}

#header .bottom-links .contact>a.active {
  width: 184px !important;
  height: 7rem !important;
  top: 5.7rem !important;
  box-shadow: none !important;
}

/* Kontakt-Item Details */
#header .bottom-links .contact .contact-item {
  position: absolute !important;
  top: 8.5rem !important;
  margin-left: 0 !important;
  background: white !important;
  width: 184px !important;
  padding: 0 1.5rem 0rem !important;
  z-index: 100 !important;
  display: block !important;
  visibility: hidden !important;
  opacity: 0 !important;
  transition: opacity 500ms ease-out !important;
}

#header .bottom-links .contact .contact-item.visible {
  visibility: visible !important;
  opacity: 1 !important;
  transition: opacity 1500ms ease-in !important;
}

#header .bottom-links .contact .contact-item p,
#header .bottom-links .contact .contact-item aside p {
  font-size: 1.3rem !important;
  margin-bottom: 5px !important;
  color: #333 !important;
  line-height: 1 !important;
}

#header .bottom-links .contact .contact-item aside p {
  font-family: 'quattrocento_sansitalic', sans-serif !important;
}

/* Telefonlink Styling */
#header .bottom-links .contact .contact-item a[href^="tel:"] {
  font-family: 'quattrocento_sansregular', sans-serif !important;
  font-weight: 100 !important;
  font-size: 16px !important;
  text-decoration: none !important;
  color: #333 !important;
}

#header .bottom-links .contact .contact-item a[href^="tel:"]:hover {
  text-decoration: underline !important;
}

/* Zertifikat-Positionierung */
#header .bottom-links .certificate {
  position: absolute;
  right: 0 !important;
  top: -45px !important;
  width: 184px !important;
  height: 7rem;
  display: inline-flex;
  background: white !important;
  padding: 11px !important;
  z-index: 5;
}

#header .bottom-links .certificate img {
  max-width: 100% !important;
  max-height: 100% !important;
  width: auto !important;
  height: auto !important;
  display: block;
  margin: auto;
}

/* ==========================================================================
   4. Drittanbieter-Integrationen
   ========================================================================== */

/* Google Maps UI & Vorschau-Optimierung */
.tx-go-maps-ext {
  background-color: #fff;
  padding: 10px;
  box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.2);
}

.google-maps-map,
.google-maps-map>.wrapper {
  overflow: hidden !important;
}

.google-maps-map img,
.google-maps-map .map,
.js-gme-preview img,
.js-gme-preview {
  width: 100% !important;
  height: 400px !important;
  /* Standard-Desktop-Höhe */
  object-fit: cover !important;
}

/* Featherlight Video Lightbox */
.featherlight .featherlight-content {
  padding: 10px !important;
  border-bottom: 10px solid transparent !important;
  width: auto !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: 95vh !important;
  background: white !important;
  overflow: hidden !important;
}

.featherlight .featherlight-image {
  max-width: 100% !important;
  max-height: 92vh !important;
  width: auto !important;
  height: auto !important;
}

#imagevideo {
  line-height: 0 !important;
  display: none;
}

.featherlight-content #imagevideo {
  display: block !important;
}

#imagevideo video {
  width: 100% !important;
  height: auto !important;
  max-width: 90vw !important;
  max-height: 85vh !important;
  display: block;
  margin: auto;
}

/* Powermail Einstellungen */
.powermail_fieldwrap {
  margin-bottom: 2px;
  padding: 0 !important;
}

.powermail_form legend {
  font-weight: 300 !important;
}

.powermail_fieldwrap_type_check .form-check {
  display: flex !important;
  align-items: flex-start !important;
}

.powermail_fieldwrap_type_check input[type="checkbox"] {
  margin: 5px 10px 0 0 !important;
  flex: 0 0 auto;
}

.powermail_fieldwrap_type_check label:not(.powermail_label),
.powermail_fieldwrap_type_check .form-check-label {
  flex: 1;
  font-size: 16px;
  margin: 0 !important;
}

.powermail_fieldwrap_type_submit {
  margin: 30px 0 10px;
}

.powermail_fieldwrap_type_submit input[type="submit"] {
  background: #7b0000;
  color: #fff;
  border: none;
  padding: 10px 20px;
  font-size: 16px;
}

.powermail_fieldwrap_telefon {
  margin-bottom: 0px !important;
}

/* ==========================================================================
   5. Responsive Breakpoints
   ========================================================================== */

/* --- Desktop-Anpassung (ab 769px) --- */
@media screen and (min-width: 769px) {

  .powermail_field,
  .powermail_fieldwrap_type_check>div {
    display: flex;
    align-items: center;
  }

  .powermail_fieldwrap_type_check>div {
    align-items: flex-start;
  }

  .powermail_field label {
    flex: 0 0 200px;
    font-weight: 300 !important;
    margin-bottom: 0;
  }

  .powermail_field .form-control {
    flex: 1;
    min-width: 0;
    width: auto !important;
  }

  .powermail_fieldwrap_type_captcha .powermail_label,
  .powermail_fieldwrap_type_check .powermail_label,
  .powermail_fieldwrap_type_check legend {
    flex: 0 0 auto;
    min-width: 120px;
    font-weight: 300 !important;
    margin-right: 15px;
  }

  .powermail_fieldwrap_type_submit input[type="submit"] {
    width: auto;
  }

  .powermail_form .powermail_fieldwrap_type_text>div,
  .powermail_form .powermail_fieldwrap_type_submit>div,
  .powermail_fieldwrap_type_textarea textarea {
    margin-left: 15px;
  }

  .powermail_form .powermail_fieldwrap_type_submit>div {
    margin-bottom: 10%;
  }

  .container-fluid {
    padding-right: 30px;
  }
}

/* --- Tablets & Desktop (ab 768px) --- */
@media (min-width: 768px) {
  .angebot-wrapper>.inner>.angebot .text>.inner {
    padding: 20px 25px;
  }

  .two-column-standard-container {
    width: 750px;
  }
}

/* --- Navbar Anpassung (768px bis 815px) --- */
@media screen and (min-width: 768px) and (max-width: 815px) {
  .navbar-right {
    margin-right: 158px !important;
    font-size: 90% !important;
  }
}

/* --- Navbar Anpassung (815px bis 920px) --- */
@media screen and (min-width: 815px) and (max-width: 920px) {
  .navbar-right {
    margin-right: 95px !important;
    font-size: 88% !important;
  }
}

/* --- Mittlerer Desktop & Großer Desktop (ab 992px) --- */
@media (min-width: 992px) {
  .two-column-standard-container {
    width: 820px;
  }

  #header .bottom-links>.inner {
    width: 64%;
  }
}

/* --- Bildschirme bis 992px --- */
@media screen and (max-width: 992px) {

  .google-maps-map,
  .google-maps-map .wrapper,
  .google-maps-map .map,
  .google-maps-map img,
  .js-gme-preview,
  .js-gme-preview img {
    height: 300px !important;
  }

  #header .bottom-links .certificate {
    top: -40px !important;
    width: 155px !important;
    padding: 15px 1px 1px 1px !important;
  }

  #header .bottom-links .certificate img {
    max-width: 90% !important;
    position: absolute;
  }

  #header .bottom-links .contact {
    margin-left: 0.5rem;
    top: -97px !important;
  }

  /* Headline-Positionierung */
  #header .headlines {
    top: clamp(9rem, 31vw, 29rem) !important;
  }

  #header .bottom-links>.inner .wrapper .link:not(:first-child) {
    background: none !important;
  }

  #header .bottom-links>.inner .wrapper {
    top: -1rem !important;
  }

  #header .bottom-links {
    bottom: -141px !important;
  }

  #header .bottom-links .inner .wrapper .link a img {
    width: clamp(70px, 12vw, 70px) !important;
    height: auto !important;
  }

  #header .bottom-links .inner .wrapper .link a div {
    font-size: clamp(1.5rem, 1.5vw, 0.9rem) !important;
  }

  #content {
    padding-top: 0 !important;
    margin-top: 100px;
  }

  #header {
    margin-bottom: 165px !important;
  }

  #header .bottom-links .contact p,
  #header .bottom-links .contact aside p,
  #header .bottom-links .contact a,
  #header .bottom-links .contact .contact-item p,
  #header .bottom-links .contact .contact-item aside p {
    font-size: 82% !important;
  }

  #header .bottom-links .contact .contact-item a[href^="tel:"] {
    font-size: 110% !important;
  }

  #header .bottom-links .contact a.active {
    margin-left: 0rem !important;
    font-size: 95% !important;
  }

  /* --- Bildschirme bis 768px --- */
  @media screen and (max-width: 768px) {
    .angebot-wrapper>.inner>.angebot .text>.inner {
      height: 400px;
      padding: 20px !important;
    }

    .angebot-wrapper>.inner>.angebot .text>.inner .wrapper {
      margin-top: 0rem !important;
    }

    .angebot-wrapper>.inner>.angebot .text>.inner .wrapper p {
      line-height: 130%;
    }

    .angebot-wrapper>.inner>.angebot .text>.inner .wrapper p span {
      margin-top: 1rem;
    }

    .content .ce-gallery img {
      max-width: 100%;
      height: auto;
    }

    .two-column-standard-container .col-sm-6 {
      height: auto !important;
      margin-bottom: 30px !important;
      padding-bottom: 0 !important;
    }

    .two-column-standard-container .col-sm-6:last-child {
      margin-bottom: 0 !important;
    }

    .two-column-standard-container .lightbox-slideshow {
      margin-bottom: 0 !important;
    }

    .navbar-toggle {
      position: absolute !important;
      right: 2rem !important;
    }

    #navbar>.container {
      width: 100% !important;
    }

    .powermail_field {
      display: flex;
      flex-direction: column;
    }

    .powermail_field label {
      width: 100%;
      font-weight: 300 !important;
      margin-bottom: 5px;
    }

    .powermail_field .form-control,
    .powermail_field .powermail_captcha {
      width: 100% !important;
    }

    .container-fluid {
      padding: 0 15px;
    }

    .powermail_fieldwrap_type_submit input[type="submit"] {
      width: 100%;
    }

    .google-maps-map,
    .google-maps-map .wrapper,
    .google-maps-map .map,
    .google-maps-map img,
    .js-gme-preview,
    .js-gme-preview img {
      height: 250px !important;
    }

    #header .headlines {
      top: clamp(8rem, 26vw, 20rem) !important;
    }
  }

  /* --- Bildschirme bis 551px --- */
  @media screen and (max-width: 551px) {
    .navbar-toggle {
      margin-right: 20px;
    }

    .gDldoV {
      bottom: 4rem;
    }

    h2 {
      font-size: 16px;
    }
  }

  /* --- Bildschirme bis 480px --- */
  @media screen and (max-width: 480px) {
    #header .bottom-links .inner .wrapper {
      margin-top: 4rem;
    }

    #header .bottom-links>.inner .wrapper {
      top: 1rem !important;
    }

    #header .bottom-links .inner {
      background: white;
    }

    #header .headlines h1 {
      margin-bottom: 10px;
    }
  }

  /* --- Bildschirme bis 350px --- */
  @media screen and (max-width: 350px) {
    .navbar-toggle {
      margin-right: 10px;
    }

    #navbar .navbar-brand img {
      width: 85%;
    }

    .navbar-header {
      display: flex;
      flex-direction: row-reverse;
    }
  }
}