
:root{--green:#596141;--green-dark:#3f472e;--cream:#faf8f3;--beige:#ded4c2;--ink:#292b25;--white:#fff;--line:rgba(41,43,37,.15)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:Corbel,'Trebuchet MS',Arial,sans-serif;line-height:1.65}.page-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:14px 4vw;background:rgba(250,248,243,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.page-nav{display:flex;gap:22px;align-items:center}.page-nav a,.page-lang button{color:inherit;text-decoration:none;font-size:.9rem}.page-lang{display:flex;gap:5px}.page-lang button{border:0;background:transparent;padding:7px;cursor:pointer}.page-lang button.active{font-weight:700;text-decoration:underline}.book{background:var(--green);color:white!important;padding:11px 16px}.mobile-menu{display:none}.page-hero{min-height:62vh;display:grid;place-items:end start;padding:7vw 6vw;color:white;background-size:cover;background-position:center;position:relative}.page-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(18,22,15,.72),rgba(18,22,15,.12))}.page-hero>div{position:relative;max-width:760px}.kicker{text-transform:uppercase;letter-spacing:.18em;font-size:.75rem;font-weight:600}.page-hero h1,h2,h3{font-family:Corbel,'Trebuchet MS',Arial,sans-serif;line-height:1.05}.page-hero h1{font-size:clamp(3rem,7vw,6.3rem);margin:.2em 0}.page-hero p{font-size:1.15rem;max-width:640px}.section{padding:90px 6vw}.container{max-width:1180px;margin:auto}.lead-grid,.two-col{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.section h2{font-size:clamp(2.5rem,5vw,4.4rem);margin:.2em 0 .4em}.feature-cards,.gallery-full,.faq-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.card{background:white;padding:28px;border:1px solid var(--line)}.card h3{font-size:2rem;margin:.1em 0}.photo{width:100%;height:430px;object-fit:cover}.gallery-full button{padding:0;border:0;background:none;cursor:pointer;overflow:hidden}.gallery-full img{width:100%;height:300px;object-fit:cover;transition:.5s}.gallery-full button:hover img{transform:scale(1.035)}.cta{background:var(--green-dark);color:white}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:25px}.btn{display:inline-flex;gap:10px;align-items:center;text-decoration:none;padding:14px 20px;border:1px solid currentColor;color:inherit}.btn.primary{background:var(--green);color:white;border-color:var(--green)}.detail-list{list-style:none;padding:0;display:grid;gap:12px}.detail-list li{padding-bottom:12px;border-bottom:1px solid var(--line)}.notice{padding:18px;border-left:4px solid var(--green);background:white}.faq details{background:white;border:1px solid var(--line);padding:20px;margin-bottom:12px}.faq summary{font-weight:600;cursor:pointer}.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:60px}.contact-card{background:white;padding:28px}.contact-card a{color:inherit}.form{display:grid;gap:14px}.form label{display:grid;gap:6px;font-size:.9rem}.form input,.form textarea,.form select{width:100%;padding:13px;border:1px solid var(--line);background:#fff;font:inherit}.form textarea{min-height:130px}.site-footer{padding:50px 6vw 20px;background:#22271d;color:white}.footer-top{max-width:1180px;margin:auto;display:grid;grid-template-columns:1fr 1fr 1fr;gap:30px}.site-footer img{width:180px;background:white}.site-footer a{color:white}.footer-bottom{max-width:1180px;margin:35px auto 0;padding-top:20px;border-top:1px solid rgba(255,255,255,.2);display:flex;justify-content:space-between;gap:20px;font-size:.85rem}.legal{max-width:900px}.legal h2{font-size:2.5rem;margin-top:1.4em}.modal{position:fixed;inset:0;background:rgba(0,0,0,.9);display:none;place-items:center;z-index:99;padding:30px}.modal.open{display:grid}.modal img{max-width:95vw;max-height:88vh}.modal button{position:absolute;right:25px;top:20px;font-size:2rem;background:none;color:white;border:0;cursor:pointer}
@media(max-width:900px){.page-nav{display:none}.mobile-menu{display:block}.page-header.open .page-nav{display:flex;position:absolute;top:84px;left:0;right:0;background:var(--cream);padding:25px;flex-direction:column;align-items:flex-start}.lead-grid,.two-col,.contact-grid{grid-template-columns:1fr}.feature-cards,.gallery-full,.faq-grid{grid-template-columns:1fr 1fr}.page-hero{min-height:70vh}.section{padding:65px 5vw}.footer-top{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.feature-cards,.gallery-full,.faq-grid,.footer-top{grid-template-columns:1fr}.page-hero h1{font-size:3.2rem}.page-hero{padding:90px 6vw 45px}.photo{height:320px}.footer-bottom{flex-direction:column}.page-lang{display:none}}
.page-nav a{font-family:Corbel,'Trebuchet MS',Arial,sans-serif;font-size:13px;font-weight:500;letter-spacing:.02em;line-height:1.2}

/* Lage page refinements */
.plan-preview{border:0;background:white;padding:18px;cursor:pointer;overflow:hidden;box-shadow:0 18px 45px rgba(41,43,37,.12);height:520px;display:flex;align-items:center;justify-content:center}
.plan-vertical{width:100%;height:100%;object-fit:contain;transform:none}
.embedded-map{margin-top:55px}
.embedded-map iframe{width:100%;height:430px;border:0;box-shadow:0 18px 45px rgba(41,43,37,.12)}
.modal.plan-modal{padding:18px;background:rgba(0,0,0,.92)}
.modal.plan-modal img{max-width:min(96vw,1180px);max-height:90vh;width:100%;height:auto;object-fit:contain;transform:none;box-shadow:0 24px 70px rgba(0,0,0,.45);background:white}
@media(max-width:600px){.plan-preview{height:360px;padding:10px}.plan-vertical{transform:none}.embedded-map iframe{height:330px}.modal.plan-modal img{width:96vw;max-width:96vw}}

.arrival-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:34px}.arrival-card{background:#fff;border:1px solid var(--line);padding:24px}.arrival-card h3{font-size:1.7rem;margin:.1em 0 .45em}.arrival-card p{margin:0;color:#55584f}@media(max-width:900px){.arrival-grid{grid-template-columns:1fr}}
.restaurant-family-card{margin-top:42px}.restaurant-family-card .arrival-card{padding:30px 34px;border-left:3px solid var(--green)}.restaurant-family-card .arrival-card p{max-width:820px}
.restaurant-family-card .arrival-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,38%);align-items:center;gap:30px}.restaurant-family-image{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center 52%;border-radius:10px}.ac-content-slideshow{position:relative;isolation:isolate;overflow:hidden;border-radius:12px;aspect-ratio:4/3;min-height:0}.ac-content-slideshow img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.1s ease-in-out}.ac-content-slideshow img.active{opacity:1}.ac-content-slideshow img[src$="Foto-16.09.26,-14-10-12.jpg"]{object-fit:contain;background:#eee8dd}@media(max-width:720px){.restaurant-family-card .arrival-card{grid-template-columns:1fr;gap:22px}.restaurant-family-image{aspect-ratio:4/3}.ac-content-slideshow{aspect-ratio:4/3}}
.location-info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:900px){.location-info-grid{grid-template-columns:1fr}}

