html{scrollbar-gutter:stable;overflow-y:scroll}body{width:100%;min-width:0}.public-site{overflow-x:hidden}.nav-actions nav{display:flex;align-items:center;gap:6px;flex-wrap:nowrap}.nav-group{position:relative;display:flex;align-items:center}.nav-group-toggle{min-height:44px;border:0;background:transparent;color:var(--page-text);padding:.65rem .8rem;font:800 .92rem/1 system-ui;display:flex;align-items:center;gap:.35rem;border-radius:10px}.nav-group-menu{display:none;position:absolute;top:100%;left:0;margin-top:6px;min-width:220px;padding:8px;background:var(--page-surface);border:1px solid var(--page-border);border-radius:14px;box-shadow:0 16px 40px var(--page-shadow);z-index:20}.nav-group.is-open .nav-group-menu{display:grid}.nav-group.is-open::after{content:"";position:absolute;left:0;right:0;top:100%;height:8px;z-index:19}.nav-group-menu .nav-link{white-space:nowrap}.news-grid.cols-1{grid-template-columns:1fr}.news-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.news-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.news-grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.public-gallery.gallery-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.public-gallery.gallery-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.public-gallery.gallery-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.embedded-widget{margin-block:28px}.widget-search{display:flex;gap:10px;margin:0 0 18px}.widget-search label{flex:1}.widget-search input{width:100%;min-height:46px;border:1px solid var(--page-border);border-radius:12px;padding:10px 13px;background:var(--page-surface);color:var(--page-text)}.widget-pagination{display:flex;justify-content:center;align-items:center;gap:18px;margin-top:18px}.widget-pagination a{font-weight:800}
:root{--op-primary:#b52e36;--op-accent:#de8a20;--op-dark:#30343a;--op-bg:#f5f5f3;--op-surface:#fff;--op-text:#2c3136;--op-muted:#66717a;--op-link:#9f202b;--op-content:1180px;--op-radius:4px;--op-shadow:1;--page-bg:var(--op-bg);--page-surface:var(--op-surface);--page-text:var(--op-text);--page-muted:var(--op-muted);--page-dark:var(--op-dark);--page-border:#d8dadb;--page-shadow:rgba(24,30,36,.08);color-scheme:light dark}
html{scroll-behavior:smooth;scroll-padding-top:118px;font-size:var(--op-font-scale-md,100%)}html[data-font-size="xs"]{font-size:var(--op-font-scale-xs,80%)}html[data-font-size="sm"]{font-size:var(--op-font-scale-sm,90%)}html[data-font-size="md"]{font-size:var(--op-font-scale-md,100%)}html[data-font-size="lg"]{font-size:var(--op-font-scale-lg,112%)}html[data-font-size="xl"]{font-size:var(--op-font-scale-xl,125%)}html[data-theme="dark"]{--page-bg:#16191c;--page-surface:#22272b;--page-text:#f1f3f4;--page-muted:#bdc5ca;--page-dark:#f4f6f7;--page-border:#3a4248;--page-shadow:rgba(0,0,0,.32);color-scheme:dark}
*{box-sizing:border-box}body{margin:0;font:1rem/1.65 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--page-bg);color:var(--page-text);min-height:100dvh}a{color:var(--op-link)}html[data-theme="dark"] a{color:#ff9aa2}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--op-accent);outline-offset:3px}.skip{position:fixed;left:-9999px;top:8px;z-index:10000;background:#fff;color:#111;padding:12px 16px}.skip:focus{left:8px}.site-header{position:sticky;top:0;z-index:100;background:color-mix(in srgb,var(--page-surface) 94%,transparent);border-bottom:1px solid var(--page-border);backdrop-filter:blur(12px)}.top-line{height:7px;background:linear-gradient(90deg,var(--op-primary) 0 76%,var(--op-accent) 76% 100%)}.nav-wrap{max-width:var(--op-content);min-height:86px;margin:auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:14px;color:var(--page-dark);font-size:clamp(1.05rem,2vw,1.35rem);font-weight:750;text-decoration:none}.brand-mark{display:grid;place-items:center;width:50px;height:50px;background:var(--op-primary);color:white;font-size:1.55rem;font-weight:800;flex:0 0 auto}.nav-actions{display:flex;align-items:center;gap:12px}.nav-link{display:flex;align-items:center;min-height:52px;padding:0 14px;text-decoration:none;color:var(--page-dark);font-weight:700;border-bottom:4px solid transparent}.nav-link.active,.nav-link:hover{color:var(--op-primary);border-bottom-color:var(--op-primary)}.accessibility-controls{display:flex;align-items:center;gap:8px}.font-controls{display:flex;align-items:stretch;border:1px solid var(--page-border);background:var(--page-surface)}.font-controls button,.theme-toggle{min-width:42px;min-height:42px;border:0;background:var(--page-surface);color:var(--page-text);font:700 .9rem/1 system-ui;cursor:pointer}.font-controls button+button{border-left:1px solid var(--page-border)}.font-controls button[aria-pressed="true"]{background:var(--page-text);color:var(--page-surface)}.theme-toggle{border:1px solid var(--page-border);font-size:1.15rem}.hero{min-height:clamp(360px,48vw,610px);display:grid;align-items:end;background:linear-gradient(120deg,rgba(48,52,58,.92),rgba(181,46,54,.88)),linear-gradient(45deg,var(--op-dark),var(--op-primary));position:relative;overflow:hidden}.hero:after{content:"";position:absolute;right:-12vw;top:-30%;width:58vw;height:58vw;border:1px solid #ffffff26;border-radius:50%;box-shadow:0 0 0 70px #ffffff09,0 0 0 140px #ffffff08}.hero-inner{position:relative;z-index:1;width:min(var(--op-content),100%);margin:0 auto;padding:clamp(48px,7vw,92px) 24px;color:#fff}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.78rem;font-weight:800;margin:0 0 8px;color:#fff}.hero h1{font-size:clamp(3rem,9vw,7.4rem);line-height:.92;letter-spacing:-.055em;margin:0;max-width:11ch}.hero-sub{font-size:clamp(1.15rem,2.3vw,1.75rem);margin:18px 0 0;max-width:38rem;color:#fff}.content-wrap{max-width:var(--op-content);margin:auto;padding:70px 24px 90px}.section-head{display:flex;align-items:center;gap:12px;margin-bottom:18px;text-transform:uppercase;font-size:.78rem;letter-spacing:.14em;font-weight:800;color:var(--op-primary)}.section-head span{width:42px;height:4px;background:var(--op-primary)}.section-head p{margin:0}.intro-card{background:var(--page-surface);border-top:5px solid var(--op-primary);padding:clamp(28px,5vw,56px);box-shadow:0 16px 40px var(--page-shadow)}.intro-card h2{font-size:clamp(2rem,4vw,3.2rem);line-height:1.1;margin:0 0 20px}.intro-card p{max-width:70ch;color:var(--page-text)}.site-footer{background:#30343a;color:#fff}.site-footer>div{max-width:var(--op-content);margin:auto;padding:38px 24px calc(38px + env(safe-area-inset-bottom));display:flex;justify-content:space-between;gap:24px;align-items:center}.site-footer span{color:#d8dcdf;font-size:.9rem}.back-to-top{position:fixed;right:max(18px,env(safe-area-inset-right));bottom:max(18px,calc(env(safe-area-inset-bottom) + 18px));z-index:120;width:50px;height:50px;border:0;border-radius:50%;background:var(--op-primary);color:#fff;font:800 1.35rem/1 system-ui;box-shadow:0 9px 28px rgba(0,0,0,.24);cursor:pointer;opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .18s ease,transform .18s ease,visibility .18s}.back-to-top.is-visible{opacity:1;visibility:visible;transform:none}
@media(max-width:860px){.nav-wrap{align-items:flex-start;padding-block:12px;flex-wrap:wrap}.nav-actions{width:100%;justify-content:space-between;gap:10px}.accessibility-controls{margin-left:auto}}
@media(max-width:700px){html{scroll-padding-top:150px}.nav-wrap{min-height:76px;padding-inline:18px}.brand span:last-child{max-width:220px}.brand-mark{width:44px;height:44px}.nav-link{padding-inline:8px}.content-wrap{padding:46px 18px 64px}.site-footer>div{flex-direction:column;align-items:flex-start}.hero-inner{padding-inline:18px}.font-controls button,.theme-toggle{min-width:44px;min-height:44px}}
@media(max-width:480px){.brand span:last-child{font-size:.95rem}.nav-actions{align-items:flex-end}.nav-link{font-size:.9rem}.hero{min-height:420px}.accessibility-controls{gap:5px}.font-controls button,.theme-toggle{min-width:42px;padding:0 8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.back-to-top{transition:none}}

/* Configurable hero */
.hero{position:relative;overflow:hidden}.hero-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}.hero-overlay{position:absolute;inset:0;background:#000;opacity:var(--hero-overlay,.35);z-index:1;pointer-events:none}.hero .hero-inner{position:relative;z-index:2}.hero-align-center .hero-inner{text-align:center;margin-inline:auto}.hero-align-right .hero-inner{text-align:right;margin-left:auto}.hero-height-compact{min-height:280px}.hero-height-medium{min-height:420px}.hero-height-large{min-height:580px}.hero-style-minimal .hero-background,.hero-style-minimal .hero-overlay{display:none}.hero-style-split .hero-inner{max-width:min(56%,760px)}
@media(max-width:760px){.hero-height-large{min-height:460px}.hero-style-split .hero-inner{max-width:100%}}

/* 0.2.5 content modules */
.portal-module{padding-top:clamp(46px,6vw,82px);padding-bottom:clamp(46px,6vw,82px)}
.module-heading{display:grid;gap:5px;margin-bottom:24px}.module-heading>span{color:var(--op-primary);font-size:.78rem;font-weight:850;letter-spacing:.15em;text-transform:uppercase}.module-heading h2{margin:0;font-size:clamp(2rem,4vw,3.1rem);line-height:1.05}
.news-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.news-card{overflow:hidden;border:1px solid var(--page-border);border-radius:18px;background:var(--page-surface);box-shadow:0 14px 38px var(--page-shadow)}.news-media{display:block}.news-media img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}.news-card-body{display:grid;gap:10px;padding:20px}.news-card-body time{font-size:.78rem;font-weight:800;color:var(--op-primary);letter-spacing:.07em}.news-card h3{margin:0;font-size:1.25rem;line-height:1.2}.news-card h3 a{color:var(--page-text);text-decoration:none}.news-card p{margin:0;color:var(--page-muted)}.text-link{font-weight:800;text-decoration:none}
.calendar-list{display:grid;gap:12px}.calendar-card{display:grid;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:18px;padding:17px 19px;border:1px solid var(--page-border);border-radius:16px;background:var(--page-surface);color:var(--page-text);text-decoration:none;box-shadow:0 8px 26px var(--page-shadow)}.calendar-card:hover{border-color:var(--op-primary)}.calendar-date{display:grid;place-items:center;min-height:64px;border-radius:12px;background:color-mix(in srgb,var(--op-primary) 10%,var(--page-bg));color:var(--op-primary)}.calendar-date strong{font-size:1.6rem;line-height:1}.calendar-date small{font-weight:800}.calendar-copy{display:grid;gap:3px}.calendar-copy>strong{font-size:1.08rem}.calendar-copy>small{color:var(--page-muted)}.calendar-copy>span{color:var(--page-muted)}
.public-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.public-gallery figure{margin:0;overflow:hidden;border-radius:16px;background:var(--page-surface);border:1px solid var(--page-border)}.public-gallery img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.public-gallery figcaption{padding:10px 12px;font-size:.9rem}.empty-public{grid-column:1/-1;padding:22px;border:1px dashed var(--page-border);border-radius:14px;color:var(--page-muted)}
.image-block{margin:0}.image-block img{display:block;max-width:100%;height:auto;border-radius:18px}.image-block figcaption{margin-top:8px;color:var(--page-muted)}
@media(max-width:900px){.news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.public-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.news-grid,.public-gallery{grid-template-columns:1fr}.calendar-card{grid-template-columns:62px minmax(0,1fr);gap:12px;padding:14px}.calendar-card>span:last-child{display:none}.calendar-copy>span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}}
.rental-public-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(22px,4vw,48px)}.rental-dates{list-style:none;padding:0;margin:0;display:grid;gap:8px}.rental-dates li{display:flex;justify-content:space-between;gap:18px;padding:12px 0;border-bottom:1px solid var(--border)}@media(max-width:720px){.rental-public-grid{grid-template-columns:1fr}.rental-dates li{display:grid;gap:3px}}

