/* Gästehaus Perschall — an editorial garden retreat. */
:root{--cream:#faf7ef;--paper:#f1efe5;--green:#1f5131;--green-dark:#173e25;--ink:#213d2b;--text:#526052;--muted:#eaece2;--white:#fffef9;--line:#d9decf;--gold:#b18b43;--gold-text:#806127;--max:1320px;--radius:3px;--shadow:none;color-scheme:light}
html[data-theme=dark]{--cream:#14231b;--paper:#1c2c22;--green:#bbcfac;--green-dark:#e0e8d6;--ink:#eef0e4;--text:#bdc7b9;--muted:#1b2d22;--white:#223629;--line:#3c4e3c;--gold:#d8b776;--gold-text:#d8b776;color-scheme:dark}
html{scroll-padding-top:105px}body{font-family:Arial,Helvetica,sans-serif;font-size:15px;line-height:1.75;background:var(--cream);color:var(--text);transition:background-color .35s,color .35s}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default}a{color:var(--green)}a:hover{color:var(--ink)}.container{width:min(var(--max),calc(100% - 112px))}h1,h2,h3{color:var(--ink)}h1,h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.045em}h2{font-size:clamp(34px,3.7vw,54px);line-height:1.13;max-width:850px;margin:14px 0 28px}h3{font-size:19px;font-weight:500;letter-spacing:-.02em}.section{padding-top:110px;padding-bottom:110px}.section-kicker,.eyebrow{font-size:10px;letter-spacing:.22em;text-transform:uppercase;font-weight:600;color:var(--gold-text);margin:0 0 24px}.section-kicker:before{content:'';display:inline-block;width:24px;height:1px;background:currentColor;vertical-align:middle;margin-right:12px}.section-intro{max-width:630px;font-size:16px;color:var(--text)}.section-muted{background:var(--paper)}.site-header{height:96px;position:sticky;top:0;background:var(--cream);border-bottom:1px solid var(--line);padding:0 4%;gap:32px;box-shadow:none;backdrop-filter:none;z-index:50;display:flex}.brand{gap:11px;min-width:180px;color:var(--ink);line-height:1}.brand>span{display:flex;flex-direction:column;gap:4px}.brand small{font-size:10px;letter-spacing:.23em;text-transform:uppercase;font-weight:400}.brand b{font-family:Georgia,serif;font-size:28px;font-weight:400;letter-spacing:-.04em}.brand-dot{color:var(--gold)}.brand-symbol{width:32px;height:42px}.site-nav{gap:20px;margin-left:auto}.site-nav a{font-size:12px;font-weight:400;padding:6px 0;color:var(--text);position:relative}.site-nav a:after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .3s}.site-nav a:hover:after,.site-nav a[aria-current]:after{transform:scaleX(1)}.site-nav a[aria-current]{color:var(--ink)}.header-tools{display:flex;align-items:center;gap:23px}.theme-toggle{display:grid;place-items:center;width:36px;height:36px;padding:8px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--ink)}.theme-toggle svg{width:18px;height:18px}.theme-toggle .sun{display:none}[data-theme=dark] .theme-toggle .moon{display:none}[data-theme=dark] .theme-toggle .sun{display:block}.header-request{font-size:11px;text-transform:uppercase;letter-spacing:.08em;text-decoration:none;white-space:nowrap;color:var(--ink);border-bottom:1px solid var(--gold);padding:8px 0}.header-request span{margin-left:14px}.hero{display:grid;grid-template-columns:48% 52%;position:relative;min-height:700px;height:auto;background:var(--cream);color:var(--text);padding:48px 4% 64px;isolation:isolate;gap:0}.hero-content{position:relative;z-index:2;padding:52px 60px 0 0;max-width:none;align-self:center}.hero h1{font-size:clamp(46px,4.9vw,76px);line-height:1.04;color:var(--ink);margin:22px 0 28px;max-width:none;text-shadow:none}.hero h1 em{font-weight:400;color:var(--green);font-style:italic}.hero h1>span{font-size:.72em;letter-spacing:-.035em}.hero .eyebrow{color:var(--gold-text);font-size:10px;margin:0}.hero-lead{color:var(--text);font-size:14px;line-height:1.85;max-width:390px;text-shadow:none}.hero-actions{display:flex;gap:18px;flex-wrap:wrap;margin-top:28px}.button{border-radius:0;padding:15px 22px;font-size:12px;line-height:1.5;box-shadow:none;min-height:48px;transition:background .2s,transform .2s;letter-spacing:.015em;font-weight:500;border:1px solid transparent;text-decoration:none}.button:hover{transform:translateY(-2px)}.button:active{transform:scale(.98)}.button-primary{background:#1f5131;color:#fffaf0;border:1px solid #1f5131;box-shadow:none}.button-primary:hover{background:#173e25;color:#fffaf0;box-shadow:none}[data-theme=dark] .button-primary{background:#c4d5b6;color:#14231b;border-color:#c4d5b6}[data-theme=dark] .button-primary:hover{background:#e0e8d6;color:#14231b}.button-ghost{color:var(--ink);border:0;border-bottom:1px solid var(--line);background:transparent;padding:14px 0}.button-ghost:hover{background:transparent;border-color:var(--gold);color:var(--ink)}.hero-actions>a:nth-child(2){display:none}.hero-foot{display:flex;align-items:center;gap:8px;margin-top:55px;padding-top:19px;border-top:1px solid var(--line);font-size:10px;letter-spacing:.03em;max-width:440px}.hero-foot a{margin-left:auto;color:var(--text);text-decoration:none}.hero-foot a span{display:inline-block;margin-left:16px;font-size:18px}.location-dot{width:5px;height:5px;display:inline-block;background:var(--gold);border-radius:50%}.hero-visual{position:relative;min-width:0}.hero-image-wrap{height:100%;min-height:592px;border-radius:180px 0 0 0;overflow:hidden;position:relative;background:#38513a}.hero-image{width:100%;height:100%;position:absolute;object-fit:cover;object-position:48% 50%;will-change:transform}.hero-image-wrap:after{content:'';position:absolute;inset:65% 0 0;background:linear-gradient(transparent,rgba(14,29,16,.55));pointer-events:none}.photo-label{position:absolute;right:22px;top:24px;writing-mode:vertical-rl;font-size:9px;letter-spacing:.2em;color:#fff9e9;text-shadow:0 1px 4px #172016}.hero-photo-bottom{position:absolute;left:35px;right:25px;bottom:27px;z-index:1;display:flex;justify-content:space-between;color:#fffaf0;font-size:10px;letter-spacing:.06em}.house-seal{position:absolute;left:-52px;bottom:56px;border-radius:50%;width:130px;height:130px;background:var(--cream);color:var(--gold-text);display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid var(--gold);box-shadow:0 0 0 9px var(--cream);z-index:3;pointer-events:none}.house-seal canvas{width:100px;height:80px}.house-seal span{font-family:Georgia,serif;font-style:italic;font-size:12px;margin-top:-4px}.two-column{grid-template-columns:1fr 1fr;gap:100px;align-items:center}.image-card{border-radius:0;box-shadow:none;overflow:visible;margin:0}.image-card img{border-radius:0;aspect-ratio:1.25;object-fit:cover}.image-card figcaption{font-size:10px;letter-spacing:.09em;text-transform:uppercase;margin-top:15px;color:var(--text)}#about{border-top:1px solid var(--line)}#about>div{max-width:500px}#about p:not(.section-kicker){font-size:14px}#about .image-card{position:relative;padding-left:35px}#about .image-card:before{content:'P';position:absolute;right:-25px;bottom:15px;color:var(--gold);font-family:Georgia,serif;font-size:160px;line-height:1;opacity:.5;z-index:1}#haus h2{max-width:720px}#haus>.container>h3{margin:36px 0 20px}.room-viewer{margin-top:30px}.room-main{display:block;width:100%;height:620px;border:0;padding:0;background:var(--muted);position:relative;overflow:hidden}.room-main img{width:100%;height:100%;object-fit:cover;object-position:center 56%}.room-enlarge{position:absolute;bottom:24px;right:24px;display:grid;place-items:center;background:var(--cream);color:var(--ink);border-radius:50%;width:48px;height:48px;font-size:24px}.room-caption{display:flex;justify-content:space-between;margin-top:18px;color:var(--ink);font-size:13px}.room-caption span:last-child{font-size:11px;letter-spacing:.13em;color:var(--text)}.room-tabs{display:flex;gap:8px;margin:24px 0 0;flex-wrap:wrap}.room-tabs button{background:transparent;border:1px solid var(--line);color:var(--text);font-size:11px;padding:10px 20px;border-radius:40px;transition:background-color .2s,color .2s,border-color .2s}.room-tabs button[aria-selected=true]{background:var(--ink);border-color:var(--ink);color:var(--cream)}.gallery{grid-template-columns:repeat(6,1fr);gap:14px;margin:24px 0 40px}.gallery button{border:0;border-radius:0;background:none;box-shadow:none;padding:0;overflow:visible;position:relative}.gallery button img{aspect-ratio:1.35;object-fit:cover;filter:saturate(.8);border:2px solid transparent;padding:0;transition:filter .3s,border .3s}.gallery button:hover img,.gallery button.is-selected img{filter:saturate(1);border-color:var(--gold);transform:none}.gallery button span{font-size:10px;display:block;text-align:left;padding-top:8px;color:var(--text)}.info-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;margin:36px 0 0}.info-grid>div{padding:22px 0;background:none;border-radius:0;box-shadow:none;border:0;border-top:1px solid var(--line)}.info-grid strong{font-family:Georgia,serif;font-size:19px;line-height:1.35;color:var(--ink);font-weight:400}.info-grid span{font-size:12px;line-height:1.8;display:block;margin-top:10px}.feature-band{background:#193c29;padding:100px 0;color:#d4dfcc;position:relative;overflow:hidden}.feature-band .section-kicker{color:#d8b776}.feature-band h2{color:#faf7ef;max-width:760px}.feature-band>.container>p:not(.section-kicker){max-width:660px;font-size:15px}.landwehr-gallery{display:grid;grid-template-columns:1.15fr .8fr 1fr;gap:26px;margin:52px 0 20px;align-items:center}.landwehr-gallery img{height:380px;object-fit:cover;border-radius:0}.landwehr-gallery img:nth-child(2){height:290px}.landwehr-gallery img:nth-child(3){height:350px}.landwehr-note{font-family:Georgia,serif;font-style:italic;font-weight:400!important;font-size:24px!important;margin-top:34px!important;color:#edf1e3}#umgebung .cards{grid-template-columns:1fr 1fr;gap:65px 50px;margin-top:50px;align-items:start}.card{border:0;background:transparent;box-shadow:none;border-radius:0;overflow:visible}.card>img{aspect-ratio:1.5;object-fit:cover;width:100%;height:auto;border-radius:0}.card:nth-child(even){margin-top:65px}.card-body{padding:22px 0}.card h3{font-family:Georgia,serif;font-size:27px;margin:0 0 12px}.card p{font-size:14px;max-width:480px}.card a{font-size:11px;text-transform:uppercase;letter-spacing:.06em;text-decoration:none;border-bottom:1px solid var(--gold);padding-bottom:5px}.card-wide{grid-column:auto;display:block}.card-images{display:grid;grid-template-columns:1fr 1fr;gap:12px}.card-images img{width:100%;height:270px;object-fit:cover}.card-wide .card-body{padding:22px 0}.price-layout{display:grid;grid-template-columns:1.08fr 1fr;gap:70px;margin:46px 0}.price-overview>.info-grid{grid-template-columns:1fr 1fr;margin:0 0 30px;gap:0 28px}.table-wrap{border:0;border-radius:0;box-shadow:none;background:transparent}table{font-size:13px;background:transparent}caption{font-size:11px;text-align:left;margin-bottom:16px;color:var(--text)}thead{background:var(--ink);color:var(--cream)}thead th{color:var(--cream);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.04em;padding:14px}tbody th,tbody td{border-bottom:1px solid var(--line);padding:20px 12px;background:none;color:var(--text)}tbody th{font-weight:500;color:var(--ink)}tbody tr:nth-child(even){background:transparent}table small{font-size:10px}.price-calc{margin:0;border:1px solid var(--line);background:var(--paper);border-radius:0;padding:36px;box-shadow:none}.price-calc h3{font-family:Georgia,serif;font-size:32px;margin:0 0 5px}.price-calc>p{font-size:12px}.calc-form{display:grid;grid-template-columns:repeat(6,1fr);gap:20px 12px;margin-top:30px}.calc-form label{grid-column:span 2;font-size:11px;color:var(--ink);display:flex;flex-direction:column;gap:7px}.calc-form label:nth-child(-n+2){grid-column:span 3}.calc-form label small{font-size:9px;display:inline;margin-top:-9px}.calc-form input,.calc-form select{border:1px solid var(--line);border-radius:0;padding:12px 9px;background:var(--cream);color:var(--ink);width:100%;min-width:0;font-size:12px;min-height:46px}.calc-result{padding:18px 0 0;border-top:1px solid var(--line);margin-top:24px;background:transparent;font-size:12px}.calc-total{font-family:Georgia,serif;font-size:25px;font-weight:400;color:var(--ink)}.calc-items{font-size:12px;gap:6px 20px}.calc-warning{color:#9a4037}[data-theme=dark] .calc-warning{color:#efada3}.calc-ok{color:var(--green)}.calc-note{font-size:11px}.house-rules{background:transparent;border:0;border-top:1px solid var(--line);border-radius:0;padding:24px 0;margin:0}.house-rules summary{font-family:Georgia,serif;font-size:22px;color:var(--ink);font-weight:400}.house-rules .prose{font-size:14px;max-width:900px;padding-top:20px}.calendar-widget{padding:32px;background:var(--cream);border:1px solid var(--line);border-radius:0;box-shadow:none}.calendar-month{background:transparent;border:0;border-radius:0;padding:16px}.calendar-month h3{font-family:Georgia,serif;font-size:23px}.calendar-toolbar{border-bottom:1px solid var(--line);padding-bottom:20px}.calendar-nav{background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:50%;width:40px;height:40px}.calendar-status{font-size:12px;color:var(--text)}.calendar-day{background:#e6eddd;color:#254a2e;border-radius:2px}.calendar-day-occupied{background:#ecd0c6;color:#75382f}.calendar-day-today{outline-color:var(--gold)}.calendar-day-empty{background:transparent}.calendar-legend,.calendar-link{font-size:11px}.preview-calendar-note{font-size:11px;color:var(--text);max-width:700px}.calendar-day-unknown{background:var(--paper);color:var(--text)}.contact-grid{align-items:start;border-bottom:1px solid var(--line)}address{font-style:normal;font-size:15px;line-height:2}.contact-card{background:transparent;box-shadow:none;border-radius:0;padding:45px 0 0;gap:16px;align-items:start}.contact-card>a:not(.button){font-size:17px;text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:6px;overflow-wrap:anywhere}.contact-card>a:last-child{font-size:15px}.map-placeholder{background:var(--cream);border:1px solid var(--line);padding:35px;font-size:12px}.map-placeholder iframe{width:100%;height:300px;border:0}.site-footer{background:#163422;color:#d7dfcf;padding:35px 0;font-size:11px}.site-footer a{color:#d7dfcf}.footer-inner{align-items:center}.image-dialog{background:var(--cream);color:var(--ink);border:1px solid var(--line);border-radius:3px;max-width:min(1100px,92vw);max-height:92dvh;padding:20px}.image-dialog::backdrop{background:rgba(10,25,16,.86);backdrop-filter:blur(6px)}.image-dialog img{max-height:75dvh;object-fit:contain}.dialog-close{background:var(--cream);color:var(--ink);border:1px solid var(--line);width:40px;height:40px}.dialog-navigation .button{min-height:40px;padding:8px 18px}.dialog-status{font-size:11px}.nav-toggle span:not(.sr-only){background:var(--ink)}[hidden]{display:none!important}
@media(min-width:1600px){.hero{max-width:1600px;margin:auto}.site-header{padding-inline:max(4%,calc((100vw - 1472px)/2))}}
@media(max-width:1200px){.site-header{gap:20px}.site-nav{gap:14px}.header-request{display:none}.hero-content{padding-right:40px}.hero{min-height:660px}.hero-image-wrap{min-height:570px}.hero h1{font-size:61px}.container{width:calc(100% - 80px)}.two-column{gap:60px}.room-main{height:510px}.price-layout{gap:35px}.price-calc{padding:25px}.site-nav a{font-size:11px}}
@media(max-width:950px){.site-header{height:82px}.brand{min-width:160px}.site-nav{gap:11px}.site-nav a{font-size:10px}.header-tools{margin-left:0}.hero{padding-top:36px;min-height:590px}.hero-content{padding-top:20px;padding-right:35px}.hero h1{font-size:49px}.hero-lead{font-size:13px}.hero-image-wrap{min-height:530px;border-radius:130px 0 0 0}.hero-foot{flex-wrap:wrap;margin-top:34px}.hero-foot a{margin-left:13px}.house-seal{width:105px;height:105px;left:-33px}.house-seal canvas{width:80px;height:65px}.house-seal span{font-size:10px}.hero-photo-bottom{left:25px}.hero-photo-bottom span:last-child{display:none}.section{padding-block:80px}.two-column{gap:40px}.info-grid{gap:20px;grid-template-columns:1fr 1fr}.room-main{height:450px}.gallery{gap:8px}.price-layout{grid-template-columns:1fr;gap:35px}.price-overview>.info-grid{grid-template-columns:repeat(4,1fr)}.calc-form{gap:20px}.landwehr-gallery img{height:310px}.landwehr-gallery img:nth-child(2){height:240px}.landwehr-gallery img:nth-child(3){height:280px}.occupancy-calendar{grid-template-columns:1fr 1fr}.calendar-month:last-child{display:none}.card-images img{height:200px}}
@media(max-width:760px){html{scroll-padding-top:80px}.container{width:calc(100% - 40px)}.site-header{height:76px;padding:0 20px;gap:16px;justify-content:initial}.brand b{font-size:24px}.brand-symbol{width:27px}.brand{min-width:0;margin-right:auto}.header-tools{order:1;margin:0}.nav-toggle{order:2;display:flex;flex-direction:column;gap:5px;padding:8px;width:36px;height:36px;border:0;background:transparent;margin:0}.nav-toggle span:not(.sr-only){width:21px;height:1px;margin:0;display:block}.nav-toggle .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.site-nav{display:none;position:absolute;top:75px;left:0;right:0;padding:20px;background:var(--cream);border-bottom:1px solid var(--line);box-shadow:0 15px 20px #14231b12}.site-nav.open{display:flex;flex-direction:column;align-items:stretch;gap:0}.site-nav a{font-size:16px;padding:12px;border-bottom:1px solid var(--line)}.theme-toggle{width:34px;height:34px}.hero{display:flex;flex-direction:column;padding:34px 20px 45px;min-height:auto;gap:35px}.hero-content{padding:0;align-self:auto}.hero .eyebrow{font-size:9px}.hero h1{font-size:clamp(44px,11.8vw,70px);margin:20px 0}.hero h1 br:nth-of-type(2){display:none}.hero h1>span{display:block;margin-top:8px;font-size:.65em}.hero-lead{font-size:13px;max-width:490px}.hero-actions{margin-top:22px;gap:22px}.hero .button{font-size:11px;padding:14px 18px}.hero .button-ghost{padding-inline:0}.hero-foot{margin-top:26px;max-width:none;flex-wrap:nowrap}.hero-foot a{margin-left:auto}.hero-visual{margin-left:20px}.hero-image-wrap{height:430px;min-height:0;border-radius:100px 0 0 0}.house-seal{left:-16px;bottom:35px;width:105px;height:105px}.hero-photo-bottom{left:auto;right:20px;bottom:25px;font-size:9px}.photo-label{font-size:8px;right:16px}.section{padding-block:65px}.two-column{grid-template-columns:1fr;gap:35px}h2{font-size:38px;line-height:1.14}.section-kicker{font-size:9px;letter-spacing:.18em;margin-bottom:18px}.section-intro{font-size:14px}#about .image-card{padding-left:0;margin-right:20px}#about .image-card:before{font-size:110px;right:-19px}.image-card img{aspect-ratio:1.35}.room-main{height:320px}.room-tabs{gap:7px;margin-top:20px}.room-tabs button{padding:8px 13px;font-size:10px}.room-caption{font-size:12px}.gallery{grid-template-columns:repeat(3,1fr);gap:14px 10px;margin-bottom:25px}.gallery button img{aspect-ratio:1.6}.room-enlarge{width:37px;height:37px;right:16px;bottom:16px}.info-grid{gap:12px 22px;margin-top:25px}.info-grid strong{font-size:18px}.info-grid span{font-size:11px}.feature-band{padding-block:65px}.feature-band h2{font-size:36px}.landwehr-gallery{gap:12px;margin-top:30px;grid-template-columns:1fr 1fr}.landwehr-gallery img{height:245px}.landwehr-gallery img:nth-child(2){height:205px}.landwehr-gallery img:nth-child(3){grid-column:span 2;height:200px}.landwehr-note{font-size:22px!important}.feature-band>.container>p:not(.section-kicker){font-size:13px}#umgebung .cards{gap:30px;grid-template-columns:1fr;margin-top:35px}.card:nth-child(even){margin-top:0}.card-body{padding:18px 0}.card h3{font-size:26px}.card p{font-size:13px}.card-images img{height:240px}.price-layout{margin-top:30px;gap:30px}.price-overview>.info-grid{grid-template-columns:1fr 1fr;gap:0 20px}.price-calc{padding:23px 18px}.calc-form{gap:20px 10px}.calc-form input,.calc-form select{padding:11px 7px}.calc-form label{font-size:10px}.calc-form label small{font-size:8px}.house-rules summary{font-size:20px}.calendar-widget{padding:18px 12px}.occupancy-calendar{grid-template-columns:1fr}.calendar-month:nth-child(2){display:none}.calendar-toolbar{gap:10px}.calendar-status{font-size:10px}.preview-calendar-note{font-size:10px}.contact-card{padding-top:0}.map-placeholder{padding:24px}.site-footer{padding-block:25px}.footer-inner{gap:12px;display:flex;flex-wrap:wrap;justify-content:space-between}.footer-inner p{margin:0}.image-dialog{padding:12px}.image-dialog img{max-height:68dvh}#preise>p{font-size:13px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.hero-image{will-change:auto}}
.hero{justify-items:stretch;align-items:stretch}.hero-content{width:100%;max-width:none}.hero-visual{width:100%}.house-fallback{width:72px;height:68px;margin-top:-4px}.house-seal:has(canvas[data-rendered]) .house-fallback{display:none}
.hero-actions>a:nth-child(2){display:inline-flex;order:3}.calendar-day-unknown{background:var(--paper);color:var(--text);outline:1px solid var(--line)}
.price-layout>*{min-width:0}.table-wrap{max-width:100%;overflow-x:auto}table{min-width:0;width:100%}.hero-visual{min-width:0}
@media(min-width:951px){.nav-toggle{display:none}.site-nav{display:flex}}
@media(max-width:950px){.site-header{justify-content:initial}.brand{margin-right:auto}.header-tools{order:1}.nav-toggle{order:2;display:flex;flex-direction:column;gap:5px;padding:8px;width:36px;height:36px;border:0;border-radius:0;background:transparent;box-shadow:none;margin:0}.nav-toggle span:not(.sr-only){width:21px;height:1px;margin:0;display:block;background:var(--ink)}.nav-toggle:hover{background:var(--paper)}.nav-toggle .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.site-nav{display:none;position:absolute;top:100%;left:0;right:0;padding:20px;background:var(--cream);border-bottom:1px solid var(--line);box-shadow:0 15px 20px #14231b12}.site-nav.open{display:flex;flex-direction:column;align-items:stretch;gap:0}.site-nav a{font-size:16px;padding:12px;border-bottom:1px solid var(--line)}}
@media(max-width:760px){.hero-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px 22px;align-items:center}.hero-actions .button-primary{grid-column:span 2;width:100%}.hero-actions .button-ghost{width:auto;margin:0;padding:10px 0;justify-content:center;text-align:center}.hero-visual{width:calc(100% - 20px)}thead th{font-size:9px;padding:11px 7px}tbody th,tbody td{padding:17px 7px;font-size:11px}}
.site-nav a{border-radius:0;box-shadow:none;background:none}.image-dialog img{border-radius:0}
/* Landwehr: identical outer photo frames at every viewport size. */
@media (min-width: 761px) {
  .landwehr-gallery { grid-template-columns: 1fr .8fr 1fr; }
}
.landwehr-gallery img:first-child,
.landwehr-gallery img:nth-child(3) {
  width: 100%; height: auto; aspect-ratio: 6 / 5; object-fit: cover;
}
@media (max-width: 760px) {
  .landwehr-gallery { grid-template-columns: 1fr; }
  .landwehr-gallery img:nth-child(3) { grid-column: auto; }
  .landwehr-gallery img:nth-child(2) { width: 80%; justify-self: center; }
}

/* Mobile contact actions stay outside the animated hero stacking context. */
.mobile-contact-bar { display: none; }
@media (max-width: 760px) {
  html { scroll-padding-bottom: calc(104px + env(safe-area-inset-bottom, 0px)); }
  .has-mobile-contact { padding-bottom: calc(104px + env(safe-area-inset-bottom, 0px)); }
  .hero-actions > a[href^="mailto:"],
  .hero-actions > a[href^="tel:"] { display: none; }
  .hero-actions { display: flex; }
  .mobile-contact-bar {
    position: fixed;
    inset: auto 0 0;
    z-index: 40;
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
    gap: 10px;
    padding: 12px max(16px, env(safe-area-inset-right, 0px)) calc(12px + env(safe-area-inset-bottom, 0px)) max(16px, env(safe-area-inset-left, 0px));
    background: var(--cream);
    border-top: 1px solid var(--line);
  }
  .mobile-contact-bar .button {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 10px 12px;
    font-size: 12px;
    text-align: center;
  }
  .mobile-contact-bar .button-ghost { border: 1px solid var(--line); }
}

/* Typography pass: running text and small labels were set below comfortable reading size. */
#about p:not(.section-kicker) { font-size: 16px; }
.card p { font-size: 15px; }
.info-grid span { font-size: 13px; }
.section-kicker, .eyebrow { font-size: 11px; }
.image-card figcaption { font-size: 11px; }
@media (max-width: 760px) {
  .section-kicker, .eyebrow { font-size: 10px; }
  #about p:not(.section-kicker) { font-size: 15px; }
  .card p { font-size: 14px; }
  .info-grid span { font-size: 12px; }
}

/* Dark mode: running text under the headings in gold; light mode keeps its green text. */
html[data-theme=dark] main :is(p, li, td, address, figcaption, .info-grid span, .card p, .section-intro, .calendar-status, .room-caption span:last-child, .calc-note, .house-rules .prose):not(.feature-band *) {
  color: var(--gold);
}
html[data-theme=dark] .price-calc :is(p, label, small, .calc-result) {
  color: var(--gold);
}

/* Mobile: the fixed bottom contact bar already carries the main request button. */
@media (max-width: 760px) {
  .mobile-hide-cta { display: none !important; }
}

/* Price table header: gold text on the green band (light mode). */
html:not([data-theme=dark]) thead th {
  color: #d8b776;
}

/* About section: house photos cross-fade in place of the single still. */
.photo-slideshow {
  position: relative;
  aspect-ratio: 1.25;
  overflow: hidden;
  background: var(--muted);
}
.photo-slideshow img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  object-fit: cover;
  opacity: 0;
}
.photo-slideshow img.is-active {
  opacity: 1;
}
.photo-slideshow.is-running img {
  transition: opacity 1.6s ease-in-out;
}
@media (max-width: 760px) {
  .photo-slideshow { aspect-ratio: 1.35; }
  #about .image-card { margin: 0; min-width: 0; width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .photo-slideshow img { transition: none !important; }
}

/* Price table header in dark mode: green band with gold text, as in light mode. */
html[data-theme=dark] thead {
  background: #1f5131;
}
html[data-theme=dark] thead th {
  color: #d8b776;
}

/* Metallic green gradient (design tokens from styles.css) on primary buttons and room tabs. */
html:not([data-theme=dark]) .button-primary {
  background: var(--green-shimmer);
  border: var(--green-shimmer-border);
  box-shadow: var(--green-shimmer-shadow);
}
html:not([data-theme=dark]) .button-primary:hover {
  background: var(--green-shimmer-hover);
  border: var(--green-shimmer-border);
}
.room-tabs button {
  background: var(--green-shimmer);
  border: var(--green-shimmer-border);
  box-shadow: var(--green-shimmer-shadow);
  color: #d8b776;
}
.room-tabs button:hover,
.room-tabs button[aria-selected=true] {
  background: var(--green-shimmer-hover);
  border: var(--green-shimmer-border);
  color: #d8b776;
}

/* Primary buttons: gold text on the green button (light mode). */
html:not([data-theme=dark]) .button-primary,
html:not([data-theme=dark]) .button-primary:hover {
  color: #d8b776;
}

/* Price calculator request button: metallic gold with green text (both modes). */
html body .calc-request.button-primary,
html[data-theme=dark] body .calc-request.button-primary {
  background: linear-gradient(135deg, #f3dc9a 0%, #d8b776 30%, #b8914a 55%, #e6c97f 78%, #c9a25a 100%);
  border: 1px solid rgba(23, 62, 37, 0.35);
  box-shadow: inset 0 1px 2px rgba(255, 255, 255, 0.45), 0 2px 5px rgba(23, 62, 37, 0.18);
  color: #173e25;
}
html body .calc-request.button-primary:hover,
html[data-theme=dark] body .calc-request.button-primary:hover {
  background: linear-gradient(135deg, #f8e6b0 0%, #e6c97f 35%, #c9a25a 55%, #f0d78f 78%, #d8b776 100%);
  border: 1px solid rgba(23, 62, 37, 0.35);
  color: #173e25;
}

/* Green fields: all text gold. The Landwehr band and footer are dark green in both modes. */
.feature-band :is(p, .landwehr-note),
.site-footer,
.site-footer a {
  color: #d8b776;
}
/* Band heading keeps the heading colour of the other headings (cream on the dark band). */
.feature-band h2 {
  color: #faf7ef;
}

/* Contact links: green text, gold on hover (the card itself is transparent in this layout). */
html .contact-card > a:not(.button) {
  color: var(--green);
}
html .contact-card > a:not(.button):hover {
  color: var(--gold);
}

/* Price calculator request button: square and sized like the other buttons. */
html body .calc-request.button-primary {
  border-radius: 0;
  font-size: 12px;
  font-weight: 500;
  color: #173e25;
}


/* Web Interface Guidelines: contrast, readable controls and stable dialog layout. */
:root {
  --green-shimmer: linear-gradient(135deg, #245335, #173e25 32%, #204b2f 52%, #12351f 75%, #225032);
  --green-shimmer-hover: linear-gradient(135deg, #245234, #1f5131 35%, #255335 55%, #173e25 78%, #245234);
}
h1, h2, h3 { text-wrap: balance; }
a, button, input, select, summary { touch-action: manipulation; -webkit-tap-highlight-color: #b18b4340; }
.image-dialog { overscroll-behavior: contain; }
.image-dialog img { width: min(1000px, 82vw); height: min(61.5vw, 65dvh); object-fit: contain; }
.calc-form label { font-size: 14px; }
.calc-form label small { font-size: 12px; margin-top: 0; }
.calc-form input, .calc-form select { font-size: 16px; }
.calc-form label .field-error { color: #8b3028; font-size: 13px; line-height: 1.5; }
.field-error:empty { display: none; }
html[data-theme=dark] .calc-form label .field-error { color: #ffc3b5; }
.calc-form [aria-invalid=true] { border: 2px solid #8b3028; }
html[data-theme=dark] .calc-form [aria-invalid=true] { border-color: #ffc3b5; }
.calc-items dd, .calc-total, td, #room-count { font-variant-numeric: tabular-nums; }
.calendar-status, .calendar-legend, .calendar-link, .preview-calendar-note { font-size: 13px; }
.calendar-key-unknown { background: var(--paper); border: 1px solid var(--line); }
.slideshow-controls { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.slideshow-controls .button, .calendar-retry { background: var(--cream); color: var(--ink); border: 1px solid var(--line); padding: 10px 14px; }
.slideshow-controls .button:hover, .calendar-retry:hover { border-color: var(--ink); }
.slideshow-controls .button:disabled { opacity: .7; cursor: default; }
.room-tabs button[aria-selected=true] { text-decoration: underline; text-underline-offset: 5px; }
@media (max-width: 950px) { .calendar-month:last-child { display: block; } }
@media (max-width: 760px) {
  .calendar-month:nth-child(2) { display: block; }
  .calc-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .calc-form label, .calc-form label:nth-child(-n+2) { grid-column: auto; }
  .calc-form label:last-child { grid-column: 1 / -1; }
  .slideshow-controls .button { flex: 1 1 140px; }
}

.calc-form label { min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 480px) {
  .calc-form label:nth-child(-n+2) { grid-column: 1 / -1; }
}

/* Keep the SVG seal centered while WebGL is deferred or reduced motion is active. */
#house-scene:not([data-rendered]) { display: none; }

/* Calendar days and legend share the same saturated metallic finishes. */
.calendar-weekdays span { color: var(--text); }
.calendar-widget {
  --calendar-free-metal: linear-gradient(135deg, #e6f2dd 0%, #91b887 30%, #d9eacb 48%, #edf6e4 52%, #729b68 76%, #a9c99e 100%);
  --calendar-occupied-metal: linear-gradient(135deg, #fbd0c8 0%, #d16a60 30%, #f4b0a6 48%, #f9c6bc 52%, #cc645a 76%, #e68b7e 100%);
  --calendar-today-metal: linear-gradient(135deg, #fff6bd 0%, #d5a126 30%, #fff0a0 48%, #fff6c7 52%, #a96f08 76%, #ebc855 100%);
}
.calendar-day, .calendar-key-free {
  background: var(--calendar-free-metal);
  border-color: #587b4d;
  color: #162b17;
}
.calendar-day {
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  box-shadow: inset 0 1px 1px #ffffffb3, inset 0 -1px 2px #294e2533, 0 1px 2px #152d181a;
}
.calendar-day-occupied, .calendar-key-occupied {
  background: var(--calendar-occupied-metal);
  border-color: #a54339;
  color: #30100b;
}
.calendar-day-today:not(.calendar-day-occupied):not(.calendar-day-unknown), .calendar-key-today {
  background: var(--calendar-today-metal);
  border-color: #936205;
  color: #140d00;
}
.calendar-day-today { outline: 2px solid var(--gold-text); outline-offset: 2px; }
.calendar-key-free, .calendar-key-occupied, .calendar-key-today {
  box-shadow: inset 0 1px 1px #ffffffb3, inset 0 -1px 1px #00000026;
}
.calendar-day-unknown {
  background: var(--paper);
  color: var(--text);
  border-color: var(--line);
  box-shadow: none;
}
.calendar-day-empty { background: transparent; border-color: transparent; box-shadow: none; }

/* Keep the house and its caption inside the round seal at every screen size. */
.house-seal { gap: 4px; }
.house-seal canvas, .house-seal .house-fallback {
  width: 88px; height: 70px; flex: none; margin: 0;
}
.house-seal > span {
  flex: none; width: calc(100% - 20px); margin: 0;
  font-size: 11.5px; line-height: 1.25; text-align: center;
}
@media (max-width: 950px) {
  .house-seal canvas, .house-seal .house-fallback { width: 70px; height: 56px; }
  .house-seal > span { font-size: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .house-seal canvas[data-rendered] { display: none; }
  .house-seal:has(canvas[data-rendered]) .house-fallback { display: block; }
}
