/* Site-specific presentation improvements. Extends the supplied Nordhavn/Amager satellite classes. */
:root{--sat-bg:#faf9f5;--sat-text:#181a19;--sat-muted:#606660;--sat-line:#e6e5df;--sat-forest:#227950}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:100px}
body{font-family:'Figtree',system-ui,sans-serif!important;overflow-x:hidden}
button,input,select{font:inherit}
button{cursor:pointer}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #248550;outline-offset:3px}
[hidden]{display:none!important}
.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}
.sat-skip{position:absolute;top:-100px;left:12px;padding:12px 18px;background:#fff;color:#111;z-index:999999;border-radius:10px}
.sat-skip:focus{top:12px}
.sgg-navbar-inner{max-width:1320px!important}
.sat-nav-links>a{font-weight:700;white-space:nowrap}
.hero::before{background-image:url('https://images.unsplash.com/photo-1540555700478-4be289fbecef?w=1920')!important}
.hero .hero-stats{gap:28px}
.hero .stat-number{white-space:nowrap}
.hero-badge{font-weight:700}
/* Cards reproduce the supplied Amager/Nordhavn card UI. The original
   satellite-v12.css and public-card-components.css own all card geometry. */
.sat-card-open{display:block;text-decoration:none;color:inherit;height:100%}
.sat-card-open:hover,.sat-card-open:focus-visible{text-decoration:none;color:inherit}
.sat-places-grid{display:grid;grid-template-columns:repeat(4,minmax(0,300px));gap:20px;align-items:stretch}
.sat-places-grid .carousel-cell{width:300px;max-width:100%;margin:0;min-width:0}
.sat-places-grid .carousel-cell>.sat-card-open{height:100%}
.sat-places-grid .sauna-card{display:flex;flex-direction:column;height:100%;margin:0!important;border:0!important;box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1)!important}
.sat-places-grid .sat-card-media,.sat-places-grid .sat-card-media>img.sat-card-image{height:225px!important}
.sat-places-grid .sat-card-body{min-height:78px!important;padding:14px 18px 2px!important}
.sat-places-grid .sgg-card-next-session{min-height:20px!important;margin:7px 0 0!important}
.sat-places-grid .sgg-card-next-session.is-empty{visibility:hidden}
.sat-places-grid .price-section{padding:.5rem 1rem 1rem 1.15rem!important}
.sat-places-grid .image-overlay{padding:.75rem}
.sat-places-grid .image-overlay .sat-logo-wrap{width:50px;height:50px;flex:0 0 50px}
.sat-places-grid .sat-company-logo{width:50px;height:50px;object-fit:cover}
.sat-places-grid .sat-details-btn{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:10px 16px;border-radius:999px;background:#171717;color:#fff;font-size:13px;font-weight:800}
.sat-places-grid .sat-details-btn svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.sat-places-grid .sat-rating-row{min-height:28px}
.sat-unrated{color:#606660;font-size:12px;font-weight:600}
.sat-region-section{padding:53px 0 10px}
.sat-region-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:15px}
.sat-region-card{display:flex;flex-direction:column;align-items:start;text-align:left;background:white;border:1px solid #e8e7e2;border-radius:18px;padding:22px 19px;min-height:195px;color:var(--sat-text);transition:border-color .15s,transform .15s}
.sat-region-card:hover{border-color:#b1b8af;transform:translateY(-2px)}
.sat-region-overline{font-size:12px;font-weight:750;color:#6d746d}
.sat-region-card strong{font-size:21px;font-weight:850;margin:12px 0;letter-spacing:-.04em}
.sat-region-card small{font-size:13px;color:#697069;line-height:1.4}
.sat-region-arrow{font-weight:750;font-size:12px;margin-top:auto;padding-top:18px}
.sat-city-shortcuts{display:flex;flex-wrap:wrap;gap:9px;margin-top:22px}
.sat-city-shortcuts button{border:1px solid #e4e4de;border-radius:999px;background:#fff;padding:10px 16px;font-size:13px;font-weight:700}
.sat-city-shortcuts button:hover{background:#202321;color:#fff}
.sat-filter-toolbar{display:flex;align-items:center;gap:12px;margin:20px 0 14px}
.sat-search-wrap{display:flex;align-items:center;gap:12px;padding:0 15px;min-width:0;flex:1 1 420px;max-width:520px;height:47px;background:#fff;border:1px solid #e5e5de;border-radius:999px}
.sat-search-wrap input{background:transparent;border:0;outline:0;width:100%;height:100%;font-size:14px;min-width:0}
.sat-search-wrap:focus-within{outline:2px solid #227950;outline-offset:1px}
.sat-filter-toolbar select,.sat-calendar-filter select{height:47px;border:1px solid #e5e5de;background:#fff;padding:0 16px;border-radius:999px;min-width:180px;font-size:14px;font-weight:650}
.sat-reset{border:1px solid #e5e5de;border-radius:999px;height:46px;padding:0 19px;background:white;font-weight:750;font-size:13px}
.sat-filter-count{font-size:13px;font-weight:650;color:#6c706a;margin:0 0 17px}
.sat-calendar-filter{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:10px 0 24px}
.sat-calendar-filter label{font-size:13px;font-weight:750}
.sat-calendar-filter select{height:42px}
.sat-calendar-panel .ks-cal-day{flex:0 0 66px;min-width:66px;min-height:84px}
.sat-calendar-panel .ks-cal-day:disabled{opacity:.43;cursor:default}
.sat-calendar-panel .ks-cal-day.active{background:#171a18!important;color:#fff!important}
.sat-calendar-panel .sgg-calendar-day .ks-day-name{font-weight:800}
.sat-calendar-panel .sat-inline-venue{border:0;background:transparent;padding:0;text-align:left;color:inherit;font:inherit;cursor:pointer}
.sat-calendar-panel .sat-calendar-city{font-size:12px;color:#5c625b;margin:2px 0 6px}
.sat-calendar-panel .sgg-calendar-primary{display:flex;align-items:center;justify-content:center;border:0;font:inherit;text-decoration:none;cursor:pointer}
.sat-calendar-panel .sgg-calendar-grid{gap:14px}
.sat-calendar-panel .ks-card-title{overflow-wrap:anywhere}
.sat-calendar-panel .sat-calendar-empty{border:1px dashed #ddd;border-radius:16px;padding:27px;text-align:left;background:#fff}
.sat-calendar-panel .sat-calendar-empty h3{font-size:18px;line-height:1.4;margin:0 0 7px}
.sat-calendar-panel .sat-calendar-empty p{font-size:14px;line-height:1.6;margin:0;color:#606660}
.fsg-editorial{padding:60px 0!important}
.fsg-editorial .fsg-editorial-inner{max-width:920px;margin-inline:auto}
.fsg-editorial .fsg-editorial-inner>h2{font-size:clamp(29px,3.4vw,41px);font-weight:850;line-height:1.15;letter-spacing:-.035em;margin:46px 0 16px;color:#181a19}
.fsg-editorial .fsg-editorial-inner>h2:first-of-type{margin-top:4px}
.fsg-editorial .fsg-editorial-inner>p{font-size:16px;line-height:1.86;color:#414841;margin:0 0 18px}
.fsg-editorial .fsg-info-grid{margin:34px 0 42px}
.fsg-editorial .fsg-info-card h3{font-size:16px;letter-spacing:-.02em;font-weight:800}
.fsg-editorial .fsg-info-card p{font-size:14px}
.sat-faq-section{padding:16px 0 72px!important}
.sat-faq-list{display:grid;gap:10px;margin-top:26px}
.sat-faq-item{background:#fff;border:1px solid #e8e9e3;border-radius:13px;padding:0 20px}
.sat-faq-item summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:15px;padding:19px 0;font-size:16px;font-weight:780}
.sat-faq-item summary::-webkit-details-marker{display:none}
.sat-faq-item summary::after{content:'+';font-size:24px;font-weight:400;line-height:1}
.sat-faq-item[open] summary::after{content:'–'}
.sat-faq-item p{padding:0 0 18px;font-size:15px;line-height:1.8;color:#596059;margin:0}
.fsg-footer{min-height:0!important}
.fsg-footer-grid{grid-template-columns:2fr repeat(3,1fr)!important}
.fsg-footer-title{font-size:17px!important;margin:6px 0 10px!important;font-weight:800}
.fsg-footer li{font-size:13px!important;line-height:2.25}
.fsg-footer-brand-col p{color:#61665d;max-width:270px;font-size:14px;line-height:1.7}
.sat-footer-brand{font-size:20px!important;font-weight:850;letter-spacing:-.04em}
.sat-footer-bottom{margin-top:45px;padding-top:20px;border-top:1px solid #e8e8e3;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:12px;color:#6d726d}
.sat-legal-page{background:#faf9f5;color:#1a1e1a;margin:0;font:16px/1.8 Figtree,system-ui,sans-serif}
.sat-legal-page main{max-width:750px!important;padding:45px 0 90px}
.sat-legal-page h1{font-size:42px;line-height:1.2}
.sat-legal-page h2{margin-top:30px;font-size:25px}
@media(max-width:1150px){.sat-places-grid{grid-template-columns:repeat(3,minmax(0,300px))}.sat-region-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:850px){.sat-places-grid{grid-template-columns:repeat(2,minmax(0,300px))}.sat-region-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fsg-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.fsg-footer-brand-col{grid-column:1/-1}}
@media(max-width:600px){.sat-shell{width:calc(100% - 28px)}.sat-places-grid{display:flex;gap:0;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:thin;padding-bottom:18px}.sat-places-grid .carousel-cell{width:min(300px,82vw);flex:0 0 min(300px,82vw);margin-right:14px;scroll-snap-align:start}.sat-places-grid .sauna-card{min-height:0}.sat-region-grid{grid-template-columns:1fr 1fr;gap:10px}.sat-region-card{min-height:170px;padding:18px 13px}.sat-region-card strong{font-size:18px}.sat-region-card small{font-size:12px}.sat-filter-toolbar{flex-wrap:wrap}.sat-search-wrap{flex-basis:100%;max-width:none}.sat-filter-toolbar select{flex:1;min-width:0}.sat-section-head h2{font-size:29px}.sat-calendar-filter label{flex-basis:100%}.sat-calendar-filter select{min-width:0;flex:1}.fsg-editorial{padding:40px 0!important}.fsg-editorial .fsg-editorial-inner>p{font-size:15px;line-height:1.76}.fsg-editorial .fsg-editorial-inner>h2{font-size:28px;line-height:1.23}.fsg-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.sat-footer-bottom{margin-top:26px}}
@media(max-width:375px){.sat-region-grid{grid-template-columns:1fr}.sat-region-card{min-height:136px}.sat-city-shortcuts button{padding:8px 12px}.sat-filter-toolbar select{flex-basis:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.sat-card-open .sauna-card,.sat-region-card{transition:none}}
@media(max-width:600px){
 .hero{padding:66px 17px 52px!important}
 .hero .hero-badge{font-size:12px!important;padding:9px 15px!important;margin-bottom:22px!important;max-width:100%}
 .hero h1{font-size:clamp(35px,10vw,44px)!important;margin-bottom:17px!important}
 .hero-subtitle{font-size:16px!important;line-height:1.65!important;margin-bottom:27px!important}
 .hero .hero-buttons{gap:12px!important}
 .hero-stats{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px!important;margin-top:30px!important}
 .hero-stats .stat{min-width:0}
 .hero-stats .stat-number{font-size:23px!important;margin-bottom:5px!important}
 .hero-stats .stat-label{font-size:10px!important;line-height:1.35!important}
}

/* Live directory sync, quiet inline status – no modal UI. */
.sat-api-status{font-size:.84rem;color:#666;margin:12px 0 16px;line-height:1.5}
.sat-api-status[hidden]{display:none!important}

/* No place-dialog or click-to-open popup; whole cards are normal links. */

.sat-region-card:disabled{opacity:.44;cursor:default;transform:none!important}

/* Circular initials fallback when an organizer has not exposed a logo. */
.sat-places-grid .sat-logo-wrap,.sat-places-carousel .sat-logo-wrap{position:relative}
.sat-places-grid .sat-logo-fallback{display:flex;align-items:center;justify-content:center;width:50px;height:50px;border-radius:50%;background:#171717;color:#fff;font-size:12px;font-weight:800}
.sat-places-grid .sat-logo-fallback.is-hidden{display:none!important}
.sat-places-grid .sat-logo-wrap>img.sat-company-logo{width:50px;height:50px;object-fit:cover}

/* Exact V12.3 original card CTA and round logo styling, also for Jylland grid. */
.sat-places-grid .sat-details-btn{display:inline-flex!important;width:auto!important;min-height:42px!important;align-items:center!important;justify-content:center!important;gap:7px!important;padding:10px 16px!important;border:1px solid #171717!important;border-radius:999px!important;background:#171717!important;color:#fff!important;text-decoration:none!important;font:750 13px/1 'Figtree',sans-serif!important;white-space:nowrap!important;transition:.15s ease!important;box-shadow:none!important;transform:none!important}
.sat-places-grid .sat-details-btn:hover{border-color:#000!important;background:#000!important;color:#fff!important;transform:none!important}
.sat-places-grid .sat-details-btn svg{width:15px!important;height:15px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.8!important;stroke-linecap:round!important;stroke-linejoin:round!important}
.sat-places-grid .sat-company-logo{display:block!important;width:50px!important;height:50px!important;min-width:50px!important;max-width:50px!important;flex:0 0 50px!important;border-radius:50%!important;border:3px solid #fff!important;background:#fff!important;object-fit:cover!important;box-shadow:0 2px 8px rgba(0,0,0,.2)!important;margin-right:1rem!important;overflow:hidden!important}

/* Inline SVG icons: no icon font or external CDN dependency.
   Side-menu icons retain the original Amager V12 SVG geometry/styles. */
.hero-badge svg,.hero-btn svg,.sat-search-wrap svg{display:inline-block;width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}
.hero-badge svg{margin-right:7px}
.hero-btn svg{margin-right:8px}
.sat-search-wrap svg{color:#6e746e}
.sat-side-icon svg,.sat-side-arrow svg{display:block}

/* V3.3: Winter editorial uses the existing Amager/Nordhavn design tokens and cards. */
.sat-winter-section{padding-top:50px;padding-bottom:46px}
.sat-winter-section .sat-section-head{align-items:end}
.sat-winter-section .sat-winter-advice{margin-top:23px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.sat-winter-section .sat-winter-advice p{max-width:760px;color:#545c56;font-size:14px;line-height:1.7;margin:0}
.sat-winter-section .sat-winter-advice .hero-btn{white-space:nowrap}
.sat-winter-hero{padding:93px 0 70px;background:linear-gradient(145deg,#edf1e9 0%,#faf9f5 68%);color:#181a19}
.sat-winter-hero .fsg-eyebrow{margin-bottom:19px}
.sat-winter-hero h1{font-size:clamp(37px,5vw,67px);line-height:1.1;letter-spacing:-.05em;max-width:1000px;margin:0 0 22px;font-weight:850}
.sat-winter-hero p:not(.fsg-eyebrow){font-size:clamp(16px,1.7vw,19px);line-height:1.7;max-width:780px;color:#444b44;margin:0}
.sat-winter-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:27px}
.sat-winter-editorial{padding-bottom:10px!important}
.sat-winter-places{padding-top:24px;padding-bottom:54px}
.sat-winter-places .sat-places-grid{margin-top:12px}
.sat-winter-places .sat-api-status{margin-bottom:14px}
.sat-faq-section .sat-faq-list{margin-top:20px}
@media(max-width:600px){.sat-winter-section{padding-top:28px;padding-bottom:29px}.sat-winter-hero{padding:58px 0 44px}.sat-winter-hero h1{font-size:36px}.sat-winter-hero p:not(.fsg-eyebrow){font-size:16px}.sat-winter-actions .hero-btn{width:100%;text-align:center;justify-content:center}.sat-winter-section .sat-winter-advice .hero-btn{max-width:100%;white-space:normal}}

/* v3.4 — One actual logo or one accessible initials fallback in each original-style card. */
.sat-places-carousel .image-overlay .sat-logo-wrap,
.sat-places-grid .image-overlay .sat-logo-wrap{
 position:relative!important;display:flex!important;flex:0 0 50px!important;
 width:50px!important;height:50px!important;min-width:50px!important;
 align-items:center!important;justify-content:center!important;
 overflow:hidden!important;border:3px solid #fff!important;border-radius:50%!important;
 background:#fff!important;box-shadow:0 2px 8px rgba(0,0,0,.20)!important;margin-right:1rem!important;
}
.sat-places-carousel .image-overlay .sat-logo-wrap > img.sat-company-logo,
.sat-places-grid .image-overlay .sat-logo-wrap > img.sat-company-logo,
.sat-calendar-panel .sat-logo-wrap > img.sat-company-logo{
 position:absolute!important;inset:0!important;display:block!important;
 width:100%!important;height:100%!important;min-width:0!important;max-width:none!important;
 padding:0!important;margin:0!important;border:0!important;
 border-radius:50%!important;box-shadow:none!important;
 object-fit:cover!important;opacity:0!important;visibility:visible!important;
}
.sat-places-carousel .image-overlay .sat-logo-wrap > img.sat-company-logo.is-loaded,
.sat-places-grid .image-overlay .sat-logo-wrap > img.sat-company-logo.is-loaded,
.sat-calendar-panel .sat-logo-wrap > img.sat-company-logo.is-loaded{display:block!important;opacity:1!important}
.sat-places-carousel .image-overlay .sat-logo-wrap > .sat-logo-fallback,
.sat-places-grid .image-overlay .sat-logo-wrap > .sat-logo-fallback,
.sat-calendar-panel .sat-logo-wrap > .sat-logo-fallback{
 position:absolute!important;inset:0!important;display:flex!important;
 width:100%!important;height:100%!important;align-items:center!important;justify-content:center!important;
 border:0!important;margin:0!important;padding:0!important;border-radius:50%!important;
 background:#171717!important;color:#fff!important;font:800 11px/1 'Figtree',sans-serif!important;
}
.sat-places-carousel .image-overlay .sat-logo-wrap > .sat-logo-fallback.is-hidden,
.sat-places-grid .image-overlay .sat-logo-wrap > .sat-logo-fallback.is-hidden,
.sat-calendar-panel .sat-logo-wrap > .sat-logo-fallback.is-hidden{display:none!important}
.sat-calendar-panel .sgg-calendar-venue-logo .sat-logo-wrap{position:relative!important;display:flex!important;width:100%!important;height:100%!important;flex:0 0 100%!important;margin:0!important;border:0!important;border-radius:50%!important;overflow:hidden!important}
