/**
 * RedSea Tours – Erweiterungen (Buchung, Bewertungen, Filter, Merkliste,
 * Urlaubsspaß). Nutzt ausschließlich die Design-Tokens aus critical.css,
 * damit alles zum bestehenden Erscheinungsbild passt.
 */

/* ==========================================================================
   1. Anfrageformular
   ========================================================================== */

.rst-bstep {
	margin: 0 0 var(--rst-space-6);
	padding: 0;
	border: 0;
	min-width: 0;
}

.rst-bstep__title {
	display: flex;
	align-items: center;
	gap: var(--rst-space-3);
	margin-bottom: var(--rst-space-4);
	padding: 0;
	font-family: var(--rst-font-display);
	font-size: var(--rst-fs-lg);
	font-weight: 700;
	color: var(--rst-deep-900);
}

.rst-bstep__num {
	display: inline-grid;
	place-items: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--rst-deep-800);
	color: #fff;
	font-family: var(--rst-font-data);
	font-size: var(--rst-fs-sm);
}

.rst-cal-fallback[hidden] {
	display: none;
}

/* Kalender */
.rst-cal {
	max-width: 440px;
	padding: var(--rst-space-4);
	border: 1px solid var(--rst-line);
	border-radius: var(--rst-radius-lg);
	background: var(--rst-surface);
}

.rst-cal[aria-invalid="true"] {
	border-color: var(--rst-error);
	box-shadow: 0 0 0 3px rgba(179, 38, 30, 0.1);
}

.rst-cal__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: var(--rst-space-3);
}

.rst-cal__month {
	font-family: var(--rst-font-display);
	font-size: var(--rst-fs-md);
}

.rst-cal__nav {
	display: grid;
	place-items: center;
	width: 38px;
	height: 38px;
	border: 1px solid var(--rst-line);
	border-radius: 50%;
	background: #fff;
	font-size: 1.25rem;
	line-height: 1;
	color: var(--rst-deep-800);
	cursor: pointer;
}

.rst-cal__nav:hover:not(:disabled) {
	border-color: var(--rst-lagoon-500);
	background: var(--rst-lagoon-50);
}

.rst-cal__nav:disabled {
	opacity: 0.35;
	cursor: default;
}

.rst-cal__grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 4px;
}

.rst-cal__dow {
	padding-bottom: 4px;
	font-family: var(--rst-font-data);
	font-size: var(--rst-fs-2xs);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-align: center;
	text-transform: uppercase;
	color: var(--rst-ink-soft);
}

.rst-cal__day {
	position: relative;
	display: grid;
	place-items: center;
	aspect-ratio: 1;
	min-height: 38px;
	padding: 0;
	border: 0;
	border-radius: var(--rst-radius);
	background: var(--rst-lagoon-50);
	font: inherit;
	font-size: var(--rst-fs-sm);
	color: var(--rst-deep-900);
	cursor: pointer;
	transition: background-color var(--rst-duration) var(--rst-ease), color var(--rst-duration) var(--rst-ease);
}

.rst-cal__day b {
	font-weight: 600;
}

.rst-cal__day small {
	position: absolute;
	right: 3px;
	bottom: 1px;
	font-size: 0.5625rem;
	font-weight: 700;
	color: var(--rst-amber-700);
}

.rst-cal__day:hover:not(:disabled) {
	background: var(--rst-lagoon-100);
}

.rst-cal__day.is-few {
	background: var(--rst-amber-100);
}

.rst-cal__day.is-selected,
.rst-cal__day.is-selected:hover {
	background: var(--rst-deep-800);
	color: #fff;
}

.rst-cal__day.is-selected small {
	color: var(--rst-amber-200);
}

.rst-cal__day:disabled {
	background: transparent;
	color: var(--rst-ink-soft);
	opacity: 0.45;
	cursor: default;
}

.rst-cal__day.is-full:disabled,
.rst-cal__day.is-closed:disabled {
	opacity: 0.6;
	background: repeating-linear-gradient(-45deg, var(--rst-shell) 0 4px, #fff 4px 8px);
	text-decoration: line-through;
}

.rst-cal__legend {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	margin: var(--rst-space-3) 0 0;
	font-size: var(--rst-fs-xs);
	color: var(--rst-ink-muted);
}

.rst-cal__legend span {
	display: inline-block;
	width: 12px;
	height: 12px;
	border-radius: 3px;
}

.rst-cal__legend .is-few {
	background: var(--rst-amber-100);
	border: 1px solid var(--rst-amber-200);
}

.rst-cal__legend .is-full {
	margin-left: 8px;
	background: repeating-linear-gradient(-45deg, var(--rst-line) 0 3px, #fff 3px 6px);
}

.rst-cal__chosen {
	margin: var(--rst-space-3) 0 0;
	font-size: var(--rst-fs-sm);
	color: var(--rst-ink-muted);
}

.rst-cal__chosen strong {
	color: var(--rst-deep-800);
}

/* Startzeiten */
.rst-times {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--rst-space-2);
	margin-top: var(--rst-space-4);
}

.rst-times__label {
	margin-right: var(--rst-space-2);
	font-size: var(--rst-fs-sm);
	font-weight: 600;
}

.rst-times__label span {
	color: var(--rst-error);
}

.rst-times__opt input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.rst-times__opt span {
	display: inline-block;
	padding: 0.5rem 1.1rem;
	border: 1.5px solid var(--rst-line-strong);
	border-radius: var(--rst-radius-pill);
	font-family: var(--rst-font-data);
	font-weight: 600;
	color: var(--rst-deep-900);
	cursor: pointer;
	transition: all var(--rst-duration) var(--rst-ease);
}

.rst-times__opt input:checked + span {
	border-color: var(--rst-deep-800);
	background: var(--rst-deep-800);
	color: #fff;
}

.rst-times__opt input:focus-visible + span {
	outline: var(--rst-focus);
	outline-offset: 2px;
}

/* Teilnehmer */
.rst-steppers {
	display: grid;
	gap: var(--rst-space-3);
	max-width: 440px;
}

.rst-stepper-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--rst-space-3);
	padding: var(--rst-space-3) var(--rst-space-4);
	border: 1px solid var(--rst-line);
	border-radius: var(--rst-radius-lg);
}

