/* ============================================================
   FeWo Waitzrodt — MotoPress-Marken-Skin
   Bringt die MotoPress-Buchungsseiten in das Design der Astro-Seite.
   Tokens 1:1 aus site/src/styles/tokens.css. „aus einer Hand".
   ============================================================ */
:root {
  --c-creme:#faf6ee; --c-papier:#f4ecdd; --c-espresso:#2b2016; --c-rinde:#6b5e4e;
  --c-eiche:#9c6b34; --c-eiche-hell:#c79a5e; --c-waldgruen:#415c46; --c-glut:#bc5a33; --c-glut-dunkel:#a44b28;
  --c-sandstein:#d9c7ab; --c-sand-hell:#e2d6c2; --c-nacht:#2e251c;
  --font-serif:'Fraunces var','Fraunces',Georgia,serif;
  --font-sans:'Mulish var','Mulish',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-script:'Caveat var','Caveat','Segoe Script',cursive;
  --radius:16px; --radius-sm:9px; --radius-lg:26px;
  --shadow-soft:0 10px 34px rgba(43,32,22,.12);
  --maxw:1120px;
}

/* ---- Basis ---- */
html { -webkit-text-size-adjust:100%; overflow-x:hidden; max-width:100%; }
/* Globaler Reset: ohne border-box laufen MotoPress-Karten/Felder mobil über (Overflow). */
body.fewo *, body.fewo *::before, body.fewo *::after { box-sizing:border-box; }
body.fewo { margin:0; background:var(--c-creme); color:var(--c-espresso);
  font-family:var(--font-sans); font-size:1.05rem; line-height:1.6; -webkit-font-smoothing:antialiased;
  max-width:100%; overflow-x:hidden; }
body.fewo img, body.fewo iframe, body.fewo table, body.fewo video { max-width:100%; }
body.fewo img { height:auto; }
body.fewo h1,body.fewo h2,body.fewo h3 { font-family:var(--font-serif); font-weight:460; line-height:1.12; color:var(--c-espresso);
  font-variation-settings:'opsz' 40,'SOFT' 40; }
body.fewo a { color:var(--c-eiche); }
.fewo-container { width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:clamp(1rem,4vw,2rem); }
.fewo-main { padding-block:clamp(2rem,5vw,4rem); min-height:60vh; }
.fewo-page__title { font-size:clamp(2rem,1.4rem+2vw,3rem); margin:0 0 1.5rem; }
/* Inhalt bricht sauber um (lange Wörter/URLs), Medien nie breiter als die Spalte */
.fewo-page, .fewo-page__content { overflow-wrap:break-word; word-wrap:break-word; }
body.fewo .mphb-room-type-gallery-wrapper, body.fewo .mphb-gallery { max-width:100%; overflow:hidden; }
body.fewo .mphb-room-type-gallery-wrapper img, body.fewo .mphb-gallery img { max-width:100%; height:auto; }

/* ---- Marken-Kopfzeile (wie Astro-Nav) ---- */
.fewo-bar { position:sticky; top:0; z-index:50; background:color-mix(in srgb,var(--c-creme) 90%,transparent);
  backdrop-filter:blur(8px); border-bottom:1px solid var(--c-sand-hell); }
.fewo-bar__in { width:100%; max-width:var(--maxw); margin-inline:auto; padding:0.7rem clamp(1rem,4vw,2rem);
  display:flex; align-items:center; justify-content:space-between; gap:.5rem 1rem; flex-wrap:wrap; }
