/* Extracted from single-saunagus.php; rule order preserved. */





/* === Badges === */




/* === Containers / CTA === */







/* ===== Photo header (Airbnb-style) ===== */






















/* === Program (nummereret) === */




/* === Checks === */





/* === Responsive === */
@media (max-width: 991.98px){ .pris-gus{font-size:1.5rem} }

/* SINGLE mobile block */
@media (max-width: 767.98px){
  .photo-wrap{padding:13px}
  .photo-grid{height:auto;background:transparent;grid-template-columns:1fr;grid-template-areas:none;grid-auto-rows:clamp(220px,56vw,360px)}
  .photo-item{display:block}
  .photo-item img{width:100%;height:100%;object-fit:cover;object-position:center center}
  .video-container{display:block!important;height:clamp(220px,56vw,360px)!important}
  .video-container iframe{width:100%!important;height:100%!important}
  .tab-pane{padding:0}
  .ul-diagnose{width:49%;padding:0}
}

@media (prefers-reduced-motion: reduce){
  html:focus-within{scroll-behavior:auto}
  *{transition:none!important;animation:none!important}
}



/* === Sticky CTA bar (bottom) === */











@media (max-width: 1199.98px){ .sgg-sticky-title{max-width:clamp(120px,36vw,380px)} }
@media (max-width: 991.98px){
  .sgg-sticky-inner{padding:8px 0}
  .sgg-sticky-title{font-size:1rem;max-width:clamp(110px,42vw,320px)}
  .sgg-sticky-price{font-size:1.2rem}
}
@media (max-width: 575.98px){
  .sgg-sticky-title{max-width:52vw}
  .sgg-sticky-right{gap:8px}
  .sgg-sticky-bar #btn-book{min-width:100px;padding:9px 14px}
}






/* Phones & tablets: kun første foto (IKKE video) */
@media (max-width: 991.98px){
  .photo-wrap{padding:13px}
  .saunagus-header{margin-top:0!important;border-top-left-radius:20px;border-top-right-radius:20px}
  
  /* Kun hide photo items når det IKKE er video */
  body:not(.has-video) .photo-grid{display:block!important;height:auto!important;grid-template-columns:none!important;grid-template-rows:none!important;grid-template-areas:none!important;grid-auto-rows:initial!important;background:transparent!important}
  body:not(.has-video) .photo-grid .photo-item{display:none!important}
  body:not(.has-video) .photo-grid .photo-item.photo-1{display:block!important;height:clamp(220px,56vw,360px)!important}
  body:not(.has-video) .photo-grid .photo-item.photo-1 img{width:100%!important;height:100%!important;object-fit:cover!important;object-position:center center!important}
  
  /* Video container styling for tablet/mobile */
  .photo-grid .video-container{display:block!important;height:clamp(220px,56vw,360px)!important;border-radius:12px;overflow:hidden}
  .photo-grid .video-container iframe{position:absolute!important;top:50%!important;left:50%!important;width:177.77%!important;height:177.77%!important;transform:translate(-50%,-50%)!important}
  
  .tab-pane{padding:0}
  .ul-diagnose{width:49%;padding:0}
}

/* Desktop højde */
@media (min-width: 992px){ 
  .photo-grid{height:550px}
  .video-container iframe{
    width:177.77%;
    height:177.77%;
  }
}

/* Stop horisontal scroll mobil */
@media (max-width: 991.98px){
  html, body { max-width:100vw; overflow-x:hidden; }
  .container, .container-fluid, .row, [class*="col-"], .photo-shell, .photo-grid, .sgg-sticky-bar, .modal, .modal-dialog, .modal-content, .carousel, .carousel-inner, .carousel-item { max-width:100vw; overflow-x:clip; }
  .photo-grid{width:100%}
  .carousel-item img{max-width:100%;width:100%;height:auto}
  .ratio iframe, .ratio embed, .ratio object { width:100%!important; height:100%!important; display:block; }
  .badge, .sgg-sticky-title { overflow-wrap:anywhere; word-break:break-word; }
}
@supports not (overflow-x: clip){
  @media (max-width: 991.98px){
    .container, .container-fluid, .row, [class*="col-"], .photo-shell, .photo-grid, .sgg-sticky-bar, .modal, .modal-dialog, .modal-content, .carousel, .carousel-inner, .carousel-item { overflow-x:hidden; }
  }
}