.rst-stepper-row label {
	display: grid;
	margin: 0;
	font-weight: 600;
}

.rst-stepper-row label small {
	font-weight: 400;
	font-size: var(--rst-fs-xs);
	color: var(--rst-ink-soft);
}

.rst-stepper {
	display: flex;
	align-items: center;
	gap: var(--rst-space-1);
}

.rst-stepper button {
	display: grid;
	place-items: center;
	width: 38px;
	height: 38px;
	border: 1.5px solid var(--rst-line-strong);
	border-radius: 50%;
	background: #fff;
	font-size: 1.2rem;
	line-height: 1;
	color: var(--rst-deep-800);
	cursor: pointer;
}

.rst-stepper button:hover {
	border-color: var(--rst-lagoon-500);
	background: var(--rst-lagoon-50);
}

.rst-bookingform .rst-stepper input {
	width: 3.2rem;
	min-height: 38px;
	padding: 0;
	border: 0;
	background: transparent;
	font-family: var(--rst-font-data);
	font-size: var(--rst-fs-lg);
	font-weight: 600;
	text-align: center;
	-moz-appearance: textfield;
}

.rst-stepper input::-webkit-outer-spin-button,
.rst-stepper input::-webkit-inner-spin-button {
	margin: 0;
	-webkit-appearance: none;
}

/* Extras */
.rst-extras {
	display: grid;
	gap: var(--rst-space-2);
	margin-top: var(--rst-space-5);
}

.rst-extras__title {
	margin: 0 0 var(--rst-space-1);
	font-size: var(--rst-fs-sm);
	font-weight: 600;
}

.rst-extras__opt {
	display: flex;
	align-items: center;
	gap: var(--rst-space-3);
	padding: var(--rst-space-3) var(--rst-space-4);
	border: 1.5px solid var(--rst-line);
	border-radius: var(--rst-radius-lg);
	cursor: pointer;
	transition: border-color var(--rst-duration) var(--rst-ease), background-color var(--rst-duration) var(--rst-ease);
}

.rst-extras__opt:hover {
	border-color: var(--rst-lagoon-400);
}

.rst-extras__opt input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.rst-extras__box {
	display: grid;
	place-items: center;
	flex: none;
	width: 22px;
	height: 22px;
	border: 1.5px solid var(--rst-line-strong);
	border-radius: 6px;
	color: transparent;
}

.rst-extras__opt:has(input:checked) {
	border-color: var(--rst-lagoon-600);
	background: var(--rst-lagoon-50);
}

.rst-extras__opt input:checked + .rst-extras__box {
	border-color: var(--rst-lagoon-600);
	background: var(--rst-lagoon-600);
	color: #fff;
}

.rst-extras__opt input:focus-visible + .rst-extras__box {
	outline: var(--rst-focus);
	outline-offset: 2px;
}

.rst-extras__name {
	flex: 1;
	font-weight: 500;
}

.rst-extras__price {
	display: grid;
	justify-items: end;
	font-family: var(--rst-font-data);
	font-weight: 600;
	white-space: nowrap;
	color: var(--rst-deep-800);
}

.rst-extras__price small {
	font-family: var(--rst-font-body);
	font-size: var(--rst-fs-2xs);
	font-weight: 400;
	color: var(--rst-ink-soft);
}

/* Abholung */
.rst-pickup {
	display: flex;
	align-items: center;
	gap: var(--rst-space-2);
	margin: calc(var(--rst-space-2) * -1) 0 0;
	padding: var(--rst-space-3) var(--rst-space-4);
	border-radius: var(--rst-radius);
	background: var(--rst-lagoon-50);
	font-size: var(--rst-fs-sm);
	font-weight: 600;
	color: var(--rst-deep-800);
}

.rst-pickup[hidden] {
	display: none;
}

.rst-pickup .rst-icon {
	color: var(--rst-lagoon-600);
}

/* Zusammenfassung */
.rst-bsum {
	padding: var(--rst-space-4) var(--rst-space-5);
	border: 1px solid var(--rst-line);
	border-radius: var(--rst-radius-lg);
	background: var(--rst-shell);
}

.rst-bsum[hidden] {
	display: none;
}

.rst-bsum__title {
	margin: 0 0 var(--rst-space-3);
	font-family: var(--rst-font-data);
	font-size: var(--rst-fs-2xs);
	font-weight: 600;
	letter-spacing: var(--rst-tracking-wide);
	text-transform: uppercase;
	color: var(--rst-lagoon-700);
}

.rst-bsum__line {
	display: flex;
	justify-content: space-between;
	gap: var(--rst-space-3);
	padding: 0.35rem 0;
	font-size: var(--rst-fs-sm);
	color: var(--rst-ink-muted);
}

.rst-bsum__line span:last-child {
	font-family: var(--rst-font-data);
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
	color: var(--rst-ink);
}

