/* Schlüßhof Seminarbuchung – Buchungsdialog. Die Schrift kommt vom Theme, die Farben setzt der Dialog selbst,
   weil die Seite weiße Schrift als Grundfarbe verwendet. */
.shs { --shs-accent: #870040; --shs-accent-2: #ff941a; --shs-ink: #2a2327; --shs-line: rgba(42,35,39,.22); --shs-soft: #f7f2f4; box-sizing: border-box; width: 100%; max-width: var(--shs-max, 980px); margin: 0 auto; padding: 28px 30px; border-radius: 10px; background: #fff; color: var(--shs-ink); line-height: 1.5; text-align: left; }
.shs label, .shs p, .shs li, .shs td, .shs th, .shs h3, .shs span, .shs small, .shs em, .shs strong { color: inherit; }
.shs *, .shs *::before, .shs *::after { box-sizing: border-box; }
/* Schritte als Pfeilkette ohne Lücke: Jeder Schritt ist ein Feld mit Pfeilspitze rechts, das über dem folgenden liegt.
   Die Kontur entsteht aus einer roten Außenform und einer um 2px parallel eingerückten Innenform.
   Die Zahlen 1.05px und 2.43px gelten für Höhe 52px und Spitze 18px (parallel versetzte Schräge). */
.shs .shs-steps { --shs-tip: 18px; display: flex; list-style: none; margin: 0 0 26px; padding: 0; }
.shs .shs-steps li { position: relative; z-index: 1; flex: 1 1 0; min-width: 0; display: flex; align-items: center; justify-content: center; gap: 5px; box-sizing: border-box; height: 52px; margin: 0 0 0 calc(-1 * var(--shs-tip)); padding: 0 var(--shs-tip) 0 calc(var(--shs-tip) + 8px); background: var(--shs-accent); color: var(--shs-accent); font-size: .92em; font-weight: 600; line-height: 1.2; text-align: center; clip-path: polygon(0 0, calc(100% - var(--shs-tip)) 0, 100% 50%, calc(100% - var(--shs-tip)) 100%, 0 100%); }
.shs .shs-steps li::before { content: ""; position: absolute; inset: 0; z-index: 0; background: #fff; clip-path: polygon(0 2px, calc(100% - var(--shs-tip) - 1.05px) 2px, calc(100% - 2.43px) 50%, calc(100% - var(--shs-tip) - 1.05px) calc(100% - 2px), 0 calc(100% - 2px)); }
.shs .shs-steps li > span { position: relative; z-index: 1; color: inherit; }
.shs .shs-steps li:first-child { margin-left: 0; padding-left: 12px; }
.shs .shs-steps li:first-child::before { clip-path: polygon(2px 2px, calc(100% - var(--shs-tip) - 1.05px) 2px, calc(100% - 2.43px) 50%, calc(100% - var(--shs-tip) - 1.05px) calc(100% - 2px), 2px calc(100% - 2px)); }
.shs .shs-steps li:last-child { padding-right: 8px; clip-path: none; }
.shs .shs-steps li:last-child::before { clip-path: polygon(0 2px, calc(100% - 2px) 2px, calc(100% - 2px) calc(100% - 2px), 0 calc(100% - 2px)); }
.shs .shs-steps li:nth-child(1) { z-index: 6; }
.shs .shs-steps li:nth-child(2) { z-index: 5; }
.shs .shs-steps li:nth-child(3) { z-index: 4; }
.shs .shs-steps li:nth-child(4) { z-index: 3; }
.shs .shs-steps li:nth-child(5) { z-index: 2; }
.shs .shs-steps li.is-current { color: #fff; }
.shs .shs-steps li.is-current::before { display: none; }
.shs .shs-steps li.is-done::before { background: var(--shs-soft); }
.shs .shs-step-num::after { content: "."; }
.shs .shs-step-txt { text-wrap: balance; }
.shs-prices { margin: 0 0 18px; padding: 14px 16px; border-left: 4px solid var(--shs-accent); background: var(--shs-soft); }
.shs .shs-prices-title { margin: 0 0 8px; font-weight: 700; color: var(--shs-accent); }
.shs .shs-prices table { width: 100%; margin: 0 0 8px; border-collapse: collapse; background: transparent; font-size: .92em; }
.shs .shs-prices th, .shs .shs-prices td { padding: 6px 10px 6px 0; border: 0; border-bottom: 1px solid var(--shs-line); background: transparent; text-align: right; vertical-align: bottom; font-weight: 400; white-space: nowrap; }
.shs .shs-prices th { font-weight: 700; }
.shs .shs-prices th:first-child, .shs .shs-prices td:first-child { text-align: left; white-space: normal; }
.shs .shs-prices th:first-child { font-weight: 400; opacity: .75; }
.shs .shs-prices th small { display: block; font-weight: 400; opacity: .75; }
.shs .shs-prices .shs-meta { margin: 4px 0 0; }
.shs-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(210px, 100%), 1fr)); gap: 14px 18px; margin-bottom: 16px; }
.shs label { display: block; font-size: .92em; }
.shs input[type=text], .shs input[type=email], .shs input[type=tel], .shs input[type=number], .shs input[type=date], .shs select, .shs textarea { display: block; width: 100%; margin-top: 4px; padding: 9px 10px; border: 1px solid var(--shs-line); border-radius: 4px; background: #fff; color: var(--shs-ink); font: inherit; font-size: 1em; box-shadow: none; }
.shs textarea { margin-bottom: 14px; }
.shs-slider { margin-bottom: 18px; }
/* Datumsfelder: iOS und Android geben ihnen eine feste Mindestbreite und zentrierten Text; hier passen sie sich der Spalte an. */
.shs input[type=date] { -webkit-appearance: none; appearance: none; min-width: 0; max-width: 100%; min-height: 2.6em; line-height: 1.3; text-align: left; }
.shs input[type=date]::-webkit-date-and-time-value { text-align: left; margin: 0; }
.shs input[type=date]::-webkit-datetime-edit { padding: 0; }
.shs label { min-width: 0; }
/* Breite Tabellen (Preise, Warenkorb) scrollen in sich, statt die Seite seitlich verschiebbar zu machen. */
.shs .shs-prices, .shs .shs-table-wrap { max-width: 100%; overflow-x: auto; }
.shs img, .shs table { max-width: 100%; }
.shs-slider input[type=range] { padding: 0; display: block; width: 100%; margin: 8px 0 4px; accent-color: var(--shs-accent); }
.shs .shs-range { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px; align-items: center; margin-top: 4px; }
.shs .shs-range span { font-size: .92em; font-weight: 600; color: var(--shs-accent); white-space: nowrap; }
/* Neutrale Schiene ohne gefüllten Teil: Nur die Position des Knopfs zählt, er steht näher an dem, wovon es mehr gibt. */
.shs .shs-range input[type=range] { -webkit-appearance: none; appearance: none; height: 24px; margin: 4px 0; background: transparent; cursor: pointer; }
.shs .shs-range input[type=range]::-webkit-slider-runnable-track { height: 6px; border-radius: 3px; background: var(--shs-line); }
.shs .shs-range input[type=range]::-moz-range-track { height: 6px; border-radius: 3px; background: var(--shs-line); }
.shs .shs-range input[type=range]::-webkit-slider-thumb { -webkit-appearance: none; width: 22px; height: 22px; margin-top: -8px; border: 2px solid #fff; border-radius: 50%; background: var(--shs-accent); box-shadow: 0 0 0 1px var(--shs-accent); }
.shs .shs-range input[type=range]::-moz-range-thumb { width: 18px; height: 18px; border: 2px solid #fff; border-radius: 50%; background: var(--shs-accent); box-shadow: 0 0 0 1px var(--shs-accent); }
.shs .shs-range input[type=range]:focus-visible { outline: 2px solid var(--shs-accent); outline-offset: 4px; }
.shs .shs-range input[type=range]:disabled { cursor: default; }
.shs .shs-range input[type=range]:disabled::-webkit-slider-thumb { background: #a8a0a4; box-shadow: 0 0 0 1px #a8a0a4; }
.shs .shs-range input[type=range]:disabled::-moz-range-thumb { background: #a8a0a4; box-shadow: 0 0 0 1px #a8a0a4; }
.shs .shs-range input.shs-rtl { direction: rtl; }
.shs .shs-slider .shs-fixed { display: block; text-align: center; font-size: .85em; opacity: .75; }
.shs .shs-slider .shs-fixed[hidden] { display: none; }
.shs .shs-slider output { display: block; margin-top: 2px; text-align: center; font-weight: 600; color: var(--shs-ink); }
.shs-check { display: flex; gap: 8px; align-items: baseline; margin: 0 0 8px; }
.shs-check input { flex: none; }
.shs-indent { margin-left: 24px; }
.shs h3 { margin: 22px 0 10px; font-size: 1.1em; font-weight: 700; color: var(--shs-accent); }
.shs h3:first-child { margin-top: 0; }
.shs .shs-btn { display: inline-block; padding: 11px 22px; border: 1px solid var(--shs-accent); border-radius: 6px; background: var(--shs-accent); color: #fff; font: inherit; font-weight: 600; cursor: pointer; }
.shs .shs-btn:hover, .shs .shs-btn:focus-visible { background: #6b0033; border-color: #6b0033; color: #fff; }
.shs .shs-btn[disabled] { opacity: .6; cursor: default; }
.shs .shs-btn-ghost, .shs .shs-btn-ghost:hover, .shs .shs-btn-ghost:focus-visible { background: transparent; color: var(--shs-accent); }
.shs .shs-btn-ghost:hover { background: var(--shs-soft); }
.shs-meta { font-size: .9em; opacity: .8; }
.shs .shs-error { padding: 10px 12px; border-left: 4px solid #b3261e; background: #fbeceb; color: #7a1a14; }
.shs-empty { padding: 16px; background: var(--shs-soft); }
.shs-hits { list-style: none; margin: 0 0 14px; padding: 0; }
.shs-hits li { margin: 0 0 8px; }
.shs .shs-hits button { display: grid; grid-template-columns: 1fr auto auto; gap: 6px 18px; align-items: baseline; width: 100%; padding: 12px 14px; border: 1px solid var(--shs-line); border-radius: 6px; background: #fff; color: var(--shs-ink); font: inherit; font-weight: 400; text-align: left; cursor: pointer; }
.shs .shs-hits button:hover, .shs .shs-hits button:focus-visible { border-color: var(--shs-accent); background: var(--shs-soft); color: var(--shs-ink); }
.shs-hit-date { font-weight: 600; }
.shs-hit-season { font-size: .88em; opacity: .75; }
.shs .shs-hit-price { font-weight: 700; color: var(--shs-accent); white-space: nowrap; }
.shs-cols { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 28px; align-items: start; margin-bottom: 16px; }
.shs-sum { width: 100%; border-collapse: collapse; background: var(--shs-soft); font-size: .92em; }
.shs-sum td, .shs-sum th { padding: 8px 12px; border: 0; border-bottom: 1px solid var(--shs-line); text-align: left; vertical-align: top; }
.shs-sum td:last-child, .shs-sum th:last-child { text-align: right; white-space: nowrap; }
.shs-sum small { display: block; opacity: .7; }
.shs-sum tfoot th { font-size: 1.08em; }
.shs-sum tfoot td { border-bottom: 0; padding-top: 4px; padding-bottom: 4px; opacity: .8; }
.shs-hp { position: absolute !important; left: -9999px; height: 0; overflow: hidden; }
.shs-done { padding: 22px; background: var(--shs-soft); border-left: 4px solid var(--shs-accent); }
@media (max-width: 720px) {
	.shs { padding: 20px 16px; }
	.shs .shs-steps li { flex: 0 0 62px; padding-left: calc(var(--shs-tip) + 6px); }
	.shs .shs-steps li:first-child { flex-basis: 46px; }
	.shs .shs-steps li.is-current { flex: 1 1 0; }
	.shs .shs-steps li:not(.is-current) .shs-step-txt { display: none; }
	.shs .shs-steps li:not(.is-current) .shs-step-num::after { content: ""; }
	.shs-cols { grid-template-columns: 1fr; }
	.shs-hits button { grid-template-columns: 1fr auto; }
	.shs-hit-season { grid-column: 1; grid-row: 2; }
}
.shs .shs-prices table + table { margin-top: 14px; }
.shs .shs-intro { margin: 0 0 18px; font-size: 1.02em; line-height: 1.5; }
.shs .shs-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; margin: 0 0 18px; }
.shs .shs-card { margin: 0; border: 1px solid var(--shs-line); border-radius: 6px; background: #fff; color: var(--shs-ink); overflow: hidden; }
.shs .shs-card img { display: block; width: 100%; height: 150px; object-fit: cover; }
.shs .shs-card > div { padding: 12px 14px; }
.shs .shs-card strong { display: block; font-size: 1.02em; }
.shs .shs-card-sub { display: block; margin-top: 2px; font-size: .88em; opacity: .75; }
.shs .shs-card p { margin: 8px 0 0; font-size: .9em; line-height: 1.5; }
.shs .shs-card .shs-check { margin: 10px 0 0; font-weight: 600; }
.shs .shs-card details { margin-top: 8px; font-size: .95em; }
.shs .shs-card summary { cursor: pointer; color: var(--shs-accent); }
.shs .shs-accept { margin: 18px 0 10px; padding: 14px 16px; border: 1px solid var(--shs-line); border-radius: 6px; background: var(--shs-soft); }
.shs .shs-accept h3 { margin-top: 0; }
.shs .shs-accept a { color: var(--shs-accent); }

.shs .shs-whole { margin: 0 0 18px; padding: 12px 14px; border: 2px solid var(--shs-line); border-radius: 8px; background: var(--shs-soft); }
.shs .shs-whole.is-on { border-color: var(--shs-accent); }
.shs .shs-whole .shs-check { margin: 0 0 6px; }
.shs .shs-whole .shs-meta { margin: 0; }

/* Touristik: Reservierungsdialog – Kategorien mit Bild, Text, Belegungskalender und Auswahl */
.shs .shs-tou-head { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px 16px; margin: 0 0 18px; padding: 14px 16px; border-radius: 8px; background: var(--shs-accent-2); color: #fff; }
.shs .shs-tou-head label { color: #fff; font-weight: 600; }
.shs .shs-tou-head input, .shs .shs-tou-head select { width: 100%; margin-top: 4px; }
.shs .shs-tou-cat { margin: 0 0 18px; border: 1px solid var(--shs-accent-2); border-radius: 8px; overflow: hidden; }
.shs .shs-tou-cat-head { margin: 0; padding: 10px 16px; background: var(--shs-accent-2); color: #fff; font-size: 1.15em; }
.shs .shs-tou-cat-body { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.3fr) 240px 170px; gap: 18px; padding: 16px; align-items: start; }
.shs .shs-tou-img { display: block; width: 100%; height: auto; border-radius: 4px; }
.shs .shs-tou-text p { margin: 0 0 10px; }
.shs .shs-tou-text .shs-tou-pers { font-weight: 700; }
.shs .shs-tou-text ul { margin: 0; padding-left: 18px; }
.shs .shs-tou-cal-nav { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
.shs .shs-tou-cal-nav button { padding: 0 10px; border: 0; background: transparent; color: var(--shs-accent); font-size: 1.4em; line-height: 1; cursor: pointer; }
.shs .shs-tou-cal-nav button[disabled] { opacity: .25; cursor: default; }
.shs .shs-tou-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; font-size: .82em; text-align: center; }
.shs .shs-tou-cal-grid > * { display: block; padding: 4px 0; border: 0; border-radius: 2px; font: inherit; line-height: 1.4; }
.shs .shs-tou-cal-grid .is-dow { font-weight: 700; }
.shs .shs-tou-cal-grid .is-free { background: #ccf5a8; color: #2a5a10; cursor: pointer; }
.shs .shs-tou-cal-grid button.is-free:hover { outline: 2px solid var(--shs-accent); }
.shs .shs-tou-cal-grid .is-full { background: #f6d6dc; color: #9c2a3d; }
.shs .shs-tou-cal-grid .is-off { color: rgba(42,35,39,.35); }
.shs .shs-tou-cal-grid .is-sel { background: var(--shs-accent); color: #fff; }
.shs .shs-tou-act { text-align: right; }
.shs .shs-tou-act small { display: block; font-weight: 400; font-size: .8em; opacity: .75; }
.shs .shs-tou-from { margin: 0 0 12px; font-weight: 700; }
.shs .shs-tou-sel { display: block; margin: 0 0 8px; }
.shs .shs-tou-sel span { display: block; font-size: .85em; }
.shs .shs-tou-sel select { width: 100%; }
.shs .shs-tou-price { margin: 8px 0 0; font-size: 1.1em; font-weight: 700; }
.shs .shs-tou-na { margin: 0; color: #9c2a3d; font-weight: 600; }
.shs .shs-tou-bar { position: sticky; bottom: 0; z-index: 5; display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; justify-content: space-between; margin: 0 -30px -28px; padding: 14px 30px; border-top: 3px solid var(--shs-accent); background: #fff; box-shadow: 0 -4px 14px rgba(0,0,0,.08); }
@media (max-width: 980px) { .shs .shs-tou-cat-body { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .shs .shs-tou-act { text-align: left; } }
@media (max-width: 600px) { .shs .shs-tou-cat-body, .shs .shs-tou-head { grid-template-columns: minmax(0, 1fr); } .shs .shs-tou-bar { margin: 0 -16px -16px; padding: 12px 16px; } }

/* Eigenständige Seiten (Anmeldung, Teilnehmer) im Layout der Website */
.shs-standalone { padding: 140px 16px 60px; } /* Platz unter dem überlagernden Kopf der Website */
.shs.shs-page h1 { margin: 0 0 8px; color: var(--shs-accent); font-size: 1.8em; line-height: 1.2; }
.shs.shs-page h2 { margin: 26px 0 10px; color: var(--shs-accent); font-size: 1.25em; }
.shs.shs-page input[type=radio], .shs.shs-page input[type=checkbox] { width: auto; display: inline-block; margin: 0 6px 0 0; }

/* Schritt 1: links die Eingaben, rechts schmaler die Preise */
.shs .shs-s1.has-prices { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 380px); grid-template-areas: "dates prices" "rest prices"; gap: 0 28px; align-items: start; }
.shs .shs-s1.has-prices .shs-s1-prices { grid-area: prices; }
.shs .shs-s1.has-prices .shs-s1-dates { grid-area: dates; }
.shs .shs-s1.has-prices .shs-s1-rest { grid-area: rest; }
.shs .shs-s1.has-prices .shs-prices { margin: 0; }
.shs .shs-s1 .shs-prices th, .shs .shs-s1 .shs-prices td { padding-right: 8px; }
.shs .shs-s1 .shs-prices th:last-child, .shs .shs-s1 .shs-prices td:last-child { padding-right: 0; }
.shs .shs-more { margin: 0 0 16px; }
.shs .shs-more[open] { margin-bottom: 28px; }
.shs .shs-more > summary { cursor: pointer; font-weight: 600; color: var(--shs-accent); margin-bottom: 12px; }
.shs .shs-more > .shs-grid { margin-bottom: 12px; }
@media (max-width: 720px) {
	.shs .shs-s1.has-prices { grid-template-columns: minmax(0, 1fr); grid-template-areas: "dates" "prices" "rest"; }
	.shs .shs-s1.has-prices .shs-prices { margin: 0 0 18px; }
}
/* Anmeldeseite [schluesshof_anmeldung] mit dem Formular von WordPress */
.shs.shs-login { max-width: 460px; }
.shs .shs-ok { padding: 10px 12px; border-left: 4px solid #2e7d32; background: #edf7ee; color: #1b4d1e; }
.shs-login form p { margin: 0 0 14px; }
.shs-login input[type=password] { display: block; width: 100%; margin-top: 4px; padding: 9px 10px; border: 1px solid var(--shs-line); border-radius: 4px; background: #fff; color: var(--shs-ink); font: inherit; font-size: 1em; box-shadow: none; }
.shs-login .login-remember label { display: inline-flex; gap: 8px; align-items: center; font-weight: 400; }
.shs-login .login-remember input { width: auto; margin: 0; }
.shs-login #wp-submit { display: inline-block; padding: 11px 22px; border: 0; border-radius: 4px; background: var(--shs-accent); color: #fff; font: inherit; font-weight: 600; cursor: pointer; }
.shs-login #wp-submit:hover, .shs-login #wp-submit:focus-visible { background: #6d0034; }
.shs-login .cf-turnstile { margin: 0 0 14px; }
.shs-login a:not(.shs-btn), .shs-login a:not(.shs-btn):visited { color: var(--shs-accent); text-decoration: underline; }
.shs-login a:not(.shs-btn):hover { color: #6d0034; }
