:root,:root[data-theme="dark"]{color-scheme:light;--bg:#f5f8fc;--surface:#fff;--ink:#172b45;--muted:#52647b;--rule:#d8e2ef;--sign:#0b55b5;--link:#0b55b5;--ok:#0b55b5;--err:#a32020;--display:Arial,Helvetica,sans-serif;--body:Arial,Helvetica,sans-serif}
html{scroll-behavior:smooth;scroll-padding-top:90px}body{font-size:16px;line-height:1.65}.wrap{max-width:1180px;padding-inline:28px}.top{background:rgba(245,248,252,.97)}.top .wrap{padding-block:17px}.brand span{font-size:1rem;max-width:180px;line-height:1.3}.psign{border-radius:8px;background:var(--sign);width:40px;height:40px;line-height:40px}.btn{border-radius:8px;padding:15px 22px;font-size:1rem;letter-spacing:0;white-space:normal;line-height:1.35}.btn.small{padding:12px 16px}.btn:disabled{opacity:.6;cursor:wait}.hero{padding-block:64px}.hero .wrap{grid-template-columns:1fr 1.05fr;align-items:center;gap:48px}.hero-text{gap:23px}h1{font-size:clamp(2.2rem,4.3vw,3.5rem);font-weight:700;line-height:1.07;letter-spacing:-.055em}h2{font-size:clamp(1.75rem,3vw,2.45rem);letter-spacing:-.04em;line-height:1.16}h3{font-size:1.1rem;line-height:1.35}.eyebrow{font-size:.73rem;letter-spacing:.14em;color:var(--link)}.lead{font-size:1.08rem;color:var(--muted)}.price b{font-size:2.4rem;letter-spacing:-.05em}.price span{font-size:1rem}.cta-row{gap:18px}.avail{font-size:.84rem}.hero-photo{margin:0;position:relative}.hero-photo img{display:block;width:100%;height:460px;object-fit:cover;border-radius:18px}.hero-photo figcaption{position:absolute;bottom:20px;left:20px;right:20px;background:rgba(255,255,255,.93);padding:14px 18px;border-radius:8px;font-size:.9rem}.sec-head{gap:14px;margin-bottom:32px}section{padding-block:64px}.facts{border-top:0;gap:0 28px}.facts div{padding-block:22px}.facts dt{font-size:.72rem;letter-spacing:.08em}.facts dd{font-size:1rem}.photos{gap:20px}.photo{border-radius:12px}.plan-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:50px;align-items:center}.plan-layout .sec-head{margin:0}.plan-img{background:#fff}.plan-fig figcaption{font-size:.8rem}.steps{gap:42px}.steps li::before{color:var(--sign);background:#e1edfc;outline:0;border:0;border-radius:50%;width:46px;height:46px;font-size:1.15rem;margin-bottom:9px}.steps p,.loc li,.faq p{color:var(--muted)}#anfrage{background:#eaf2fc}#anfrage>.wrap{display:grid;grid-template-columns:.75fr 1.25fr;gap:50px;align-items:start}.form-card{border:1px solid #cfdff2;border-radius:16px;padding:30px}.form-card input,.form-card textarea{background:#fff;border-color:#b8cbe1;border-radius:7px;min-height:46px}.form-card input[type="radio"],.form-card input[type="checkbox"]{min-height:20px;width:20px;accent-color:var(--sign)}.privacy-note{font-size:.8rem;color:var(--muted)}.result{border:0;margin:0;padding:0}.result:focus{outline:none}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.faq{gap:30px 60px}.faq>div{padding-bottom:24px;border-bottom:1px solid var(--rule)}footer{font-size:.85rem}.skip{position:absolute;top:-100px;left:16px;background:#fff;padding:10px;z-index:20}.skip:focus{top:12px}
@media(max-width:900px){.hero .wrap{gap:25px}.hero-photo img{height:430px}#anfrage>.wrap{grid-template-columns:1fr;gap:20px}.form-card{max-width:none}.plan-layout{gap:28px}}
@media(max-width:760px){.wrap{padding-inline:20px}.hero{padding-block:34px 40px}.hero .wrap,.plan-layout{grid-template-columns:1fr}.hero-photo img{height:auto;aspect-ratio:4/3}.hero-photo{margin-top:7px}.top .wrap{padding-block:12px}.brand span{max-width:150px;font-size:.84rem}.btn.small{font-size:.82rem;padding:10px 12px}section{padding-block:40px}.photos{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.photo{border-radius:6px}.facts{gap:0 18px}.facts div{padding-block:17px}.form-card{padding:22px}.steps{gap:28px}.plan-layout .sec-head{margin-bottom:8px}.faq{gap:24px}.loc{gap:20px}.hero-photo figcaption{bottom:14px;left:14px;right:14px;padding:10px 13px}.facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:360px){.wrap{padding-inline:14px}.brand{gap:6px}.psign{width:30px;height:34px;line-height:34px}.brand span{max-width:120px}.facts{grid-template-columns:1fr}.form-card{padding:16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Parkplatzplan: modaler Dialog mit sichtbarem Schliessen-Knopf. */
.plan-open{display:block;width:100%;padding:0;background:transparent;border:0;border-radius:10px;cursor:zoom-in}.plan-caption{padding:4px;background:none;border:0;color:var(--link);font:inherit;text-decoration:underline;cursor:pointer}.plan-dialog{box-sizing:border-box;width:min(1200px,96vw);max-width:96vw;max-height:94vh;max-height:94dvh;padding:0;border:0;border-radius:14px;background:#fff;color:var(--ink);box-shadow:0 24px 90px #00153366}.plan-dialog::backdrop{background:rgba(9,26,50,.78)}.plan-dialog-head{position:sticky;top:0;z-index:1;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 18px;background:#fff;border-bottom:1px solid var(--rule)}.plan-dialog-head h2{font-size:1.2rem;letter-spacing:0}.plan-close{flex:none;width:46px;height:46px;border:1px solid var(--rule);border-radius:50%;background:#eaf2fc;color:#0b55b5;font-size:32px;line-height:1;cursor:pointer}.plan-close:hover{background:#d6e7fc}.plan-dialog-image{padding:12px}.plan-dialog-image img{display:block;width:100%;height:auto}.maps-link{display:inline-flex;align-items:center;gap:5px;vertical-align:middle;white-space:nowrap}.footer-address{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.footer-address .maps-link{margin-left:5px}

/* Aufklappbare Fragen: auch ohne JavaScript per Tastatur bedienbar. */
.faq{grid-template-columns:minmax(0,1fr);gap:12px;max-width:900px}
.faq details{min-width:0;background:var(--surface);border:1px solid var(--rule);border-radius:12px;overflow:hidden}
.faq summary{position:relative;list-style:none;cursor:pointer;padding:20px 58px 20px 22px;font-weight:600;line-height:1.45;color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:22px;top:18px;font-size:1.5rem;line-height:1.2;color:var(--sign);font-weight:400}
.faq details[open] summary::after{content:"−"}
.faq summary:hover{background:#eaf2fc}
.faq summary:focus-visible{outline:3px solid var(--sign);outline-offset:-3px;border-radius:10px}
.faq details>p{padding:0 22px 22px;margin:0}
@media(max-width:760px){.faq summary{padding:18px 48px 18px 18px}.faq summary::after{right:18px;top:16px}.faq details>p{padding:0 18px 18px}}

/* Freiwillige Vertragsangaben: standardmässig eingeklappt. */
.optional-details{grid-column:1/-1;min-width:0;background:#eaf2fc;border-radius:10px}
.optional-details summary{position:relative;list-style:none;cursor:pointer;padding:20px}
.optional-details summary::-webkit-details-marker{display:none}
.optional-title{display:block;padding-right:32px;font-size:1.05rem;font-weight:700;line-height:1.4}
.optional-hint{display:block;margin-top:6px;color:var(--muted);font-size:.9rem;line-height:1.55}
.optional-details summary::after{content:"";position:absolute;right:23px;top:25px;width:12px;height:12px;border-right:3px solid var(--sign);border-bottom:3px solid var(--sign);transform:rotate(45deg)}
.optional-details[open] summary::after{transform:rotate(225deg);top:31px}
.optional-details summary:focus-visible{outline:3px solid var(--sign);outline-offset:2px;border-radius:10px}
.optional-fields{padding:0 20px 20px;display:grid;gap:18px}
.optional-row{display:grid;gap:16px;min-width:0}
.vehicle-row{grid-template-columns:repeat(2,minmax(0,1fr))}
.street-row{grid-template-columns:minmax(0,3fr) minmax(70px,1fr)}
.town-row{grid-template-columns:minmax(70px,1fr) minmax(0,3fr)}
@media(max-width:540px){.vehicle-row{grid-template-columns:minmax(0,1fr)}.optional-details summary{padding:16px}.optional-fields{padding:0 16px 16px}.optional-details summary::after{right:19px;top:21px}.optional-details[open] summary::after{top:27px}}

.field-hint{font-size:.8rem;line-height:1.5;color:var(--muted);font-weight:400}
.address-lookup{position:relative;min-width:0}
.address-options{list-style:none;margin:0;padding:4px;background:#fff;border:1px solid #b8cbe1;border-radius:7px;max-height:240px;overflow:auto}
.address-options[hidden]{display:none}
.address-options li{padding:10px 12px;border-radius:4px;cursor:pointer;line-height:1.4;overflow-wrap:anywhere}
.address-options li:hover,.address-options li[aria-selected="true"]{background:#dceafb;color:#123e75}
#address-status:empty{display:none}