.rst-bsum__line--total {
	margin-top: var(--rst-space-2);
	padding-top: var(--rst-space-3);
	border-top: 1px dashed var(--rst-line-strong);
	font-size: var(--rst-fs-lg);
	font-weight: 700;
	color: var(--rst-deep-900);
}

.rst-bsum__line--total span:last-child {
	color: var(--rst-deep-800);
}

.rst-bsum__onrequest {
	margin: 0;
	font-weight: 600;
}

/* Gutschein */
.rst-coupon {
	margin-top: var(--rst-space-3);
	padding-top: var(--rst-space-3);
	border-top: 1px solid var(--rst-line);
}

.rst-coupon summary {
	display: inline-flex;
	align-items: center;
	gap: var(--rst-space-2);
	font-size: var(--rst-fs-sm);
	font-weight: 600;
	color: var(--rst-lagoon-700);
	cursor: pointer;
	list-style: none;
}

.rst-coupon summary::-webkit-details-marker {
	display: none;
}

.rst-coupon__row {
	display: flex;
	gap: var(--rst-space-2);
	margin-top: var(--rst-space-3);
}

.rst-coupon__row .rst-input {
	flex: 1;
	min-width: 0;
	text-transform: uppercase;
}

.rst-coupon__msg {
	margin: var(--rst-space-2) 0 0;
	font-size: var(--rst-fs-sm);
}

.rst-coupon__msg:empty {
	display: none;
}

.rst-coupon__msg.is-ok {
	color: var(--rst-success);
	font-weight: 600;
}

.rst-coupon__msg.is-error {
	color: var(--rst-error);
}

.rst-bookingform__msg {
	margin: var(--rst-space-5) 0 0;
}

.rst-bookingform__msg[hidden] {
	display: none;
}

/* Erfolg */
.rst-bookingform__done {
	padding: var(--rst-space-7) var(--rst-space-5);
	text-align: center;
}

.rst-bookingform__done[hidden] {
	display: none;
}

.rst-bookingform__done:focus {
	outline: none;
}

.rst-bookingform__doneicon {
	display: inline-grid;
	place-items: center;
	width: 64px;
	height: 64px;
	margin-bottom: var(--rst-space-3);
	border-radius: 50%;
	background: var(--rst-lagoon-100);
	color: var(--rst-lagoon-700);
}

.rst-bookingform__done h3 {
	margin: 0 0 var(--rst-space-2);
}

.rst-bookingform__done p {
	max-width: 32em;
	margin: 0 auto;
	color: var(--rst-ink-muted);
}

/* ==========================================================================
   2. Abholzeiten (Tabelle mit Suche)
   ========================================================================== */

.rst-pickups {
	margin-block: var(--rst-space-5);
}

.rst-pickups__search {
	display: flex;
	align-items: center;
	gap: var(--rst-space-2);
	max-width: 420px;
	margin-bottom: var(--rst-space-3);
	padding: 0 var(--rst-space-3);
	border: 1.5px solid var(--rst-line-strong);
	border-radius: var(--rst-radius-pill);
	color: var(--rst-ink-soft);
	background: #fff;
}

.rst-pickups__search input {
	flex: 1;
	min-width: 0;
	height: 44px;
	border: 0;
	background: transparent;
	font: inherit;
}

.rst-pickups__search input:focus {
	outline: none;
}

.rst-pickups__scroll {
	overflow-x: auto;
	border: 1px solid var(--rst-line);
	border-radius: var(--rst-radius-lg);
}

.rst-pickups__table {
	width: 100%;
	margin: 0;
	border-collapse: collapse;
	font-size: var(--rst-fs-sm);
	background: #fff;
}

.rst-pickups__table th,
.rst-pickups__table td {
	padding: 0.7rem 1rem;
	border-bottom: 1px solid var(--rst-line);
	text-align: left;
}

.rst-pickups__table th {
	font-family: var(--rst-font-data);
	font-size: var(--rst-fs-2xs);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	background: var(--rst-shell);
	color: var(--rst-ink-muted);
}

.rst-pickups__table tr:last-child td {
	border-bottom: 0;
}

.rst-pickups__empty {
	margin-top: var(--rst-space-3);
	color: var(--rst-ink-muted);
}

/* ==========================================================================
   Gästebewertungen
   ========================================================================== */

.rst-review.is-more { display: none; }
.rst-reviews.is-all .rst-review.is-more { display: block; }
.rst-reviews__more { margin-top: var(--rst-space-5); text-align: center; }
.rst-reviews.is-all .rst-reviews__more { display: none; }

.rst-review__date { font-family: var(--rst-font-data); font-size: var(--rst-fs-xs, .75rem); }
.rst-review__verified {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 2px 8px;
	border-radius: 999px;
	background: #e7f6ee;
	color: #15803d !important;
	font-size: var(--rst-fs-xs, .75rem);
	font-weight: 600;
}

.rst-rform { margin-top: var(--rst-space-6); }
.rst-rform__toggle { list-style: none; cursor: pointer; display: inline-flex; gap: var(--rst-space-2); }
.rst-rform__toggle::-webkit-details-marker { display: none; }
.rst-rform[open] .rst-rform__toggle { display: none; }