@media (max-width: 767px){
  #padd-m{padding-left:20px!important;padding-right:5px!important}
  .photo-shell{overflow:visible}
  
  /* Kun vis hero-wrap for billeder, IKKE for video */
  body:not(.has-video) .hero-wrap{position:fixed;top:0;left:0;right:0;z-index:1}
  body.has-video .hero-wrap{display:none!important}
  body.has-video .hero-spacer{display:none!important}
  
  .hero{height:490px;background-size:cover;background-position:center;background-repeat:no-repeat;border-radius:0!important;position:relative}
  .hero::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 60%, rgba(0,0,0,.35))}
  .hero-spacer{height:450px;background:transparent;pointer-events:none}
  .hero-spacer ~ section, .hero-spacer ~ div, .hero-spacer ~ *{position:relative;z-index:99999;background:#faf9f5}
  
  body:not(.has-video) .photo-shell .photo-grid{display:none!important}
  .photo-wrap{padding:0!important}
  .saunagus-header{margin-top:0!important}
  html, body{overflow-x:hidden!important}
  .top-actions{position:absolute;right:16px;top:16px;display:flex;gap:12px;z-index:2;margin-top:70px}
  .top-actions-left .btn{border-radius:999px;padding:8px 12px;background:#fff;border:1px solid rgba(0,0,0,.08);font-weight:600;font-size:14px;margin-top:70px}
  .view-all-btn{position:absolute;right:16px;bottom:80px;background:#fff;border-radius:999px;border:1px solid rgba(0,0,0,.08);padding:10px 14px;font-weight:600;box-shadow:0 6px 20px rgba(0,0,0,.15);font-size:14px;color:#000!important;z-index:9999}
  
  /* Video special styling for mobile */
  body.has-video .photo-shell{position:fixed!important;top:0!important;left:0!important;right:0!important;width:100%!important;height:490px!important;z-index:1!important;overflow:hidden!important;border-radius:0!important}
  body.has-video .photo-shell .photo-grid{display:block!important;height:490px!important;margin:0!important;padding:0!important}
  body.has-video .video-container{height:490px!important;width:100%!important;background:#000!important;position:relative!important;z-index:1!important}
  body.has-video .video-container iframe{position:absolute!important;top:50%!important;left:50%!important;width:177.77%!important;height:177.77%!important;transform:translate(-50%,-50%)!important;z-index:1!important}
  body.has-video .top-actions{z-index:99999!important}
  body.has-video .top-actions-left{z-index:99999!important}
  body.has-video .view-all-btn{z-index:99999!important}
  body.has-video .saunagus-header{margin-top:450px!important}
}
@media (max-width: 767.98px){
  .hero{background-size:cover;background-position:center;will-change:transform;transform-origin:center center;transition:transform .05s linear}
}




@media (max-width: 767.98px){
  .hero-wrap {
    overflow: hidden;
  }
  .hero {
    transform-origin: center center;
    transition: transform 0.05s linear;
  }
}

/* === Adresse sektion === */







/* ========================================
   GALLERY MODAL - COMPLETE STYLES
   ======================================== */








/* Close button - custom SVG */






/* Carousel container */






/* Slide wrapper */




/* Counter */


/* Navigation buttons */








/* Hide default Bootstrap icons */


/* Dot indicators */








/* No images fallback */


/* Mobile gallery styles */
@media (max-width: 767.98px) {
  .sgg-modal-close {
    top: 15px;
    right: 15px;
    width: 44px;
    height: 44px;
  }
  
  .sgg-carousel-counter {
    top: 20px;
    font-size: 13px;
    padding: 6px 14px;
  }
  
  .sgg-slide-wrap {
    padding: 80px 10px 100px;
  }
  
  .sgg-slide-wrap img {
    max-height: calc(100vh - 180px);
  }
  
  #carouselPhotos .carousel-control-prev,
  #carouselPhotos .carousel-control-next {
    width: 50px;
    padding: 30px 0;
  }
  
  .sgg-nav-btn {
    width: 40px;
    height: 40px;
  }
  
  .sgg-nav-btn svg {
    width: 18px;
    height: 18px;
  }
  
  #carouselPhotos .carousel-indicators {
    bottom: 25px;
    padding: 8px 14px;
    gap: 8px;
  }
  
  #carouselPhotos .carousel-indicators button {
    width: 8px;
    height: 8px;
  }
}

