/* Hotel Campo – Mobile-Fix 3.13 (<=775 px)
 * Ersetzt campo-mobile-3-12.css; Desktop bleibt unangetastet.
 * Galeriepfeile wie Statamic, sanfte Slides, Social-Icons leicht tiefer.
 */
.campo-map-exit, .campo-mobile-gallery, .campo-mobile-contact-details { display:none; }
@media (max-width:775px) {
  html body.campo-grav.campo-map-fullscreen { overflow:hidden!important; }
  html body.campo-grav.campo-map-fullscreen .campo-location-map {
    display:block!important; position:fixed!important;
    inset:81px 0 0 0!important; width:100%!important;
    height:calc(100vh - 81px)!important;
    height:calc(100dvh - 81px)!important;
    margin:0!important; padding:0!important; z-index:1235!important;
    background:#dbe2d4!important;
  }
  html body.campo-grav.campo-map-fullscreen .campo-map-exit {
    display:flex!important; position:fixed!important; top:93px!important; right:14px!important;
    z-index:1245!important; width:42px!important; height:42px!important;
    align-items:center!important; justify-content:center!important;
    color:#232323!important; background:rgba(255,255,255,.96)!important;
    font:400 32px/1 Arial,sans-serif!important; text-decoration:none!important;
    border:1px solid rgba(0,0,0,.25)!important; border-radius:3px!important;
    box-shadow:0 1px 6px rgba(0,0,0,.28)!important;
  }
  html body.campo-grav.campo-map-fullscreen .campo-location-map #campo-leaflet-map,
  html body.campo-grav.campo-map-fullscreen .campo-location-map .leaflet-container {
    width:100%!important; height:100%!important;
  }
  /* Originales Kontaktlayout: Adresse direkt nach der Seitenüberschrift. */
  html body.campo-grav .campo-mobile-contact-details {
    display:block!important; background:#fff!important; color:#111!important;
    margin:0 0 12px!important; padding:0!important;
  }
  html body.campo-grav .campo-mobile-contact-details address {
    display:block!important; margin:0 0 24px!important; padding:0!important;
    font:normal 16px/1.48 'Open Sans',Arial,sans-serif!important;
    color:#111!important;
  }
  html body.campo-grav .campo-mobile-contact-details address > * {
    display:block!important; width:fit-content!important; line-height:inherit!important;
    margin:0!important; text-decoration:none!important;
  }
  html body.campo-grav .campo-mobile-contact-details address strong {
    font-size:18px!important; font-weight:700!important;
  }
  html body.campo-grav .campo-mobile-contact-details address a {
    color:#99cc00!important; overflow-wrap:anywhere!important;
  }
  html body.campo-grav .campo-mobile-contact-details address .campo-mobile-contact-phone {
    margin-top:22px!important;
  }
  html body.campo-grav .campo-mobile-contact-details address .campo-mobile-contact-email {
    margin-top:18px!important;
  }
  html body.campo-grav .campo-mobile-contact-details h2 {
    margin:0 0 17px!important; color:#111!important;
    font:700 19px/1.4 'Open Sans',Arial,sans-serif!important;
  }
  /* Leeren CMS-Platzhalter auf Kontaktseiten nicht als großen Weißraum zeigen. */
  html body.campo-grav.campo-is-mobile-contact .units-container.main .content article > p:empty,
  html body.campo-grav.campo-is-mobile-contact .units-container.main .content article > p:has(> br:only-child) {
    display:none!important;
  }
  /* Bildergalerie: drei Slides im Track, jeweils ein Bild breit. */
  html body.campo-grav .units-container.main .campo-mobile-gallery {
    display:block!important; position:relative!important;
    box-sizing:border-box!important; width:100%!important; max-width:100%!important;
    margin:0 0 12px!important; padding:0!important; overflow:hidden!important;
    background:#30363a!important; color:#fff!important; clear:both!important;
  }
  html body.campo-grav .campo-mobile-gallery .campo-gallery-viewport {
    display:block!important; overflow:hidden!important; width:100%!important;
    aspect-ratio:16/9; touch-action:pan-y;
    -webkit-user-select:none; user-select:none; cursor:grab;
  }
  html body.campo-grav .campo-mobile-gallery .campo-gallery-viewport:active { cursor:grabbing; }
  html body.campo-grav .campo-mobile-gallery .campo-gallery-track {
    display:flex!important; width:100%!important; height:100%!important;
    transform:translate3d(-100%,0,0); will-change:transform;
  }
  html body.campo-grav .campo-mobile-gallery .campo-gallery-track.is-animating {
    transition:transform 340ms cubic-bezier(.22,.61,.36,1)!important;
  }
  html body.campo-grav .campo-mobile-gallery .campo-gallery-slide {
    display:block!important; flex:0 0 100%!important; width:100%!important;
    min-width:100%!important; height:100%!important; margin:0!important;
  }
  html body.campo-grav .campo-mobile-gallery .campo-gallery-slide img {
    display:block!important; width:100%!important; height:100%!important;
    object-fit:cover!important; margin:0!important; border:0!important;
    background:#30363a!important; -webkit-user-drag:none;
  }
  /* Vorher/Nachher mittig an gegenüberliegenden Bildrändern. */
  html body.campo-grav .campo-mobile-gallery .campo-gallery-arrow {
    display:flex!important; position:absolute!important; z-index:5!important;
    top:50%!important; transform:translateY(-50%)!important;
    align-items:center!important; justify-content:center!important;
    width:40px!important; height:48px!important; min-width:40px!important;
    padding:0!important; margin:0!important;
    color:#fff!important; border:0!important; border-radius:0!important;
    background:rgba(20,25,28,.30)!important; box-shadow:none!important;
    font:300 43px/1 Arial,sans-serif!important; cursor:pointer!important;
    touch-action:manipulation;
  }
  html body.campo-grav .campo-mobile-gallery .campo-gallery-prev {left:6px!important;right:auto!important;}
  html body.campo-grav .campo-mobile-gallery .campo-gallery-next {right:6px!important;left:auto!important;}
  html body.campo-grav .campo-mobile-gallery .campo-gallery-arrow:focus-visible,
  html body.campo-grav .campo-map-exit:focus-visible {
    outline:3px solid #99cc00!important; outline-offset:2px!important;
  }
  html body.campo-grav .campo-gallery-sr-only {
    position:absolute!important; width:1px!important; height:1px!important;
    padding:0!important; margin:-1px!important; overflow:hidden!important;
    clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important;
  }
  /* Social-Buttons wenige Pixel tiefer, wie gewünscht. */
  html body.campo-grav #page-wrp > a.social-btn--facebook {
    top:calc(50% + 10px)!important; margin-top:-36px!important;
  }
  html body.campo-grav #page-wrp > a.social-btn--instagram {
    top:calc(50% + 10px)!important; margin-top:4px!important;
  }
}
@media (max-width:775px) and (prefers-reduced-motion:reduce) {
  html body.campo-grav .campo-mobile-gallery .campo-gallery-track.is-animating {
    transition-duration:0.01ms!important;
  }
}