.rst-rform__form {
	padding: var(--rst-space-6);
	background: var(--rst-surface);
	border: 1px solid var(--rst-line);
	border-radius: var(--rst-radius-xl);
	box-shadow: var(--rst-shadow-md);
}
.rst-rform__head { display: flex; flex-wrap: wrap; align-items: center; gap: var(--rst-space-3); margin-bottom: var(--rst-space-4); }
.rst-rform__head h3 { margin: 0; font-size: var(--rst-fs-xl); }
.rst-rform__stars { margin: 0 0 var(--rst-space-4); padding: 0; border: 0; }
.rst-rform__stars legend { margin-bottom: var(--rst-space-2); font-size: var(--rst-fs-sm); font-weight: 600; }
.rst-rform__stars .rst-req { color: var(--rst-error); }

/* Rechts-nach-links-Reihenfolge im DOM, damit „~" alle Sterne links vom
   gewählten einfärbt – ohne JavaScript. */
.rst-starpick { display: inline-flex; flex-direction: row-reverse; gap: 4px; }
.rst-starpick input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.rst-starpick label {
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	border-radius: var(--rst-radius);
	background: var(--rst-shell);
	color: var(--rst-line-strong);
	font-size: 1.75rem;
	line-height: 1;
	cursor: pointer;
	transition: color .15s, transform .15s, background .15s;
}
.rst-starpick label:hover,
.rst-starpick label:hover ~ label,
.rst-starpick input:checked ~ label { color: var(--rst-amber-500); background: #fff7e6; }
.rst-starpick label:hover { transform: scale(1.08); }
.rst-starpick input:focus-visible + label { outline: 2px solid var(--rst-lagoon-600); outline-offset: 2px; }

.rst-rform .rst-field { margin: 0 0 var(--rst-space-4); }
.rst-rform .rst-input, .rst-rform .rst-textarea { width: 100%; min-height: 50px; font-size: 16px; }
.rst-rform .rst-textarea { min-height: 7rem; }
.rst-rform__row { display: grid; gap: 0 var(--rst-space-4); }
@media (min-width: 640px) { .rst-rform__row { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); } }
.rst-rform__foot { display: flex; flex-wrap: wrap; align-items: center; gap: var(--rst-space-3); margin: 0; }
.rst-rform__foot small { color: var(--rst-ink-muted); }