.fewo-wm { text-decoration:none; display:inline-flex; align-items:baseline; gap:0; line-height:1; min-width:0; }
.fewo-wm__fewo { font-family:var(--font-script); font-weight:600; font-size:clamp(.95rem,.75rem+.9vw,1.1rem); color:var(--c-eiche); letter-spacing:-.02em; margin-right:.15em; }
.fewo-wm__name { font-family:var(--font-serif); font-weight:440; font-size:clamp(.85rem,.68rem+.8vw,.98rem); color:var(--c-espresso); white-space:nowrap; font-variation-settings:'opsz' 72,'SOFT' 28; }
.fewo-bar__back { font-weight:700; font-size:.9rem; color:var(--c-eiche); text-decoration:none; white-space:nowrap; }
.fewo-bar__back:hover { color:var(--c-glut); }
.fewo-bar__nav { display:flex; align-items:center; gap:.6rem .9rem; flex-wrap:wrap; justify-content:flex-end; }
.fewo-lang { display:inline-flex; align-items:center; gap:1px; border:1px solid var(--c-sand-hell,#e2d6c2); border-radius:999px; padding:2px; }
.fewo-lang__a { font-weight:700; font-size:.78rem; line-height:1; color:var(--c-rinde,#6b5e4e); text-decoration:none; padding:.34em .62em; border-radius:999px; transition:.12s; }
.fewo-lang__a:hover { color:var(--c-espresso,#2b2016); }
.fewo-lang__a.is-current { background:var(--c-eiche,#9c6b34); color:#fff; }
body.fewo a.fewo-bar__cta { background:var(--c-glut-dunkel); color:#fff !important; font-weight:800; font-size:.9rem; letter-spacing:.01em;
  text-decoration:none; padding:.64em 1.3em; border-radius:999px; line-height:1; white-space:nowrap;
  box-shadow:0 2px 8px rgba(43,32,22,.18); transition:background .25s ease, transform .15s ease; }
body.fewo a.fewo-bar__cta:hover { background:var(--c-espresso); color:#fff !important; transform:translateY(-1px); }
@media (max-width:700px){ .fewo-bar__cta{ display:none; } } /* Suche ist auf der Seite – CTA mobil ausblenden */
.fewo-foot { background:var(--c-nacht); color:var(--c-creme); padding-block:2rem; margin-top:3rem; text-align:center; }
.fewo-foot p { margin:.3rem 0; font-size:.9rem; } .fewo-foot__note { color:var(--c-sandstein); max-width:60ch; margin-inline:auto; }
.fewo-foot a { color:var(--c-eiche-hell); text-decoration:none; } .fewo-foot a:hover { color:#fff; }
.fewo-foot__trust { font-family:var(--font-serif); color:var(--c-eiche-hell); letter-spacing:.06em; font-size:1rem; }

/* ---- Buttons (alle MotoPress-Aktionen → Glut, rund) ---- */
body.fewo .button,
body.fewo button,
body.fewo input[type="submit"],
body.fewo .mphb-book-button,
body.fewo .mphb_sc_search-submit-button-wrapper button,
body.fewo .mphb-checkout-form button {
  background:var(--c-glut); color:#fff; border:0; border-radius:999px; padding:.75em 1.6em;
  font-family:var(--font-sans); font-weight:700; font-size:1rem; cursor:pointer; line-height:1;
  box-shadow:var(--shadow-soft); transition:background .25s ease, transform .15s ease; text-decoration:none; display:inline-flex; align-items:center; gap:.4em;
}
body.fewo .button:hover, body.fewo button:hover, body.fewo input[type="submit"]:hover,
body.fewo .mphb-book-button:hover { background:var(--c-glut-dunkel); transform:translateY(-1px); }
body.fewo .button.mphb-loading { opacity:.7; }

/* ---- Formularfelder ---- */
body.fewo input[type="text"], body.fewo input[type="email"], body.fewo input[type="tel"],
body.fewo input[type="number"], body.fewo input[type="date"], body.fewo select, body.fewo textarea,
body.fewo .mphb-input, body.fewo .mphb_sc_search-field input {
  background:#fff; border:1px solid var(--c-sand-hell); border-radius:var(--radius-sm);
  padding:.6em .8em; font:inherit; color:var(--c-espresso); width:100%; box-sizing:border-box;
}
body.fewo input:focus, body.fewo select:focus, body.fewo textarea:focus { outline:2px solid var(--c-eiche-hell); border-color:var(--c-eiche-hell); }
body.fewo label { font-weight:600; }

/* ---- MotoPress: Suchformular ---- */
.mphb_sc_search-form, .mphb-search-form {
  background:var(--c-papier); border:1px solid var(--c-sand-hell); border-radius:var(--radius);
  padding:clamp(1rem,3vw,1.8rem); box-shadow:var(--shadow-soft);
}
.mphb_sc_search-form .mphb-search-fields { display:flex; flex-wrap:wrap; gap:1rem; align-items:end; }

/* ---- MotoPress: Ergebnisse / Unterkunftskarten ---- */
.mphb_sc_search-results, .mphb-room-types, .mphb_sc_rooms-wrapper { display:grid; gap:1.5rem; }
@media (min-width:760px){
  body.fewo .mphb-room-types, body.fewo .mphb_sc_search-results, body.fewo .mphb_sc_rooms-wrapper { grid-template-columns:1fr 1fr; }
}
.mphb-room-type, .mphb-room-type-content {
  background:var(--c-creme); border:1px solid var(--c-sand-hell); border-radius:var(--radius);
  overflow:hidden; box-shadow:var(--shadow-soft);
}
/* Einheitliche Innenabstände: Bild voll, Text/Buttons gleichmäßig eingerückt, klarer Rhythmus */
body.fewo .mphb-room-type { display:flex; flex-direction:column; padding-bottom:1.3rem; }
body.fewo .mphb-room-type-images { margin:0 0 1rem; overflow:hidden; }
body.fewo .mphb-room-type img { display:block; width:100%; height:auto; }
body.fewo .mphb-room-type-title, body.fewo .mphb-room-type-title a { font-family:var(--font-serif); color:var(--c-espresso); text-decoration:none; }
body.fewo .mphb-room-type-title { margin:.2rem 1.3rem .35rem; font-size:1.4rem; line-height:1.15; }
body.fewo .mphb-room-type > p { margin-left:1.3rem; margin-right:1.3rem; }
body.fewo .mphb-room-type-details-title { margin:.7rem 1.3rem .35rem; font-size:.82rem; text-transform:uppercase; letter-spacing:.08em; color:var(--c-rinde); font-weight:800; }
body.fewo .mphb-loop-room-type-attributes { list-style:none; padding:0; margin:0 1.3rem .85rem; display:grid; gap:.28rem; }
body.fewo .mphb-loop-room-type-attributes li { font-size:.95rem; }
body.fewo .mphb-attribute-title { color:var(--c-rinde); }
body.fewo .mphb-attribute-value { color:var(--c-espresso); font-weight:600; }
body.fewo .mphb-regular-price { margin:.5rem 1.3rem .95rem; }
body.fewo .mphb-view-details-button-wrapper { margin:0 1.3rem .55rem; }
body.fewo .mphb-to-book-btn-wrapper { margin:0 1.3rem; }
.mphb-price, .mphb-rate-price, .mphb-room-type-price { color:var(--c-eiche); font-weight:800; }
.mphb-price .mphb-currency { color:var(--c-rinde); font-weight:600; }

/* ---- MotoPress: Checkout & Preisaufschlüsselung ---- */
.mphb-checkout, .mphb_sc_checkout, .mphb-booking-details {
  background:var(--c-papier); border:1px solid var(--c-sand-hell); border-radius:var(--radius); padding:clamp(1rem,3vw,1.8rem);
}
.mphb-price-breakdown, .mphb-booking-details table { width:100%; border-collapse:collapse; }
.mphb-price-breakdown th, .mphb-price-breakdown td,
.mphb-booking-details th, .mphb-booking-details td { padding:.5em .4em; border-bottom:1px solid var(--c-sand-hell); text-align:left; }
.mphb-price-breakdown .mphb-total, .mphb-booking-details .mphb-total { font-family:var(--font-serif); font-size:1.2rem; color:var(--c-espresso); }

/* ---- Verfügbarkeitskalender (keith-wood „datepick") auf Marke ---- */
/* Kompaktes, zentriertes 1-Monats-Widget (wirkt bewusst gesetzt, kein leerer Raum) */
body.fewo .mphb_sc_availability_calendar-wrapper { max-width:430px; margin-inline:auto; }
body.fewo .mphb-calendar, body.fewo .mphb_sc_availability_calendar-wrapper .datepick {
  background:var(--c-creme); border:1px solid var(--c-sand-hell); border-radius:var(--radius);
  font-family:var(--font-sans); color:var(--c-espresso); overflow:hidden; max-width:100%; width:100%;
}
/* Monatsblock füllt die Breite */
body.fewo .mphb-calendar .datepick-month-row { white-space:normal; padding:.3rem; }
body.fewo .mphb-calendar .datepick-month { float:none; display:block; width:100%; min-width:0; }
body.fewo .mphb-calendar table, body.fewo .mphb-calendar .datepick-month table { border-collapse:collapse; width:100%; margin:0; table-layout:fixed; }
/* Kopfleiste (zurück / heute / vor) — warm statt schwarz */
body.fewo .mphb-calendar .datepick-nav, body.fewo .mphb-calendar .datepick-ctrl {
  background:var(--c-espresso) !important; color:var(--c-creme) !important;
  display:flex; justify-content:space-between; align-items:center; gap:.5rem; padding:.5rem .8rem; border:0 !important;
}
body.fewo .mphb-calendar .datepick-nav a, body.fewo .mphb-calendar .datepick-cmd, body.fewo .mphb-calendar .datepick-ctrl a {
  color:var(--c-eiche-hell) !important; font-weight:700; text-decoration:none !important;
  background:none !important; border:0 !important; padding:.2rem .4rem !important;
}
body.fewo .mphb-calendar .datepick-nav a:hover, body.fewo .mphb-calendar .datepick-cmd:hover { color:#fff !important; }
/* Monatstitel + Monats-/Jahres-Auswahl */
body.fewo .mphb-calendar .datepick-month-header {
  font-family:var(--font-serif); font-size:1.1rem; color:var(--c-espresso) !important;
  text-align:center; padding:.5rem .3rem; background:var(--c-papier) !important; border:0 !important;
  display:flex; gap:.4rem; align-items:center; justify-content:center; flex-wrap:wrap;
}
body.fewo .mphb-calendar .datepick-month-header select, body.fewo .mphb-calendar .datepick-month-header input {
  font:inherit; font-family:var(--font-sans); font-size:.9rem; padding:.2em .5em; border:1px solid var(--c-sand-hell);
  border-radius:var(--radius-sm); background:#fff; color:var(--c-espresso); max-width:8.5rem;
}
/* Wochentage */
body.fewo .mphb-calendar thead th, body.fewo .mphb-calendar .datepick-month th {
  color:var(--c-rinde) !important; font-weight:700; font-size:.75rem; text-transform:uppercase;
  letter-spacing:.03em; padding:.4rem 0; background:var(--c-papier) !important; border:0 !important;
}
/* Tageszellen (Status-Klasse liegt DIREKT auf a/span) */
body.fewo .mphb-calendar td { text-align:center; padding:0; border:1px solid #fff; }
body.fewo .mphb-calendar td a, body.fewo .mphb-calendar td span {
  display:block; padding:.5em .2em; text-decoration:none; color:var(--c-espresso); border:0;
}
/* frei = grün */
body.fewo .mphb-calendar td .mphb-selectable-date {
  background:color-mix(in srgb, var(--c-waldgruen) 20%, var(--c-creme)) !important; color:var(--c-espresso) !important; font-weight:600;
}
body.fewo .mphb-calendar td .mphb-selectable-date:hover { background:var(--c-eiche-hell) !important; color:#fff !important; }
/* GEBUCHT / nicht verfügbar = ROT */
body.fewo .mphb-calendar td .mphb-booked-date, body.fewo .mphb-calendar td .mphb-not-available-date,
body.fewo .mphb-calendar td .mphb-not-check-in-date, body.fewo .mphb-calendar td .mphb-not-stay-in-date {
  background:color-mix(in srgb, #c0392b 22%, var(--c-creme)) !important; color:#8f2418 !important; text-decoration:line-through;
}
/* vergangen / außerhalb Saison = gedämpft grau */
body.fewo .mphb-calendar td .mphb-past-date, body.fewo .mphb-calendar td .mphb-out-of-season-date,
body.fewo .mphb-calendar td .mphb-earlier-min-date, body.fewo .mphb-calendar td .mphb-later-max-date {
  background:var(--c-sand-hell) !important; color:var(--c-rinde) !important; opacity:.5; text-decoration:none;
}
/* heute / ausgewählt / check-in / -out */
body.fewo .mphb-calendar td .datepick-today { outline:2px solid var(--c-eiche); outline-offset:-2px; }
body.fewo .mphb-calendar td .datepick-selected, body.fewo .mphb-calendar td a.datepick-highlight,
body.fewo .mphb-calendar td .mphb-check-in-date, body.fewo .mphb-calendar td .mphb-check-out-date {
  background:var(--c-glut) !important; color:#fff !important; text-decoration:none;
}
@media (max-width:680px){ body.fewo .mphb-calendar .datepick-month { flex:1 1 100%; } }
/* Legende */
body.fewo .mphb-calendar__legend, body.fewo .mphb-price-calendar-legend { color:var(--c-rinde); font-size:.85rem; padding:.6rem .8rem; display:flex; gap:1rem; flex-wrap:wrap; justify-content:center; }

/* ---- Eingabe-Datepicker (Popup) — jQuery UI / flatpickr Fallback ---- */
.ui-datepicker, .flatpickr-calendar { border-radius:var(--radius); border:1px solid var(--c-sand-hell); box-shadow:var(--shadow-soft); font-family:var(--font-sans); }
.ui-datepicker .ui-state-active, .flatpickr-day.selected { background:var(--c-glut) !important; border-color:var(--c-glut) !important; color:#fff !important; }
.ui-datepicker .ui-state-hover, .flatpickr-day:hover { background:var(--c-sand-hell) !important; }

/* ---- Hinweise / Meldungen ---- */
.mphb-not-available, .mphb-errors, .woocommerce-error { color:var(--c-glut-dunkel); }
.mphb-available, .mphb-success { color:var(--c-waldgruen); }

/* ---- Direktbuchungs-Hinweis (optional via Shortcode/Block einsetzbar) ---- */
.fewo-direct { background:var(--c-papier); border-left:4px solid var(--c-glut); border-radius:var(--radius-sm); padding:1rem 1.2rem; margin:1.5rem 0; }
.fewo-direct strong { color:var(--c-eiche); display:block; font-size:1.1rem; margin-bottom:.2rem; }
.fewo-direct ul { margin:.4rem 0 0; padding-left:1.2rem; } .fewo-direct li { margin:.25rem 0; }

/* ---- Buchungs-Landing (Startseite des Buchungssystems) ---- */
.fewo-booking-intro h1 { font-size:clamp(2rem,1.4rem+2vw,2.8rem); margin:.2rem 0 .5rem; }
.fewo-lead { font-size:1.2rem; color:var(--c-rinde); max-width:62ch; margin:.2rem 0 1.4rem; }
.fewo-trust { font-weight:700; color:var(--c-eiche); margin-top:1.6rem; }
.fewo-help { color:var(--c-rinde); font-size:.95rem; } .fewo-help a { color:var(--c-eiche); font-weight:600; }
.fewo-section-h { font-family:var(--font-serif); font-size:1.6rem; margin:2.4rem 0 1rem; color:var(--c-espresso); }

@media (prefers-reduced-motion: reduce) {
  body.fewo .button, body.fewo button, body.fewo input[type="submit"], body.fewo .mphb-book-button { transition:none; }
}
