/* Vorbereitete Gestaltungsregeln. Noch nicht in Servervorlagen eingebunden.
   Ausschließlich für neue Präsentationsbereiche mit Klasse steinmann-design.
   Kalender, Konto- und Zahlungsformulare NICHT mit dieser Klasse umschließen. */
.steinmann-design{--blue:#0874c9;--deep:#103555;--ink:#173a54;--pale:#eff8ff;--line:#d9e8f2}
.steinmann-design, .steinmann-design *{box-sizing:border-box}
.steinmann-design{scroll-behavior:smooth;scroll-padding-top:100px}
.steinmann-design{margin:0;font:16px/1.65 Arial,sans-serif;color:var(--ink);background:white}
:where(.steinmann-design) a{color:inherit}
:where(.steinmann-design) a:focus-visible, :where(.steinmann-design) summary:focus-visible{outline:3px solid #e59923;outline-offset:5px}
:where(.steinmann-design) .draft{background:var(--deep);color:white;text-align:center;font-size:12px;padding:7px 16px}
:where(.steinmann-design) .wrap{width:min(1180px,90%);margin:auto}
:where(.steinmann-design) header{border-bottom:1px solid var(--line);background:white}
:where(.steinmann-design) .nav{display:flex;align-items:center;justify-content:space-between;min-height:95px;gap:25px}
:where(.steinmann-design) .logo{width:195px;height:68px;object-fit:contain}
:where(.steinmann-design) .navlinks{display:flex;align-items:center;gap:27px;font-size:14px}
:where(.steinmann-design) .navlinks a{text-decoration:none}
:where(.steinmann-design) .btn{display:inline-flex;align-items:center;justify-content:center;gap:22px;background:var(--blue);color:white;padding:15px 24px;text-decoration:none;border-radius:5px;font-weight:bold;font-size:14px;border:1px solid transparent}
:where(.steinmann-design) .btn.secondary{background:white;color:var(--blue);border-color:#bed9ed}
:where(.steinmann-design) .hero{background:linear-gradient(120deg,#f3faff 10%,#eaf7ff 80%);position:relative;padding:65px 0 85px}
:where(.steinmann-design) .herogrid{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:50px}
:where(.steinmann-design) .label{display:flex;align-items:center;gap:9px;text-transform:uppercase;font-size:11px;font-weight:700;letter-spacing:1.8px;color:#1d70ab}
:where(.steinmann-design) .label:before{content:'';width:22px;height:2px;background:#1692d2}
:where(.steinmann-design) h1{font-size:clamp(43px,5.1vw,67px);letter-spacing:-2.7px;line-height:1.08;margin:23px 0}
:where(.steinmann-design) h1 span{color:var(--blue)}
:where(.steinmann-design) h2{font-size:clamp(30px,3.3vw,43px);letter-spacing:-1.3px;line-height:1.18;margin:17px 0 20px}
:where(.steinmann-design) h3{font-size:22px;line-height:1.3;margin:16px 0 12px}
:where(.steinmann-design) p{margin:0 0 20px;color:#536e82}
:where(.steinmann-design) .lead{font-size:18px;max-width:490px}
:where(.steinmann-design) .actions{display:flex;gap:12px;flex-wrap:wrap;margin:30px 0 23px}
:where(.steinmann-design) .small{font-size:12px;color:#496f8b}
:where(.steinmann-design) .photo{position:relative}
:where(.steinmann-design) .photo img{width:100%;height:440px;object-fit:cover;border-radius:9px 70px 9px 9px;background:#dceffc;box-shadow:0 20px 50px #145e8d15}
:where(.steinmann-design) .photo figcaption{font-size:10px;color:#546f82;text-align:right;margin-top:8px}
:where(.steinmann-design) .floating{position:absolute;bottom:40px;left:-22px;background:white;box-shadow:0 10px 35px #123c5920;padding:18px 25px;border-radius:8px;display:flex;align-items:center;gap:15px}
:where(.steinmann-design) .floating strong{display:block;font-size:16px}
:where(.steinmann-design) .floating small{font-size:12px;color:#547187}
:where(.steinmann-design) .spark{font-size:32px;color:var(--blue)}
:where(.steinmann-design) .strip{position:relative;margin-top:-26px;display:grid;grid-template-columns:repeat(3,1fr);background:white;box-shadow:0 10px 35px #164c6810;border:1px solid var(--line);border-radius:8px}
:where(.steinmann-design) .strip div{padding:24px 30px;border-right:1px solid var(--line);font-weight:600;font-size:14px}
:where(.steinmann-design) .strip div:last-child{border:0}
:where(.steinmann-design) .strip span{color:var(--blue);margin-right:13px}
:where(.steinmann-design) .section{padding:85px 0}
:where(.steinmann-design) .head{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:30px}
:where(.steinmann-design) .head p{max-width:355px;margin-bottom:22px}
:where(.steinmann-design) .services{display:grid;grid-template-columns:repeat(3,1fr);gap:23px}
:where(.steinmann-design) .card{padding:30px;border:1px solid var(--line);border-radius:8px;background:white;transition:transform .2s,box-shadow .2s}
:where(.steinmann-design) .card:hover{transform:translateY(-4px);box-shadow:0 15px 25px #184c7310}
:where(.steinmann-design) .icon{width:52px;height:52px;border-radius:12px;background:#e9f6ff;display:grid;place-items:center;color:var(--blue)}
:where(.steinmann-design) svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
:where(.steinmann-design) .card p{font-size:15px;min-height:100px}
:where(.steinmann-design) .card a{color:var(--blue);font-size:14px;text-decoration:none;font-weight:bold}
:where(.steinmann-design) .hygiene{background:var(--pale)}
:where(.steinmann-design) .hygienegrid{display:grid;grid-template-columns:.85fr 1fr;gap:75px;align-items:center}
:where(.steinmann-design) .hygieneart{background:linear-gradient(145deg,#087bcb,#07538d);border-radius:12px;padding:40px;color:white;min-height:380px;position:relative;overflow:hidden}
:where(.steinmann-design) .hygieneart:after{content:'';width:230px;height:230px;border:1px solid #ffffff20;position:absolute;right:-80px;top:-80px;border-radius:50%}
:where(.steinmann-design) .hygieneart .bigicon{width:80px;height:80px;stroke:white;margin-bottom:30px}
:where(.steinmann-design) .hygieneart h3{font-size:34px;margin-top:0}
:where(.steinmann-design) .hygieneart p{color:#dfF2ff}
:where(.steinmann-design) .tags{display:flex;flex-wrap:wrap;gap:9px}
:where(.steinmann-design) .tags span{border:1px solid #ffffff50;padding:5px 11px;border-radius:30px;font-size:12px}
:where(.steinmann-design) .points{padding:0;list-style:none}
:where(.steinmann-design) .points li{display:flex;gap:18px;margin:23px 0}
:where(.steinmann-design) .tick{flex-shrink:0;width:25px;height:25px;display:grid;place-items:center;color:var(--blue);background:#d8edfc;border-radius:50%;font-weight:bold}
:where(.steinmann-design) .points strong{display:block;margin-bottom:5px}
:where(.steinmann-design) .points p{font-size:14px;margin:0}
:where(.steinmann-design) .note{font-size:12px;border-left:3px solid #83c0e9;padding-left:14px;margin-top:20px}
:where(.steinmann-design) .process{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:40px}
:where(.steinmann-design) .step{border-top:1px solid #bad8ec;padding-top:25px}
:where(.steinmann-design) .step>span{font-size:13px;color:var(--blue);font-weight:bold}
:where(.steinmann-design) .step p{font-size:15px}
:where(.steinmann-design) .faqarea{background:#f7fafc}
:where(.steinmann-design) .faqgrid{display:grid;grid-template-columns:.8fr 1.2fr;gap:75px}
:where(.steinmann-design) details{border-bottom:1px solid #cddde8;padding:20px 0}
:where(.steinmann-design) details:first-child{padding-top:0}
:where(.steinmann-design) summary{cursor:pointer;font-size:16px;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:20px}
:where(.steinmann-design) summary:after{content:'+';font-size:22px;color:var(--blue)}
:where(.steinmann-design) details[open] summary:after{content:'−'}
:where(.steinmann-design) details p{font-size:14px;margin:15px 0 0}
:where(.steinmann-design) .contact{background:var(--deep);color:white}
:where(.steinmann-design) .contactgrid{display:grid;grid-template-columns:1fr 1fr;gap:80px}
:where(.steinmann-design) .contact .label{color:#9bd6ff}
:where(.steinmann-design) .contact p{color:#c3d9e9}
:where(.steinmann-design) .contactbox{border:1px solid #50718b;border-radius:8px;padding:30px}
:where(.steinmann-design) .contactbox>a{font-size:clamp(16px,2vw,23px);color:white;overflow-wrap:anywhere}
:where(.steinmann-design) .contactbox p{font-size:14px;margin-top:22px}
:where(.steinmann-design) .contact .btn{background:white;color:var(--deep)}
:where(.steinmann-design) footer{padding:35px 0}
:where(.steinmann-design) .foot{display:flex;justify-content:space-between;gap:25px;font-size:12px}
:where(.steinmann-design) .review{background:#f2f6f9;padding:22px 0;font-size:12px;color:#567082}
:where(.steinmann-design) .review summary{font-size:12px}
:where(.steinmann-design) .review details{border:0;padding:0}
:where(.steinmann-design) .review p{font-size:12px}
:where(.steinmann-design) .research a{margin-right:15px}
:where(.steinmann-design) .skip{position:absolute;left:0;top:-80px;background:white;padding:12px;z-index:10}
:where(.steinmann-design) .skip:focus{top:0}
@media(max-width:800px){:where(.steinmann-design) .nav{flex-wrap:wrap;padding:14px 0;gap:5px}
:where(.steinmann-design) .logo{width:160px;height:55px}
:where(.steinmann-design) .navlinks{gap:16px;flex-wrap:wrap;font-size:13px}
:where(.steinmann-design) .navlinks .btn{padding:9px 12px}
:where(.steinmann-design) .herogrid, :where(.steinmann-design) .hygienegrid, :where(.steinmann-design) .faqgrid, :where(.steinmann-design) .contactgrid{grid-template-columns:1fr;gap:35px}
:where(.steinmann-design) .hero{padding:40px 0 65px}
:where(.steinmann-design) h1{letter-spacing:-1.8px}
:where(.steinmann-design) .photo{margin:0}
:where(.steinmann-design) .photo img{height:340px}
:where(.steinmann-design) .floating{left:12px;bottom:35px}
:where(.steinmann-design) .strip{grid-template-columns:1fr}
:where(.steinmann-design) .strip div{border-right:0;border-bottom:1px solid var(--line);padding:15px 23px}
:where(.steinmann-design) .section{padding:55px 0}
:where(.steinmann-design) .head{display:block}
:where(.steinmann-design) .services, :where(.steinmann-design) .process{grid-template-columns:1fr;gap:20px}
:where(.steinmann-design) .card p{min-height:0}
:where(.steinmann-design) .foot{flex-direction:column}
:where(.steinmann-design) .hygieneart{min-height:0}
:where(.steinmann-design) .lead{font-size:17px}
}
@media(prefers-reduced-motion:reduce){.steinmann-design{scroll-behavior:auto}
:where(.steinmann-design) .card{transition:none}
:where(.steinmann-design) .card:hover{transform:none}
}

/* Isolate the approved design from legacy typography; no calendar/form selectors. */
.steinmann-design {text-align:left; font:16px/1.65 Arial,sans-serif; color:#173a54; background:#fff;}
.steinmann-design h1, .steinmann-design h2, .steinmann-design h3 {text-transform:none;font-family:Arial,sans-serif;font-weight:700;}
.steinmann-design .btn {line-height:1.65;text-transform:none;}
body .steinmann-design section {margin-bottom:0;}
.steinmann-design figure {margin:1em 40px;}
#header_outer {padding:0;border-bottom:1px solid #d9e8f2;}
#header_outer .nav #logo {margin:0;flex-shrink:0;}
#header_outer .nav {flex-wrap:wrap;gap:12px;padding:12px 0;}
#header_outer .navlinks {gap:18px;flex-wrap:wrap;}
.steinmann-widgets:empty {display:none;}
#ueber-uns {padding:0;}
#ueber-uns > .row {margin:0;}
#content_5 {padding:0;}
.steinmann-original .section {padding-top:25px;padding-bottom:35px;}
.steinmann-cms-original {padding-top:20px;}
.steinmann-cms-original h1 {font-size:30px;letter-spacing:normal;}
#footer {background:#103555;color:#fff;margin-top:0;}
#footer a {color:inherit;}
@media(max-width:800px) {
 .steinmann-design figure {margin:0;}
 #header_outer .navlinks {gap:14px;}
}

/* Rein visuelle Ergänzung. Vorhandene Zustandsklassen bleiben maßgeblich.
   Kein display/visibility/pointer-events, keine Formular- oder Zahlungsregeln. */
:is(#kalender,.booking_calendar) {--cal-blue:#0867b2;--cal-ink:#173a54;--cal-line:#c4d8e7;}
:is(#kalender,.booking_calendar) .calendar-wrapper {
  background:#fff;border:1px solid #d9e8f2;border-radius:18px;
  padding:16px;box-shadow:0 12px 32px #10355512;
  font:16px/1.5 Arial,sans-serif;color:var(--cal-ink);
}
:is(#kalender,.booking_calendar) .fwxcalendar {background:#fff;border-radius:12px;box-shadow:none;}
:is(#kalender,.booking_calendar) .fwxcalendar table {table-layout:fixed;border-collapse:separate;border-spacing:6px;}
:is(#kalender,.booking_calendar) .fwxcalendar table > * > * > * {border-width:0;}
:is(#kalender,.booking_calendar) .fwxcalendar thead th {padding:10px 4px 16px;}
:is(#kalender,.booking_calendar) .fwxcalendar-view-switch a {color:var(--cal-ink);font-size:22px;font-weight:700;text-decoration:none;padding:6px 10px;border-radius:8px;}
:is(#kalender,.booking_calendar) .fwxcalendar-nav-button {
  min-width:44px;height:44px;border:1px solid var(--cal-line);border-radius:12px;
  background:#f0f7fc;color:#0867b2;cursor:pointer;font-size:18px;
}
:is(#kalender,.booking_calendar) .fwxcalendar-nav-button:hover {background:#deeffc;border-color:#0867b2;}
:is(#kalender,.booking_calendar) .fwxcalendar-day-header {
  color:#536e82;font:700 12px/1.5 Arial,sans-serif;text-align:center;padding:8px 0;
}
:is(#kalender,.booking_calendar) .fwxcalendar-cell:not(.fwxcalendar-day-header) {
  height:76px;padding:11px 12px 24px;border:1px solid #e1eaf1;border-radius:10px;
  background:#f6f9fc;vertical-align:top;color:#536e82;font-size:16px;
}
:is(#kalender,.booking_calendar) .fwxcalendar-cell > .cell-text {color:inherit;font-style:normal;}
:is(#kalender,.booking_calendar) .fwxcalendar-cell.not-current {background:#fafcfd;color:#596c7b;border-color:#eef2f6;}
:is(#kalender,.booking_calendar) .fwxcalendar-cell.has-event {
  background:#e7f3ff !important;border:2px solid #6ba7d4;color:#124d7b;font-weight:700;
}
:is(#kalender,.booking_calendar) .fwxcalendar-cell.has-event::after {
  content:'Termine';position:absolute;bottom:7px;left:12px;font:700 10px/1.2 Arial,sans-serif;color:#124d7b;
}
:is(#kalender,.booking_calendar) .fwxcalendar-cell.today {box-shadow:inset 0 0 0 2px #b57713;}
:is(#kalender,.booking_calendar) .fwxcalendar-cell.selected {
  background:#0867b2 !important;border:2px solid #064e86;color:#fff;box-shadow:0 3px 8px #0867b233;
}
:is(#kalender,.booking_calendar) .fwxcalendar-cell.selected > .cell-text,
:is(#kalender,.booking_calendar) .fwxcalendar-cell.selected::after {color:#fff;}
:is(#kalender,.booking_calendar) .fwxcalendar-cell.selected::after {content:'✓';position:absolute;bottom:7px;left:12px;font:700 14px/1.2 Arial,sans-serif;}
:is(#kalender,.booking_calendar) .fwxcalendar-cell:not(.selected):not(.disabled):hover {border-color:#0867b2;box-shadow:inset 0 0 0 1px #0867b2;}
:is(#kalender,.booking_calendar) .fwxcalendar-cell.disabled {color:#596c7b;box-shadow:none;}
:is(#kalender,.booking_calendar) .fwxcalendar tfoot a {color:#124d7b;text-decoration:underline;text-underline-offset:3px;font-size:14px;}
:is(#kalender,.booking_calendar) .booking-slots-header {font:700 22px/1.4 Arial,sans-serif;color:#173a54;margin:28px 0 16px;white-space:normal;}
:is(#kalender,.booking_calendar) .booking-slots-header::before,
:is(#kalender,.booking_calendar) .booking-slots-header::after {background:#bed8eb;}
:is(#kalender,.booking_calendar) .booking-slots-list .booking-slot {
  background:#edf6ff !important;color:#124d7b;border:1px solid #6ba7d4;border-radius:10px;
  padding:12px 16px;margin:0 8px 10px 0;min-height:44px;font:600 15px/1.5 Arial,sans-serif;
}
:is(#kalender,.booking_calendar) .booking-slots-list .booking-slot:hover {border-color:#0867b2;box-shadow:inset 0 0 0 1px #0867b2;}
:is(#kalender,.booking_calendar) .booking-slots-list .booking-slot.selected {background:#0867b2 !important;color:white;border-color:#064e86;box-shadow:0 3px 8px #0867b233;}
:is(#kalender,.booking_calendar) .booking-slots-list .booking-slot.selected::after {content:' ✓';font-weight:700;}
:is(#kalender,.booking_calendar) .fwxcalendar :focus-visible,
:is(#kalender,.booking_calendar) .booking-slot:focus-visible {outline:3px solid #9a5700;outline-offset:3px;}
@media(max-width:600px) {
 :is(#kalender,.booking_calendar) .calendar-wrapper {padding:7px;border-radius:12px;}
 :is(#kalender,.booking_calendar) .fwxcalendar table {border-spacing:3px;}
 :is(#kalender,.booking_calendar) .fwxcalendar-view-switch a {font-size:18px;padding:6px 2px;}
 :is(#kalender,.booking_calendar) .fwxcalendar-cell:not(.fwxcalendar-day-header) {height:58px;padding:6px 4px 18px;font-size:14px;border-radius:7px;}
 :is(#kalender,.booking_calendar) .fwxcalendar-cell.has-event::after {content:'•';left:5px;bottom:2px;font-size:19px;}
 :is(#kalender,.booking_calendar) .fwxcalendar-cell.selected::after {content:'✓';font-size:12px;bottom:3px;}
 :is(#kalender,.booking_calendar) .booking-slots-header {font-size:19px;}
 :is(#kalender,.booking_calendar) .booking-slots-list .booking-slot {padding:10px 12px;margin-right:5px;font-size:14px;}
}

/* Nur Gestaltung bestehender Paket- und Kalenderbereiche. Keine Zustandsregeln. */
#pakete, #kalender {font:16px/1.65 Arial,sans-serif;color:#173a54;background:#f3f9fd;box-sizing:border-box;max-width:none;width:100%;padding:72px max(5%,calc((100% - 1180px)/2));margin:0;}
#pakete *, #kalender * {box-sizing:border-box;}
#pakete > .row, #kalender > .row {margin-left:0;margin-right:0;}
#pakete > .row > .content, #kalender > .row > .content {padding-left:0;padding-right:0;}
#pakete h1, #kalender h1 {font:700 clamp(32px,3.3vw,43px)/1.18 Arial,sans-serif;letter-spacing:-1.3px;text-transform:none;color:#173a54;text-align:left;margin:0 0 22px;}
#pakete h2, #kalender h2 {font:700 28px/1.25 Arial,sans-serif;letter-spacing:-.6px;text-transform:none;color:#173a54;}
#pakete p, #kalender .page-content p {font:400 16px/1.7 Arial,sans-serif;color:#536e82;text-align:left;margin:0 0 18px;}
#pakete strong, #kalender .page-content strong {color:#173a54;}
#pakete .eye-catcher {display:flex;flex-wrap:wrap;gap:12px 28px;padding:0 0 0 20px;color:#536e82;background:transparent;border-radius:0;font:400 15px/1.6 Arial,sans-serif;}
#pakete .eye-catcher li {padding:0;margin:0;font:inherit;color:inherit;}
#pakete .booking_slottypes > .row {background:#fff !important;border:1px solid #d9e8f2;border-radius:18px;margin:24px 0 !important;padding:32px !important;box-shadow:0 8px 28px #10355508;}
#pakete .booking_slottypes > .row > div {max-width:100%;flex-basis:100%;margin-left:0;padding:0;}
#pakete .justify-content-center {justify-content:flex-start !important;gap:28px;margin:0;}
#pakete .justify-content-center > .col-md-auto {width:240px;flex:0 0 240px;padding:0;}
#pakete .justify-content-center > .col-md-6 {flex:1;max-width:none;padding:0;min-width:0;}
#pakete .img-responsive img {width:100%;max-width:240px;height:220px;object-fit:cover;border-radius:12px;}
#pakete .slottype-description {padding:0 !important;}
#pakete .slottype-description h2 {margin:0 0 20px;}
#pakete .slottype-description ul {padding-left:20px;line-height:1.8;color:#536e82;}
#pakete .slottype-description li strong {font-weight:400;color:#536e82;}
#pakete .btn {display:inline-flex;align-items:center;justify-content:center;min-height:48px;background:#0874c9;color:#fff;border:1px solid #0874c9;border-radius:5px;padding:12px 24px;font:700 14px/1.5 Arial,sans-serif;text-decoration:none;box-shadow:none;}
#pakete .btn:hover {background:#0867b2;border-color:#0867b2;}
#pakete a:focus-visible {outline:3px solid #9a5700;outline-offset:4px;}
#kalender {padding-top:64px;border-top:1px solid #d9e8f2;padding-bottom:80px;}
#kalender .booking_calendar > .page-content {background:#fff;border:1px solid #d9e8f2;border-left:4px solid #0874c9;border-radius:12px;padding:24px 28px;margin-bottom:28px;text-align:left;}
#kalender .booking_calendar > .page-content p:last-child {margin-bottom:0;}
#kalender .calendar-wrapper {margin-top:0;}
#kalender .booking-slots-header {color:#173a54;}
@media(max-width:700px) {
 #pakete, #kalender {padding:44px 5%;}
 #pakete .booking_slottypes > .row {padding:22px !important;}
 #pakete .justify-content-center {gap:22px;}
 #pakete .justify-content-center > .col-md-auto, #pakete .justify-content-center > .col-md-6 {flex:0 0 100%;max-width:100%;width:100%;}
 #pakete .img-responsive img {max-width:100%;height:180px;}
 #pakete h2 {font-size:25px;}
 #kalender .booking_calendar > .page-content {padding:20px;}
 #kalender .calendar-wrapper {padding:5px;}
}