/* Tablet adjustments */
@media (min-width: 768px) and (max-width: 991.98px) {
  .sgg-slide-wrap {
    padding: 70px 30px;
  }
}

/* Remove any white flash on modal open - SUPER HIGH Z-INDEX */




/* Ensure touch works on mobile */



/* === Views text === */



.sgg-events-public { display: flex; flex-direction: column; gap: 16px; margin-bottom: 32px; }

.sgg-event-card {
    display: flex;
    gap: 20px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    padding: 20px;
    transition: all 0.2s ease;
    align-items: center;
}
.sgg-event-card:hover { border-color: #d1d5db; box-shadow: 0 4px 16px rgba(0,0,0,0.08); }

.sgg-event-thumb {
    flex-shrink: 0;
    width: 100px;
    height: 100px;
    border-radius: 12px;
    overflow: hidden;
    position: relative;
}
.sgg-event-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sgg-event-thumb-badge {
    position: absolute; top: 6px; left: 6px;
    background: #0c9b87; color: #fff;
    font-size: 10px; font-weight: 700;
    padding: 2px 8px; border-radius: 10px;
    text-transform: uppercase;
}

.sgg-event-date-col { flex-shrink: 0; width: 60px; text-align: center; padding: 4px 0; }
.sgg-event-month { font-size: 12px; font-weight: 700; color: #0c9b87; text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 2px; }
.sgg-event-day { font-size: 28px; font-weight: 800; color: #111; line-height: 1; margin-bottom: 2px; }
.sgg-event-weekday { font-size: 11px; color: #6b7280; font-weight: 500; }

.sgg-event-info { flex: 1; min-width: 0; }
.sgg-event-title { font-size: 17px; font-weight: 700; color: #111; margin: 0 0 6px 0; line-height: 1.3; }
.sgg-event-meta { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 8px; }
.sgg-event-meta-item { display: inline-flex; align-items: center; gap: 5px; font-size: 13px; color: #4b5563; font-weight: 500; }
.sgg-event-meta-item i { color: #9ca3af; font-size: 14px; }
.sgg-event-see-more { font-size: 14px; font-weight: 700; color: #000; display: inline-flex; align-items: center; gap: 4px; }

/* ===== EVENT MODAL ===== */
.sgg-event-modal {
    display: none; position: fixed; z-index: 99999;
    left: 0; top: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.6);
    align-items: center; justify-content: center;
    backdrop-filter: blur(4px);
}
.sgg-event-modal.active { display: flex; }

.sgg-event-modal-content {
    background: #fff; border-radius: 20px;
    max-width: 520px; width: 92%;
    max-height: 90vh; overflow: hidden;
    box-shadow: 0 25px 60px rgba(0,0,0,0.3);
    position: relative;
    display: flex; flex-direction: column;
    animation: sggModalIn 0.25s ease-out;
}
@keyframes sggModalIn {
    from { opacity: 0; transform: translateY(20px) scale(0.97); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

.sgg-event-modal-close {
    position: absolute; top: 12px; right: 12px; z-index: 10;
    width: 40px; height: 40px;
    background: rgba(255,255,255,0.95); border: none; border-radius: 50%;
    cursor: pointer; display: flex; align-items: center; justify-content: center;
    font-size: 18px; color: #111;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
    transition: transform 0.2s;
}
.sgg-event-modal-close:hover { transform: scale(1.05); }

.sgg-event-modal-hero { position: relative; width: 100%; height: 260px; overflow: hidden; flex-shrink: 0; }
.sgg-event-modal-hero img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sgg-event-modal-hero-overlay {
    position: absolute; bottom: 0; left: 0; right: 0;
    padding: 16px;
    background: linear-gradient(transparent, rgba(0,0,0,0.5));
    display: flex; align-items: flex-end;
}
.sgg-event-modal-badge {
    background: rgba(255,255,255,0.95); color: #111;
    font-size: 13px; font-weight: 600;
    padding: 6px 14px; border-radius: 50px;
    backdrop-filter: blur(8px);
}
.sgg-event-modal-badge--today { background: #0c9b87; color: #fff; }

.sgg-event-modal-body { padding: 24px; overflow-y: auto; flex: 1; }
.sgg-event-modal-title { font-size: 24px; font-weight: 800; color: #111; margin: 0 0 20px 0; line-height: 1.2; }

.sgg-event-modal-details { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 20px; }
.sgg-event-modal-detail { display: flex; align-items: flex-start; gap: 12px; }
.sgg-event-modal-detail > i { font-size: 20px; color: #9ca3af; margin-top: 2px; flex-shrink: 0; }
.sgg-event-modal-detail-label { display: block; font-size: 12px; font-weight: 600; color: #9ca3af; text-transform: uppercase; letter-spacing: 0.03em; margin-bottom: 2px; }
.sgg-event-modal-detail-value { display: block; font-size: 15px; font-weight: 600; color: #111; }

.sgg-event-modal-desc {
    font-size: 15px; color: #4b5563; line-height: 1.6;
    margin-bottom: 24px; padding-top: 20px; border-top: 1px solid #f3f4f6;
}

.sgg-event-modal-cta {
    display: flex; align-items: center; justify-content: center; gap: 10px;
    width: 100%; padding: 14px 24px;
    background: #111; color: #fff;
    border-radius: 50px; font-size: 16px; font-weight: 700;
    text-decoration: none; transition: all 0.2s;
}
.sgg-event-modal-cta:hover { background: #000; color: #fff; transform: translateY(-1px); box-shadow: 0 4px 16px rgba(0,0,0,0.2); }

/* ===== RESPONSIVE ===== */
@media (max-width: 575.98px) {
    .sgg-event-card { flex-wrap: wrap; gap: 12px; padding: 16px; }
    .sgg-event-thumb { width: 100%; height: 160px; border-radius: 10px; }
    .sgg-event-date-col { width: auto; display: flex; align-items: center; gap: 6px; text-align: left; }
    .sgg-event-day { font-size: 22px; }

    .sgg-event-modal { align-items: flex-end; }
    .sgg-event-modal-content {
        width: 100%; max-width: 100%; max-height: 92vh;
        border-radius: 20px 20px 0 0;
        animation: sggModalSlideUp 0.3s ease-out;
    }
    @keyframes sggModalSlideUp {
        from { transform: translateY(100%); }
        to { transform: translateY(0); }
    }
    .sgg-event-modal-hero { height: 220px; }
    .sgg-event-modal-details { grid-template-columns: 1fr; gap: 12px; }
    .sgg-event-modal-body { padding: 20px; }
    .sgg-event-modal-title { font-size: 20px; }
}


/* Calendar Engine: next session summary before the venue description. */
.sgg-profile-next-session{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;margin:0 0 18px;padding:0;border:0;background:transparent!important;color:#60605b;font-size:14px;line-height:1.35}
.sgg-profile-next-session__time{display:flex;align-items:center;flex-wrap:wrap;gap:7px}
.sgg-profile-next-session__time i{color:#171717;font-size:14px}
.sgg-profile-next-session__time span{font-weight:650}
.sgg-profile-next-session__time strong{color:#171717;font-weight:800}
.sgg-profile-next-session__link{display:inline-flex;align-items:center;gap:5px;color:#171717!important;font-weight:750;text-decoration:underline;text-underline-offset:3px}
.sgg-profile-next-session__link:hover{text-decoration-thickness:2px}
@media(max-width:575.98px){.sgg-profile-next-session{gap:8px 12px;margin-bottom:14px;font-size:13px}}
