/* Wurzenberg: shared detail workspace, existing fonts and colours. */
:root{--gold:#b88b39;--header:78px}
body:has(.sheet[open]){overflow:hidden}
.brand{width:176px;height:56px}.brand img{object-fit:contain}
.instant button{font-size:13px;gap:10px;padding:12px 8px;line-height:1.4}
.overview-grid{gap:14px;border:0;background:none}
.overview-card{height:auto;min-height:156px;background:#fff!important;color:var(--ink)!important;border:1px solid var(--line);padding:23px;overflow:visible;grid-template-columns:24px minmax(0,1fr) 20px;align-items:center}
.overview-card:before,.overview-card:after{display:none}
.overview-card:hover{border-color:var(--green);background:#f7f8f5!important}
.card-number{align-self:start;color:var(--gold)}
.card-content b{font-size:29px;line-height:1.12;margin-bottom:10px}
.card-content small{font-size:12px;line-height:1.6;opacity:1;color:var(--muted)}
.sheet{inset:0;width:min(1120px,100%);height:100dvh;max-height:100dvh;max-width:100%;margin:0 auto;padding:0;background:#fafaf7;overflow:hidden;box-shadow:0 0 80px #1e211e20;border:0}
.sheet[open]{display:flex;flex-direction:column;animation:none}
.sheet::backdrop{background:#1e211e55;backdrop-filter:blur(2px)}
.sheet-handle{display:none}
.sheet-toolbar{display:flex;flex:none;align-items:center;justify-content:space-between;gap:12px;min-height:76px;padding:12px 36px;background:var(--paper);border-bottom:1px solid var(--line)}
.sheet-toolbar img{width:143px;height:46px;object-fit:contain}
.sheet .sheet-back,.sheet .sheet-close{position:static;inset:auto;display:inline-flex;align-items:center;justify-content:center;width:auto;height:auto;min-width:44px;min-height:44px;padding:8px 12px;font:400 13px Inter,sans-serif;background:transparent;border:1px solid var(--line);color:var(--green)}
.sheet .sheet-back[hidden],.sheet .sheet-close[hidden]{display:none}
.sheet-close{margin-left:auto}
.sheet-toolbar-side{display:flex;align-items:center;gap:8px}
.sheet-content{overflow-y:auto;overscroll-behavior:contain;flex:1;min-height:0;scroll-behavior:auto;padding:28px 52px 56px;scrollbar-gutter:stable}
.sheet-breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 26px;font-size:12px;line-height:1.6;color:var(--muted)}
.sheet-breadcrumb button{border:0;background:transparent;color:var(--green);padding:7px 0;min-height:44px;text-decoration:underline;text-underline-offset:4px}
.sheet .eyebrow{font-size:11px;margin-bottom:10px}
.sheet h2{font-size:clamp(32px,3.4vw,44px);line-height:1.12;letter-spacing:-.015em;margin:0 0 14px;max-width:780px;overflow-wrap:anywhere}
.sheet-lead{font-size:15px;max-width:680px;margin:0 0 26px;line-height:1.7}
.sheet-lead:empty{display:none}
.sheet-detail{gap:24px;max-width:780px;margin:0 auto}
.sheet-detail .import-copy{font-size:15px;line-height:1.8}
.sheet-detail .import-copy:empty{display:none}
.import-image{margin:0 0 5px}.import-image img{height:210px;max-height:none;object-fit:cover}
.sheet-list{max-width:780px;margin:28px auto 0;border:0;display:grid;grid-template-columns:1fr;gap:0}
.sheet-list-label{grid-column:1/-1;margin:0 0 13px;font-size:11px;letter-spacing:.12em}
.sheet-list button,.sheet-list a{gap:16px;min-height:62px;padding:16px 0;font-size:15px;line-height:1.5}
.sheet-list span{overflow-wrap:anywhere}
.sheet-list i{flex:none}
.sheet-note{flex:none;border-top:1px solid var(--line);margin:0;padding:13px 36px;font-size:11px;color:var(--muted);background:var(--paper)}
.sheet.is-index .sheet-list{max-width:none;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 32px}
.sheet.is-index .sheet-list button,.sheet.is-index .sheet-list a{border:1px solid var(--line);background:#fff;padding:19px 21px;min-height:78px;align-items:center}
.sheet.is-index .sheet-list button:hover,.sheet.is-index .sheet-list a:hover{border-color:var(--green);background:#f1f3ed}
.sheet.is-index .sheet-detail{max-width:none;display:flex;flex-direction:column}
.sheet.is-index .import-image{order:10;margin:12px 0 0}
.sheet.is-index .import-image img{height:180px;object-position:center}
.sheet.is-index .import-table-wrap{border:0;overflow:visible}
.import-table{font-size:14px;line-height:1.7}
.import-table th,.import-table td{padding:16px 12px}
.import-table th{width:28%}
.import-form{border-top:1px solid var(--line);padding:26px;margin-top:0;gap:18px}
.import-form h3{font-size:28px;line-height:1.15}
.import-form label{font-size:13px;gap:8px}
.import-form input,.import-form textarea,.import-form select{min-height:48px;font-size:16px;background:#fafaf7}
.import-form .choice input{min-height:22px;flex:none}
.import-form button{font-size:15px;min-height:50px}
.import-form .form-status{font-size:13px;line-height:1.6}
.import-action{font-size:15px;line-height:1.6;gap:15px}
.import-action-primary:hover,.import-form button:hover{background:var(--green-dark);color:#fff}
.import-hint{background:transparent;border-color:var(--gold);padding:8px 0 8px 18px}
.house-knowledge h3{font:400 30px/1.2 Cormorant,serif;margin:0 0 18px}
.house-knowledge>label{display:grid;gap:8px;font-size:13px;color:var(--green);margin-bottom:20px}
.house-knowledge input{font:400 16px/1.5 Inter,sans-serif;padding:13px 15px;border:1px solid var(--line);border-radius:0;background:#fff;color:var(--ink);width:100%;min-height:48px}
.house-knowledge details{border-top:1px solid var(--line)}
.house-knowledge details:last-child{border-bottom:1px solid var(--line)}
.house-knowledge summary{cursor:pointer;min-height:58px;padding:16px 25px 16px 0;color:var(--green);font-size:15px;line-height:1.7}
.house-answer{font-size:14px;line-height:1.8;padding:0 0 22px;max-width:740px;white-space:pre-line}
.house-knowledge [hidden]{display:none}
.sheet.is-index .sheet-list .import-action-primary{background:var(--green);color:#fff;border-color:var(--green)}
.sheet.is-index .sheet-list .import-action-primary i{color:#fff}
body.public-service .sheet{width:min(1120px,100%);max-height:100dvh;margin:0 auto;padding:0;border:0}
body.public-service .sheet-toolbar{display:flex}
body.public-service .sheet-back,body.public-service .sheet-close{display:none}
@media(min-width:800px){.sheet:not(.is-index) .sheet-content>h2,.sheet:not(.is-index) .sheet-content>.eyebrow,.sheet:not(.is-index) .sheet-content>.sheet-lead{max-width:780px;margin-left:auto;margin-right:auto}.sheet:not(.is-index) .sheet-breadcrumb{max-width:780px;margin-left:auto;margin-right:auto}}
@media(max-width:760px){
 :root{--header:72px}.brand{width:159px;height:50px}
 .instant{height:auto;min-height:88px}.instant button{min-height:88px;font-size:11px;line-height:1.4;padding:10px 5px;overflow-wrap:anywhere}.instant-icon{font-size:20px}
 .welcome-copy>p:last-child{font-size:13px;line-height:1.6}.welcome-panel{height:205px}.welcome-copy h1{font-size:39px;line-height:1}
 .overview{padding:26px 18px}.overview-head{margin-bottom:20px}.overview-head .eyebrow{font-size:11px}.overview-head h2{font-size:34px}
 .overview-grid{grid-template-columns:1fr;gap:10px}.overview-card{min-height:104px;padding:20px 17px;grid-template-columns:25px minmax(0,1fr) 20px;gap:9px}.card-content b{font-size:26px;margin-bottom:6px}.card-content small{font-size:12px}.card-number{font-size:11px}.overview-card i{font-size:20px}
 .sheet-toolbar{min-height:68px;padding:9px 16px}.sheet-toolbar img{width:117px;height:42px}.sheet .sheet-close,.sheet .sheet-back{font-size:12px;padding:7px 9px;min-height:44px}
 .sheet-content{padding:16px 20px 35px}.sheet-breadcrumb{font-size:11px;margin-bottom:20px;gap:6px}.sheet h2{font-size:34px;line-height:1.12}.sheet .eyebrow{font-size:10px}.sheet-lead{font-size:14px;margin-bottom:24px}
 .sheet.is-index .sheet-list{grid-template-columns:1fr;gap:10px;margin-bottom:28px}.sheet.is-index .sheet-list button,.sheet.is-index .sheet-list a{min-height:66px;padding:15px 17px;font-size:14px}
 .import-table,.sheet-detail .import-copy{font-size:14px}.import-table th,.import-table td{padding:13px 0;display:block;width:100%;border:0}.import-table th{padding-bottom:0}.import-table td{padding-top:6px;border-bottom:1px solid var(--line)}
 .import-image img,.sheet.is-index .import-image img{height:160px}.import-form{padding:20px 16px}.import-form h3{font-size:27px}.sheet-note{padding:11px 20px;font-size:10px}
}
@media(prefers-reduced-motion:reduce){.sheet *{scroll-behavior:auto!important}}
@media(max-width:520px){
 .instant{grid-template-columns:repeat(6,minmax(0,1fr));height:auto}
 .instant button{grid-column:span 2;min-height:78px;font-size:12px;padding:10px 7px;gap:6px;overflow-wrap:normal}
 .instant button:nth-child(n+4){grid-column:span 3}
 .instant button:nth-child(3){border-right:0}
 .instant button span:last-child{overflow-wrap:normal;word-break:normal}
}

/* v3: aligned fluid containers, screen-height-aware desktop, shared interaction states. */
:root{--app-content-width:min(1600px,calc(100% - 2 * clamp(24px,4vw,88px)))}
.welcome-copy{width:var(--app-content-width);max-width:none;padding:28px 0}
.welcome-panel{height:clamp(204px,27svh,300px)}
.welcome-copy h1{font-size:clamp(42px,4vw,64px);line-height:.98}
.instant{width:var(--app-content-width);max-width:none;padding:0;background:transparent;min-height:78px}
.instant button,.instant .instant-featured{background:#fff;transition:background-color .18s ease,box-shadow .18s ease,color .18s ease}
.overview{width:var(--app-content-width);max-width:none;padding:32px 0 40px}
.overview-head{margin-bottom:22px;padding:0}
.overview-head h2{font-size:clamp(34px,3vw,46px)}
.overview-card{min-height:clamp(134px,16svh,176px);padding:clamp(18px,1.6vw,26px);transition:background-color .18s ease,border-color .18s ease}
.card-content b{font-size:clamp(26px,2vw,32px)}
.instant button:focus-visible,.overview-card:focus-visible{background:#f7f8f5!important;box-shadow:inset 0 0 0 1px var(--green);outline:2px solid var(--gold);outline-offset:3px}
.instant button:active,.overview-card:active{background:#e8ede6!important;box-shadow:inset 0 0 0 1px var(--green)}
@media(hover:hover) and (pointer:fine){
 .instant button:hover{background:#f7f8f5;box-shadow:inset 0 0 0 1px var(--green)}
 .instant button:hover .instant-icon{color:var(--green)}
}
@media(min-width:1024px) and (max-height:860px){
 .welcome-panel{height:204px}.welcome-copy{padding-block:22px}.welcome-copy h1{font-size:48px}
 .overview{padding-block:24px 30px}.overview-head{margin-bottom:18px}.overview-head h2{font-size:38px}
 .overview-card{min-height:126px;padding:20px}.overview-grid{gap:12px}
 .app-home+footer{padding-top:28px}
}
@media(min-width:600px) and (max-width:1023px){
 .overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .overview-card{min-height:138px}.card-content b{font-size:28px}
}
@media(max-width:599px){
 :root{--app-content-width:calc(100% - 36px)}
 .welcome-panel{height:205px}.welcome-copy{padding:22px 0}.welcome-copy h1{font-size:39px}
 .overview{padding-block:24px}.overview-grid{grid-template-columns:1fr;gap:10px}
 .overview-card{min-height:104px;padding:20px 17px}.card-content b{font-size:26px}
 .overview-head{margin-bottom:20px}.overview-head h2{font-size:34px}
 .instant{width:100%}
}

/* v4: descriptions stay beside their destination, without a detached text appendix. */
.website-logo{display:inline-flex;align-items:center;min-height:44px;color:var(--green)}
.website-logo:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
.sheet.is-index.is-explore .sheet-list{display:block;margin-bottom:24px}
.explore-group{margin:0 0 30px}
.explore-group h3{font:600 12px/1.5 Inter,sans-serif;letter-spacing:.13em;text-transform:uppercase;margin:0 0 14px;color:var(--green)}
.explore-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.sheet.is-index.is-explore .explore-card{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:10px;width:100%;min-height:170px;margin:0;padding:21px 23px;text-align:left;border:1px solid var(--line);background:#fff;color:var(--ink)}
.explore-card b{font:400 27px/1.15 Cormorant,serif;color:var(--ink)}
.explore-card p{font:400 13px/1.7 Inter,sans-serif;color:var(--muted);margin:0;max-width:49ch}
.explore-card-action{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:auto;padding-top:8px;color:var(--green);font-size:13px;line-height:1.5}
.explore-group:last-child .explore-grid{grid-template-columns:1fr}
.sheet.is-index.is-explore .explore-card:hover,.sheet.is-index.is-explore .explore-card:focus-visible{border-color:var(--green);background:#f7f8f5}
.sheet.is-explore .sheet-detail:empty{display:none}
@media(max-width:599px){
 .explore-grid{grid-template-columns:1fr;gap:10px}
 .explore-group{margin-bottom:25px}.explore-group h3{font-size:12px;margin-bottom:12px}
 .sheet.is-index.is-explore .explore-card{min-height:0;padding:18px;gap:9px}
 .explore-card b{font-size:25px}.explore-card-action{font-size:13px}
}

/* Recognisable service symbols, matching the existing gold line style. */
.instant-icon{display:inline-flex;align-items:center;justify-content:center;flex:none}
.instant-icon svg{display:block;width:28px;height:28px}
@media(max-width:600px){.instant-icon svg{width:24px;height:24px}}

/* E-bike partner information: readable copy and accessible contact links. */
.sheet.is-ebike .sheet-lead,.sheet.is-ebike .charge-intro p,.sheet.is-ebike .ebike-info{font-size:16px;line-height:1.65}
.sheet.is-ebike .ebike-info li{margin-block:8px}
.sheet.is-ebike .ebike-info .import-action{min-height:48px;overflow-wrap:anywhere}
@media(max-width:600px){.sheet.is-ebike .charge-intro{display:block;padding:18px}.sheet.is-ebike .charge-intro>span{display:none}.sheet.is-ebike .ebike-info ol,.sheet.is-ebike .ebike-info ul{padding-left:22px}}

/* Sauna: visible two-hour time windows and prominent operating instructions. */
.sauna-guide{display:flex;align-items:center;gap:14px;margin:0 0 22px;padding:20px;border:2px solid var(--green);background:#f3f5f1;color:var(--green);text-decoration:none;min-height:72px}
.sauna-guide>span:nth-child(2){flex:1;min-width:0}.sauna-guide strong{display:block;font-size:18px;line-height:1.4}.sauna-guide small{display:block;font-size:14px;margin-top:5px}.sauna-guide-icon{font-size:12px;font-weight:700;border:1px solid currentColor;padding:8px 5px}
.sauna-guide:hover{background:#e8ede5}.sauna-guide:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.sauna-time-field{min-width:0;border:0;padding:0;margin:0 0 20px}.sauna-time-field legend{padding:0;font-size:16px;font-weight:600}.sauna-legend{font-size:14px!important;line-height:1.5;margin:8px 0 14px!important}
.sauna-slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.import-form .sauna-slot{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:12px 6px;min-height:72px;margin:0;width:100%;border:1px solid var(--green);background:#fff;color:var(--green);font:inherit;line-height:1.35;cursor:pointer}
.sauna-slot strong{font-size:15px;white-space:nowrap}.sauna-slot span{font-size:13px}
.import-form .sauna-slot:hover:not(:disabled){background:#eef2eb}.import-form .sauna-slot[aria-pressed="true"]{background:var(--green);color:#fff;border-width:2px}.import-form .sauna-slot:disabled{background:#e8e8e5;border-color:#d2d4cf;color:#72766f;cursor:not-allowed;opacity:1}.sauna-slot:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.import-form .sauna-slot[aria-pressed="true"]:hover:not(:disabled){background:var(--green);color:#fff}
@media(max-width:700px){.sauna-slots{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.sauna-guide{padding:16px;gap:10px}.sauna-guide strong{font-size:16px}.sauna-booking .import-hint,.sauna-booking [data-sauna-availability]{font-size:16px;line-height:1.6}}