/* 0.2.6 rental inquiry */
.rental-public{scroll-margin-top:120px}.rental-public-grid{align-items:start}.rental-prices{display:grid;gap:8px;margin:18px 0;padding:0;list-style:none}.rental-prices li{display:flex;justify-content:space-between;gap:20px;padding:10px 0;border-bottom:1px solid var(--page-border)}.rental-price-total{display:flex;justify-content:space-between;gap:20px;padding:14px 0;border-top:2px solid var(--page-text);font-size:1.08rem}.rental-disclaimer{padding:14px 16px;border-left:4px solid var(--op-primary);background:color-mix(in srgb,var(--op-primary) 7%,var(--page-surface));border-radius:0 12px 12px 0}.rental-calendar-card{border:1px solid var(--page-border);border-radius:20px;background:var(--page-surface);padding:clamp(16px,3vw,24px);box-shadow:0 14px 38px var(--page-shadow)}.rental-calendar-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.rental-calendar-head h3{margin:0;font-size:clamp(1.15rem,3vw,1.45rem)}.rental-month-link{display:grid;place-items:center;min-width:44px;min-height:44px;border:1px solid var(--page-border);border-radius:12px;text-decoration:none;color:var(--page-text);font-weight:900}.rental-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.rental-weekday{padding:6px;text-align:center;color:var(--page-muted);font-size:.78rem;font-weight:800}.rental-day{aspect-ratio:1/1;min-width:0;display:grid;place-items:center;border:1px solid var(--page-border);border-radius:10px;background:var(--page-bg);font-weight:800;text-decoration:none;color:var(--page-text)}.rental-day.free:hover,.rental-day.free:focus-visible{border-color:var(--op-primary);background:color-mix(in srgb,var(--op-primary) 10%,var(--page-surface));color:var(--op-primary)}.rental-day.busy{background:color-mix(in srgb,var(--page-muted) 13%,var(--page-surface));color:var(--page-muted);text-decoration:line-through}.rental-day.empty{visibility:hidden}.rental-legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:14px;color:var(--page-muted);font-size:.85rem}.rental-inquiry{max-width:900px;margin-inline:auto}.rental-inquiry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.rental-inquiry-grid .span-2{grid-column:1/-1}.rental-inquiry label{display:grid;gap:7px;font-weight:750}.rental-inquiry input,.rental-inquiry textarea{width:100%;min-height:48px;padding:12px 14px;border:1px solid var(--page-border);border-radius:12px;background:var(--page-surface);color:var(--page-text);font:inherit}.rental-inquiry textarea{min-height:150px;resize:vertical}.rental-agree{display:flex!important;grid-column:1/-1;align-items:flex-start;gap:10px;font-weight:600!important}.rental-agree input{width:20px;min-height:20px;flex:0 0 auto;margin-top:3px}.rental-summary{display:grid;gap:10px;padding:18px;border:1px solid var(--page-border);border-radius:16px;background:var(--page-surface);margin-bottom:22px}.rental-summary strong{font-size:1.1rem}.rental-success{padding:24px;border:1px solid var(--page-border);border-radius:18px;background:var(--page-surface)}
@media(max-width:720px){.rental-inquiry-grid{grid-template-columns:1fr}.rental-inquiry-grid .span-2{grid-column:auto}.rental-calendar{gap:4px}.rental-day{font-size:.82rem;border-radius:8px}.rental-weekday{font-size:.68rem;padding-inline:0}.rental-prices li,.rental-price-total{gap:10px}}
.rental-intro{display:grid;grid-template-columns:minmax(0,.8fr) minmax(360px,1.2fr);gap:clamp(24px,4vw,48px);align-items:start}.rental-price-card{margin-top:22px;padding:18px;border:1px solid var(--page-border);border-radius:16px;background:var(--page-surface)}.rental-price-card h3{margin-top:0}.rental-price-card ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}.rental-price-card li,.rental-total{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--page-border)}.rental-total{border-top:2px solid var(--page-text);border-bottom:0;margin-top:10px}.rental-price-card small{display:block;color:var(--page-muted);margin-top:10px}.rental-calendar-wrap{border:1px solid var(--page-border);border-radius:20px;background:var(--page-surface);padding:clamp(15px,2.5vw,22px);box-shadow:0 14px 38px var(--page-shadow)}.calendar-month-nav{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:10px}.calendar-month-nav h3{margin:0;text-align:center}.calendar-month-nav a{display:grid;place-items:center;min-height:44px;border:1px solid var(--page-border);border-radius:12px;text-decoration:none;color:var(--page-text);font-weight:900}.rental-calendar-head>p{color:var(--page-muted);font-size:.86rem}.legend-free{color:var(--op-primary);font-weight:800}.legend-busy{color:var(--page-muted);font-weight:800}.rental-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.cal-week{text-align:center;padding:5px 0;font-size:.75rem;color:var(--page-muted);font-weight:800}.cal-empty{aspect-ratio:1/1}.cal-day{display:grid;place-items:center;align-content:center;gap:1px;aspect-ratio:1/1;min-width:0;border:1px solid var(--page-border);border-radius:10px;color:var(--page-text);text-decoration:none;font-weight:850;background:var(--page-bg)}.cal-day small{font-size:.6rem;font-weight:700}.cal-day.is-free:hover,.cal-day.is-free:focus-visible{border-color:var(--op-primary);background:color-mix(in srgb,var(--op-primary) 9%,var(--page-surface));color:var(--op-primary)}.cal-day.is-busy{background:color-mix(in srgb,var(--page-muted) 12%,var(--page-surface));color:var(--page-muted)}.cal-day.is-event-busy{background:var(--rental-event-bg,#fff3f4);border-color:var(--rental-event-border,#d66b73);color:var(--rental-event-date,#20262d)}.cal-day.is-event-busy small{color:var(--rental-event-text,#9f2631);font-weight:var(--rental-event-weight,500)}.cal-day.is-past{opacity:.45}.rental-inquiry-form{display:grid;gap:16px}.rental-inquiry-form .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.rental-inquiry-form label{display:grid;gap:6px;font-weight:750}.rental-inquiry-form input,.rental-inquiry-form textarea{width:100%;min-height:48px;padding:12px 14px;border:1px solid var(--page-border);border-radius:12px;background:var(--page-surface);color:var(--page-text);font:inherit}.rental-inquiry-form textarea{min-height:150px;resize:vertical}.rental-inquiry-form .wide{grid-column:1/-1}.rental-inquiry-form .check{display:flex;align-items:flex-start;gap:10px}.rental-inquiry-form .check input{width:20px;min-height:20px;flex:0 0 auto;margin-top:3px}
@media(max-width:780px){.rental-intro{grid-template-columns:1fr}.rental-calendar{gap:4px}.cal-day{border-radius:8px;font-size:.82rem}.cal-week{font-size:.66rem}.rental-inquiry-form .form-grid{grid-template-columns:1fr}.rental-inquiry-form .wide{grid-column:auto}}
.inquiry-layout{display:grid;grid-template-columns:minmax(280px,.75fr) minmax(0,1.25fr);gap:clamp(22px,4vw,48px);align-items:start}.inquiry-summary{padding:20px;border:1px solid var(--page-border);border-radius:18px;background:var(--page-surface)}.inquiry-summary h3{margin-top:0}.inquiry-summary ul{list-style:none;margin:0;padding:0}.inquiry-summary li{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--page-border)}.notice-card{margin-top:16px;padding:14px 16px;border-left:4px solid var(--op-primary);border-radius:0 12px 12px 0;background:color-mix(in srgb,var(--op-primary) 7%,var(--page-bg))}.notice-card p{margin:.3rem 0 0}.inquiry-form{display:grid;gap:14px}.inquiry-form label{display:grid;gap:6px;font-weight:750}.inquiry-form input,.inquiry-form textarea{width:100%;min-height:48px;padding:12px 14px;border:1px solid var(--page-border);border-radius:12px;background:var(--page-surface);color:var(--page-text);font:inherit}.inquiry-form textarea{min-height:150px;resize:vertical}.inquiry-form .check{display:flex;align-items:flex-start;gap:10px;font-weight:600}.inquiry-form .check input{width:20px;min-height:20px;flex:0 0 auto;margin-top:3px}.hp-field{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
@media(max-width:760px){.inquiry-layout{grid-template-columns:1fr}.inquiry-summary li{gap:8px}}

/* 0.2.9 hardening */
.back-to-top{right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));min-width:48px;min-height:48px;touch-action:manipulation}.public-site img{max-width:100%;height:auto} @media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* 0.3.0 navigation, context and public control polish */
.public-site .button{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:48px;padding:11px 18px;border:1px solid var(--page-border);border-radius:12px;background:var(--page-surface);color:var(--page-text);font:750 1rem/1.2 system-ui;text-decoration:none;cursor:pointer;box-shadow:0 6px 18px var(--page-shadow);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.public-site .button:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--op-primary) 55%,var(--page-border));box-shadow:0 10px 24px var(--page-shadow)}.public-site .button.primary{border-color:var(--op-primary);background:var(--op-primary);color:#fff}.inquiry-form>.button.primary{justify-self:start;min-width:min(100%,280px)}
.public-context{background:color-mix(in srgb,var(--page-surface) 86%,var(--page-bg));border-bottom:1px solid var(--page-border)}.public-context>div{max-width:var(--op-content);margin:auto;padding:10px 24px;display:flex;align-items:center;gap:18px}.public-context nav{display:flex;align-items:center;gap:8px;min-width:0;color:var(--page-muted);font-size:.9rem}.public-context nav a{color:var(--page-muted);text-decoration:none}.public-context nav span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.public-back{min-height:38px;padding:7px 12px;border:1px solid var(--page-border);border-radius:10px;background:var(--page-surface);color:var(--page-text);font:700 .9rem/1 system-ui;cursor:pointer;white-space:nowrap}
.rental-calendar-wrap[aria-busy="true"]{opacity:.62;pointer-events:none;transition:opacity .12s ease}.calendar-month-nav a{transition:background .15s ease,border-color .15s ease}.calendar-month-nav a:hover{border-color:var(--op-primary);background:color-mix(in srgb,var(--op-primary) 8%,var(--page-surface))}
@media(max-width:700px){.public-context>div{padding:8px 16px}.public-context nav{display:none}.public-back{min-height:42px}.inquiry-form>.button.primary{width:100%}}

/* 0.3.0: gemeinsame schlanke Navigation / mobile App-Bedienung */
.public-nav-toggle{display:none;align-items:center;gap:.5rem;min-height:46px;padding:.55rem .8rem;border:1px solid var(--page-border);border-radius:12px;background:var(--page-surface);color:var(--page-text);font:750 .92rem/1 system-ui;cursor:pointer}
.public-nav-toggle span:first-child{font-size:1.15rem}
.public-context{background:#f1f2f3;border-bottom:1px solid var(--page-border)}
.public-context>div{max-width:var(--op-content);margin:auto;padding:8px 24px;display:flex;align-items:center;gap:16px;color:#69717a;font-size:.88rem}
.public-context nav{display:flex;align-items:center;gap:8px;min-width:0}.public-context nav a{color:inherit;text-decoration:none}.public-context nav span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.public-back{border:0;background:transparent;color:var(--op-primary);font:750 .88rem/1 system-ui;padding:7px 0;cursor:pointer}
@media(max-width:860px){
 .nav-wrap{min-height:64px;padding:8px 14px;align-items:center;flex-wrap:nowrap}
 .brand-mark{width:42px;height:42px;font-size:1.25rem}.brand{min-width:0}.brand span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .public-nav-toggle{display:flex;margin-left:auto}
 .nav-actions{display:none;position:absolute;top:100%;left:0;right:0;width:auto;padding:12px 14px calc(16px + env(safe-area-inset-bottom));background:var(--page-surface);border-bottom:1px solid var(--page-border);box-shadow:0 18px 36px rgba(0,0,0,.14);align-items:stretch;flex-direction:column;gap:12px}
 .nav-actions.is-open{display:flex}.nav-actions nav{display:grid;gap:6px}.nav-link{min-height:48px;padding:0 14px;border:1px solid var(--page-border);border-radius:12px}.nav-link:hover,.nav-link.active{border-color:var(--op-primary);border-bottom-color:var(--op-primary);background:color-mix(in srgb,var(--op-primary) 7%,var(--page-surface))}
 .accessibility-controls{margin-left:0;justify-content:flex-end;border-top:1px solid var(--page-border);padding-top:10px}
 .public-context>div{padding:7px 14px}.public-context nav{display:none}.public-back{min-height:40px}
}
@media(max-width:480px){.public-context{background:var(--page-surface)}.public-context>div{padding-block:4px}.brand span:last-child{font-size:.9rem}}

/* 0.3.1 gallery showcase + responsive lightbox */
.gallery-thumb-button{display:block;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in}.gallery-thumb-button:focus-visible{outline:3px solid var(--op-primary);outline-offset:3px}.public-gallery figcaption{display:grid;gap:4px}.public-gallery figcaption strong,.public-gallery figcaption span{display:block}.featured-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.featured-gallery-card{display:grid;overflow:hidden;border:1px solid var(--page-border);border-radius:18px;background:var(--page-surface);color:var(--page-text);text-decoration:none;box-shadow:0 12px 32px var(--page-shadow)}.featured-gallery-card img,.featured-gallery-placeholder{width:100%;aspect-ratio:16/10;object-fit:cover;display:grid;place-items:center;background:color-mix(in srgb,var(--op-primary) 12%,var(--page-bg));font-weight:700}.featured-gallery-card>span{display:grid;gap:4px;padding:14px}.featured-gallery-card small,.featured-gallery-card em{color:var(--page-muted);font-style:normal}.gallery-lightbox{width:min(96vw,1500px);height:min(94vh,1000px);padding:0;border:0;border-radius:20px;background:transparent;color:#fff;overflow:hidden}.gallery-lightbox::backdrop{background:rgba(9,13,20,.88);backdrop-filter:blur(8px)}.gallery-lightbox-shell{position:relative;width:100%;height:100%;display:grid;grid-template-columns:64px minmax(0,1fr) 64px;grid-template-rows:minmax(0,1fr) auto;align-items:center;background:#111820;border:1px solid #ffffff22;border-radius:20px;overflow:hidden}.gallery-lightbox figure{grid-column:2;grid-row:1;margin:0;height:100%;min-height:0;display:grid;place-items:center}.gallery-lightbox-image-button{width:100%;height:100%;padding:20px;border:0;background:transparent;color:inherit;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:12px;cursor:zoom-in;min-height:0}.gallery-lightbox img{display:block;max-width:100%;max-height:calc(94vh - 120px);width:auto;height:auto;object-fit:contain;margin:auto;transition:max-width .18s ease,max-height .18s ease}.gallery-lightbox figcaption{display:grid;gap:3px;text-align:center;max-width:900px;margin:auto;color:#eef3f8}.gallery-lightbox figcaption span{color:#cbd3dc}.gallery-lightbox-close{position:absolute;z-index:3;right:14px;top:14px;width:46px;height:46px;border-radius:50%;border:1px solid #ffffff38;background:#111820cc;color:#fff;font-size:1.875rem;cursor:pointer}.gallery-lightbox-nav{width:50px;height:68px;border:1px solid #ffffff26;background:#11182099;color:#fff;border-radius:14px;font-size:2.625rem;cursor:pointer;justify-self:center}.gallery-lightbox-nav.prev{grid-column:1;grid-row:1}.gallery-lightbox-nav.next{grid-column:3;grid-row:1}.gallery-lightbox-footer{grid-column:1/-1;grid-row:2;display:flex;align-items:center;justify-content:center;gap:16px;padding:10px 18px 16px}.gallery-lightbox-footer .button{background:#fff;color:#17202a;border-color:#fff}.gallery-lightbox.is-zoomed .gallery-lightbox-shell{overflow:auto}.gallery-lightbox.is-zoomed .gallery-lightbox-image-button{cursor:zoom-out;place-items:start center}.gallery-lightbox.is-zoomed img{max-width:none;max-height:none;width:auto;height:auto}.gallery-lightbox button:focus-visible{outline:3px solid #fff;outline-offset:2px}
@media(max-width:900px){.featured-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-lightbox{width:100vw;height:100dvh;max-width:none;max-height:none;border-radius:0}.gallery-lightbox-shell{border-radius:0;grid-template-columns:52px minmax(0,1fr) 52px}.gallery-lightbox-image-button{padding:64px 8px 10px}.gallery-lightbox img{max-height:calc(100dvh - 150px)}.gallery-lightbox-nav{width:42px;height:58px;font-size:2.125rem}}
@media(max-width:620px){.featured-gallery-grid{grid-template-columns:1fr}.gallery-lightbox-shell{grid-template-columns:46px minmax(0,1fr) 46px}.gallery-lightbox-nav{width:38px;height:52px;border-radius:12px}.gallery-lightbox-footer{font-size:.9rem}.gallery-lightbox-close{right:10px;top:10px}}
@media(prefers-reduced-motion:reduce){.gallery-lightbox img{transition:none}}

@media(max-width:900px){.news-grid.cols-3,.news-grid.cols-4,.public-gallery.gallery-cols-3,.public-gallery.gallery-cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:780px){html{scrollbar-gutter:auto}.nav-actions nav{display:grid;gap:4px}.nav-group{display:grid}.nav-group-toggle{width:100%;justify-content:space-between}.nav-group-menu{position:static;display:none;box-shadow:none;border:0;border-left:2px solid var(--page-border);border-radius:0;padding:4px 0 4px 12px;margin-left:10px}.nav-group.is-open .nav-group-menu{display:grid}.nav-group.is-open::after{content:"";position:absolute;left:0;right:0;top:100%;height:8px;z-index:19}.news-grid.cols-2,.news-grid.cols-3,.news-grid.cols-4,.public-gallery.gallery-cols-2,.public-gallery.gallery-cols-3,.public-gallery.gallery-cols-4{grid-template-columns:1fr}}

/* 0.3.3-rc1: getrennte Frontend-Marke und Bürgerhaus-Wunschtermin. */
.brand-mark{--public-brand-render-size:var(--public-brand-size,50px);width:var(--public-brand-render-size);height:var(--public-brand-render-size);flex:0 0 var(--public-brand-render-size);background:var(--public-brand-color,var(--op-primary));border-radius:10px;padding:0;overflow:hidden}
.brand-mark.has-logo{background:transparent;border-radius:0;overflow:visible}
.brand-mark.has-logo img{width:100%;height:100%;object-fit:contain;object-position:center;display:block;border-radius:0}
.calendar-nav-disabled{display:grid;place-items:center;min-height:44px;border:1px solid var(--page-border);border-radius:12px;color:var(--page-muted);opacity:.55}.rental-horizon{display:block;margin-top:6px;color:var(--page-muted)}
.rental-search{max-width:820px}.rental-search-form{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:12px;align-items:end;padding:clamp(18px,3vw,28px);border:1px solid var(--page-border);border-radius:20px;background:var(--page-surface);box-shadow:0 14px 38px var(--page-shadow)}.rental-search-form label{display:grid;gap:7px;font-weight:800}.rental-search-form input{min-height:50px;padding:11px 14px;border:1px solid var(--page-border);border-radius:12px;background:var(--page-bg);color:var(--page-text);font:inherit}.rental-search-result{margin-top:18px;padding:18px 20px;border:1px solid var(--page-border);border-radius:18px;background:var(--page-surface)}.rental-search-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:18px;border:1px solid color-mix(in srgb,var(--op-primary) 45%,var(--page-border));border-radius:18px;background:color-mix(in srgb,var(--op-primary) 6%,var(--page-surface));color:var(--page-text);text-decoration:none;box-shadow:0 12px 30px var(--page-shadow)}.rental-search-card .date{display:grid;place-items:center;width:68px;min-height:68px;border-radius:14px;background:var(--op-primary);color:#fff;font-weight:900;line-height:1.05;text-align:center}.rental-search-card .copy{display:grid;gap:3px}.rental-search-card .copy small{color:var(--page-muted)}
@media(max-width:680px){.rental-search-form{grid-template-columns:1fr}.rental-search-form .button{width:100%}.rental-search-card{grid-template-columns:auto 1fr}.rental-search-card>span:last-child{display:none}.brand-mark{--public-brand-render-size:min(var(--public-brand-size,50px),46px)}}

/* 0.3.3-rc2: Typografie als kontrollierte Design-Tokens; ausschließlich lokal/systembasiert. */
.public-site{overflow-x:clip;font-size:var(--op-font-body,1rem)}
.public-site h1{font-size:clamp(2.1rem,8vw,var(--op-font-h1,4rem));line-height:1.04}
.public-site h2{font-size:clamp(1.8rem,6vw,var(--op-font-h2,2.625rem));line-height:1.1}
.public-site h3{font-size:clamp(1.45rem,5vw,var(--op-font-h3,1.75rem));line-height:1.16}
.public-site h4{font-size:clamp(1.25rem,4vw,var(--op-font-h4,1.4375rem));line-height:1.2}
.public-site h5{font-size:clamp(1.08rem,3vw,var(--op-font-h5,1.1875rem));line-height:1.25}
.public-site h6{font-size:clamp(.95rem,2.5vw,var(--op-font-h6,1rem));line-height:1.3}
.public-site p{font-size:var(--op-font-p,1rem)}
.public-site li{font-size:var(--op-font-li,1rem)}
.public-site small{font-size:var(--op-font-small,.8125rem)}
.public-site .hero h1{font-size:clamp(2.5rem,9vw,var(--op-font-h1,4rem))}
.public-site .intro-card h2{font-size:clamp(1.8rem,5vw,var(--op-font-h2,2.625rem))}
/* overflow-x:hidden erzeugt in einigen Browsern einen Scrollcontainer und kann sticky brechen. */
.public-site .site-header{position:sticky!important;top:0!important;z-index:400!important}

/* 0.3.3-rc4: getrennte Typografie, Design-Rhythmus, Kalender und Wunschtermin. */
.public-site .nav-link,.public-site .nav-group-toggle{font-size:var(--op-font-nav,.9375rem)}
.public-site .site-footer{font-size:var(--op-font-footer,.9375rem)}
.public-site .site-footer h1{font-size:var(--op-font-footer-h1,2.25rem)}
.public-site .site-footer h2{font-size:var(--op-font-footer-h2,1.875rem)}
.public-site .site-footer h3{font-size:var(--op-font-footer-h3,1.5rem)}
.public-site .site-footer h4{font-size:var(--op-font-footer-h4,1.25rem)}
.public-site .site-footer h5{font-size:var(--op-font-footer-h5,1.0625rem)}
.public-site .site-footer h6{font-size:var(--op-font-footer-h6,.9375rem)}
.public-site .site-footer p{font-size:var(--op-font-footer-p,.9375rem)}
.public-site .site-footer li{font-size:var(--op-font-footer-li,.9375rem)}
.site-footer .footer-copy{display:grid;gap:4px}.site-footer .footer-copy p{margin:0}.site-footer .footer-main{font-weight:800}.site-footer .footer-tagline{color:#d8dcdf}
.public-site main>.content-wrap,.public-site main>.portal-module{padding-top:calc(var(--op-space-section,64px)*.5);padding-bottom:calc(var(--op-space-section,64px)*.5)}
.public-site .intro-card,.public-site .notice-card,.public-site .cta-card,.public-site .rental-price-card,.public-site .availability-result{padding:var(--op-space-card,32px)}
.public-site .intro-card,.public-site .notice-card,.public-site .cta-card,.public-site .rental-price-card{gap:var(--op-space-stack,16px)}
.public-site main .cta-card>.button{margin-top:var(--op-space-button-before,12px);margin-bottom:var(--op-space-button-after,0)}
.hero-align-center .hero-inner>h1,.hero-align-center .hero-inner>.hero-sub,.hero-align-center .hero-inner>.eyebrow{margin-left:auto;margin-right:auto}.hero-align-center .hero-cta{margin-left:auto;margin-right:auto}.hero-align-right .hero-inner>h1,.hero-align-right .hero-inner>.hero-sub{margin-left:auto}
.richtext figure{margin:1.5rem 0;display:grid;gap:.6rem}.richtext figure img,.richtext>img{display:block;max-width:100%;height:auto;border-radius:calc(var(--op-radius,4px)*1.5)}.richtext figcaption{color:var(--page-muted);font-size:var(--op-font-small,.8125rem)}
.rental-search-module{max-width:var(--op-content)}.rental-search-form{display:grid;grid-template-columns:minmax(240px,420px) auto;gap:18px;align-items:end;max-width:760px;padding:var(--op-space-card,32px);border:1px solid var(--page-border);border-radius:calc(var(--op-radius,4px) + 14px);background:var(--page-surface);box-shadow:0 14px 38px var(--page-shadow)}.rental-search-form label{display:grid;gap:8px;font-weight:800}.rental-search-form input[type=date]{width:100%;min-height:52px;padding:11px 14px;border:1px solid var(--page-border);border-radius:12px;background:var(--page-bg);color:var(--page-text);font:inherit}.rental-search-form .button{min-height:52px;margin:0}.rental-search-hint{max-width:760px;margin:.75rem 0 0;color:var(--page-muted)}
.availability-result{display:grid;gap:8px;max-width:820px;border:1px solid var(--page-border);border-radius:calc(var(--op-radius,4px) + 14px);background:var(--page-surface);color:var(--page-text);text-decoration:none;box-shadow:0 12px 30px var(--page-shadow)}.availability-result p{margin:0}.availability-result.available{border-color:color-mix(in srgb,#238636 45%,var(--page-border));background:color-mix(in srgb,#238636 7%,var(--page-surface))}.availability-result.unavailable{border-color:color-mix(in srgb,var(--op-primary) 45%,var(--page-border));background:color-mix(in srgb,var(--op-primary) 6%,var(--page-surface))}.availability-result.neutral{background:color-mix(in srgb,var(--page-muted) 5%,var(--page-surface))}.availability-result.horizon{border-style:dashed}.availability-result .status-chip{width:max-content}
.event-month-calendar{border:1px solid var(--page-border);border-radius:calc(var(--op-radius,4px) + 14px);background:var(--page-surface);padding:clamp(14px,3vw,26px);box-shadow:0 14px 38px var(--page-shadow)}.event-month-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;margin-bottom:18px}.event-month-head h3{margin:0;text-align:center}.event-month-head .button{margin:0}.event-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.event-cal-day{min-height:96px;padding:10px;border:1px solid var(--page-border);border-radius:12px;background:var(--page-bg);color:var(--page-text);display:grid;align-content:start;gap:5px;text-decoration:none}.event-cal-day>strong{font-size:1rem}.event-cal-day small{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.event-cal-day em{font-size:.75rem;color:var(--page-muted);font-style:normal}.event-cal-day.has-events{border-color:var(--event-day-border,#d66b73);background:var(--event-day-bg,#fff3f4)}.event-cal-day.has-events>strong{color:var(--event-day-date,#20262d)}.event-cal-day.has-events small{color:var(--event-day-text,#9f2631);font-weight:var(--event-day-weight,500)}.event-cal-day.has-events:hover{transform:translateY(-1px);box-shadow:0 8px 20px var(--page-shadow)}
@media(max-width:720px){.rental-search-form{grid-template-columns:1fr;gap:12px}.rental-search-form .button{width:100%}.site-footer>div{align-items:flex-start}}
/* 0.3.3-rc4: Footer-Fließtext darf nicht durch die historische span-Regel auf .9rem zurückfallen. */
.public-site .site-footer a,.public-site .site-footer span{font-size:var(--op-font-footer,.9375rem)}

/* 0.3.3-rc5: Richtext-Bildlayout, sichere Zoombilder und vollständige Dark-Mode-Kontextleiste. */
.richtext figure.rich-media{display:block;max-width:100%;margin:1.4rem 0;clear:both}.richtext figure.rich-media img{width:auto;max-width:100%;height:auto}.richtext figure.rich-media--center{width:min(100%,760px);margin-inline:auto;text-align:center}.richtext figure.rich-media--center img{margin-inline:auto}.richtext figure.rich-media--left{float:left;width:min(48%,520px);margin:0 1.5rem 1rem 0}.richtext figure.rich-media--right{float:right;width:min(48%,520px);margin:0 0 1rem 1.5rem}.richtext .rich-media-zoom{display:block;cursor:zoom-in}.richtext .rich-media-zoom img{display:block}.richtext::after{content:"";display:block;clear:both}
html[data-theme="dark"] .public-context{background:#1a2025!important;border-bottom-color:#37414a!important}html[data-theme="dark"] .public-context>div,html[data-theme="dark"] .public-context nav{color:#c9d1d8!important}html[data-theme="dark"] .public-context nav a{color:#f19aa2!important}html[data-theme="dark"] .public-context nav a:hover{text-decoration:underline}html[data-theme="dark"] .public-back{background:#222a30!important;border-color:#3d4852!important;color:#f4f6f8!important}
@media(max-width:720px){.richtext figure.rich-media--left,.richtext figure.rich-media--right{float:none;width:100%;margin:1.2rem 0}.richtext figure.rich-media--left img,.richtext figure.rich-media--right img{margin-inline:auto}}

/* 0.3.3-rc7: kontrollierte Card-Raster und Formularfelder nutzen ihre Spalte vollständig. */
.news-default-admin-grid{width:100%;grid-template-columns:repeat(3,minmax(0,1fr))!important;align-items:stretch}
.news-default-admin-card{min-width:0;width:100%}.news-default-admin-card>div{min-width:0;width:100%}.news-default-admin-card label,.news-default-admin-card input,.news-default-admin-card select,.news-default-admin-card textarea{min-width:0;max-width:none;width:100%}.news-default-admin-card label.check{display:flex;width:auto}.news-default-admin-card img{width:100%;aspect-ratio:16/10;object-fit:cover}
@media(max-width:1100px){.news-default-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:700px){.news-default-admin-grid{grid-template-columns:1fr!important}}

/* 0.3.3-rc7: editierbarer klassischer Footer oberhalb der kompakten Footerleiste. */
.classic-footer-content{background:color-mix(in srgb,var(--page-surface) 96%,var(--op-dark) 4%);border-top:1px solid var(--page-border);color:var(--page-text)}.classic-footer-grid{width:min(var(--op-content),100%);margin:auto;padding:clamp(32px,5vw,64px) 24px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,4vw,56px)}.classic-footer-column{min-width:0}.classic-footer-column>:first-child{margin-top:0}.classic-footer-column>:last-child{margin-bottom:0}.classic-footer-column img{max-width:100%;height:auto}.classic-footer-column p{font-size:var(--op-font-footer-p,0.9375rem)}.classic-footer-column li{font-size:var(--op-font-footer-li,0.9375rem)}.classic-footer-column h1{font-size:var(--op-font-footer-h1,2.25rem)}.classic-footer-column h2{font-size:var(--op-font-footer-h2,1.875rem)}.classic-footer-column h3{font-size:var(--op-font-footer-h3,1.5rem)}.classic-footer-column h4{font-size:var(--op-font-footer-h4,1.25rem)}.classic-footer-column h5{font-size:var(--op-font-footer-h5,1.0625rem)}.classic-footer-column h6{font-size:var(--op-font-footer-h6,.9375rem)}
@media(max-width:820px){.classic-footer-grid{grid-template-columns:1fr}.classic-footer-column{padding-bottom:24px;border-bottom:1px solid var(--page-border)}.classic-footer-column:last-child{padding-bottom:0;border-bottom:0}}

/* 0.3.3-rc7: Zeitraumwahl und modernes Reservierungsformular. */
.rental-range-status{margin-top:10px;padding:10px 12px;border:1px solid var(--page-border);border-radius:12px;background:color-mix(in srgb,var(--op-primary) 5%,var(--page-surface));font-weight:750}.cal-day.is-range-start,.cal-day.is-range-end{border-color:var(--op-primary);background:var(--op-primary);color:#fff;box-shadow:0 0 0 2px color-mix(in srgb,var(--op-primary) 24%,transparent)}.cal-day.is-in-range{border-color:color-mix(in srgb,var(--op-primary) 45%,var(--page-border));background:color-mix(in srgb,var(--op-primary) 14%,var(--page-surface))}.rental-range-form{max-width:none;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto}.rental-range-form label small{font-weight:500;color:var(--page-muted)}
.rental-form-intro{max-width:78ch;margin-bottom:24px}.inquiry-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.inquiry-form>.form-span{grid-column:1/-1}.inquiry-form>.notice-card{margin-top:0}.inquiry-form .spam-question{padding:14px;border:1px solid var(--page-border);border-radius:14px;background:color-mix(in srgb,var(--page-muted) 5%,var(--page-surface))}.rental-resource-description img{max-width:100%;height:auto}
@media(max-width:760px){.rental-range-form,.inquiry-form{grid-template-columns:1fr}.inquiry-form>.form-span{grid-column:auto}.rental-range-status{font-size:.92rem}}

/* 0.3.3-rc8: responsive Bildgrößen, Kalenderstatus und zuverlässig sichtbarer Back-to-top. */
.rich-media{--rich-media-size:50%;max-width:100%}.rich-media--size-sm{--rich-media-size:33%}.rich-media--size-md{--rich-media-size:50%}.rich-media--size-lg{--rich-media-size:75%}.rich-media--size-full{--rich-media-size:100%}.rich-media--center{width:var(--rich-media-size);margin-inline:auto}.rich-media--left{width:var(--rich-media-size);float:left;margin:0 1.2rem 1rem 0}.rich-media--right{width:var(--rich-media-size);float:right;margin:0 0 1rem 1.2rem}.rich-media--size-full{float:none!important;margin-left:0!important;margin-right:0!important;width:100%!important}.rich-media img{width:100%;height:auto}
.rental-calendar-head{display:block;margin-bottom:14px}.calendar-month-nav{grid-template-columns:48px minmax(0,1fr) 48px;gap:12px}.calendar-month-nav h3{text-align:center;font-size:clamp(1.05rem,3vw,1.35rem)}.rental-calendar-help{margin:14px 0 0;color:var(--page-muted);font-size:.9rem}.rental-range-status{margin-top:16px;padding:13px 15px;border:1px solid var(--page-border);border-left:4px solid var(--op-primary);border-radius:12px;background:color-mix(in srgb,var(--op-primary) 5%,var(--page-surface));font-weight:700}.rental-horizon{display:block;margin-top:10px;color:var(--page-muted)}
.rental-request-head{display:grid;gap:6px;margin-bottom:20px;padding:18px;border:1px solid var(--page-border);border-radius:16px;background:var(--page-surface)}.rental-request-head h2{margin:0}.rental-request-head p{margin:0;color:var(--page-muted)}.inquiry-layout{display:grid!important;grid-template-columns:1fr!important;gap:20px!important}.inquiry-summary{max-width:none!important}.inquiry-form{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:16px!important;width:100%!important;max-width:none!important}.inquiry-form label{display:grid;gap:7px;min-width:0;font-weight:700}.inquiry-form input,.inquiry-form textarea,.inquiry-form select{width:100%;min-width:0}.inquiry-form .form-span{grid-column:1/-1}.inquiry-form .check{display:flex!important;align-items:flex-start;gap:10px}.inquiry-form .check input{width:20px;min-width:20px}.rental-field-note{font-size:.8rem;color:var(--page-muted)}
.back-to-top{z-index:1000!important}.back-to-top.is-visible{display:grid!important;place-items:center!important}
@media(max-width:720px){.rich-media--left,.rich-media--right,.rich-media--center{float:none;width:100%;margin:1rem 0}.inquiry-form{grid-template-columns:1fr!important}.inquiry-form .form-span{grid-column:auto}.calendar-month-nav{grid-template-columns:44px minmax(0,1fr) 44px}}


/* 0.3.3-rc14: strukturierte Seitenbausteine */
.structured-block{display:grid;gap:clamp(16px,2.6vw,28px)}
.table-responsive{width:100%;overflow-x:auto}
.content-table{width:100%;border-collapse:collapse;background:var(--page-surface);border-radius:16px;overflow:hidden}
.content-table th,.content-table td{padding:14px 16px;vertical-align:top;text-align:left}
.content-table th{font-weight:800;background:color-mix(in srgb,var(--op-primary) 7%,var(--page-surface))}
.content-table.has-borders th,.content-table.has-borders td{border:1px solid var(--page-border)}
.content-table.is-zebra tbody tr:nth-child(even){background:color-mix(in srgb,var(--page-muted) 5%,var(--page-surface))}
.content-table .align-center{text-align:center}.content-table .align-right{text-align:right}
.content-table .width-small{width:14%}.content-table .width-medium{width:28%}.content-table .width-large{width:48%}
.content-columns{display:grid;gap:clamp(18px,3vw,32px);align-items:start}
.content-columns.layout-50-50{grid-template-columns:repeat(2,minmax(0,1fr))}
.content-columns.layout-33-33-33{grid-template-columns:repeat(3,minmax(0,1fr))}
.content-columns.layout-33-67{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}
.content-columns.layout-67-33{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.content-columns.layout-33-66{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}
.content-columns.layout-66-33{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.content-columns.layout-25-75{grid-template-columns:minmax(0,1fr) minmax(0,3fr)}
.content-columns.layout-75-25{grid-template-columns:minmax(0,3fr) minmax(0,1fr)}
.content-columns.layout-25-25-25-25{grid-template-columns:repeat(4,minmax(0,1fr))}
.content-column{min-width:0}
.faq-list{display:grid;gap:12px}
.faq-item{border:1px solid var(--page-border);border-radius:16px;background:var(--page-surface);overflow:hidden}
.faq-item summary{cursor:pointer;list-style:none;padding:16px 18px;font-weight:800;display:flex;align-items:center;justify-content:space-between;gap:12px}
.faq-item summary::-webkit-details-marker{display:none}.faq-item summary::after{content:"+";font-size:1.35em}.faq-item[open] summary::after{content:"–"}
.faq-answer{padding:0 18px 18px;color:var(--page-text);line-height:1.65}
.info-box{display:grid;grid-template-columns:5px minmax(0,1fr);gap:18px;padding:clamp(18px,3vw,28px);border:1px solid var(--page-border);border-radius:18px;background:var(--page-surface);box-shadow:0 10px 28px var(--page-shadow)}
.info-box h2{margin-top:0}.info-box-marker{border-radius:999px;background:var(--op-primary)}
.info-important .info-box-marker{background:#b26a00}.info-warning .info-box-marker{background:#b42318}.info-success .info-box-marker{background:#238636}
.teaser-grid{display:grid;gap:clamp(16px,2.4vw,24px)}.teaser-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.teaser-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.teaser-grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.teaser-card{display:grid;grid-template-rows:auto 1fr;border:1px solid var(--page-border);border-radius:18px;background:var(--page-surface);overflow:hidden;color:var(--page-text);text-decoration:none;box-shadow:0 10px 28px var(--page-shadow);min-width:0}
.teaser-card img{width:100%;aspect-ratio:16/10;object-fit:cover}.teaser-card-body{display:grid;gap:9px;padding:18px}.teaser-card-body strong{font-size:1.12em}.teaser-card-body em{font-style:normal;color:var(--op-primary);font-weight:800}
@media(max-width:900px){.content-columns.layout-33-33-33,.content-columns.layout-25-25-25-25,.teaser-grid.cols-3,.teaser-grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){
 .content-columns{grid-template-columns:1fr!important}.content-columns.mobile-reverse{display:flex;flex-direction:column-reverse}.teaser-grid{grid-template-columns:1fr!important}
 .content-table.mobile-cards thead{display:none}.content-table.mobile-cards,.content-table.mobile-cards tbody,.content-table.mobile-cards tr,.content-table.mobile-cards td{display:block;width:100%}
 .content-table.mobile-cards{background:transparent}.content-table.mobile-cards tr{margin:0 0 14px;border:1px solid var(--page-border);border-radius:14px;background:var(--page-surface);overflow:hidden}
 .content-table.mobile-cards td{display:grid;grid-template-columns:minmax(100px,38%) minmax(0,1fr);gap:12px;border:0!important;border-bottom:1px solid var(--page-border)!important;text-align:left!important}
 .content-table.mobile-cards td:last-child{border-bottom:0!important}.content-table.mobile-cards td::before{content:attr(data-label);font-weight:800;color:var(--page-muted)}
}


/* 0.3.3-rc15: responsive images, explicit hero fit and compact mobile calendars */
.hero-fit-cover .hero-background{width:100%;height:100%;object-fit:cover}
.hero-fit-contain .hero-background{width:100%;height:100%;object-fit:contain;background:var(--page-dark)}
img{max-width:100%;height:auto}.hero-background{max-width:none;height:100%}
.event-month-calendar,.rental-calendar-wrap{min-width:0;max-width:100%;overflow:hidden}
.event-month-grid,.rental-calendar{min-width:0;max-width:100%;grid-template-columns:repeat(7,minmax(0,1fr))}
.event-cal-day,.cal-day{min-width:0;overflow:hidden}
@media(max-width:720px){
 .event-month-calendar{overflow:visible;padding:12px 8px;border-radius:14px}
 .event-month-head{gap:6px;margin-bottom:10px}.event-month-head .button{min-width:38px;padding-inline:9px}.event-month-head h3{font-size:clamp(.95rem,4vw,1.15rem)}
 .event-month-grid{min-width:0!important;gap:3px}
 .event-cal-day{min-height:58px;padding:5px 4px;border-radius:8px;gap:2px;text-align:center;justify-items:center}
 .event-cal-day>strong{font-size:.85rem}.event-cal-day small,.event-cal-day em{display:none}
 .rental-calendar{gap:3px}.cal-day{min-height:58px!important;padding:5px 3px!important;border-radius:8px!important;font-size:.78rem!important;overflow-wrap:anywhere}
 .cal-day small{font-size:.62rem;line-height:1.15}.cal-week{font-size:.6rem!important;min-width:0}
}
@media(max-width:390px){
 .event-month-calendar{padding-inline:5px}.event-month-grid,.rental-calendar{gap:2px}
 .event-cal-day,.cal-day{min-height:52px!important;padding:4px 2px!important;border-radius:7px!important}.event-cal-day>strong,.cal-day>strong{font-size:.78rem}
}

/* 0.3.3-rc16: mobile calendar detail list */
.event-mobile-list{display:none}
@media(max-width:560px){
 .event-month-calendar{padding:10px 6px}.event-month-grid{gap:2px}.event-cal-day{min-height:44px!important;padding:3px 1px!important;border-radius:6px!important}.event-cal-day>strong{font-size:.78rem}.cal-week{font-size:.58rem!important}
 .event-mobile-list{display:grid;gap:7px;margin-top:14px;padding-top:12px;border-top:1px solid var(--page-border)}.event-mobile-list>a{display:grid;grid-template-columns:54px minmax(0,1fr) auto;align-items:center;gap:9px;padding:10px;border:1px solid var(--page-border);border-radius:10px;text-decoration:none;color:var(--page-text);background:var(--page-bg)}.event-mobile-list time{font-weight:850;color:var(--op-primary)}.event-mobile-list span{min-width:0}.event-mobile-list strong,.event-mobile-list small{display:block;overflow-wrap:anywhere}.event-mobile-list small{margin-top:2px;color:var(--page-muted);font-size:.75rem}
 .rental-calendar-wrap{padding:10px 6px}.rental-calendar{gap:2px}.cal-day{min-height:44px!important;aspect-ratio:auto!important;padding:3px 1px!important;font-size:.72rem!important}.cal-day small{display:none}.calendar-month-nav{grid-template-columns:40px minmax(0,1fr) 40px;gap:6px}.calendar-month-nav a,.calendar-nav-disabled{min-height:40px}
}

/* rc17: globale Portalsuche */



/* 0.3.3-rc20: defensive viewport/overflow contract for narrow devices. */
.public-site main,.public-site main section,.public-site main article,.richtext,.content-columns,.content-columns>*,.teaser-grid,.teaser-card,.teaser-card-body,.event-month-grid,.rental-calendar,.event-mobile-list,.event-mobile-list>a{min-width:0;max-width:100%}
.richtext a,.content-wrap a,.teaser-card-body,.calendar-copy,.event-mobile-list span{overflow-wrap:anywhere;word-break:break-word}
.richtext pre{max-width:100%;overflow:auto;-webkit-overflow-scrolling:touch}
.richtext table{max-width:100%}
.table-responsive{max-width:100%;-webkit-overflow-scrolling:touch}
@media(max-width:420px){.content-table.mobile-cards td{grid-template-columns:minmax(84px,34%) minmax(0,1fr);padding:11px 10px}.event-mobile-list>a{grid-template-columns:46px minmax(0,1fr)}.event-mobile-list>a>span:last-child{display:none}}

/* 0.3.3-rc23: eine zentrale Seitenbreite fuer Navigation, Body und Footer. */
.nav-wrap,.hero-inner,.content-wrap,.public-context>div,.site-footer>div,.classic-footer-grid{
 width:min(100%,var(--op-content));max-width:var(--op-content);margin-inline:auto;
}
/* Hintergrundflaechen duerfen viewportbreit sein; ihr Inhalt bleibt am gemeinsamen Raster. */
.public-site main>section:not(.hero):not(.content-wrap):not(.portal-module)>*,
.public-site main>article>*{max-width:100%}
.portal-search-trigger{display:inline-grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border:1px solid var(--page-border);border-radius:12px;background:var(--page-surface);color:var(--page-text);text-decoration:none;font-size:1.25rem;font-weight:850;line-height:1;transition:background .15s ease,border-color .15s ease,transform .15s ease}
.portal-search-trigger:hover,.portal-search-trigger:focus-visible{background:color-mix(in srgb,var(--op-primary) 8%,var(--page-surface));border-color:var(--op-primary);transform:translateY(-1px);color:var(--op-primary)}
.portal-search-results{padding-top:clamp(38px,6vw,72px)}
.portal-search-page-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;margin:18px 0 28px;padding:10px;border:1px solid var(--page-border);border-radius:18px;background:var(--page-surface);box-shadow:0 12px 34px var(--page-shadow)}
.portal-search-page-form label{min-width:0}.portal-search-page-form input{width:100%;min-height:54px;padding:12px 16px;border:0;border-radius:12px;background:var(--page-bg);color:var(--page-text);font:inherit;font-size:1.04rem}.portal-search-page-form input:focus{outline:0;box-shadow:inset 0 0 0 2px var(--op-primary)}
.portal-search-page-form .button{min-width:120px;border-radius:12px}
.search-result-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:14px}.search-result-card{min-height:150px;padding:18px 20px;border:1px solid var(--page-border);border-radius:18px;background:var(--page-surface);box-shadow:0 8px 24px var(--page-shadow);transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.search-result-card:hover,.search-result-card:focus-visible{transform:translateY(-2px);border-color:var(--op-primary);box-shadow:0 14px 32px var(--page-shadow)}.search-result-card small{color:var(--op-primary);font-weight:750}.search-result-card strong{font-size:1.12rem;line-height:1.25}.search-result-card span{color:var(--page-muted)}
@media(max-width:700px){.portal-search-page-form{grid-template-columns:1fr}.portal-search-page-form .button{width:100%}.portal-search-trigger{width:44px;height:44px;flex-basis:44px}.search-result-list{grid-template-columns:1fr}}
.public-builder-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:20px;padding:clamp(18px,3vw,30px);border:1px solid var(--page-border);border-radius:20px;background:var(--page-surface);box-shadow:0 12px 34px var(--page-shadow)}.public-builder-form label{display:grid;gap:7px;font-weight:700;min-width:0}.public-builder-form input:not([type=checkbox]),.public-builder-form select,.public-builder-form textarea{width:100%;min-width:0;padding:12px 14px;border:1px solid var(--page-border);border-radius:12px;background:var(--page-bg);color:var(--page-text);font:inherit}.public-builder-form input:focus,.public-builder-form select:focus,.public-builder-form textarea:focus{outline:2px solid var(--op-primary);outline-offset:1px}.public-builder-form .form-span{grid-column:1/-1}.public-form-intro{max-width:72ch}.hp-field{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important}
@media(max-width:680px){.public-builder-form{grid-template-columns:1fr}.public-builder-form .form-span{grid-column:auto}}

/* rc24: breite Portalhülle, begrenzte Lesebreite */
.richtext>p,.richtext>ul,.richtext>ol,.content-section>.section-copy,.search-page>p{max-width:78ch}.public-search-page .search-result-copy{max-width:80ch}

/* rc28: Richtext-Spalten und Trenner */
.richtext>hr{border:0;border-top:1px solid color-mix(in srgb,var(--op-primary) 24%,var(--page-border));margin:clamp(20px,3vw,34px) 0}


/* 0.3.3-rc29: calendar clarity, compact mobile rows and safe richtext buttons */
.rich-button-row{display:flex;margin:1.25rem 0}.rich-button-row.align-left{justify-content:flex-start}.rich-button-row.align-center{justify-content:center}.rich-button-row.align-right{justify-content:flex-end}.rich-button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:.72rem 1.15rem;border-radius:calc(var(--op-radius,4px) + 8px);background:var(--rich-button-color,var(--op-primary));color:#fff!important;text-decoration:none!important;font-weight:800;line-height:1.2;box-shadow:0 8px 22px color-mix(in srgb,var(--rich-button-color,var(--op-primary)) 22%,transparent);transition:transform .15s ease,box-shadow .15s ease}.rich-button:hover,.rich-button:focus-visible{transform:translateY(-1px);box-shadow:0 11px 26px color-mix(in srgb,var(--rich-button-color,var(--op-primary)) 30%,transparent)}
.calendar-quick-actions{display:flex;justify-content:center;margin:.55rem 0 .35rem}.calendar-today-link{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:.35rem .75rem;border:1px solid var(--page-border);border-radius:999px;text-decoration:none;color:var(--page-text);background:var(--page-bg);font-weight:750;font-size:.82rem}.event-cal-day.is-today,.cal-day.is-today{background:var(--calendar-today-bg,#f3f6fa)!important;color:var(--calendar-today-text,#20262d)!important;border-color:var(--calendar-today-border,#2f6fed)!important;box-shadow:none}.event-cal-day.is-today small,.event-cal-day.is-today em,.cal-day.is-today small{color:inherit!important}.event-cal-day.is-weekend:not(.has-events):not(.is-today),.cal-day.is-weekend.is-free:not(.is-today):not(.is-range-start):not(.is-range-end){background:var(--calendar-weekend-bg,#f3f4f5);color:var(--calendar-weekend-text,#4b5563);border-color:var(--calendar-weekend-border,#d7dce1)}
.rental-calendar-legend{display:flex;flex-wrap:wrap;gap:8px 10px;margin-top:14px;padding-top:12px;border-top:1px solid var(--page-border)}.rental-legend-item{display:inline-flex;align-items:center;gap:7px;padding:5px 9px;border:1px solid var(--legend-border,#d7dce1);border-radius:999px;background:var(--legend-bg,#eee);color:var(--legend-text,#20262d);font-size:.86rem}.rental-legend-item i{width:10px;height:10px;border-radius:50%;border:1px solid currentColor;background:currentColor;flex:0 0 auto}.cal-day.is-free{background:var(--rental-free-bg,var(--page-bg));color:var(--rental-free-text,var(--page-text));border-color:var(--rental-free-border,var(--page-border))}.cal-day.is-booking-busy{background:var(--rental-booking-bg,#eceef0);color:var(--rental-booking-text,#5f6670);border-color:var(--rental-booking-border,#c8cdd3)}.cal-day.is-past{background:var(--rental-past-bg,#f3f3f3);color:var(--rental-past-text,#747b84);border-color:var(--rental-past-border,#d7dce1)}.cal-day.is-horizon{background:var(--rental-horizon-bg,#f3f3f3);color:var(--rental-horizon-text,#747b84);border-color:var(--rental-horizon-border,#d7dce1)}.rental-range-status-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}.rental-range-clear{margin-top:10px;white-space:nowrap}.rental-request-date{display:flex;align-items:baseline;gap:.4rem}.rental-request-date strong{color:var(--page-text)}.rental-request-date span{color:var(--page-muted)}
.event-mobile-date{display:grid;gap:2px}.event-mobile-date small{margin:0!important}.event-mobile-empty{margin:0;padding:12px;border:1px dashed var(--page-border);border-radius:10px;color:var(--page-muted)}
@media(max-width:520px){.event-mobile-list>a{grid-template-columns:1fr!important;align-items:start;gap:5px;padding:12px}.event-mobile-list>a>span:last-child{display:none}.event-mobile-date{padding-bottom:6px;border-bottom:1px solid var(--page-border)}.event-mobile-date time{font-size:.88rem}.event-mobile-copy strong{font-size:1rem}.rental-request-date{display:grid;gap:4px}.rental-request-date strong{display:block}.rental-range-status-row{grid-template-columns:1fr}.rental-range-clear{width:100%;margin-top:0}.rental-calendar-legend{gap:7px 10px}.rental-legend-item{font-size:.8rem}.calendar-quick-actions{margin-top:.35rem}}

/* rc32: öffentliche Suche als klare Ergebnisliste mit Pagination */
.portal-search-page-form{grid-template-columns:minmax(0,1fr) minmax(110px,150px) auto;align-items:end}
.portal-search-page-form label{display:grid;gap:6px;font-weight:750}.portal-search-page-form label>span{font-size:.86rem;color:var(--page-muted)}
.portal-search-page-form select{width:100%;min-height:54px;padding:10px 12px;border:1px solid var(--page-border);border-radius:12px;background:var(--page-bg);color:var(--page-text);font:inherit}
.search-summary{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:0 0 14px}.search-summary p{margin:0}.search-summary>span{color:var(--page-muted);font-size:.92rem}
.search-result-list{display:grid;grid-template-columns:1fr;gap:10px}
.search-result-card{position:relative;display:grid;grid-template-columns:minmax(110px,160px) minmax(0,1fr) auto;grid-template-areas:"meta title arrow" "meta copy arrow";gap:5px 18px;align-items:center;min-height:0;padding:18px 20px;text-decoration:none;color:var(--page-text)}
.search-result-meta{grid-area:meta;display:grid;gap:4px;align-self:start}.search-result-meta>strong{color:var(--op-primary);font-size:.9rem;text-transform:uppercase;letter-spacing:.04em}.search-result-meta>small{color:var(--page-muted)}
.search-result-title{grid-area:title;font-size:1.08rem;font-weight:850;line-height:1.28;text-decoration:none}.search-result-copy{grid-area:copy;color:var(--page-muted);max-width:80ch}.search-result-arrow{grid-area:arrow;font-size:1.3rem;color:var(--op-primary)}
.public-pagination{display:flex;justify-content:center;align-items:center;gap:14px;margin-top:22px}.public-pagination [aria-disabled="true"]{opacity:.45;pointer-events:none}.public-pagination span{font-weight:750;color:var(--page-muted)}
@media(max-width:700px){.portal-search-page-form{grid-template-columns:1fr}.search-summary{align-items:flex-start;flex-direction:column}.search-result-card{grid-template-columns:1fr auto;grid-template-areas:"meta arrow" "title arrow" "copy copy";gap:6px 12px}.search-result-meta{display:flex;align-items:center;gap:10px}.public-pagination{justify-content:space-between;gap:8px}.public-pagination .button{width:auto}}
/* 0.3.3-rc32: automatisch aus dem zentralen Kalenderdesign erzeugte Legende. */
.event-calendar-legend{display:flex;flex-wrap:wrap;gap:.55rem;margin:.9rem 0 1rem}.event-calendar-legend span{display:inline-flex;align-items:center;gap:.45rem;padding:.42rem .7rem;border:1px solid var(--legend-border);border-radius:999px;background:var(--legend-bg);color:var(--legend-text);font-weight:750}.event-calendar-legend i{width:.75rem;height:.75rem;border-radius:50%;background:currentColor;opacity:.8}