/* Nearby essentials on the location page. */
.nearby-section{margin:90px 0;padding:100px 6vw;background:#ebe7dc;color:var(--ink)}
.nearby-heading{display:grid;grid-template-columns:1.15fr .85fr;gap:72px;align-items:end;margin-bottom:52px}
.nearby-heading h2{max-width:720px;margin:.15em 0 0;font-size:clamp(2.7rem,5vw,4.8rem);letter-spacing:-.035em}
.nearby-heading>p{max-width:520px;margin:0 0 10px;font-size:1.05rem}
.nearby-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.nearby-group{padding:34px;background:#faf8f3;border:1px solid rgba(40,42,37,.12);box-shadow:0 18px 50px rgba(33,35,28,.08)}
.nearby-highlight{background:#596141;color:#fff}.nearby-highlight .kicker{color:#e3dcc9}.nearby-highlight .nearby-list li{border-color:rgba(255,255,255,.2)}
.nearby-wide{grid-column:1/-1}.nearby-group-title{display:flex;gap:18px;align-items:flex-start;margin-bottom:20px}.nearby-icon{width:46px;height:46px;flex:0 0 46px;padding:7px;border:1px solid currentColor;border-radius:50%;color:var(--green);fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;opacity:.82}.nearby-highlight .nearby-icon{color:#fff}
.nearby-group-title .kicker{margin:0 0 5px}.nearby-group-title h3{margin:0;font-size:clamp(1.7rem,3vw,2.35rem)}
.nearby-list{list-style:none;margin:0;padding:0}.nearby-list li{display:grid;grid-template-columns:minmax(0,1fr) 38px;gap:16px;align-items:center;padding:16px 0;border-top:1px solid rgba(40,42,37,.13)}
.nearby-list strong,.nearby-list small{display:block}.nearby-list strong{font-size:1rem}.nearby-list small{margin-top:2px;line-height:1.45;opacity:.72}.nearby-list a{display:grid;place-items:center;width:36px;height:36px;border:1px solid currentColor;border-radius:50%;color:var(--green);text-decoration:none;transition:.22s}.nearby-highlight .nearby-list a{color:#fff}.nearby-list a:hover,.nearby-list a:focus-visible{transform:translateY(-2px);background:var(--green);color:#fff}.nearby-highlight .nearby-list a:hover,.nearby-highlight .nearby-list a:focus-visible{background:#fff;color:var(--green)}
.nearby-restaurants{display:grid;grid-template-columns:1fr 1fr;column-gap:38px}.distance-note{margin:22px 0 0;font-size:.78rem;line-height:1.55;opacity:.68}
@media(max-width:900px){.nearby-section{margin:64px 0;padding:72px 5vw}.nearby-heading,.nearby-groups{grid-template-columns:1fr}.nearby-heading{gap:22px;margin-bottom:34px}.nearby-wide{grid-column:auto}.nearby-restaurants{grid-template-columns:1fr}}
@media(max-width:600px){.nearby-section{padding:58px 16px}.nearby-group{padding:25px 20px}.nearby-heading h2{font-size:2.55rem}.nearby-list li{padding:14px 0}}
.radius-map{position:relative;height:650px;overflow:hidden;border:1px solid rgba(56,61,43,.16);border-radius:18px;background:linear-gradient(135deg,#f8f5ed,#e7e5d8);box-shadow:0 22px 65px rgba(40,43,31,.1)}
.satellite-base{position:absolute;inset:-2px;z-index:0;width:calc(100% + 4px);height:calc(100% + 4px);border:0;filter:saturate(.72) contrast(.92) brightness(.88);pointer-events:none}.radius-map:after{z-index:1;inset:0;width:auto;height:auto;border-radius:0;background:rgba(247,244,237,.12)}
.restaurant-radius-map{background:#e9e6da}.restaurant-radius-map:after{background:radial-gradient(circle at 22% 25%,rgba(255,255,255,.55),transparent 30%),linear-gradient(135deg,rgba(89,97,65,.04),rgba(255,255,255,.12));pointer-events:none}.restaurant-radius-map .map-road{display:block;position:absolute;z-index:1;height:15px;border:1px solid rgba(89,97,65,.18);border-radius:999px;background:#faf8f3;box-shadow:0 0 0 5px rgba(255,255,255,.38)}.restaurant-radius-map .road-main{width:115%;left:-8%;top:49%;transform:rotate(-7deg)}.restaurant-radius-map .road-cross{width:78%;left:39%;top:34%;transform:rotate(63deg)}.restaurant-radius-map .road-south{width:72%;left:18%;top:76%;transform:rotate(5deg)}.restaurant-radius-map .map-river{display:block;position:absolute;z-index:1;width:110%;height:22px;left:-5%;top:60%;border-radius:55%;background:rgba(111,146,137,.2);transform:rotate(-10deg)}
.restaurant-radius-map.leaflet-container{z-index:1;background:#e9e6da;font-family:inherit}.restaurant-radius-map.leaflet-container:before,.restaurant-radius-map.leaflet-container:after{display:none}.restaurant-radius-map .leaflet-tile-pane{filter:sepia(.16) saturate(.55) brightness(1.04) contrast(.9)}.restaurant-radius-map .leaflet-control-zoom a{color:#596141}.restaurant-radius-map .leaflet-control-attribution{font-size:9px}.place-marker{background:transparent;border:0}.place-marker-label{position:relative;display:inline-flex;align-items:center;gap:7px;width:max-content;max-width:170px;padding:7px 10px;border:1px solid rgba(56,61,43,.2);border-radius:8px;background:rgba(250,248,243,.96);color:#303329;font:700 11px/1.25 Arial,sans-serif;box-shadow:0 5px 16px rgba(35,39,28,.16)}.place-marker-label:before{content:"";width:9px;height:9px;flex:0 0 9px;border:2px solid #faf8f3;border-radius:50%;background:#596141;box-shadow:0 0 0 2px #596141}.place-marker-label.home{background:#596141;color:#fff;font-size:12px}.place-marker-label.home:before{background:#fff;box-shadow:0 0 0 2px #fff}.place-marker-label.shop:before{background:#7b765a;box-shadow:0 0 0 2px #7b765a}.place-marker-label.bakery:before{background:#a1845e;box-shadow:0 0 0 2px #a1845e}.place-marker-label.fuel:before{background:#3d5548;box-shadow:0 0 0 2px #3d5548}.place-marker-label.lift:before{border-radius:2px;background:#394539;box-shadow:0 0 0 2px #394539;transform:rotate(45deg)}.place-marker-label.gutshof{border-color:#596141;cursor:pointer}.restaurant-radius-map .leaflet-popup-content-wrapper{border-radius:9px;color:#303329}.restaurant-radius-map .leaflet-popup-content{margin:14px 16px;font-family:inherit}.restaurant-radius-map .leaflet-popup-content strong{display:block;margin-bottom:4px;color:#596141}.restaurant-radius-map .leaflet-popup-content a{color:#596141;font-weight:700}.restaurant-radius-map .leaflet-interactive{stroke:#596141;fill:#7d8763}
.static-location-map{isolation:isolate;background:#e7e5d8;background-image:radial-gradient(circle at 16% 18%,rgba(255,255,255,.7),transparent 27%),linear-gradient(135deg,rgba(89,97,65,.07),rgba(250,248,243,.35))}.static-location-map:before,.static-location-map:after{display:none!important}.static-map-lines{position:absolute;inset:0;z-index:0;width:100%;height:100%}.map-road-line{fill:none;stroke:#faf8f3;stroke-width:15;stroke-linecap:round;filter:drop-shadow(0 0 1px rgba(89,97,65,.38))}.map-road-line.major{stroke-width:25}.map-road-line.minor{stroke-width:9;stroke-dasharray:7 7}.map-river-line{fill:none;stroke:rgba(103,139,130,.27);stroke-width:24;stroke-linecap:round}.static-radius{position:absolute;z-index:1;left:68.1%;top:62.6%;width:56.8%;height:44%;transform:translate(-50%,-50%);border:3px dashed rgba(89,97,65,.78);border-radius:50%;background:rgba(89,97,65,.055)}.static-radius span{position:absolute;left:50%;top:5%;transform:translateX(-50%);padding:5px 12px;border-radius:99px;background:#596141;color:#fff;font-size:10px;font-weight:700;letter-spacing:.13em}.geo-place{position:absolute;z-index:3;left:var(--x);top:var(--y);width:0;height:0;color:#303329;text-decoration:none}.geo-place i{position:absolute;left:-6px;top:-6px;width:12px;height:12px;border:2px solid #faf8f3;border-radius:50%;background:#596141;box-shadow:0 0 0 2px #596141}.geo-place span{position:absolute;left:var(--dx);top:var(--dy);display:block;width:max-content;max-width:155px;padding:6px 9px;border:1px solid rgba(56,61,43,.2);border-radius:7px;background:rgba(250,248,243,.96);font-size:11px;font-weight:700;line-height:1.25;box-shadow:0 5px 15px rgba(35,39,28,.13)}.geo-place small{display:block;margin-top:2px;font-size:8px;font-weight:500;opacity:.72}.geo-place.home i{background:#fff;box-shadow:0 0 0 4px #596141}.geo-place.home span{background:#596141;color:#fff;font-size:12px}.geo-place.shop i{background:#7b765a;box-shadow:0 0 0 2px #7b765a}.geo-place.bakery i{background:#a1845e;box-shadow:0 0 0 2px #a1845e}.geo-place.fuel i{background:#3d5548;box-shadow:0 0 0 2px #3d5548}.geo-place.lift i{border-radius:2px;background:#394539;box-shadow:0 0 0 2px #394539;transform:rotate(45deg)}.geo-place.gutshof span{border-color:#596141}.geo-place.gutshof:hover span,.geo-place.gutshof:focus-visible span{background:#596141;color:#fff}.static-map-north{position:absolute;z-index:3;right:17px;bottom:16px;display:grid;place-items:center;width:45px;height:45px;border:1px solid rgba(56,61,43,.25);border-radius:50%;background:rgba(250,248,243,.9);color:#596141;font-size:9px;font-weight:800}.static-map-north b{font-size:17px;line-height:.65}
.map-category-filter{display:flex;justify-content:center;flex-wrap:wrap;gap:9px;margin:0 0 20px}.map-category-filter button{min-height:42px;padding:0 19px;border:1px solid rgba(89,97,65,.4);border-radius:999px;background:transparent;color:#596141;font:700 11px/1 Arial,sans-serif;letter-spacing:.075em;text-transform:uppercase;cursor:pointer;transition:background .2s,color .2s,transform .2s}.map-category-filter button:hover{transform:translateY(-1px)}.map-category-filter button.active{background:#596141;color:#fff;border-color:#596141}.map-filtered .geo-place:not(.home){opacity:0;visibility:hidden;pointer-events:none;transform:scale(.92);transition:opacity .25s ease,transform .25s ease,visibility .25s}.map-filtered[data-active-filter="restaurant"] .geo-place.restaurant,.map-filtered[data-active-filter="shop"] .geo-place.shop,.map-filtered[data-active-filter="bakery"] .geo-place.bakery,.map-filtered[data-active-filter="fuel"] .geo-place.fuel,.map-filtered[data-active-filter="lift"] .geo-place.lift{opacity:1;visibility:visible;pointer-events:auto;transform:scale(1)}
@media(max-width:760px){.map-category-filter{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;padding:2px 1px 8px}.map-category-filter button{flex:0 0 auto;min-height:39px;padding:0 15px}.static-location-map{height:660px}.geo-place span{max-width:105px;padding:5px 6px;font-size:9px}.geo-place small{font-size:7px}.static-radius{width:58%;height:43%}}
.premium-location-map{background-color:#e8e4d7;background-image:radial-gradient(circle at 15% 22%,rgba(255,255,255,.72),transparent 30%),linear-gradient(120deg,rgba(89,97,65,.08),rgba(250,248,243,.5))}.geo-place.numbered i{display:grid;place-items:center;left:-14px;top:-14px;width:28px;height:28px;border:2px solid #faf8f3;color:#fff;font:800 10px/1 Arial,sans-serif}.geo-place.numbered.gutshof i{width:34px;height:34px;left:-17px;top:-17px;background:#303828;box-shadow:0 0 0 4px rgba(89,97,65,.25)}.premium-map-directory{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:18px}.premium-map-directory>div,.premium-map-directory>a{display:flex;align-items:center;gap:11px;min-height:66px;padding:12px 14px;border:1px solid rgba(56,61,43,.14);border-radius:9px;background:#faf8f3;color:#303329;text-decoration:none}.premium-map-directory b{display:grid;place-items:center;width:29px;height:29px;flex:0 0 29px;border-radius:50%;background:#596141;color:#fff;font-size:10px}.premium-map-directory span,.premium-map-directory strong,.premium-map-directory small{display:block}.premium-map-directory span{font-size:12px;font-weight:700;line-height:1.25}.premium-map-directory small{margin-top:3px;color:#777b69;font-size:9px;font-weight:500}.premium-map-directory .directory-feature{grid-column:span 2;background:#596141;color:#fff}.premium-map-directory .directory-feature b{background:#fff;color:#596141}.premium-map-directory .directory-feature small{color:rgba(255,255,255,.72)}.premium-map-directory .directory-feature:hover{background:#444c34}
@media(max-width:900px){.premium-map-directory{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.premium-location-map{height:540px}.premium-map-directory{grid-template-columns:1fr}.premium-map-directory .directory-feature{grid-column:auto}.geo-place.numbered i{width:25px;height:25px;left:-12px;top:-12px;font-size:9px}}
.proximity-showcase{display:grid;grid-template-columns:.72fr 1.28fr;gap:18px}.proximity-hero{display:flex;flex-direction:column;justify-content:center;min-height:610px;padding:54px 48px;border-radius:16px;background:#596141;color:#fff}.proximity-hero .kicker{color:#e8e1cf}.proximity-number{display:flex;align-items:flex-end;gap:13px;margin:18px 0 10px}.proximity-number strong{font-size:clamp(6.5rem,11vw,10rem);font-weight:600;line-height:.72;letter-spacing:-.07em}.proximity-number span{padding-bottom:7px;font-size:1rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.proximity-hero h3{margin:24px 0 14px;font-size:clamp(2rem,3.5vw,3.25rem);font-style:italic}.proximity-hero>p:last-child{margin:0;color:rgba(255,255,255,.8);font-size:1rem;line-height:1.75}.proximity-cards{display:grid;grid-template-columns:1fr 1fr;gap:18px}.proximity-card{min-height:296px;padding:31px 30px;border:1px solid rgba(56,61,43,.14);border-radius:14px;background:#faf8f3}.proximity-card.featured{background:#ede8dc}.proximity-card.farther{background:#30382a;color:#fff}.proximity-card .kicker{margin:0 0 9px;color:#596141}.proximity-card.farther .kicker{color:#dcd5c3}.proximity-card h3{margin:0 0 19px;font-size:1.6rem}.proximity-card ul{display:grid;grid-template-columns:1fr 1fr;gap:9px 18px;margin:0;padding:0;list-style:none}.proximity-card li{padding-top:8px;border-top:1px solid rgba(56,61,43,.15);font-size:.92rem;font-weight:600}.proximity-card.farther li{border-color:rgba(255,255,255,.17)}.proximity-card li a{color:inherit;text-decoration:none}.proximity-card li strong,.proximity-card li small{display:block}.proximity-card li small{margin-top:2px;font-size:.7rem;font-weight:500;line-height:1.35;opacity:.7}.proximity-card.featured li:first-child{grid-column:1/-1;color:#596141}.proximity-card.featured li:first-child a:after{content:" ↗"}
.proximity-number.proximity-range strong{font-size:clamp(5.1rem,8vw,7.4rem);letter-spacing:-.075em;white-space:nowrap}
@media(max-width:980px){.proximity-showcase{grid-template-columns:1fr}.proximity-hero{min-height:430px}.proximity-cards{grid-template-columns:1fr 1fr}}@media(max-width:620px){.proximity-hero{min-height:0;padding:40px 25px}.proximity-number strong{font-size:7.2rem}.proximity-cards{grid-template-columns:1fr}.proximity-card{min-height:0;padding:27px 22px}.proximity-card ul{grid-template-columns:1fr}}
.route-map-modal{position:fixed;inset:0;z-index:250;display:none;align-items:center;justify-content:center;padding:24px}.route-map-modal:target{display:flex}.route-map-backdrop{position:absolute;inset:0;background:rgba(25,29,20,.88);backdrop-filter:blur(8px)}.route-map-panel{position:relative;z-index:1;width:min(1380px,96vw);max-height:94vh;overflow:auto;padding:24px;border-radius:16px;background:#f4f0e6;box-shadow:0 28px 90px rgba(0,0,0,.38)}.route-map-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:4px 4px 18px}.route-map-header .kicker{margin:0 0 5px;color:#596141}.route-map-header h2{margin:0;font-size:clamp(2rem,4vw,3.5rem);font-style:italic}.route-map-close{display:grid;place-items:center;width:44px;height:44px;flex:0 0 44px;border:1px solid rgba(56,61,43,.24);border-radius:50%;color:#303329;text-decoration:none;font-size:28px;line-height:1}.route-map-stage{position:relative;overflow:hidden;border:1px solid rgba(56,61,43,.16);border-radius:11px;background:#dedbd2;aspect-ratio:3508/2481}.route-map-stage img,.route-map-stage svg{position:absolute;inset:0;width:100%;height:100%}.route-map-stage img{object-fit:contain}.route-map-stage svg{z-index:2}.route-map-wash{fill:rgba(247,244,237,.32)}.route-line{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:12;filter:drop-shadow(0 2px 2px rgba(0,0,0,.2))}.route-line.walking{stroke:#91a36e;stroke-dasharray:18 13}.route-line.driving{stroke:#a84f3e}.route-start{fill:#596141;stroke:#fff;stroke-width:5}.route-finish{fill:#a84f3e;stroke:#fff;stroke-width:5}.route-label{position:absolute;z-index:3;padding:7px 12px;border-radius:999px;background:#596141;color:#fff;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;box-shadow:0 5px 18px rgba(0,0,0,.2)}.route-label.start{left:75%;top:54%}.route-label.finish{left:27%;top:65%;background:#a84f3e}.route-map-legend{display:flex;justify-content:center;gap:34px;padding:19px 4px 2px}.route-map-legend span{display:flex;align-items:center;gap:11px;font-size:12px;letter-spacing:.08em;text-transform:uppercase}.route-map-legend i{display:block;width:54px;height:0;border-top:4px solid}.route-map-legend .walk-line{border-color:#91a36e;border-top-style:dashed}.route-map-legend .car-line{border-color:#a84f3e}
@media(max-width:700px){.route-map-modal{padding:10px}.route-map-panel{width:98vw;max-height:96vh;padding:13px}.route-map-header{padding-bottom:12px}.route-map-stage{min-height:470px;aspect-ratio:auto}.route-map-stage img,.route-map-stage svg{width:auto;min-width:880px;height:100%;left:50%;transform:translateX(-58%)}.route-label.start{left:72%;top:53%}.route-label.finish{left:20%;top:66%}.route-map-legend{gap:20px}.route-map-legend i{width:36px}}
.map-place{position:absolute;z-index:4;left:var(--x);top:var(--y);display:flex;flex-direction:column;align-items:flex-start;max-width:160px;padding:7px 10px 7px 23px;border:1px solid rgba(56,61,43,.16);border-radius:8px;background:rgba(250,248,243,.94);color:#303329;text-decoration:none;box-shadow:0 7px 18px rgba(35,39,28,.12);transform:translate(-12px,-50%)}.map-place i{position:absolute;left:8px;top:11px;width:9px;height:9px;border:2px solid #faf8f3;border-radius:50%;background:#596141;box-shadow:0 0 0 2px #596141}.map-place strong{font-size:12px;line-height:1.25}.map-place small{margin-top:2px;font-size:9px;line-height:1.25;opacity:.7}.map-place.map-home{z-index:5;background:#596141;color:#fff}.map-place.map-home i{background:#fff;box-shadow:0 0 0 2px #fff}.map-place.map-gutshof{border-color:#596141}.map-place.map-gutshof:hover,.map-place.map-gutshof:focus-visible{background:#596141;color:#fff}.map-place.place-shop i{background:#7b765a;box-shadow:0 0 0 2px #7b765a}.map-place.place-bakery i{background:#a1845e;box-shadow:0 0 0 2px #a1845e}.map-place.place-fuel i{background:#3d5548;box-shadow:0 0 0 2px #3d5548}.map-place.place-lift i{border-radius:2px;background:#394539;box-shadow:0 0 0 2px #394539;transform:rotate(45deg)}.map-place.map-edge{transform:translate(-100%,-50%)}.map-compass{position:absolute;z-index:4;right:20px;bottom:18px;display:grid;place-items:center;width:48px;height:48px;border:1px solid rgba(56,61,43,.25);border-radius:50%;background:rgba(250,248,243,.9);color:#596141;font-size:10px;font-weight:800}.map-compass span{font-size:18px;line-height:.7}.clean-map-legend{display:flex;justify-content:center;flex-wrap:wrap;gap:14px 25px;margin:22px 0 0}.clean-map-legend span{display:flex;align-items:center;gap:8px}.clean-map-legend i{width:10px;height:10px;border:2px solid #faf8f3;border-radius:50%;background:#596141;box-shadow:0 0 0 1px #596141}.clean-map-legend .shop-dot{background:#7b765a;box-shadow:0 0 0 1px #7b765a}.clean-map-legend .bakery-dot{background:#a1845e;box-shadow:0 0 0 1px #a1845e}.clean-map-legend .fuel-dot{background:#3d5548;box-shadow:0 0 0 1px #3d5548}.clean-map-legend .lift-dot{border-radius:2px;background:#394539;box-shadow:0 0 0 1px #394539;transform:rotate(45deg)}.clean-map-legend b{font-size:11px;letter-spacing:.07em;text-transform:uppercase}
.nearby-summary{margin-top:24px;padding:34px 38px;border:1px solid rgba(56,61,43,.16);border-radius:14px;background:#faf8f3}.nearby-summary h3{margin:5px 0 14px;font-size:clamp(1.65rem,3vw,2.35rem)}.nearby-summary>p:not(.kicker){max-width:980px;margin:0;line-height:1.75}.gutshof-map-link{display:inline-flex;align-items:center;gap:14px;margin-top:24px;padding:15px 22px;border:1px solid #596141;border-radius:999px;color:#596141;font-size:.76rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;text-decoration:none;transition:.2s}.gutshof-map-link:hover,.gutshof-map-link:focus-visible{background:#596141;color:#fff}.gutshof-map-link span{font-size:1rem}
@media(max-width:600px){.nearby-summary{padding:26px 21px}.gutshof-map-link{width:100%;justify-content:center;text-align:center;line-height:1.35}}
@media(max-width:760px){.restaurant-radius-map{height:620px}.restaurant-radius-map .radius-circle{width:72%}.map-place{max-width:118px;padding:6px 7px 6px 19px}.map-place i{left:6px;top:9px;width:7px;height:7px}.map-place strong{font-size:10px}.map-place small{font-size:8px}.map-place[style*="--x:85.3%"]{--x:78%!important}.map-place[style*="--x:76.7%"]{--x:72%!important}.map-place[style*="--x:73%"]{--x:70%!important}}
.legacy-nearby-groups{display:none!important}
.radius-map:before,.radius-map:after{content:"";position:absolute;border-radius:50%;background:rgba(157,170,123,.16)}.radius-map:before{width:360px;height:260px;left:-90px;top:-80px}.radius-map:after{width:430px;height:300px;right:-120px;bottom:-100px}
.radius-map:before{display:none}.radius-map:after{z-index:1;inset:0;width:auto;height:auto;border-radius:0;background:rgba(247,244,237,.12);pointer-events:none}
.map-road,.map-river{display:none}
.radius-circle{position:absolute;z-index:2;left:68.1%;top:62.6%;width:56.8%;height:44%;transform:translate(-50%,-50%);border:3px dashed rgba(89,97,65,.8);border-radius:50%;background:rgba(89,97,65,.05);box-shadow:0 0 0 1px rgba(255,255,255,.7),inset 0 0 45px rgba(31,38,23,.06)}.radius-circle span{position:absolute;top:5%;left:50%;transform:translateX(-50%);padding:6px 13px;border-radius:999px;background:#596141;color:#fff;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.map-pin{position:absolute;z-index:4;left:var(--x);top:var(--y);display:grid;justify-items:center;width:max-content;max-width:145px;text-align:center;transform:translate(-50%,-50%)}.map-pin i,.map-legend i{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:3px solid #faf8f3;background:#596141;color:#fff;font-style:normal;font-size:11px;font-weight:800;box-shadow:0 8px 20px rgba(38,42,29,.22)}.map-pin strong{margin-top:4px;padding:3px 7px;border-radius:4px;background:rgba(250,248,243,.9);color:#303329;font-size:12px;line-height:1.2;box-shadow:0 4px 12px rgba(36,39,29,.08)}.map-pin small{padding:1px 6px;background:rgba(250,248,243,.9);font-size:9px}.map-pin.map-home i{width:54px;height:54px;background:#343a28;font-size:25px}.map-pin.map-home strong{font-size:15px}.map-pin.food i,.map-legend i.food{background:#596141}.map-pin.shop i,.map-legend i.shop{background:#8a7655}.map-pin.bakery i,.map-legend i.bakery{background:#a0835e}.map-pin.lift i,.map-legend i.lift{background:#3d5548}.map-pin.outer i{box-shadow:0 0 0 4px rgba(89,97,65,.12),0 8px 20px rgba(38,42,29,.18)}
.map-legend{display:flex;justify-content:center;flex-wrap:wrap;gap:16px 28px;margin:24px 0}.map-legend span{display:flex;align-items:center;gap:9px}.map-legend i{width:27px;height:27px;border-width:2px;box-shadow:none;font-size:9px}.map-legend b{font-size:12px;letter-spacing:.06em;text-transform:uppercase}
.beyond-radius{margin-top:28px;padding:26px 30px;background:#596141;color:#fff;border-radius:10px}.beyond-radius .kicker{margin:0 0 15px;color:#e7dfce}.beyond-radius>div{display:flex;flex-wrap:wrap;gap:12px}.beyond-radius span{display:flex;align-items:center;gap:10px;padding:11px 16px;border:1px solid rgba(255,255,255,.35);border-radius:999px}.beyond-radius small{opacity:.76}
@media(max-width:760px){.radius-map{height:720px}.radius-circle{width:94%;max-height:none}.map-pin{max-width:104px}.map-pin strong{font-size:10px}.map-pin.map-home i{width:46px;height:46px}.map-pin.map-home strong{font-size:12px}.map-pin[style*="--x:88%"]{--x:83%!important}.map-pin[style*="--x:12%"]{--x:17%!important}.map-legend{justify-content:flex-start}.beyond-radius{padding:23px 18px}.beyond-radius>div,.beyond-radius span{align-items:flex-start;flex-direction:column}.beyond-radius span{width:100%;border-radius:7px}}
.arrival-section{margin-top:72px}.arrival-section>h2{margin-top:.15em}.arrival-address{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:26px 30px;background:var(--green-dark);color:#fff}.arrival-address p{margin:0 auto 0 0}.arrival-address .btn{flex:0 0 auto}@media(max-width:700px){.arrival-section{margin-top:50px}.arrival-address{align-items:flex-start;flex-direction:column}.arrival-address p{margin:0}.arrival-address .btn{width:100%;justify-content:center}}
.arrival-address .btn:hover{background:#fffaf0!important;border-color:#fffaf0!important;color:var(--green-dark)!important;box-shadow:0 10px 28px rgba(0,0,0,.16)}

.page-hero h1,.section h1,.section h2,.legal h2{font-style:italic}

/* v2.1 clean Lage plan preview */
.plan-preview{padding:3px!important;border:1px solid var(--line)!important;background:#fff!important}
.plan-vertical{width:100%!important;height:100%!important;object-fit:cover!important}
.modal.plan-modal{padding:10px!important}
.modal.plan-modal img{max-width:98vw!important;max-height:94vh!important;width:auto!important;height:auto!important;background:transparent!important;box-shadow:none!important}

/* Avoid expensive live blur and off-screen rendering on slower devices. */
html{scroll-behavior:auto}.page-header{backdrop-filter:none;-webkit-backdrop-filter:none;background:#faf8f3}.section,.site-footer{content-visibility:visible;contain:none}@media(max-width:780px){.gallery-full img{transition:none}.gallery-full button:hover img{transform:none}}

/* v2.2 transparent booking buttons and rotated plan preview */
.btn.outline{background:rgba(255,255,255,.34);color:var(--green);border-color:var(--green)}
.btn.outline:hover{background:var(--green);color:#fff}
.modal.plan-modal.is-rotated-right img{position:absolute!important;left:50%!important;top:50%!important;width:auto!important;height:auto!important;max-width:calc(100vh - 24px)!important;max-height:calc(100vw - 24px)!important;object-fit:contain;transform:translate(-50%,-50%) rotate(90deg)!important}

.form.winter-selected>*{display:none!important}.form.winter-selected .winter-booking-message{display:grid!important;gap:18px;padding:30px;background:#fff;border:1px solid var(--line)}.winter-booking-message h3{margin:0;font-size:clamp(1.8rem,4vw,2.7rem)}.winter-booking-message p{margin:0}.winter-booking-message .btn{justify-self:start}

/* One consistent pill CTA style on every content page. */
.btn{
  min-height:52px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:22px!important;
  padding:0 30px!important;
  border:1px solid rgba(63,70,48,.58)!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.28)!important;
  color:var(--green-dark)!important;
  box-shadow:none!important;
  font-size:11px!important;
  font-weight:700!important;
  letter-spacing:.14em!important;
  line-height:1!important;
  text-transform:uppercase!important;
  white-space:nowrap;
  transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .2s ease!important;
}

@media(max-width:900px){
  .page-header.open .mobile-menu:before,.page-header.open .mobile-menu:after{background:#596141!important;opacity:1!important}
  .page-header.open .page-lang button:not(.active){color:#596141!important;background:#f7f3eb!important;border-color:rgba(89,97,65,.48)!important;opacity:1!important}
  .page-header.open .page-lang button.active{color:#fff!important;background:#596141!important;border-color:#596141!important;opacity:1!important}
}
@media(max-width:900px){
  .page-header.open .mobile-menu{width:32px!important;height:32px!important;top:15px!important;right:16px!important}
  .page-header.open .mobile-menu:before,.page-header.open .mobile-menu:after{
    display:block!important;position:absolute!important;top:50%!important;left:50%!important;
    width:14px!important;height:1px!important;margin:0!important;transform-origin:center!important;
  }
  .page-header.open .mobile-menu:before{transform:translate(-50%,-50%) rotate(45deg)!important}
  .page-header.open .mobile-menu:after{transform:translate(-50%,-50%) rotate(-45deg)!important}
}

.site-footer a{text-decoration:none}
.site-footer a:hover,.site-footer a:focus-visible{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.site-footer .footer-credit-logo:hover,.site-footer .footer-credit-logo:focus-visible{text-decoration:none}

.mobile-back-to-top{display:none}
@media(max-width:600px){
  .mobile-back-to-top{
    position:fixed;right:15px;bottom:18px;z-index:58;width:40px;height:40px;border-radius:50%;
    place-items:center;background:rgba(89,97,65,.74);color:#fff;text-decoration:none!important;
    border:1px solid rgba(255,255,255,.42);box-shadow:0 10px 26px rgba(20,24,16,.17);
    font-size:18px;line-height:1;opacity:0;pointer-events:none;transform:translateY(7px);
    transition:opacity .22s ease,transform .22s ease,background-color .22s ease;
  }
  .mobile-back-to-top.is-visible{display:grid;opacity:.78;pointer-events:auto;transform:none}
  .mobile-back-to-top:active,.mobile-back-to-top:focus-visible{opacity:1;background:#596141;outline:2px solid #fff;outline-offset:2px}
}
@media(prefers-reduced-motion:reduce){.mobile-back-to-top{transition:none}}
.modal .modal-nav{display:none;position:fixed;top:50%;right:auto;z-index:10001;width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.5);background:rgba(63,70,48,.78);color:#fff;place-items:center;font-size:28px;line-height:1;cursor:pointer;transform:translateY(-50%);transition:background .2s ease,transform .2s ease}
.modal.has-gallery-nav .modal-nav{display:grid}
.modal .modal-prev{left:22px;right:auto}.modal .modal-next{left:auto;right:22px}
.page-hero[style*="gallery-hero-collage.png"]{background-image:url('assets/images/gallery-hero-collage.webp')!important}
.modal-nav:hover,.modal-nav:focus-visible{background:#596141;transform:translateY(-50%) scale(1.06);cursor:pointer;outline:none}
@media(max-width:600px){.modal-nav{width:40px;height:40px;font-size:22px}.modal-prev{left:8px}.modal-next{right:8px}}

/* Selected Lage & Anfahrt header artwork. */
.page-hero[style*="hero-alpenchalets-flugbild.webp"]{
  background-image:url('assets/images/lage-header-sign-v1.webp')!important;
  background-position:center 48%!important;
}
@media(max-width:600px){
  .page-hero[style*="hero-alpenchalets-flugbild.webp"]{background-position:61% center!important}
}

/* Selected FAQ header artwork. */
.page-hero[style*="exterior-main.webp"]{
  background-image:url('assets/images/faq-header-planning-v1.webp')!important;
  background-position:center 52%!important;
}
@media(max-width:600px){
  .page-hero[style*="exterior-main.webp"]{background-position:64% center!important}
}
.btn:hover{background:var(--green-dark)!important;border-color:var(--green-dark)!important;color:#fff!important;transform:translateY(-2px)}
.cta .btn,.booking-banner .btn{border-color:rgba(255,255,255,.72)!important;background:rgba(255,255,255,.08)!important;color:#fff!important}
.cta .btn:hover,.booking-banner .btn:hover{background:#fff!important;border-color:#fff!important;color:var(--green-dark)!important}
.winter-booking-message .btn{background:var(--green-dark)!important;border-color:var(--green-dark)!important;color:#fff!important;min-width:180px}
.winter-booking-message .btn:hover{background:var(--green)!important;border-color:var(--green)!important;color:#fff!important}
.winter-booking-actions{display:flex;flex-wrap:wrap;gap:12px}.winter-booking-message .btn.winter-back{background:transparent!important;border-color:var(--green-dark)!important;color:var(--green-dark)!important}.winter-booking-message .btn.winter-back:hover{background:rgba(63,70,48,.1)!important;color:var(--green-dark)!important}
@media(max-width:480px){.btn{width:100%;padding:0 22px!important;white-space:normal;text-align:center}}

/* v2.5 gallery and contact flow refinements */
.gallery-full{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:16px!important}
.gallery-full button{aspect-ratio:1/1!important;width:100%!important;border-radius:4px;background:#eee}
.gallery-full img{width:100%!important;height:100%!important;object-fit:cover!important}
@media(max-width:900px){.gallery-full{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:520px){.gallery-full{grid-template-columns:1fr!important}}

.map-consent{min-height:330px;padding:32px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:20px;background:#f0ece3;border:1px solid var(--line);box-shadow:0 18px 45px rgba(41,43,37,.08)}.map-consent p{max-width:680px;margin:0}.map-consent .btn{cursor:pointer}@media(max-width:600px){.map-consent{min-height:280px;padding:24px 18px}}

/* Portfolio credit in the lower-right corner; ready to be wrapped with the final portfolio URL. */
.footer-credit-logo{margin-left:auto;display:inline-flex;width:42px;align-items:center;justify-content:flex-end;opacity:.58;transition:opacity .25s ease}
.footer-credit-logo img{position:static;width:42px!important;max-width:100%!important;height:auto!important;background:transparent!important;padding:0!important;box-shadow:none!important;object-fit:contain;filter:none!important;transform:none!important}
.footer-credit-logo:hover{opacity:1}
@media(max-width:600px){.footer-credit-logo{margin-left:0;width:38px;justify-content:flex-start}.footer-credit-logo img{width:38px!important}}

/* Global consistency system */
.page-header{position:sticky;top:0;z-index:50;min-height:78px;padding:0 48px;background:#faf8f3;color:var(--ink);border-bottom:1px solid var(--line);box-shadow:none}
.page-nav{gap:24px;align-items:center}.page-nav a{font-family:Corbel,'Trebuchet MS',Arial,sans-serif;font-size:13px;font-weight:500;letter-spacing:.02em;line-height:1.2;color:var(--ink)}
.page-lang button{font-family:Corbel,'Trebuchet MS',Arial,sans-serif;font-size:13px;color:var(--ink);padding:7px}
.page-hero{min-height:62vh;padding:72px max(48px,calc((100vw - 1240px)/2));background-position:center;place-items:end start}.page-hero:before{background:linear-gradient(90deg,rgba(18,22,15,.66),rgba(18,22,15,.08) 72%),linear-gradient(0deg,rgba(18,22,15,.28),transparent 60%)}
.page-hero>div{max-width:1050px}.page-hero h1{font-family:Corbel,'Trebuchet MS',Arial,sans-serif;font-size:clamp(56px,7vw,108px);font-style:italic;font-weight:600;letter-spacing:-.035em;line-height:.92;margin:20px 0 28px}.page-hero .kicker{font-size:12px;font-weight:600;letter-spacing:.18em;margin:0}.page-hero p{font-size:20px;line-height:1.5;max-width:760px;margin:0}
.section{padding:100px 0}.container{width:min(1240px,calc(100% - 96px));max-width:none}.section h2,.legal h2{font-family:Corbel,'Trebuchet MS',Arial,sans-serif;font-style:italic;font-size:clamp(44px,5vw,70px);line-height:1;margin:.2em 0 .4em}
.btn{min-height:52px;border-radius:999px;padding:0 26px;font-family:Corbel,'Trebuchet MS',Arial,sans-serif;font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;justify-content:center}
.site-footer{padding:70px 0 22px;background:#e9e3d7;color:var(--ink)}.footer-top,.footer-bottom{width:min(1240px,calc(100% - 96px));max-width:none}.site-footer a{color:var(--ink)}.footer-bottom{border-top-color:var(--line);color:#67695f}
@media(max-width:900px){.page-header{min-height:68px;padding:0 20px}.page-header.open .page-nav{top:68px}.page-hero{min-height:520px;padding:72px 24px 42px}.page-hero h1{font-size:clamp(44px,13vw,68px);line-height:.96}.page-hero p{font-size:16px}.section{padding:76px 0}.container,.footer-top,.footer-bottom{width:min(100% - 40px,1240px)}}
/* Transparent page header overlay */
.page-header{position:fixed!important;top:0;left:0;right:0;background:linear-gradient(to bottom,rgba(12,15,10,.44),rgba(12,15,10,.12) 68%,transparent)!important;color:#fff!important;border-bottom-color:rgba(255,255,255,.16)!important;transition:background .25s ease,color .25s ease}.page-header .page-nav a,.page-header .page-lang button{color:#fff!important}.page-header .mobile-menu{color:#fff}.page-header.scrolled{background:#faf8f3!important;color:var(--ink)!important;border-bottom-color:var(--line)!important}.page-header.scrolled .page-nav a,.page-header.scrolled .page-lang button{color:var(--ink)!important}.page-header.scrolled .mobile-menu{color:var(--ink)}.page-header.open{background:#faf8f3!important;color:var(--ink)!important}.page-header.open .page-nav a,.page-header.open .page-lang button{color:var(--ink)!important}.page-hero{min-height:calc(62vh + 78px);padding-top:150px}
@media(max-width:900px){.page-hero{min-height:588px;padding-top:120px}.page-header.open .page-nav{background:#faf8f3}}

/* Keep long, italic hero titles readable at every viewport width. */
.page-hero>div{width:min(1050px,100%)}
.page-hero h1{max-width:100%;font-size:clamp(52px,6.2vw,100px);line-height:1.08!important;letter-spacing:-.025em;text-wrap:balance;overflow-wrap:normal}
@media(max-width:900px){.page-hero h1{font-size:clamp(42px,11vw,68px);line-height:1.1!important;letter-spacing:-.02em}}
@media(max-width:480px){.page-hero h1{font-size:clamp(38px,12vw,56px);line-height:1.12!important}}

/* Gallery opens directly with the photos; no redundant category heading. */
.section-heading:has(+ .gallery-full){display:none}
/* Header divider removed globally */
.page-header,.page-header.scrolled,.page-header.open{border-bottom:0!important;border-bottom-color:transparent!important}
/* Sommer page hero uses generated photo 1. */
.page-hero[style*="sommer-header-terrasse"]{background-image:url('assets/images/sommer-header-terrasse.webp')!important;background-position:center 76%}
.page-hero[style*="winter-page-hero.jpg"]{background-image:url('assets/images/winter-page-hero.webp')!important}
@media(max-width:700px){
  .page-hero[style*="sommer-header-terrasse"]{background-image:url('assets/images/sommer-header-terrasse-mobile.webp')!important;background-position:center 64%}
  .page-hero[style*="winter-page-hero.jpg"]{background-image:url('assets/images/winter-page-hero-mobile.webp')!important}
}
@media(min-width:901px){.page-nav a{font-size:15px}}
@media(min-width:901px) and (max-width:1100px){.page-nav a{font-size:14px}}

/* Matching thin navigation underline on every inner/content page. */
@media(min-width:901px) and (hover:hover) and (pointer:fine){
  .page-header .page-nav a{position:relative}
  .page-header .page-nav a::before{
    content:"";
    position:absolute;
    left:50%;
    bottom:-6px;
    width:0;
    height:1px;
    border:0;
    border-radius:999px;
    background:#fff;
    box-shadow:0 1px 5px rgba(0,0,0,.32);
    transform:translateX(-50%);
    transition:width .28s ease;
  }
  .page-header.scrolled .page-nav a::before{
    background:#596141;
    box-shadow:none;
  }
  .page-header .page-nav a:hover::before,
  .page-header .page-nav a:focus-visible::before{
    width:72%;
  }
}
/* Rotate the inline Lageplan clockwise while preserving its slim white frame. */
.plan-preview{padding:3px!important;background:#fff!important;overflow:hidden!important}
.plan-preview .plan-vertical{object-fit:contain!important;transform:rotate(90deg) scale(.86)!important;transform-origin:center}
@media(max-width:600px){.plan-preview .plan-vertical{transform:rotate(90deg) scale(.8)!important}}
/* Lageplan fills the preview; only a slim white frame remains. */
.plan-preview{position:relative!important;height:auto!important;aspect-ratio:1.42/1!important;padding:3px!important}
.plan-preview .plan-vertical{position:absolute!important;left:50%!important;top:50%!important;width:70.42%!important;height:142%!important;max-width:none!important;object-fit:cover!important;transform:translate(-50%,-50%) rotate(90deg)!important;transform-origin:center!important}
.plan-preview .plan-vertical.lageplan-summer{width:100%!important;height:100%!important;object-fit:contain!important;transform:translate(-50%,-50%)!important}
@media(max-width:600px){.plan-preview{height:auto!important;aspect-ratio:1.42/1!important}.plan-preview .plan-vertical{transform:translate(-50%,-50%) rotate(90deg)!important}}

/* Same footer presentation on every inner page. */
.site-footer{padding:70px 0 22px;background:#e9e3d7;color:var(--ink)}
.footer-top,.footer-bottom{width:min(1240px,calc(100% - 96px));max-width:none}
.footer-top{display:grid;grid-template-columns:200px minmax(280px,1fr) minmax(220px,auto);gap:60px;align-items:center}
.footer-top>div:first-child img{width:175px;background:#fff;padding:8px}.footer-top>div:nth-child(2) strong{font-size:28px}.footer-top>div:nth-child(2) p{margin:2px 0}.footer-top>div:last-child{text-align:right;line-height:2;justify-self:end}
.site-footer a{color:var(--ink);display:inline-block;transition:color .2s ease,transform .2s ease}.footer-top>div:last-child a:hover,.footer-top>div:last-child a:focus-visible,.footer-top>div:nth-child(2) a:hover,.footer-top>div:nth-child(2) a:focus-visible{color:var(--green-dark);transform:translateX(-6px);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.footer-bottom{border-top-color:var(--line);color:#67695f}.footer-credit-logo{padding:8px;border-radius:6px;cursor:pointer;opacity:.72;transition:opacity .2s ease,transform .2s ease,background-color .2s ease!important}.footer-credit-logo:hover,.footer-credit-logo:focus-visible{opacity:1;transform:translateY(-3px) scale(1.12);background:rgba(255,255,255,.72);outline:none}
@media(max-width:900px){.footer-top,.footer-bottom{width:min(100% - 40px,1240px)}}
@media(max-width:700px){.footer-top{grid-template-columns:1fr;gap:28px}.footer-top>div:last-child{text-align:left;justify-self:start}.footer-top>div:last-child a:hover,.footer-top>div:last-child a:focus-visible,.footer-top>div:nth-child(2) a:hover,.footer-top>div:nth-child(2) a:focus-visible{transform:translateX(6px)}}

/* Phone and email are clickable without navigation-style underlines. */
.site-footer a[href^="tel:"],.site-footer a[href^="mailto:"],.site-footer a[href^="tel:"]:hover,.site-footer a[href^="mailto:"]:hover,.site-footer a[href^="tel:"]:focus-visible,.site-footer a[href^="mailto:"]:focus-visible{color:inherit!important;transform:none!important;text-decoration:none!important;text-underline-offset:0!important}
.newsletter-signup{background:var(--green-dark);color:#fff;padding:72px 0}.newsletter-inner{width:min(1240px,calc(100% - 96px));margin:auto;display:grid;grid-template-columns:minmax(0,.9fr) minmax(420px,1.1fr);gap:80px;align-items:center}.newsletter-kicker{margin:0 0 10px;text-transform:uppercase;letter-spacing:.18em;font-size:12px;color:var(--beige)}.newsletter-copy h2{font-size:clamp(38px,4vw,58px);margin:0 0 18px}.newsletter-copy>p:last-child{max-width:570px}.newsletter-form{display:grid;gap:14px}.newsletter-row{display:grid;grid-template-columns:1fr auto;gap:10px}.newsletter-row input{min-width:0;padding:15px 18px;border:1px solid rgba(255,255,255,.45);background:#fff;color:var(--ink);font:inherit}.newsletter-row button{border:1px solid #fff;background:#fff;color:var(--green-dark);padding:0 24px;text-transform:uppercase;letter-spacing:.09em;font-size:12px;font-weight:700;cursor:pointer;transition:.2s}.newsletter-row button:hover{background:var(--beige)}.newsletter-consent{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;font-size:12px;line-height:1.5}.newsletter-consent input{margin-top:3px;accent-color:var(--beige)}.newsletter-privacy{width:max-content;color:#fff!important;font-size:12px;text-decoration:underline!important;text-underline-offset:4px}.newsletter-trap{position:absolute!important;left:-9999px!important}.newsletter-status{margin:0;padding:10px 12px;background:rgba(255,255,255,.12);font-size:13px}.newsletter-status.is-success{border-left:3px solid #dfe9c9}.newsletter-status.is-error{border-left:3px solid #efd1c7}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:900px){.newsletter-inner{width:min(100% - 40px,1240px);grid-template-columns:1fr;gap:34px}}@media(max-width:600px){.newsletter-signup{padding:56px 0}.newsletter-inner{width:calc(100% - 32px)}.newsletter-row{grid-template-columns:1fr}.newsletter-row button{min-height:52px}.newsletter-copy h2{font-size:40px}}
.newsletter-details{position:relative;text-align:right}.newsletter-details summary{display:inline-block;cursor:pointer;list-style:none}.newsletter-details summary::-webkit-details-marker{display:none}.newsletter-details .newsletter-form{position:absolute;right:0;bottom:calc(100% + 14px);z-index:8;width:min(440px,calc(100vw - 32px));padding:20px;background:var(--green-dark);color:#fff;text-align:left;box-shadow:0 16px 45px rgba(0,0,0,.18)}.newsletter-details .newsletter-row{grid-template-columns:1fr}.newsletter-details .newsletter-row button{min-height:48px}.newsletter-details .newsletter-privacy{color:#fff!important}@media(max-width:700px){.newsletter-details{text-align:left}.newsletter-details .newsletter-form{left:0;right:auto}}
.newsletter-details[open]::before{content:"";position:fixed;inset:0;z-index:89;background:rgba(22,26,18,.62);backdrop-filter:blur(3px)}.newsletter-details .newsletter-form{position:fixed;left:50%;right:auto;top:50%;bottom:auto;z-index:90;width:min(520px,calc(100vw - 36px));max-height:calc(100svh - 36px);overflow:auto;padding:30px;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.25);box-shadow:0 24px 80px rgba(0,0,0,.35)}.newsletter-modal-heading h3{margin:0 0 8px;color:#fff;font-size:28px}.newsletter-modal-heading p{margin:0 0 8px;font-size:14px;line-height:1.55}.newsletter-details .newsletter-row input{min-height:52px;border-color:#fff}.newsletter-details .newsletter-consent{font-size:13px}.newsletter-details .newsletter-privacy{font-size:13px}@media(max-width:600px){.newsletter-details .newsletter-form{width:calc(100vw - 24px);max-height:calc(100svh - 24px);padding:22px}.newsletter-modal-heading h3{font-size:24px}}
.newsletter-details summary:hover,.newsletter-details summary:focus-visible{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;outline:none}
.site-footer{content-visibility:visible!important;contain:none!important}body:has(.newsletter-details[open]){overflow:hidden}

/* Unified informational-card design across all inner pages. */
.card,
.arrival-card,
.contact-card,
.faq details,
.map-consent,
.notice{
  position:relative;
  overflow:hidden;
  background:linear-gradient(145deg,#fff 0%,#faf7f0 100%)!important;
  border:1px solid rgba(89,97,65,.16)!important;
  border-radius:14px!important;
  box-shadow:0 10px 32px rgba(44,47,34,.055)!important;
  transition:transform .32s ease,border-color .32s ease,box-shadow .32s ease,background-color .32s ease!important;
}
.restaurant-family-card .arrival-card{border:1px solid rgba(89,97,65,.16)!important}
.card::after,
.arrival-card::after,
.contact-card::after,
.faq details::after,
.map-consent::after,
.notice::after{
  content:"";
  position:absolute;
  left:0;
  top:0;
  width:0;
  height:3px;
  background:#68704d;
  transition:width .38s ease;
}
.card h3,.arrival-card h3{color:#434a31}
.faq details[open]{
  border-color:rgba(89,97,65,.34)!important;
  box-shadow:0 16px 38px rgba(44,47,34,.09)!important;
}
.faq details[open]::after{width:100%}
.faq details p{
  margin:18px 0 2px;
  padding:2px 0 2px 20px;
  border-left:2px solid rgba(89,97,65,.72);
  color:#62645b;
  font-size:1rem;
  font-style:normal;
  line-height:1.82;
}
.faq details p em,
.faq details p strong{color:#465035;font-style:italic}
@media(hover:hover) and (pointer:fine){
  .card:hover,
  .arrival-card:hover,
  .contact-card:hover,
  .faq details:hover,
  .map-consent:hover,
  .notice:hover{
    transform:translateY(-5px);
    background:#fff!important;
    border-color:rgba(89,97,65,.42)!important;
    box-shadow:0 20px 46px rgba(44,47,34,.12)!important;
  }
  .card:hover::after,
  .arrival-card:hover::after,
  .contact-card:hover::after,
  .faq details:hover::after,
  .map-consent:hover::after,
  .notice:hover::after{width:100%}
}
@media(max-width:600px){
  .faq details p{margin-top:15px;padding-left:15px;font-size:.96rem;line-height:1.72}
}

/* Contact form delivery feedback and silent anti-spam field. */
.contact-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.contact-status{margin:0 0 24px;padding:16px 18px;border:1px solid;border-radius:4px;font-weight:600}
.contact-status.success{color:#34513a;background:#edf5ec;border-color:#a6bea5}
.contact-status.error{color:#7a302b;background:#fff0ee;border-color:#d7aaa5}
#contactForm button[disabled]{cursor:wait;opacity:.68}
.date-range-field{display:grid;gap:8px}.date-range-field>span{font-size:.9rem}.date-range-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.date-range-grid label{margin:0}.date-range-grid input[type="date"]{cursor:pointer;color-scheme:light}
@media(max-width:560px){.date-range-grid{grid-template-columns:1fr}}
.contact-only{max-width:760px;margin:auto}.contact-only .contact-card{padding:42px}.inquiry-wrap{max-width:860px;margin:auto}.inquiry-intro{margin-bottom:34px}.inquiry-intro h2{margin-bottom:14px}.inquiry-intro p{max-width:720px}.inquiry-wrap .form{background:#fff;padding:38px;border:1px solid var(--line);box-shadow:0 18px 55px rgba(41,44,31,.08)}
@media(max-width:600px){.contact-only .contact-card,.inquiry-wrap .form{padding:24px}}

/* Premium holiday-enquiry form */
.inquiry-wrap{max-width:920px}
.inquiry-intro{max-width:760px;margin:0 auto 38px;text-align:center}
.inquiry-wrap .form{
  position:relative;
  gap:22px;
  padding:48px;
  overflow:hidden;
  border:1px solid rgba(89,97,65,.2);
  border-radius:18px;
  background:linear-gradient(145deg,#fff 0%,#fbf8f1 100%);
  box-shadow:0 24px 70px rgba(41,44,31,.11);
}
.inquiry-wrap .form:before{
  content:"";
  position:absolute;
  left:0;right:0;top:0;
  height:4px;
  background:linear-gradient(90deg,#596141,#919875,#c5b483);
}
.inquiry-wrap .form>label,
.inquiry-wrap .date-range-field>span,
.inquiry-wrap .date-range-grid label{
  color:#4d533e;
  font-size:.75rem;
  font-weight:700;
  letter-spacing:.075em;
  text-transform:uppercase;
}
.inquiry-wrap .form>label,
.inquiry-wrap .date-range-grid label{gap:9px}
.inquiry-wrap .form input,
.inquiry-wrap .form select,
.inquiry-wrap .form textarea{
  min-height:56px;
  padding:15px 17px;
  border:1px solid rgba(89,97,65,.2);
  border-radius:9px;
  outline:0;
  background:rgba(255,255,255,.86);
  color:#292c24;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7);
  transition:border-color .22s ease,box-shadow .22s ease,background-color .22s ease;
}
.inquiry-wrap .form textarea{min-height:155px;resize:vertical}
.inquiry-wrap .form input:hover,
.inquiry-wrap .form select:hover,
.inquiry-wrap .form textarea:hover{border-color:rgba(89,97,65,.46);background:#fff}
.inquiry-wrap .form input:focus,
.inquiry-wrap .form select:focus,
.inquiry-wrap .form textarea:focus{
  border-color:#596141;
  background:#fff;
  box-shadow:0 0 0 4px rgba(89,97,65,.11);
}
.inquiry-wrap .form label:focus-within{color:#343b29}
.inquiry-wrap .date-range-field{
  padding:20px;
  border:1px solid rgba(89,97,65,.13);
  border-radius:12px;
  background:rgba(237,239,231,.55);
}
.inquiry-wrap .date-range-field>span{display:block;margin-bottom:13px}
.inquiry-wrap .form>.btn{
  min-height:58px;
  justify-content:center;
  border-radius:999px;
  letter-spacing:.11em;
  text-transform:uppercase;
  box-shadow:0 14px 30px rgba(58,65,44,.18);
}
.inquiry-wrap .form>.btn:hover{transform:translateY(-2px);background:#465035}
@media(max-width:600px){
  .inquiry-intro{text-align:left;margin-bottom:28px}
  .inquiry-wrap .form{gap:18px;padding:28px 20px!important;border-radius:13px}
  .inquiry-wrap .date-range-field{padding:15px}
  .inquiry-wrap .form input,.inquiry-wrap .form select{min-height:54px}
  .inquiry-wrap .form>.btn{width:100%}
}

/* Full-screen mobile navigation without collisions with page hero titles. */
@media(max-width:900px){
  .page-header.open{
    z-index:100!important;
    background:#faf8f3!important;
    color:var(--ink)!important;
  }
  .page-header.open .mobile-menu{position:relative;z-index:102;color:var(--ink)!important}
  .page-header.open .page-nav{
    position:fixed!important;
    inset:0!important;
    z-index:101!important;
    height:100svh!important;
    min-height:100vh;
    padding:82px 24px 30px!important;
    overflow-y:auto!important;
    overscroll-behavior:contain;
    justify-content:flex-start!important;
    align-items:center!important;
    gap:0!important;
    background:#faf8f3!important;
  }
  .page-header.open .page-nav a{
    width:100%;
    max-width:420px;
    padding:10px 8px!important;
    color:var(--ink)!important;
    font-size:24px!important;
    line-height:1.18!important;
    text-align:center;
  }
}
@media(max-width:480px){
  .page-header.open .page-nav{padding-top:72px!important}
  .page-header.open .page-nav a{padding:8px!important;font-size:21px!important}
  .page-hero h1{overflow-wrap:anywhere;hyphens:auto}
}

/* Final mobile layout pass for all inner pages. */
@media(max-width:780px){
  html,body{width:100%;max-width:100%;overflow-x:clip}
  .page-header{height:68px!important;min-height:68px!important;padding:0 16px!important}
  .page-hero{
    min-height:0!important;
    height:auto!important;
    aspect-ratio:auto;
    padding:132px 18px 38px!important;
    background-position:center;
  }
  .page-hero>div{width:100%;max-width:100%}
  .page-hero h1{
    max-width:100%;
    margin:12px 0 18px!important;
    font-size:clamp(38px,11.5vw,54px)!important;
    line-height:1.04!important;
    letter-spacing:-.02em!important;
    overflow-wrap:anywhere;
    hyphens:auto;
  }
  .page-hero p{font-size:15px!important;line-height:1.5}
  .section{padding:58px 0!important}
  .container,.footer-top,.footer-bottom{width:calc(100% - 36px)!important;max-width:none}
  .section h2,.legal h2{font-size:clamp(34px,10vw,48px)!important;line-height:1.06!important;overflow-wrap:anywhere}
  .section h3,.legal h3{overflow-wrap:anywhere}
  .lead-grid,.two-col,.contact-grid,.feature-cards,.faq-grid{
    grid-template-columns:minmax(0,1fr)!important;gap:28px!important
  }
  .photo{width:100%;height:auto!important;aspect-ratio:4/3;object-fit:cover}
  .card,.contact-card,.inquiry-wrap .form{padding:22px!important}
  .card h3{font-size:1.6rem}
  .gallery-full{grid-template-columns:1fr!important;gap:12px!important}
  .gallery-full button{aspect-ratio:4/3!important}
  .faq details{padding:17px 16px}
  .faq summary{line-height:1.4}
  .arrival-grid{grid-template-columns:1fr!important}
  .arrival-card{padding:20px}
  .arrival-address{padding:22px 18px!important}
  .plan-preview{width:100%;aspect-ratio:1.42/1!important}
  .map-consent{min-height:0!important;padding:28px 18px!important}
  .form input,.form textarea,.form select{font-size:16px}
  .winter-booking-message{padding:22px!important}
  .winter-booking-actions{flex-direction:column}
  .winter-booking-actions .btn{width:100%}
  .footer-top{grid-template-columns:1fr!important;gap:26px!important}
  .footer-top>div:last-child{text-align:left!important;justify-self:start!important}
  .footer-bottom{flex-direction:column;align-items:flex-start;margin-top:32px}
  .modal{padding:12px}
  .modal img{max-width:calc(100vw - 24px);max-height:calc(100svh - 48px)}
}
@media(max-width:600px){.modal{height:100dvh;min-height:100dvh;align-items:center;justify-items:center}.modal img{width:auto;height:auto;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);object-fit:contain;object-position:center}.modal .modal-nav{display:none!important}}
@media(max-width:390px){
  .container,.footer-top,.footer-bottom{width:calc(100% - 28px)!important}
  .page-hero{padding-left:14px!important;padding-right:14px!important}
  .page-hero h1{font-size:clamp(35px,11vw,45px)!important}
  .btn{min-height:48px!important;font-size:10px!important;letter-spacing:.11em!important}
}

/* Keep inner-page headers elegant on tall 2K and ultra-wide monitors. */
@media(min-width:901px){
  .page-hero{
    height:clamp(560px,calc(62vh + 78px),760px)!important;
    min-height:0!important;
  }
}

/* Refined cream mobile/tablet navigation. */
@media(max-width:900px){
  .page-header{height:72px!important;min-height:72px!important;padding:0 20px!important}
  .mobile-menu{
    display:grid!important;place-items:center;position:relative;z-index:102;width:46px;height:46px;padding:0;
    border:1px solid rgba(89,97,65,.22);border-radius:50%;background:rgba(250,248,243,.88)!important;
    color:#596141!important;font-size:0;cursor:pointer;
  }
  .mobile-menu:before,.mobile-menu:after{content:"";position:absolute;width:22px;height:1px;background:currentColor;transition:.3s ease}
  .mobile-menu:before{transform:translateY(-4px)}.mobile-menu:after{transform:translateY(4px)}
  .page-header.open .mobile-menu:before{transform:rotate(45deg)}.page-header.open .mobile-menu:after{transform:rotate(-45deg)}
  .page-header .page-nav,.page-header.open .page-nav{
    position:fixed!important;inset:0!important;top:0!important;z-index:100!important;
    display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:0!important;
    padding:82px 28px 100px!important;overflow-y:auto!important;background:#faf8f3!important;color:#303329!important;
    transform:translateX(102%);opacity:0;visibility:hidden;
    transition:transform .42s cubic-bezier(.22,.8,.25,1),opacity .3s ease,visibility 0s linear .42s;
  }
  .page-header.open .page-nav{transform:translateX(0);opacity:1;visibility:visible;transition-delay:0s}
  .page-nav a{
    min-height:51px;padding:12px 5px!important;display:flex;align-items:center;
    border-bottom:1px solid #ded8cc;color:#303329!important;font-size:clamp(18px,4.8vw,23px)!important;
  }
  .page-nav a:first-child{border-top:1px solid #ded8cc}
  .page-nav a:before{content:"";width:7px;height:7px;margin-right:13px;border:1px solid #8c9275;border-radius:50%;flex:0 0 auto}
  .page-nav a:after{content:"↗";margin-left:auto;color:#747c56;font-size:.72em;opacity:.7;transition:.25s ease}
  .page-nav a:hover:before,.page-nav a:focus-visible:before{background:#596141}
  .page-nav a:hover:after,.page-nav a:focus-visible:after{transform:translate(3px,-3px);opacity:1}
  .page-lang{position:relative;z-index:101}
  .page-header.open .page-lang{position:fixed;left:28px;bottom:23px;display:flex;gap:8px}
  .page-header.open .page-lang button{min-width:42px;height:36px;padding:0;border:1px solid #d5cec0;border-radius:18px;background:#f4f0e7;color:#303329!important;text-decoration:none}
  .page-header.open .page-lang button.active{background:#596141;color:#fff!important;border-color:#596141}
  .page-nav a{display:grid!important;grid-template-columns:30px minmax(0,1fr) 30px!important;text-align:center}
  .page-nav a:before{width:7px;height:7px;margin:0 auto}
  .page-nav a:after{width:30px;margin:0;text-align:right}
  .page-header.open .mobile-menu{
    position:fixed!important;top:12px!important;right:16px!important;
    width:38px!important;height:38px!important;border:1px solid rgba(89,97,65,.24)!important;border-radius:50%!important;
    background:#faf8f3!important;color:#596141!important;box-shadow:none!important;
  }
  .page-header.open .mobile-menu:before,.page-header.open .mobile-menu:after{display:block;width:18px;background:#596141!important;opacity:1!important}
  .page-header.open .page-lang{
    position:fixed!important;left:16px!important;right:auto!important;top:12px!important;bottom:auto!important;
    height:38px!important;margin:0!important;align-items:center!important;transform:none!important;
  }
  .page-header.open .page-lang button{min-width:38px!important;height:32px!important;padding:0 8px!important;color:#596141!important;border-color:rgba(89,97,65,.48)!important;background:#f7f3eb!important;opacity:1!important;font-weight:700!important}
  .page-header.open .page-lang button.active{color:#fff!important;background:#596141!important;border-color:#596141!important}
}
@media(max-width:900px){
  .page-header.open .mobile-menu:before,.page-header.open .mobile-menu:after{background:#596141!important;opacity:1!important}
  .page-header.open .page-lang button:not(.active){color:#596141!important;background:#f7f3eb!important;border-color:rgba(89,97,65,.48)!important;opacity:1!important}
  .page-header.open .page-lang button.active{color:#fff!important;background:#596141!important;border-color:#596141!important;opacity:1!important}
}
/* FUNSPACE Flachau — premium summer feature */
.funspace-section{padding-top:36px;background:linear-gradient(180deg,#f7f3eb 0%,#eee7da 100%)}
.funspace-shell{display:grid;grid-template-columns:.82fr 1.18fr;min-height:610px;border:1px solid rgba(62,70,47,.16);border-radius:20px;overflow:hidden;background:#fffaf2;box-shadow:0 28px 70px rgba(38,42,31,.12)}
.funspace-visual{position:relative;overflow:hidden;min-height:610px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;background:radial-gradient(circle at 20% 18%,rgba(255,255,255,.2),transparent 26%),linear-gradient(145deg,#78815d 0%,#4c5639 58%,#303827 100%)}
.funspace-visual:after{content:"";position:absolute;inset:22px;border:1px solid rgba(255,255,255,.28);border-radius:15px}
.funspace-mark{position:relative;z-index:2;font-family:var(--serif);font-size:clamp(70px,7vw,112px);font-style:italic;font-weight:600;line-height:.76;letter-spacing:-.065em;text-align:center;text-shadow:0 18px 50px rgba(15,19,11,.25)}
.funspace-place{position:relative;z-index:2;margin-top:35px;font-size:12px;font-weight:700;letter-spacing:.36em}
.funspace-orbit{position:absolute;border:1px solid rgba(255,255,255,.22);border-radius:50%;transform:rotate(-18deg)}
.orbit-one{width:430px;height:180px}.orbit-two{width:260px;height:430px;transform:rotate(35deg)}
.funspace-copy{padding:72px 68px;display:flex;flex-direction:column;justify-content:center}
.funspace-copy h2{font-family:var(--serif);font-size:clamp(46px,5vw,72px);font-style:italic;line-height:1.02;letter-spacing:-.035em;margin:0 0 24px;max-width:720px}
.funspace-copy>p:not(.kicker):not(.funspace-note){margin:0;color:#55584d;font-size:17px;line-height:1.85;max-width:720px}
.funspace-benefit{display:flex;align-items:center;gap:14px;margin:28px 0 22px;padding:18px 20px;border-left:3px solid #66704d;background:#edf0e8;color:#36402a}
.funspace-benefit>span{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:50%;background:#596141;color:#fff;font-size:14px}
.funspace-tags{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:4px}.funspace-tags span{padding:8px 12px;border:1px solid rgba(66,73,52,.22);border-radius:999px;color:#596141;font-size:11px;font-weight:650;letter-spacing:.055em;text-transform:uppercase}
.funspace-link{border-color:#596141!important;color:#596141!important}.funspace-link:hover{background:#596141!important;color:#fff!important}
.funspace-note{margin:18px 0 0!important;color:#77796f!important;font-size:12px!important;line-height:1.55!important}
.funspace-visual>img{position:relative;z-index:2;width:min(72%,360px);height:min(72%,430px);object-fit:contain;filter:drop-shadow(0 18px 32px rgba(15,19,11,.18))}

/* Reusable, fixed-size crossfade frames for seasonal photography. */
.page-hero.ac-page-hero-slideshow{isolation:isolate;background-image:none!important;overflow:hidden}
.ac-page-slide{position:absolute;inset:0;z-index:0;background-size:cover;background-repeat:no-repeat;opacity:0;transition:opacity 1.5s ease-in-out}
.ac-page-slide.active{opacity:1}.page-hero.ac-page-hero-slideshow:before{z-index:1}.page-hero.ac-page-hero-slideshow>div{z-index:2}
.summer-feature-card{padding:0;overflow:hidden;border-radius:12px}.summer-feature-image{display:block;width:100%;height:260px;object-fit:cover}.summer-feature-card h3,.summer-feature-card p{margin-right:28px;margin-left:28px}.summer-feature-card h3{margin-top:25px}.summer-feature-card p{margin-bottom:28px}
.photo{border-radius:12px}
.summer-card-slideshow{position:relative;min-height:430px;overflow:hidden;border-radius:12px;background:#ded4c2}.summer-card-slideshow img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.5s ease-in-out}.summer-card-slideshow img.active{opacity:1}.summer-card-program-note{margin:0;padding:16px 18px;border-left:3px solid var(--green);background:#fff;color:var(--ink);font-size:.95rem;line-height:1.6}
@media(max-width:900px){.summer-card-slideshow{min-height:360px}.summer-feature-image{height:240px}}
@media(max-width:600px){.page-hero.ac-page-hero-slideshow .ac-page-slide{background-position:center!important}.summer-feature-image{height:auto;aspect-ratio:4/3}.summer-card-slideshow{min-height:0;aspect-ratio:4/3}.funspace-visual>img{width:min(70%,270px);height:230px}}
@media(max-width:600px){.page-hero.ac-summer-hero .ac-page-slide{background-position:center 74%!important}}
.page-hero.ac-gallery-collage-hero{isolation:isolate;overflow:hidden;background:#242a1f}.ac-gallery-collage{position:absolute;inset:0;z-index:0;display:grid;grid-template-columns:1.15fr .85fr .72fr;grid-template-rows:1fr 1.05fr;gap:7px;padding:7px}.ac-gallery-tile{background:center/cover no-repeat;border-radius:8px}.ac-gallery-tile.tile-1{grid-row:span 2}.ac-gallery-tile.tile-2{grid-column:2;grid-row:1}.ac-gallery-tile.tile-3{grid-column:2;grid-row:2}.ac-gallery-tile.tile-4{grid-column:3;grid-row:span 2}.ac-gallery-tile.tile-5{display:none}.page-hero.ac-gallery-collage-hero:before{z-index:1;background:linear-gradient(90deg,rgba(18,22,15,.68),rgba(18,22,15,.08) 68%)}.page-hero.ac-gallery-collage-hero>div:not(.ac-gallery-collage){z-index:2}@media(max-width:600px){.ac-gallery-collage{grid-template-columns:1.05fr .95fr;grid-template-rows:1fr 1fr 1fr;gap:5px;padding:5px}.ac-gallery-tile.tile-1{grid-column:1;grid-row:span 2}.ac-gallery-tile.tile-2{grid-column:2;grid-row:1}.ac-gallery-tile.tile-3{grid-column:2;grid-row:2}.ac-gallery-tile.tile-4{grid-column:1;grid-row:3}.ac-gallery-tile.tile-5{display:block;grid-column:2;grid-row:3}}

/* A width-based header height keeps the crop stable while the browser is resized. */
.page-hero:not(.ac-gallery-collage-hero){height:clamp(520px,38vw,680px);min-height:0}
@media(max-width:600px){.page-hero:not(.ac-gallery-collage-hero){height:560px;min-height:0}}

/* The complete gallery must render as soon as its page opens, not on first scroll. */
.section:has(.gallery-full){content-visibility:visible!important}

@media(prefers-reduced-motion:reduce){.ac-page-slide,.summer-card-slideshow img{transition:none!important}}

/* Keep the complete focal subject visible in the image areas requested by the client. */
.ac-gallery-collage{max-width:none!important;width:auto!important;height:auto!important}
.page-hero>.ac-gallery-collage{position:absolute!important;inset:0!important;display:grid!important;max-width:none!important;width:auto!important;height:auto!important;padding:7px!important}
.ac-content-slideshow img[src$="Flachauer Gutshof_September_2k25_print-37.jpg"],.lead-grid>img.photo[src$="Flachauer Gutshof_September_2k25_print-37.jpg"]{object-fit:cover!important;object-position:center 68%!important;background:transparent}
@media(max-width:900px){.funspace-shell{grid-template-columns:1fr}.funspace-visual{min-height:420px}.funspace-copy{padding:54px 46px}}
@media(max-width:600px){.funspace-section{padding-top:18px}.funspace-shell{border-radius:13px}.funspace-visual{min-height:310px}.funspace-visual:after{inset:13px}.funspace-mark{font-size:68px}.funspace-place{margin-top:25px}.funspace-copy{padding:40px 24px}.funspace-copy h2{font-size:43px}.funspace-copy>p:not(.kicker):not(.funspace-note){font-size:15px}.funspace-benefit{align-items:flex-start;padding:16px}.funspace-tags{gap:7px}.funspace-tags span{font-size:9px}}

/* Lage: white route button with a restrained hover inversion. */
.arrival-address > .btn.primary{
  background:#fffaf0!important;
  border-color:#fffaf0!important;
  color:var(--green-dark)!important;
  box-shadow:0 8px 22px rgba(0,0,0,.12);
}
.arrival-address > .btn.primary:hover,
.arrival-address > .btn.primary:focus-visible{
  background:transparent!important;
  border-color:#fff!important;
  color:#fff!important;
  box-shadow:0 12px 28px rgba(0,0,0,.18);
  transform:translateY(-2px);
}

/* v20260812-29 — stable navigation geometry across page changes */
html{scrollbar-gutter:stable}

/* v20260812-29 — match the home/chalet desktop navigation exactly */
@media(min-width:901px){.page-nav a{padding:10px 3px}}

/* v20260812-30 — DE | EN premium language capsule */
.language-switcher,.page-lang{
  display:inline-flex;align-items:center;gap:0!important;padding:3px;border:1px solid rgba(255,255,255,.52);
  border-radius:999px;background:rgba(255,255,255,.13);box-shadow:0 8px 24px rgba(12,15,10,.08);
}

/* The property logo remains visible at the foot of every open mobile menu. */
@media(max-width:900px){
  .page-header.open .page-nav::after{
    content:"";
    position:fixed;
    left:50%;
    bottom:max(18px,env(safe-area-inset-bottom));
    z-index:2;
    width:104px;
    height:76px;
    transform:translateX(-50%);
    background:url('assets/images/logo-transparent.png') center/contain no-repeat;
    pointer-events:none;
  }
  .page-header.open .page-nav{padding-bottom:118px!important}
}

/* English desktop navigation typography is immutable during page loads. */
@media(min-width:1101px){
  html[lang="en"] body header.page-header nav.page-nav a{
    font-family:Corbel,'Trebuchet MS',Arial,sans-serif!important;
    font-size:13px!important;
    font-weight:500!important;
    font-style:normal!important;
    font-synthesis:none!important;
    letter-spacing:.02em!important;
    line-height:1.2!important;
    transform:none!important;
  }
}
.language-switcher .lang-btn,.page-lang button{
  position:relative;min-width:38px;height:30px;padding:0 10px!important;border:0!important;border-radius:999px;
  display:grid;place-items:center;color:inherit;font-size:11px!important;font-weight:700!important;letter-spacing:.08em;
  line-height:1;text-decoration:none!important;opacity:.74;transition:background-color .25s ease,color .25s ease,opacity .25s ease,box-shadow .25s ease;
}
.language-switcher .lang-btn+ .lang-btn,.page-lang button+button{border-left:1px solid rgba(255,255,255,.34)!important;border-radius:0 999px 999px 0}
.language-switcher .lang-btn.active,.page-lang button.active{
  background:#fff!important;color:#465036!important;opacity:1!important;box-shadow:0 3px 12px rgba(20,24,16,.13);border-radius:999px!important;
}
.site-header.scrolled .language-switcher,.page-header.scrolled .page-lang,.page-header.open .page-lang{
  border-color:rgba(89,97,65,.28);background:rgba(255,255,255,.72);
}
.site-header.scrolled .language-switcher .lang-btn+ .lang-btn,.page-header.scrolled .page-lang button+button,.page-header.open .page-lang button+button{border-left-color:rgba(89,97,65,.25)!important}
@media(hover:hover) and (pointer:fine){.language-switcher .lang-btn:hover,.page-lang button:hover{opacity:1}}
@media(max-width:900px){.language-switcher,.page-header.open .page-lang{padding:3px!important;border-radius:999px!important}.language-switcher .lang-btn,.page-header.open .page-lang button{min-width:38px!important;height:30px!important;padding:0 8px!important}}
/* v20260812-31 — identical desktop navigation rhythm in DE and EN */
@media(min-width:1101px){
  .main-nav,.page-nav{
    display:grid!important;
    grid-template-columns:45px 103px 61px 50px 60px 77px 52px 104px 34px 106px 58px;
    column-gap:24px!important;
    align-items:center;
    width:max-content;
  }
  .main-nav a,.page-nav a{
    width:100%;
    min-width:0;
    display:block;
    text-align:center;
    white-space:nowrap;
  }
}
/* v20260812-33 — clean bilingual switch and collision-safe navigation */
.language-switcher .lang-btn+ .lang-btn,.page-lang button+button{
  border-left:0!important;
}
@media(min-width:1101px){
  .main-nav a,.page-nav a{overflow:visible;text-overflow:clip}
}
/* v20260812-40 — FINAL shared navigation system */
@media(min-width:1101px){
  .site-header,.site-header.scrolled,.site-header:not(.scrolled),.page-header,.page-header.scrolled{
    height:78px!important;min-height:78px!important;padding:0 48px!important;
  }
  .main-nav,.page-nav{
    display:flex!important;flex:1 1 auto!important;align-items:center!important;justify-content:space-between!important;
    width:auto!important;max-width:1035px!important;gap:0!important;column-gap:0!important;
    font-family:Corbel,'Trebuchet MS',Arial,sans-serif!important;font-size:14px!important;font-weight:500!important;
    line-height:1.2!important;letter-spacing:.02em!important;
  }
  .main-nav a,.page-nav a,html[lang="en"] .site-header .main-nav a{
    display:block!important;flex:0 0 auto!important;width:auto!important;min-width:0!important;
    padding:10px 0!important;margin:0!important;text-align:center!important;white-space:nowrap!important;
    font-family:Corbel,'Trebuchet MS',Arial,sans-serif!important;font-size:14px!important;font-weight:500!important;
    line-height:1.2!important;letter-spacing:.02em!important;
  }
  .site-header{grid-template-columns:minmax(0,1035px) auto!important;justify-content:space-between!important;gap:24px!important}
  .page-header{display:flex!important;justify-content:space-between!important;gap:24px!important}
  .header-actions,.page-lang{flex:0 0 auto!important}
}
.language-switcher .lang-btn+ .lang-btn,.page-lang button+button{border-left:0!important}
/* v20260812-41 — FINAL shared mobile navigation typography */
@media(max-width:900px){
  .main-nav a,.page-nav a,.page-header.open .page-nav a,body.menu-open .main-nav a{
    font-family:Corbel,'Trebuchet MS',Arial,sans-serif!important;
    font-size:21px!important;font-weight:500!important;line-height:1.2!important;letter-spacing:.02em!important;
  }
}
/* v20260814-42 — language-independent desktop navigation tracks */
@media(min-width:1101px){
  .main-nav,.page-nav{
    display:grid!important;
    grid-template-columns:45px 103px 61px 50px 60px 77px 52px 104px 106px 34px 58px!important;
    column-gap:24px!important;gap:24px!important;
    justify-content:start!important;align-items:center!important;
    width:990px!important;max-width:990px!important;flex:0 0 990px!important;
  }
  .main-nav a,.page-nav a,html[lang="en"] .site-header .main-nav a{
    width:100%!important;min-width:0!important;padding:10px 0!important;
    text-align:center!important;white-space:nowrap!important;font-size:14px!important;
  }
  .site-header{grid-template-columns:990px auto!important;justify-content:space-between!important}
  .page-header{justify-content:space-between!important}
}
/* v20260814-45 — fluid desktop header with identical DE/EN positions */
@media(min-width:1101px){
  .site-header,.page-header{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 84px!important;
    column-gap:32px!important;
    justify-content:stretch!important;
    align-items:center!important;
  }
  .main-nav,.page-nav{
    width:100%!important;
    max-width:none!important;
    flex:none!important;
    grid-template-columns:45px 103px 61px 50px 60px 77px 52px 104px 106px 34px 58px!important;
    column-gap:0!important;
    gap:0!important;
    justify-content:space-between!important;
  }
}
/* v20260814-46 — viewport-locked DE/EN navigation geometry */
@media(min-width:1101px){
  .site-header,.page-header{
    grid-template-columns:calc(100vw - 229px) 84px!important;
  }
}
/* v20260814-47 — full translated labels in identical DE/EN tracks */
@media(min-width:1101px){
  .main-nav,.page-nav{
    grid-template-columns:45px 103px 61px 50px 60px 77px 52px 142px 118px 34px 58px!important;
  }
}
/* v20260814-48 — compact centered desktop navigation on both languages */
@media(min-width:1280px){
  .site-header,.page-header{
    grid-template-columns:1050px 84px!important;
    column-gap:32px!important;
    justify-content:center!important;
  }
}
@media(min-width:1101px) and (max-width:1279px){
  .site-header,.page-header{
    grid-template-columns:calc(100vw - 229px) 84px!important;
    justify-content:stretch!important;
  }
}
/* v20260814-49 — pixel-stable compact navigation */
@media(min-width:1280px){
  .site-header,.page-header{
    padding-left:48px!important;
    padding-right:48px!important;
    grid-template-columns:1050px 84px!important;
    column-gap:32px!important;
    justify-content:start!important;
  }
}
/* v20260814-50 — reference navigation layout, identical in DE and EN */
@media(min-width:1280px){
  html[lang="de"] .site-header,html[lang="en"] .site-header,
  html[lang="de"] .page-header,html[lang="en"] .page-header{
    padding-inline:48px!important;
    grid-template-columns:1050px 84px!important;
    column-gap:32px!important;
    justify-content:start!important;
  }
  html[lang="de"] .main-nav,html[lang="en"] .main-nav,
  html[lang="de"] .page-nav,html[lang="en"] .page-nav{
    width:1050px!important;
    grid-template-columns:45px 103px 61px 50px 60px 77px 52px 142px 118px 34px 58px!important;
    justify-content:space-between!important;
    column-gap:0!important;
  }
  html[lang="de"] .main-nav a,html[lang="en"] .main-nav a,
  html[lang="de"] .page-nav a,html[lang="en"] .page-nav a{
    width:100%!important;
    padding:10px 0!important;
    font-size:14px!important;
    text-align:center!important;
    white-space:nowrap!important;
  }
}
/* Compact image headers for the legal pages. */
.legal-hero {
  position: relative;
  min-height: clamp(340px, 42vh, 400px);
  display: flex;
  align-items: flex-end;
  padding: 132px max(48px, calc((100vw - 1240px) / 2)) 52px;
  color: #fff;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  overflow: hidden;
}

.legal-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(15, 20, 12, .66), rgba(15, 20, 12, .18) 64%, rgba(15, 20, 12, .28)),
    linear-gradient(0deg, rgba(15, 20, 12, .38), transparent 64%);
}

.legal-hero > div {
  position: relative;
  z-index: 1;
  width: min(1240px, 100%);
}

.legal-hero .kicker {
  margin: 0 0 10px;
  color: #fff;
}

.legal-hero h1 {
  margin: 0;
  color: #fff;
  font-family: Corbel, "Trebuchet MS", sans-serif;
  font-size: clamp(50px, 5vw, 72px);
  font-style: italic;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -.025em;
  text-shadow: 0 3px 20px rgba(0, 0, 0, .22);
}

.legal-hero-impressum {
  background-image: url("assets/images/hero-chalet-close.webp");
  background-position: center 85%;
}

.legal-hero-datenschutz {
  background-image: url("assets/images/hero-valley-aerial.webp");
  background-position: center 85%;
}

.legal-section {
  padding-top: 76px;
}

@media (max-width: 780px) {
  .legal-hero {
    min-height: 360px;
    padding: 116px 20px 38px;
  }

  .legal-hero h1 {
    font-size: clamp(42px, 13vw, 58px);
  }

  .legal-hero-impressum {
    background-position: 58% center;
  }

  .legal-hero-datenschutz {
    background-position: center;
  }

  .legal-section {
    padding-top: 52px !important;
  }
}
/* Simplified phone layout for inner pages; no desktop declarations are changed. */
@media (max-width: 600px) {
  body { font-size: 15.5px; line-height: 1.6; }
  .page-header { height: 64px !important; min-height: 64px !important; padding: 0 12px !important; }
  .mobile-menu { width: 44px !important; height: 44px !important; border-radius: 50%; background: rgba(255,255,255,.9) !important; color: #3f4630 !important; }
  .page-header.open .page-nav { top: 0 !important; padding: 76px 20px 24px !important; overflow-y: auto; }
  .page-header.open .page-nav a { min-height: 44px; padding: 9px 4px !important; font-size: 18px !important; line-height: 1.2 !important; }

  .page-hero { min-height: 360px !important; padding: 112px 16px 32px !important; }
  .page-hero h1 { max-width: 100%; font-size: clamp(34px, 10.5vw, 44px) !important; line-height: 1.02 !important; }
  .page-hero p { max-width: 32ch; font-size: 14px !important; }
  .legal-hero { min-height: 320px; padding: 106px 16px 32px; }
  .legal-hero h1 { font-size: clamp(38px, 11vw, 48px); }

  .section { padding: 48px 0 !important; }
  .container,
  .footer-top,
  .footer-bottom { width: calc(100% - 32px) !important; }
  .section h2,
  .legal h2 { font-size: clamp(30px, 9vw, 38px) !important; line-height: 1.06 !important; }
  .section h3,
  .legal h3 { font-size: clamp(24px, 7vw, 30px); line-height: 1.1; }

  .card,
  .contact-card,
  .inquiry-wrap .form,
  .arrival-card { padding: 18px !important; }
  .photo { aspect-ratio: 4 / 3; }
  .gallery-full { grid-template-columns: repeat(2, minmax(0,1fr)) !important; gap: 8px !important; }
  .gallery-full button { aspect-ratio: 1 / 1 !important; }
  .faq details { padding: 14px; }
  .faq summary { font-size: 16px; }

  .arrival-address { padding: 18px !important; }
  .form { gap: 16px; }
  .form input,
  .form textarea,
  .form select { min-height: 48px; }

  .site-footer { padding: 48px 0 18px; }
  .footer-top { gap: 20px !important; }
  .footer-top > div:first-child img { width: 140px; }
  .footer-top > div:nth-child(2) strong { font-size: 24px; }
  .footer-bottom { margin-top: 26px; gap: 12px; }
}
/* Contact page: reception opening-hours notice is intentionally not published. */
.contact-card p[data-de^="Rezeption: täglich 08:00-12:00"]{display:none!important}

/* Route plan: preserve the original map and identify its two existing routes only. */
.route-map-stage svg,.route-map-stage .route-label{display:none!important}
.route-map-stage img{filter:none!important;opacity:1!important}
.route-pointer{position:absolute;z-index:4;padding:7px 11px;border-radius:999px;color:#fff;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;box-shadow:0 5px 18px rgba(0,0,0,.24)}
.route-pointer::after{content:"";position:absolute;left:50%;top:100%;width:2px;height:22px;background:currentColor;transform:translateX(-50%)}
.route-pointer::before{content:"";position:absolute;left:50%;top:calc(100% + 16px);width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateX(-50%) rotate(45deg)}
.route-pointer.walking{left:67%;top:2.5%;background:#596141}
.route-pointer.driving{left:43%;bottom:4%;background:#a84f3e}
.route-pointer.driving::after{top:auto;bottom:100%}
.route-pointer.driving::before{top:auto;bottom:calc(100% + 16px);transform:translateX(-50%) rotate(225deg)}
.route-map-legend .walk-line{border-color:#596141!important;border-top-style:solid!important}
@media(max-width:700px){.route-pointer{font-size:8px;padding:5px 7px}.route-pointer::after{height:14px}.route-pointer::before{top:calc(100% + 8px)}.route-pointer.driving::before{bottom:calc(100% + 8px)}}

/* Premium markers placed on the map's original, printed routes. */
.route-pointer{display:none!important}
.route-pin{position:absolute;z-index:5;display:flex;align-items:center;gap:8px;padding:5px 12px 5px 5px;border:1px solid rgba(255,255,255,.72);border-radius:999px;background:rgba(249,247,240,.93);box-shadow:0 8px 24px rgba(37,42,29,.2);backdrop-filter:blur(8px);color:#303329;white-space:nowrap}
.route-pin b{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#596141;color:#fff;font:700 12px/1 Arial,sans-serif}
.route-pin em{font-style:normal;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.route-pin::after{content:"";position:absolute;width:8px;height:8px;border-radius:50%;background:#596141;box-shadow:0 0 0 5px rgba(89,97,65,.2)}
.route-pin.walking{left:69%;top:5%}
.route-pin.walking::after{left:15px;top:calc(100% + 8px)}
.route-pin.driving{left:39%;bottom:5%}
.route-pin.driving b,.route-pin.driving::after{background:#a84f3e}
.route-pin.driving::after{left:15px;bottom:calc(100% + 8px);box-shadow:0 0 0 5px rgba(168,79,62,.18)}
.route-destination{position:absolute;z-index:4;left:22.8%;top:61%;width:17%;height:19%;border:2px solid rgba(89,97,65,.78);border-radius:18px;box-shadow:0 0 0 7px rgba(89,97,65,.12),inset 0 0 28px rgba(89,97,65,.08);pointer-events:none}
.route-destination i{position:absolute;right:-7px;top:-7px;width:14px;height:14px;border-radius:50%;background:#596141;border:3px solid #f7f4ed;box-shadow:0 3px 10px rgba(0,0,0,.25)}
@media(max-width:700px){.route-pin{gap:4px;padding:3px 7px 3px 3px}.route-pin b{width:20px;height:20px;font-size:9px}.route-pin em{font-size:6px}.route-pin.walking{left:61%;top:3%}.route-pin.driving{left:34%;bottom:3%}.route-destination{border-radius:8px}}

/* Always show the complete original Gutshof plan inside the viewport. */
.route-map-panel{width:min(1380px,96vw,calc((94vh - 145px)*1.414 + 48px));max-height:94vh;overflow:hidden}
.route-map-stage{width:100%;min-height:0!important;aspect-ratio:3508/2481!important}
.route-map-stage img{position:absolute!important;inset:0!important;width:100%!important;min-width:0!important;height:100%!important;max-width:100%!important;transform:none!important;object-fit:contain!important;object-position:center!important}
.modal.plan-modal img{width:auto!important;height:auto!important;max-width:calc(100vw - 24px)!important;max-height:calc(100svh - 24px)!important;object-fit:contain!important;transform:none!important}
html[data-season="winter"] .modal.plan-modal button:not(.modal-nav),html[data-season="winter"] .route-map-close{color:var(--green)!important;background:var(--cream)!important;border-color:var(--green)!important}
@media(max-width:700px){.route-map-modal{padding:8px}.route-map-panel{width:calc(100vw - 16px);max-height:calc(100svh - 16px);padding:10px;border-radius:10px}.route-map-header{align-items:center;padding:0 0 8px}.route-map-header .kicker{display:none}.route-map-header h2{font-size:1.2rem}.route-map-close{width:36px;height:36px;flex-basis:36px;font-size:23px}.route-map-stage{min-height:0!important;width:100%!important;aspect-ratio:3508/2481!important}.route-map-stage img{left:0!important;width:100%!important;min-width:0!important;height:100%!important;transform:none!important}.route-map-legend{display:none!important}}

/* Lage: editorial proof of the ski-in location. */
.slope-location{padding:72px 0 12px;background:#f4f0e6}
.slope-location-visual{position:relative;overflow:hidden;margin:0;border-radius:18px;min-height:clamp(430px,57vw,720px);box-shadow:0 24px 60px rgba(35,40,27,.16)}
.slope-location-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,27,20,.68) 0%,rgba(20,27,20,.29) 42%,rgba(20,27,20,0) 68%)}
.slope-location-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.slope-location-visual figcaption{position:absolute;z-index:2;left:clamp(28px,6vw,88px);bottom:clamp(30px,7vw,88px);width:min(520px,72%);color:#fff}
.slope-location-visual figcaption .kicker{margin:0 0 10px;color:#fff}
.slope-location-visual figcaption h2{margin:0 0 12px;color:#fff;font-size:clamp(2.6rem,5.4vw,5.6rem);font-style:italic;line-height:.95}
.slope-location-visual figcaption p:last-child{max-width:430px;margin:0;font-size:clamp(1rem,1.3vw,1.2rem);line-height:1.55}
@media(max-width:700px){.slope-location{padding:44px 0 8px}.slope-location-visual{min-height:540px;border-radius:12px}.slope-location-visual img{object-position:56% center}.slope-location-visual::after{background:linear-gradient(0deg,rgba(20,27,20,.78) 0%,rgba(20,27,20,.12) 66%)}.slope-location-visual figcaption{left:24px;right:24px;bottom:30px;width:auto}.slope-location-visual figcaption h2{font-size:2.9rem}}

/* Lage hero copy is visible immediately; no entrance/fade motion. */
.page-hero[style*="hero-alpenchalets-flugbild"]>div,
.page-hero[style*="hero-alpenchalets-flugbild"]>div>*{opacity:1!important;transform:none!important;animation:none!important;transition:none!important}

/* Footer logo background — footer only */
footer .footer-logo,
.site-footer .footer-logo {
  box-sizing: border-box;
  background: rgba(255, 255, 255, 0.82);
  padding: 16px;
  border-radius: 16px;
  display: block;
  object-fit: contain;
}
@media (max-width: 768px) {
  footer .footer-logo,
  .site-footer .footer-logo {
    padding: 12px;
    border-radius: 14px;
    max-width: min(180px, 72vw);
    height: auto;
    margin-left: auto;
    margin-right: auto;
  }
}

/* Header logo/layout restoration — language switch left, logo right */
header .header-actions,
.site-header .header-actions,
header .nav-actions,
.site-header .nav-actions {
  margin-left: auto;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}
header .lang-switch,
.site-header .lang-switch,
header .language-switcher,
.site-header .language-switcher {
  order: 1;
  flex: 0 0 auto;
}
header .header-logo,
.site-header .header-logo,
header .logo,
.site-header .logo {
  order: 2;
  flex: 0 0 auto;
  margin-left: 0;
  margin-right: 8px;
  padding: 0 !important;
  background: transparent !important;
  border-radius: 0 !important;
  width: auto;
  height: auto;
  object-fit: contain;
}
@media (max-width: 768px) {
  header .header-actions,
  .site-header .header-actions,
  header .nav-actions,
  .site-header .nav-actions {
    margin-left: auto;
    gap: 8px;
    justify-content: flex-end;
  }
  header .lang-switch,
  .site-header .lang-switch,
  header .language-switcher,
  .site-header .language-switcher {
    order: 1;
  }
  header .header-logo,
  .site-header .header-logo,
  header .logo,
  .site-header .logo {
    order: 2;
    margin-left: 0;
    margin-right: 6px;
    padding: 0 !important;
    background: transparent !important;
    border-radius: 0 !important;
  }
}


/* FINAL header logo sizing/layout fix:
   DE/EN stay fully visible to the LEFT; logo stays compact on the RIGHT. */
header .header-actions,
.site-header .header-actions,
header .nav-actions,
.site-header .nav-actions {
  margin-left: auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  flex-wrap: nowrap !important;
  gap: 12px !important;
}

header .lang-switch,
.site-header .lang-switch,
header .language-switcher,
.site-header .language-switcher {
  order: 1 !important;
  position: relative !important;
  z-index: 20 !important;
  flex: 0 0 auto !important;
  margin: 0 !important;
}

header .header-logo,
.site-header .header-logo,
header .logo,
.site-header .logo {
  order: 2 !important;
  position: relative !important;
  z-index: 10 !important;
  flex: 0 0 auto !important;
  width: 78px !important;
  max-width: 78px !important;
  height: auto !important;
  margin: 0 8px 0 0 !important;
  padding: 5px !important;
  box-sizing: border-box !important;
  background: rgba(255,255,255,.82) !important;
  border-radius: 9px !important;
  object-fit: contain !important;
}

/* If the actual image is inside a logo wrapper, keep the image compact too. */
header .header-logo img,
.site-header .header-logo img,
header .logo img,
.site-header .logo img {
  display: block !important;
  width: 68px !important;
  max-width: 68px !important;
  height: auto !important;
  object-fit: contain !important;
}

@media (max-width: 768px) {
  header .header-actions,
  .site-header .header-actions,
  header .nav-actions,
  .site-header .nav-actions {
    gap: 8px !important;
  }

  header .header-logo,
  .site-header .header-logo,
  header .logo,
  .site-header .logo {
    width: 66px !important;
    max-width: 66px !important;
    padding: 4px !important;
    border-radius: 8px !important;
    margin-right: 6px !important;
  }

  header .header-logo img,
  .site-header .header-logo img,
  header .logo img,
  .site-header .logo img {
    width: 58px !important;
    max-width: 58px !important;
  }
}

@media (max-width: 420px) {
  header .header-actions,
  .site-header .header-actions,
  header .nav-actions,
  .site-header .nav-actions {
    gap: 6px !important;
  }

  header .header-logo,
  .site-header .header-logo,
  header .logo,
  .site-header .logo {
    width: 58px !important;
    max-width: 58px !important;
    padding: 3px !important;
    margin-right: 4px !important;
  }

  header .header-logo img,
  .site-header .header-logo img,
  header .logo img,
  .site-header .logo img {
    width: 52px !important;
    max-width: 52px !important;
  }
}


/* Unified Flachauer Alpenchalets footer logo on every page/language */
footer img.footer-logo,
.site-footer img.footer-logo {
  display:block !important;
  width:175px !important;
  max-width:100% !important;
  height:auto !important;
  box-sizing:border-box !important;
  padding:12px !important;
  background:rgba(255,255,255,.82) !important;
  border-radius:16px !important;
  object-fit:contain !important;
}
@media (max-width:768px){
  footer img.footer-logo,
  .site-footer img.footer-logo {
    width:145px !important;
    padding:10px !important;
    border-radius:14px !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
}
.section,.site-footer{content-visibility:visible!important;contain:none!important}