.rst-rform__notice {
	margin-top: var(--rst-space-5);
	padding: var(--rst-space-4) var(--rst-space-5);
	border-radius: var(--rst-radius-lg);
	font-weight: 600;
	scroll-margin-top: calc(var(--rst-header-h) + 1rem);
}
.rst-rform__notice.is-ok { background: #e7f6ee; color: #14532d; }
.rst-rform__notice.is-error { background: #fdecec; color: #991b1b; }
.rst-rform { scroll-margin-top: calc(var(--rst-header-h) + 1rem); }

@media (max-width: 639px) {
	.rst-rform__form { padding: var(--rst-space-5) var(--rst-space-4); }
	.rst-starpick label { width: 44px; height: 44px; }
}

/* ==========================================================================
   Archivfilter
   ========================================================================== */

.rst-sort { position: relative; flex-wrap: wrap; }
.rst-filters { position: relative; }
.rst-filters__toggle { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; }
.rst-filters__toggle::-webkit-details-marker { display: none; }
.rst-filters__count {
	display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 6px;
	border-radius: 999px; background: var(--rst-amber-500); color: #fff; font-size: 12px; font-weight: 700;
}
.rst-filters__panel {
	position: absolute; z-index: 30; top: calc(100% + 8px); right: 0;
	width: min(560px, calc(100vw - 32px));
	display: grid; gap: var(--rst-space-4);
	padding: var(--rst-space-5);
	background: var(--rst-surface); border: 1px solid var(--rst-line);
	border-radius: var(--rst-radius-lg); box-shadow: var(--rst-shadow-lg, 0 20px 50px rgba(6, 41, 56, .18));
}
.rst-filters__group { margin: 0; padding: 0; border: 0; }
.rst-filters__group legend { margin-bottom: var(--rst-space-2); font-size: var(--rst-fs-sm); font-weight: 700; }
.rst-filters__options { display: flex; flex-wrap: wrap; gap: 8px; }
.rst-filters__opt { position: relative; cursor: pointer; }
.rst-filters__opt input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.rst-filters__opt span {
	display: inline-flex; align-items: center; min-height: 38px; padding: 0 14px;
	border: 1px solid var(--rst-line); border-radius: 999px; background: var(--rst-surface);
	font-size: var(--rst-fs-sm); transition: background .15s, border-color .15s, color .15s;
}
.rst-filters__opt:hover span { border-color: var(--rst-lagoon-600); }
.rst-filters__opt input:checked + span { background: var(--rst-deep-800); border-color: var(--rst-deep-800); color: #fff; }
.rst-filters__opt input:focus-visible + span { outline: 2px solid var(--rst-lagoon-600); outline-offset: 2px; }
.rst-filters__foot { display: flex; align-items: center; justify-content: space-between; gap: var(--rst-space-3); padding-top: var(--rst-space-3); border-top: 1px solid var(--rst-line); }
.rst-filters__reset { font-size: var(--rst-fs-sm); font-weight: 600; }
.rst-has-js .rst-filters__foot .rst-btn { display: none; }

.rst-filterchips { display: flex; flex-wrap: wrap; gap: 8px; margin: calc(-1 * var(--rst-space-2)) 0 var(--rst-space-5); }
.rst-filterchip {
	display: inline-flex; align-items: center; gap: 6px; min-height: 34px; padding: 0 12px;
	border-radius: 999px; background: var(--rst-lagoon-100, #e6f6f6); color: var(--rst-deep-800);
	font-size: var(--rst-fs-sm); font-weight: 600; text-decoration: none;
}
.rst-filterchip span[aria-hidden] { font-size: 1.1em; line-height: 1; }
.rst-filterchip--reset { background: transparent; text-decoration: underline; }

.rst-results { transition: opacity .2s; }
.rst-results.is-loading { opacity: .45; pointer-events: none; }

@media (max-width: 767px) {
	.rst-filters { position: static; }
	.rst-filters__panel { position: fixed; inset: auto 0 0 0; top: auto; width: 100%; max-height: 80vh; overflow: auto; border-radius: var(--rst-radius-xl) var(--rst-radius-xl) 0 0; z-index: 300; }
	.rst-filters[open] > summary::before { content: ""; position: fixed; inset: 0; background: rgba(6, 26, 36, .45); z-index: 299; }
	.rst-has-js .rst-filters__foot .rst-btn { display: inline-flex; }
}

/* ==========================================================================
   Merkliste & Teilen
   ========================================================================== */

.rst-wish {
	position: absolute; z-index: 3; top: 12px; right: 12px;
	display: grid; place-items: center; width: 40px; height: 40px; padding: 0;
	border: 0; border-radius: 999px; background: rgba(255, 255, 255, .92);
	color: var(--rst-deep-800); cursor: pointer; box-shadow: 0 4px 14px rgba(6, 41, 56, .18);
	transition: transform .15s, color .15s;
}
.rst-wish:hover { transform: scale(1.08); }
.rst-wish svg { fill: transparent; transition: fill .15s; }
.rst-wish[aria-pressed="true"] { color: #e11d48; }
.rst-wish[aria-pressed="true"] svg { fill: currentColor; }
.rst-wish.is-pop { animation: rst-wish-pop .35s ease; }
@keyframes rst-wish-pop { 40% { transform: scale(1.25); } 100% { transform: scale(1); } }
@media (prefers-reduced-motion: reduce) { .rst-wish.is-pop { animation: none; } }

.rst-card .rst-badge + .rst-wish,
.rst-card__media .rst-wish { top: 12px; right: 12px; }

.rst-excursion__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: var(--rst-space-3); }
.rst-wish--inline,
.rst-share {
	position: static; display: inline-flex; align-items: center; gap: 6px; width: auto; height: 40px; padding: 0 14px;
	border: 1px solid var(--rst-line); border-radius: 999px; background: var(--rst-surface);
	box-shadow: none; color: var(--rst-ink); font: inherit; font-size: var(--rst-fs-sm); font-weight: 600; cursor: pointer;
}
.rst-wish--inline:hover, .rst-share:hover { border-color: var(--rst-lagoon-600); transform: none; }
.rst-wish--inline[aria-pressed="true"] { border-color: #fecdd3; background: #fff1f2; color: #be123c; }

.rst-wishnav { position: relative; }
.rst-header__wish svg { fill: transparent; }
.rst-wishpanel {
	position: absolute; z-index: 220; top: calc(100% + 10px); right: 0;
	width: min(360px, calc(100vw - 24px));
	padding: var(--rst-space-4);
	background: var(--rst-surface); border: 1px solid var(--rst-line);
	border-radius: var(--rst-radius-lg); box-shadow: 0 20px 50px rgba(6, 41, 56, .2);
}
.rst-wishpanel__title { margin: 0 0 var(--rst-space-3); font-weight: 700; }
.rst-wishpanel__list { display: grid; gap: 8px; max-height: 320px; overflow: auto; }
.rst-wishpanel__item { display: flex; align-items: center; gap: 8px; }
.rst-wishpanel__item a { display: flex; flex: 1; align-items: center; gap: 10px; min-width: 0; color: var(--rst-ink); text-decoration: none; }
.rst-wishpanel__item img { flex: none; width: 56px; height: 42px; border-radius: 8px; object-fit: cover; }
.rst-wishpanel__item span { display: grid; min-width: 0; }
.rst-wishpanel__item strong { overflow: hidden; font-size: var(--rst-fs-sm); line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.rst-wishpanel__item small { color: var(--rst-ink-muted); font-family: var(--rst-font-data); }
.rst-wishpanel__del { flex: none; width: 32px; height: 32px; border: 0; border-radius: 999px; background: var(--rst-shell); color: var(--rst-ink-muted); font-size: 18px; cursor: pointer; }
.rst-wishpanel__del:hover { color: #be123c; }
.rst-wishpanel__empty { margin: 0; color: var(--rst-ink-muted); font-size: var(--rst-fs-sm); }
.rst-wishpanel__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: var(--rst-space-4); padding-top: var(--rst-space-3); border-top: 1px solid var(--rst-line); }
.rst-wishpanel__link { font-size: var(--rst-fs-sm); font-weight: 600; }
.rst-wishpanel__clear { margin-left: auto; padding: 0; border: 0; background: none; color: var(--rst-ink-muted); font-size: var(--rst-fs-sm); text-decoration: underline; cursor: pointer; }
.rst-wishpage__foot { margin-top: var(--rst-space-6); text-align: center; }

@media (max-width: 1023px) {
	.rst-wishpanel { position: fixed; top: calc(var(--rst-header-h) + 6px); right: 12px; }
}

/* Das Kartenbild bildet einen eigenen Stapelkontext (Glanzeffekt). Damit das
   Herz über dem kartenweiten Link liegt, wird das Bild angehoben, lässt
   Klicks aber zum Link durch – nur das Herz selbst ist anklickbar. */
.rst-card__media:has(> .rst-wish) { z-index: 2; pointer-events: none; }
.rst-card__media > .rst-wish { pointer-events: auto; }

@media (max-width: 767px) {
	.rst-archive__toolbar { gap: var(--rst-space-3); }
	.rst-archive__toolbar .rst-sort { flex-wrap: nowrap; width: 100%; gap: 8px; }
	.rst-archive__toolbar .rst-sort__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	.rst-archive__toolbar .rst-sort__select { flex: 1; min-width: 0; min-height: 40px; }
	.rst-filters__toggle { min-height: 40px; }
}

/* Bewertungs-Übersicht */
.rst-rsum { display: grid; gap: var(--rst-space-4); margin-top: var(--rst-space-4); padding: var(--rst-space-5); background: var(--rst-surface); border: 1px solid var(--rst-line); border-radius: var(--rst-radius-lg); }
@media (min-width: 640px) { .rst-rsum { grid-template-columns: 180px 1fr; align-items: center; } }
.rst-rsum__score { display: grid; margin: 0; }
.rst-rsum__score strong { font-family: var(--rst-font-display); font-size: 3rem; line-height: 1; color: var(--rst-deep-800); }
.rst-rsum__score span { color: var(--rst-ink-muted); font-size: var(--rst-fs-sm); }
.rst-rsum__score small { margin-top: 6px; color: #15803d; font-weight: 600; }
.rst-rsum__bars { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.rst-rsum__bars li { display: grid; grid-template-columns: 36px 1fr 28px; align-items: center; gap: 10px; font-size: var(--rst-fs-sm); }
.rst-rsum__label { color: var(--rst-ink-muted); font-family: var(--rst-font-data); }
.rst-rsum__bar { height: 8px; border-radius: 999px; background: var(--rst-shell); overflow: hidden; }
.rst-rsum__bar span { display: block; height: 100%; border-radius: inherit; background: var(--rst-amber-500); }
.rst-rsum__n { text-align: right; color: var(--rst-ink-muted); font-family: var(--rst-font-data); }
.rst-review__avatar { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 999px; background: var(--rst-lagoon-100, #e6f6f6); color: var(--rst-deep-800); font-weight: 700; font-size: 13px; }
.rst-review__author { align-items: center !important; }
.rst-rform__verified { margin: 0 0 var(--rst-space-4); padding: var(--rst-space-3) var(--rst-space-4); border-radius: var(--rst-radius); background: #e7f6ee; color: #14532d; font-size: var(--rst-fs-sm); }
.rst-rform__hint { display: block; margin-top: 4px; color: var(--rst-ink-muted); font-size: var(--rst-fs-xs, .75rem); }

.rst-wishpage__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--rst-space-3); margin-bottom: var(--rst-space-5); padding-bottom: var(--rst-space-4); border-bottom: 1px solid var(--rst-line); }
.rst-wishpage__bar[hidden] { display: none; }
.rst-wishpage__count { margin: 0; color: var(--rst-ink-muted); font-size: var(--rst-fs-sm); }
.rst-wishpage__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.rst-wishpage__actions .rst-btn { display: inline-flex; gap: 6px; }
.rst-wishpage__heart { display: inline-block; margin-bottom: var(--rst-space-3); color: #e11d48; }
.rst-wishpage .rst-card { transition: opacity .25s, transform .25s; }
.rst-wishpage .rst-card.is-leaving { opacity: 0; transform: scale(.96); }

.rst-toast {
	position: fixed; z-index: 400; left: 50%; bottom: 24px;
	display: flex; align-items: center; gap: 14px;
	padding: 12px 18px; border-radius: 999px;
	background: var(--rst-deep-800); color: #fff; font-size: var(--rst-fs-sm); font-weight: 600;
	box-shadow: 0 12px 30px rgba(6, 41, 56, .3);
	transform: translate(-50%, 140%); opacity: 0; transition: transform .25s, opacity .25s; pointer-events: none;
}
.rst-toast.is-visible { transform: translate(-50%, 0); opacity: 1; pointer-events: auto; }
.rst-toast a { color: var(--rst-amber-300, #fcd34d); text-decoration: underline; }

/* ==========================================================================
   Ortszeit (obere Leiste)
   ========================================================================== */

.rst-topbar__time { display: inline-flex; align-items: center; gap: 6px; margin: 0; font-family: var(--rst-font-data); font-size: var(--rst-fs-xs); color: rgba(255, 255, 255, .8); }
.rst-topbar__time svg { color: var(--rst-amber-500); }
.rst-topbar__time time { color: #fff; font-weight: 600; }
@media (max-width: 639px) { .rst-topbar__time > span:first-of-type { display: none; } }

/* ==========================================================================
   Ausflugsfinder
   ========================================================================== */

.rst-finder { max-width: 880px; margin-inline: auto; padding: var(--rst-space-6); background: var(--rst-surface); border: 1px solid var(--rst-line); border-radius: var(--rst-radius-xl); box-shadow: var(--rst-shadow-md); }
.rst-finder__progress { display: flex; gap: 6px; margin: 0 0 var(--rst-space-5); padding: 0; list-style: none; }
.rst-finder__progress li { flex: 1; height: 6px; border-radius: 999px; background: var(--rst-shell); transition: background .25s; }
.rst-finder__progress li.is-active { background: var(--rst-lagoon-600); }
.rst-finder__step { margin: 0; padding: 0; border: 0; }
.rst-finder__q { display: grid; gap: 4px; margin-bottom: var(--rst-space-4); font-family: var(--rst-font-display); font-size: var(--rst-fs-xl); font-weight: 700; color: var(--rst-deep-800); }
.rst-finder__num { font-family: var(--rst-font-data); font-size: var(--rst-fs-xs); font-weight: 500; color: var(--rst-lagoon-600); letter-spacing: .08em; }
.rst-finder__choices { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; }
.rst-finder__choice { min-height: 56px; padding: 12px 16px; border: 1.5px solid var(--rst-line); border-radius: var(--rst-radius-lg); background: var(--rst-surface); color: var(--rst-ink); font: inherit; font-weight: 600; text-align: left; cursor: pointer; transition: border-color .15s, background .15s, transform .15s; }
.rst-finder__choice:hover, .rst-finder__choice:focus-visible { border-color: var(--rst-lagoon-600); background: #f0fbfa; transform: translateY(-1px); }
.rst-finder__back { margin-top: var(--rst-space-4); padding: 0; border: 0; background: none; color: var(--rst-ink-muted); font: inherit; font-size: var(--rst-fs-sm); cursor: pointer; }
.rst-finder__resulthead { margin: 0 0 var(--rst-space-4); font-family: var(--rst-font-display); font-size: var(--rst-fs-xl); font-weight: 700; color: var(--rst-deep-800); }
.rst-finder__cards { display: grid; gap: var(--rst-space-4); }
@media (min-width: 720px) { .rst-finder__cards { grid-template-columns: repeat(3, 1fr); } }
.rst-finder__card { display: grid; overflow: hidden; border: 1px solid var(--rst-line); border-radius: var(--rst-radius-lg); background: var(--rst-surface); color: var(--rst-ink); text-decoration: none; transition: box-shadow .2s, transform .2s; }
.rst-finder__card:hover { box-shadow: var(--rst-shadow-md); transform: translateY(-2px); }
.rst-finder__card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.rst-finder__cardbody { display: grid; gap: 4px; padding: var(--rst-space-4); }
.rst-finder__cardbody small { color: var(--rst-ink-muted); font-family: var(--rst-font-data); }
.rst-finder__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: var(--rst-space-5); }
.rst-finder__actions .rst-btn { display: inline-flex; gap: 8px; }
@media (max-width: 639px) { .rst-finder { padding: var(--rst-space-5) var(--rst-space-4); } }

/* ==========================================================================
   Urlaubsspaß
   ========================================================================== */

.rst-fun__tabs { display: flex; gap: 8px; margin-bottom: var(--rst-space-5); overflow-x: auto; scrollbar-width: none; }
.rst-fun__tabs::-webkit-scrollbar { display: none; }
.rst-fun__tab { display: inline-flex; flex: none; align-items: center; gap: 8px; min-height: 44px; padding: 0 18px; border: 1px solid var(--rst-line); border-radius: 999px; background: var(--rst-surface); color: var(--rst-ink); font: inherit; font-weight: 600; cursor: pointer; }
.rst-fun__tab[aria-selected="true"] { background: var(--rst-deep-800); border-color: var(--rst-deep-800); color: #fff; }
.rst-fun__panel { padding: var(--rst-space-6); background: var(--rst-surface); border: 1px solid var(--rst-line); border-radius: var(--rst-radius-xl); box-shadow: var(--rst-shadow-md); }
.rst-fun__panel h3 { margin: 0 0 var(--rst-space-2); font-size: var(--rst-fs-xl); }
@media (max-width: 639px) { .rst-fun__panel { padding: var(--rst-space-5) var(--rst-space-4); } }

.rst-sand { display: grid; gap: var(--rst-space-6); align-items: start; }
@media (min-width: 860px) { .rst-sand { grid-template-columns: 1fr 340px; } }
.rst-sand__controls p { color: var(--rst-ink-muted); }
.rst-sand__controls .rst-input { width: 100%; min-height: 50px; font-size: 18px; }
.rst-sand__formats { display: flex; flex-wrap: wrap; gap: 16px; margin: 0 0 var(--rst-space-3); padding: 0; border: 0; }
.rst-sand__formats legend { width: 100%; margin-bottom: 6px; font-size: var(--rst-fs-sm); font-weight: 600; }
.rst-sand__formats label, .rst-sand__heart { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.rst-sand__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: var(--rst-space-4); }
.rst-sand__actions .rst-btn { display: inline-flex; gap: 8px; }
.rst-sand__note { margin-top: var(--rst-space-3); font-size: var(--rst-fs-xs); }
.rst-sand__preview { display: grid; place-items: center; }
.rst-sand__preview canvas { width: 100%; max-width: 340px; height: auto; border-radius: 18px; box-shadow: 0 18px 40px rgba(6, 41, 56, .22); background: #e6cc9c; }

.rst-quiz__intro { text-align: center; }
.rst-quiz__intro p { max-width: 560px; margin-inline: auto; color: var(--rst-ink-muted); }
.rst-quiz__parade { display: flex; justify-content: center; gap: 4px; margin-bottom: var(--rst-space-4); flex-wrap: wrap; }
.rst-quiz__parade span { width: 84px; animation: rst-bob 3s ease-in-out infinite; }
.rst-quiz__parade span:nth-child(2n) { animation-delay: -1.5s; }
.rst-quiz__parade span:nth-child(3n) { animation-delay: -.8s; }
.rst-quiz__parade svg { width: 100%; height: auto; }
@keyframes rst-bob { 50% { transform: translateY(-8px) rotate(-3deg); } }
@media (prefers-reduced-motion: reduce) { .rst-quiz__parade span { animation: none; } }
.rst-quiz__count { margin: 0; color: var(--rst-lagoon-600); font-family: var(--rst-font-data); font-size: var(--rst-fs-xs); letter-spacing: .08em; }
.rst-quiz__q h3:focus, .rst-quiz__result h3:focus { outline: none; }
.rst-quiz__answers { display: grid; gap: 10px; margin-top: var(--rst-space-4); }
@media (min-width: 640px) { .rst-quiz__answers { grid-template-columns: 1fr 1fr; } }
.rst-quiz__answer { min-height: 60px; padding: 14px 18px; border: 1.5px solid var(--rst-line); border-radius: var(--rst-radius-lg); background: var(--rst-surface); color: var(--rst-ink); font: inherit; font-weight: 600; text-align: left; cursor: pointer; transition: border-color .15s, background .15s; }
.rst-quiz__answer:hover, .rst-quiz__answer:focus-visible { border-color: var(--rst-lagoon-600); background: #f0fbfa; }
.rst-quiz__result { display: grid; gap: var(--rst-space-5); align-items: center; }
@media (min-width: 760px) { .rst-quiz__result { grid-template-columns: 300px 1fr; } }
.rst-quiz__art { display: grid; place-items: center; padding: var(--rst-space-5); border-radius: var(--rst-radius-xl); background: linear-gradient(160deg, color-mix(in srgb, var(--rst-creature, #1aa3b5) 22%, #fff), #fff); }
.rst-quiz__art svg { width: 100%; max-width: 260px; height: auto; }
.rst-quiz__body p { color: var(--rst-ink-muted); }
.rst-quiz__tours { display: grid; gap: 10px; margin: var(--rst-space-4) 0; }
.rst-quiz__tour { display: flex; align-items: center; gap: 12px; padding: 8px; border: 1px solid var(--rst-line); border-radius: var(--rst-radius-lg); color: var(--rst-ink); text-decoration: none; }
.rst-quiz__tour:hover { border-color: var(--rst-lagoon-600); }
.rst-quiz__tour img { width: 72px; height: 54px; border-radius: 10px; object-fit: cover; }
.rst-quiz__tour span { display: grid; }
.rst-quiz__tour small { color: var(--rst-ink-muted); font-family: var(--rst-font-data); }
.rst-quiz__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.rst-quiz__actions .rst-btn { display: inline-flex; gap: 8px; }

.rst-sea__stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 12px; margin: var(--rst-space-4) 0; padding: 0; list-style: none; }
.rst-sea__stats li { display: grid; gap: 4px; padding: var(--rst-space-4); border-radius: var(--rst-radius-lg); background: linear-gradient(160deg, #e8f7f7, #fff); border: 1px solid var(--rst-line); }
.rst-sea__stats span { color: var(--rst-ink-muted); font-size: var(--rst-fs-sm); }
.rst-sea__stats strong { font-family: var(--rst-font-display); font-size: 1.8rem; color: var(--rst-deep-800); }
.rst-sea__stats small { color: var(--rst-ink-muted); font-family: var(--rst-font-data); }
.rst-sea__arrow { display: inline-block; font-style: normal; color: var(--rst-lagoon-600); }
.rst-sea__verdicts { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
@media (min-width: 760px) { .rst-sea__verdicts { grid-template-columns: repeat(3, 1fr); } }
.rst-sea__verdicts li { display: flex; align-items: flex-start; gap: 12px; padding: var(--rst-space-4); border-radius: var(--rst-radius-lg); border-left: 5px solid; }
.rst-sea__verdicts li span { display: grid; font-size: var(--rst-fs-sm); }
.rst-sea__verdicts .is-good { background: #ecfdf3; border-color: #16a34a; }
.rst-sea__verdicts .is-ok { background: #fffbeb; border-color: #d97706; }
.rst-sea__verdicts .is-bad { background: #fef2f2; border-color: #dc2626; }
.rst-sea__foot { margin-top: var(--rst-space-4); color: var(--rst-ink-muted); font-size: var(--rst-fs-xs); }

/* Sprachwahl */
.rst-lang ul { display: flex; gap: 2px; margin: 0; padding: 2px; list-style: none; border: 1px solid var(--rst-line); border-radius: 999px; }
.rst-lang a { display: grid; place-items: center; min-width: 36px; height: 32px; padding: 0 8px; border-radius: 999px; color: var(--rst-ink); font-family: var(--rst-font-data); font-size: 12px; font-weight: 600; text-decoration: none; }
.rst-lang a[aria-current="true"] { background: var(--rst-deep-800); color: #fff; }
.rst-lang--drawer { margin-bottom: var(--rst-space-4); }
@media (max-width: 1023px) { .rst-lang--header { display: none; } }

/* Kommentare unter Blogbeiträgen */
.rst-comments { margin-top: var(--rst-space-7); padding-top: var(--rst-space-6); border-top: 1px solid var(--rst-line); }
.rst-comments__list { margin: var(--rst-space-4) 0; padding: 0; list-style: none; }
.rst-comments__list .comment-body { padding: var(--rst-space-4); margin-bottom: var(--rst-space-3); background: var(--rst-surface); border: 1px solid var(--rst-line); border-radius: var(--rst-radius-lg); }
.rst-comments__list .children { list-style: none; margin-left: var(--rst-space-5); padding: 0; }
.rst-comments .comment-form input:not([type=checkbox]):not([type=submit]), .rst-comments .comment-form textarea { width: 100%; padding: 10px 12px; border: 1px solid var(--rst-line); border-radius: var(--rst-radius); font: inherit; }

/* Obere Leiste */
.rst-topbar__weather {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	margin-left: 10px;
	font-family: var(--rst-font-data);
	font-size: var(--rst-fs-xs);
}

