/* Weimann Verfügbarkeit – nutzt die Theme-Farben (--color-cta, --color-moduleborder …) und Theme-Schriften. */
.wa{--wa-green:var(--color-cta,#75bc73);--wa-green-dark:#2f6b2e;--wa-ink:#1f2933;--wa-muted:#555f6b;--wa-line:var(--color-moduleborder,#bfbfbf);--wa-bg:var(--color-modulebackground,#e2e2e2);--wa-focus:#102a10;color:var(--wa-ink);font-family:Montserrat,system-ui,sans-serif;font-weight:300}
.wa *,.wa *::before,.wa *::after{box-sizing:border-box}
.wa .font-serif,.wa-modal .font-serif{font-family:"Playfair Display",Georgia,serif;font-weight:400}
.wa-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.wa button,.wa a,.wa input,.wa select,.wa-modal button,.wa-modal a,.wa-modal input,.wa-modal textarea{font:inherit}
.wa :focus-visible,.wa-modal :focus-visible,.wa-sticky :focus-visible{outline:3px solid var(--wa-focus,#102a10);outline-offset:2px}

/* Suche */
.wa-search{position:relative;width:100%;max-width:64rem;margin:0 auto;padding:0 1.25rem;z-index:40}
.wa-search__heading{font-size:1.75rem;margin:0 0 1rem;text-align:center}
.wa-form{background:#fff;box-shadow:0 10px 30px rgba(0,0,0,.15);padding:.75rem}
.wa-form__row{display:grid;grid-template-columns:1fr;gap:.5rem}
@media (min-width:768px){.wa-form__row{grid-template-columns:1.6fr 1.2fr auto;gap:0}.wa-form__cell+.wa-form__cell{border-left:1px solid var(--wa-line)}}
.wa-form__cell{position:relative;display:flex;flex-direction:column;justify-content:center;padding:.25rem .75rem}
.wa-field__label{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--wa-muted);margin-bottom:.15rem}
.wa-field{min-height:48px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;width:100%;text-align:left;background:none;border:0;padding:.25rem 0;cursor:pointer;color:var(--wa-ink);font-family:"Playfair Display",Georgia,serif;font-size:1.15rem}
.wa-field__sub{font-family:Montserrat,system-ui,sans-serif;font-size:.8rem;color:var(--wa-muted)}
.wa-form__cell--submit{padding:0}
.wa-btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;min-height:48px;padding:.75rem 1.25rem;border:1px solid transparent;text-decoration:none;text-align:center;cursor:pointer;line-height:1.2;font-weight:500;transition:background-color .2s,color .2s}
.wa-btn--primary{background:var(--wa-green);color:#102a10;border-color:var(--wa-green)}
.wa-btn--primary:hover{background:#63a961}
.wa-btn--secondary{background:#fff;color:var(--wa-green-dark);border-color:var(--wa-green-dark)}
.wa-btn--secondary:hover{background:#f1f8f1}
.wa-btn--ghost{background:none;color:var(--wa-ink);border-color:var(--wa-line)}
.wa-btn--submit{width:100%;height:100%;text-transform:uppercase;letter-spacing:.05em;font-size:.85rem}
.wa-btn--block{width:100%}
.wa-btn__sub{font-weight:300}
.wa-btn[disabled]{opacity:.5;cursor:not-allowed}
.wa-link{color:var(--wa-green-dark);text-decoration:underline;text-underline-offset:2px;background:none;border:0;padding:.5rem 0;min-height:44px;cursor:pointer;display:inline-flex;align-items:center}
.wa-form__msg{margin:.5rem .75rem 0;color:#a4262c;font-weight:500}
.wa-form__msg:empty{display:none}
.wa-filters{display:flex;flex-wrap:wrap;gap:.25rem 1.25rem;border:0;border-top:1px solid var(--wa-line);margin:.5rem 0 0;padding:.5rem .75rem 0}
.wa-check{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;cursor:pointer}
.wa-check input{width:20px;height:20px;accent-color:var(--wa-green-dark)}
.wa-check--block{align-items:flex-start;margin:.75rem 0}
.wa-check--block input{margin-top:.2rem;flex:0 0 auto}

/* Popover */
.wa-pop{position:absolute;left:0;top:100%;margin-top:.5rem;background:#fff;box-shadow:0 12px 40px rgba(0,0,0,.25);padding:1rem;z-index:70;min-width:100%}
.wa-pop[hidden]{display:none}
.wa-pop--guests{min-width:300px}
.wa-pop__title{margin:0 0 .5rem;font-size:.85rem;color:var(--wa-muted)}
.wa-pop__foot{display:flex;justify-content:flex-end;margin-top:.5rem}
@media (max-width:767px){.wa-pop{position:fixed;left:0;right:0;bottom:0;top:auto;max-height:85vh;overflow:auto;margin:0}}

/* Kalender */
.wa-cal{position:relative}
.wa-cal__nav{position:absolute;inset:0 0 auto 0;display:flex;justify-content:space-between;pointer-events:none}
.wa-cal__nav button{pointer-events:auto;width:44px;height:44px;border:0;background:none;font-size:1.6rem;cursor:pointer;color:var(--wa-ink)}
.wa-cal__nav button[disabled]{opacity:.25;cursor:default}
.wa-cal__months{display:flex;gap:1.5rem;flex-wrap:wrap}
.wa-cal__month{border-collapse:collapse;flex:1 1 280px;max-width:360px}
.wa-cal--inline .wa-cal__months{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.wa-cal--inline .wa-cal__month{max-width:none;width:100%}
.wa-cal__caption{font-family:"Playfair Display",Georgia,serif;font-size:1.1rem;height:44px;line-height:44px;text-align:center}
.wa-cal__month th{font-size:.75rem;font-weight:500;color:var(--wa-muted);padding:.25rem 0}
.wa-cal__month td{padding:1px;text-align:center}
.wa-day{width:100%;min-width:40px;height:44px;border:0;background:#fff;cursor:pointer;color:var(--wa-ink);font-size:.95rem;position:relative}
.wa-day:hover{background:#eef6ee}
.wa-day--today{font-weight:700;text-decoration:underline;text-underline-offset:3px}
.wa-day--disabled{color:#8a939c;cursor:not-allowed;background:#fff}
.wa-day--disabled[data-why=past]{text-decoration:line-through}
.wa-day--booked{background:repeating-linear-gradient(135deg,#e6e8ea 0 6px,#d3d6da 6px 12px);color:#4b5561}
.wa-day--range{background:#d9ecd8}
.wa-day--start,.wa-day--end{background:var(--wa-green-dark);color:#fff;font-weight:600}
.wa-cal__hint{min-height:1.4em;margin:.5rem 0 0;font-size:.85rem;color:var(--wa-muted)}
.wa-legend{display:flex;flex-wrap:wrap;gap:1rem;list-style:none;margin:0 0 .5rem;padding:0;font-size:.9rem}
.wa-legend li{display:flex;align-items:center;gap:.4rem}
.wa-legend__sw{width:18px;height:18px;border:1px solid var(--wa-line);display:inline-block}
.wa-legend__sw--free{background:#fff}
.wa-legend__sw--booked{background:repeating-linear-gradient(135deg,#e6e8ea 0 4px,#d3d6da 4px 8px)}
.wa-legend__sw--sel{background:var(--wa-green-dark)}

/* Gäste */
.wa-guests__row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.25rem 0}
.wa-stepper{display:flex;align-items:center;gap:.25rem}
.wa-stepper__btn{width:44px;height:44px;border:1px solid var(--wa-line);background:#fff;font-size:1.25rem;cursor:pointer;color:var(--wa-ink)}
.wa-stepper__btn[disabled]{opacity:.35;cursor:not-allowed}
.wa-stepper__val{min-width:2ch;text-align:center;font-weight:500}
.wa-guests__age{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.25rem 0}
.wa-select,.wa-input{min-height:44px;border:1px solid #8a939c;background:#fff;padding:.4rem .6rem;color:var(--wa-ink);width:100%}
.wa-guests__age .wa-select{width:auto}
.wa-note{font-size:.85rem;color:var(--wa-muted);margin:.5rem 0}

/* Ergebnisse */
.wa-results{margin-top:2rem}
.wa-results:empty{display:none}
.wa-loading{display:flex;align-items:center;gap:.75rem;justify-content:center;padding:2rem 0}
.wa-spinner{width:24px;height:24px;border:3px solid var(--wa-line);border-top-color:var(--wa-green-dark);border-radius:50%;animation:wa-spin 1s linear infinite}
@keyframes wa-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.wa-spinner{animation:none}}
.wa-error{background:#fdecec;border-left:4px solid #a4262c;padding:1rem}
.wa-summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem 1rem;margin-bottom:1rem}
.wa-summary__text{font-size:1.4rem;margin:0}
.wa-summary__text:focus{outline:none}
.wa-nothing{font-size:1.1rem;margin:0 0 1rem}
.wa-house{margin:0 0 2.5rem}
.wa-house__head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.25rem 1rem;border-bottom:1px solid var(--wa-line);padding-bottom:.5rem;margin-bottom:1rem}
.wa-house__name{font-size:1.5rem;margin:0}
.wa-house__name a{color:inherit;text-decoration:none}
.wa-house__name a:hover{text-decoration:underline}
.wa-house__times{margin:0;font-size:.9rem;color:var(--wa-muted)}
.wa-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem}
.wa-cards--unavailable{margin-top:1.25rem}
.wa-card{background:#fff;border:1px solid var(--wa-line);display:flex;flex-direction:column}
.wa-card__img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;display:block}
.wa-card__body{padding:1rem;display:flex;flex-direction:column;gap:.5rem;flex:1}
.wa-card__title{font-size:1.25rem;margin:0}
.wa-card__facts{margin:0;color:var(--wa-muted)}
.wa-tags{display:flex;flex-wrap:wrap;gap:.35rem;list-style:none;margin:0;padding:0}
.wa-tags li{font-size:.8rem;border:1px solid var(--wa-line);padding:.15rem .5rem}
.wa-card__price{margin:.25rem 0 0;font-size:1.1rem;font-weight:500;display:flex;flex-direction:column}
.wa-card__final{font-size:.8rem;font-weight:300;color:var(--wa-muted)}
.wa-card__cta{display:flex;flex-direction:column;gap:.5rem;margin-top:auto;padding-top:.5rem}
.wa-card__unit{margin:0;font-size:.85rem;color:var(--wa-ink);background:#f1f8f1;padding:.4rem .6rem}
.wa-card__warn{margin:0;font-size:.9rem;background:#fff6db;border-left:4px solid #b7791f;padding:.5rem}
.wa-card--off{background:#f6f7f8}
.wa-card--off .wa-card__img{filter:grayscale(1);opacity:.6}
.wa-card--off .wa-card__title{color:#4b5561}
.wa-card__reason{margin:0;font-weight:500;color:#4b5561}
.wa-card__sugg-title{margin:.25rem 0 0;font-size:.9rem}
.wa-sugg{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:0;padding:0}
.wa-chip{min-height:44px;padding:.4rem .8rem;border:1px solid var(--wa-green-dark);background:#fff;color:var(--wa-green-dark);cursor:pointer}
.wa-chip:hover{background:#f1f8f1}
.wa-stand{font-size:.85rem;color:var(--wa-muted);margin-top:1rem}
.wa-house__reviews{margin:.75rem 0 0}

/* Zimmerseite */
.wa-roomcal__body{display:grid;gap:1.5rem}
@media (min-width:1024px){.wa-roomcal__body{grid-template-columns:1fr 320px;align-items:start}.wa-roomcal__body>.wa-legend,.wa-roomcal__body>.wa-note,.wa-roomcal__body>.wa-card__warn{grid-column:1/-1}}
.wa-roomcal__side{background:#fff;border:1px solid var(--wa-line);padding:1rem;display:flex;flex-direction:column;gap:1rem}
.wa-roomcal__side h3{margin:0;font-size:1.2rem}
.wa-roomcal__sel{margin:0;font-weight:500}

/* Direktanfrage */
.wa-modal{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem;font-family:Montserrat,system-ui,sans-serif;color:#1f2933}
.wa-modal__box{background:#fff;max-width:560px;width:100%;max-height:92vh;overflow:auto;padding:1.25rem 1.5rem}
.wa-modal__head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}
.wa-modal__head h2{margin:0;font-size:1.4rem}
.wa-modal__x{width:44px;height:44px;border:0;background:none;font-size:1.75rem;cursor:pointer}
.wa-inq__sum{background:#f1f8f1;padding:.5rem .75rem}
.wa-inq__field{display:flex;flex-direction:column;gap:.25rem;margin:.5rem 0}
.wa-inq__foot{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:.5rem}
.wa-inq__ok{font-size:1.1rem;margin:1rem 0}
.wa-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.wa-modal .wa-btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.75rem 1.25rem;border:1px solid transparent;cursor:pointer}
.wa-modal .wa-btn--primary{background:var(--color-cta,#75bc73);color:#102a10}
.wa-modal .wa-btn--ghost{background:none;border-color:#bfbfbf}
.wa-modal .wa-form__msg{color:#a4262c;font-weight:500}
.wa-modal .wa-check{display:flex;gap:.5rem;align-items:flex-start}
.wa-modal a{color:#2f6b2e}

/* Mobile Leiste */
.wa-sticky{transition:transform .2s ease,visibility .2s;position:fixed;left:0;right:0;bottom:0;z-index:60;padding:.5rem 1rem calc(.5rem + env(safe-area-inset-bottom));background:#fff;box-shadow:0 -2px 8px rgba(0,0,0,.15)}
.wa-sticky__btn{display:flex;align-items:center;justify-content:center;min-height:48px;background:var(--color-cta,#75bc73);color:#102a10;font-weight:600;text-decoration:none;font-family:Montserrat,system-ui,sans-serif}
@media (min-width:768px){.wa-sticky{display:none}}
.wa-sticky--off{transform:translateY(110%);visibility:hidden}
@media (prefers-reduced-motion:reduce){.wa-sticky{transition:none}}
@media (max-width:767px){body{padding-bottom:64px}}

/* Platzierung in Theme-Kopfbereichen */
.wa-search--front{margin-top:-3rem}
@media (min-width:768px){.wa-search--front{margin-top:-4.5rem}}
.wa-search--rooms,.wa-search--location{padding-top:3rem;padding-bottom:1rem}

/* Server-seitige Appartementliste */
.wa-list{background:var(--color-modulebackground,#e2e2e2);padding:4rem 0}
.wa-list__inner{max-width:80rem;margin:0 auto;padding:0 2.5rem}
.wa-list .wa-card__title a{color:inherit;text-decoration:none}
.wa-list .wa-card__title a:hover{text-decoration:underline}
.wa-list .wa-btn{margin-top:auto}
