/* Roman Massage — Hauptstyles */

/* Montserrat lokal eingebunden (DSGVO: keine Verbindung zu Google Fonts) */
@font-face {
	font-family: "Montserrat";
	font-style: normal;
	font-display: swap;
	font-weight: 100 900;
	src: url("../fonts/montserrat-cyrillic.woff2") format("woff2");
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
	font-family: "Montserrat";
	font-style: normal;
	font-display: swap;
	font-weight: 100 900;
	src: url("../fonts/montserrat-latin-ext.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Montserrat";
	font-style: normal;
	font-display: swap;
	font-weight: 100 900;
	src: url("../fonts/montserrat-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
	--rm-navy: #1d2a47;
	--rm-navy-2: #2a3b61;
	--rm-ink: #1b2233;
	--rm-muted: #6a7187;
	--rm-line: #dfe2ea;
	--rm-bg: #ffffff;
	--rm-bg-muted: #f3f4f8;
	--rm-accent: #3b5bdb;
	--rm-radius: 6px;
	--rm-container: 1200px;
	--rm-font: "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;
	--rm-header-h: 112px;
}

*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; scroll-padding-top: 130px; }

body {
	margin: 0;
	font-family: var(--rm-font);
	font-size: 15px;
	line-height: 1.6;
	color: var(--rm-ink);
	background: var(--rm-bg);
	-webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
h1, h2, h3 { margin: 0; line-height: 1.15; }
p { margin: 0 0 1em; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}
.skip-link:focus {
	clip: auto; width: auto; height: auto;
	top: 8px; left: 8px; z-index: 1000;
	padding: 8px 16px; background: #fff;
}

.rm-container {
	width: 100%;
	max-width: var(--rm-container);
	margin: 0 auto;
	padding: 0 20px;
}
.rm-container--narrow { max-width: 880px; }
.rm-center { text-align: center; margin-top: 32px; }

/* ---------- Buttons ---------- */
.rm-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 44px;
	padding: 10px 26px;
	border: 1px solid var(--rm-navy);
	border-radius: var(--rm-radius);
	background: var(--rm-navy);
	color: #fff;
	font: 500 13px/1.2 var(--rm-font);
	letter-spacing: .02em;
	text-decoration: none;
	cursor: pointer;
	transition: background .2s, color .2s, border-color .2s;
}
.rm-btn:hover { background: var(--rm-navy-2); border-color: var(--rm-navy-2); }
.rm-btn--outline { background: transparent; color: var(--rm-navy); }
.rm-btn--outline:hover { background: var(--rm-navy); color: #fff; }
.rm-btn--light { background: #fff; border-color: #fff; color: var(--rm-navy); }
.rm-btn--light:hover { background: transparent; color: #fff; }
.rm-btn--sm { min-height: 36px; padding: 6px 18px; font-size: 12px; }
.rm-btn--block { width: 100%; }
.rm-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }

/* ---------- Kopfzeile ---------- */
.rm-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: var(--rm-navy);
	color: #fff;
}
.rm-header--overlay {
	position: absolute;
	left: 0; right: 0;
	background: linear-gradient(to bottom, rgba(10, 16, 32, .75), rgba(10, 16, 32, 0));
}
.admin-bar .rm-header { top: 32px; }
.rm-header.is-scrolled { position: fixed; background: var(--rm-navy); box-shadow: 0 4px 20px rgba(0, 0, 0, .15); }

.rm-header__bar {
	display: flex;
	align-items: center;
	gap: 32px;
	min-height: 64px;
	padding-top: 10px;
	padding-bottom: 10px;
	border-bottom: 1px solid rgba(255, 255, 255, .15);
}
.rm-header__info {
	display: flex;
	flex-direction: column;
	font-size: 12px;
	opacity: .85;
	margin-left: auto;
}
.rm-header__contacts { display: flex; align-items: center; gap: 20px; }
.rm-header__phone { font-weight: 600; text-decoration: none; white-space: nowrap; }

.rm-logo { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; color: inherit; }
.rm-logo__mark {
	display: grid; place-items: center;
	width: 38px; height: 38px;
	border: 1px solid currentColor;
	border-radius: 50%;
	font-size: 12px; font-weight: 600; letter-spacing: .05em;
}
.rm-logo__text { font-size: 15px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.rm-logo__img { display: block; height: 72px; width: auto; }
.rm-logo--footer .rm-logo__img { height: 90px; }

.rm-socials { display: flex; gap: 8px; }
.rm-socials a {
	display: grid; place-items: center;
	width: 32px; height: 32px;
	border: 1px solid rgba(255, 255, 255, .4);
	border-radius: 50%;
	color: #fff;
	transition: background .2s;
}
.rm-socials a:hover { background: rgba(255, 255, 255, .15); }

.rm-menu { display: flex; flex-wrap: wrap; gap: 4px 28px; margin: 0; padding: 12px 0; list-style: none; }
.rm-menu a { font-size: 13px; text-decoration: none; opacity: .9; }
.rm-menu a:hover,
.rm-menu a[aria-current="page"] { opacity: 1; text-decoration: underline; text-underline-offset: 6px; }
.rm-menu .sub-menu { display: none; }
.rm-nav__phone,
.rm-nav__book { display: none; }

.rm-burger {
	display: none;
	flex-direction: column; justify-content: center; gap: 5px;
	width: 44px; height: 44px;
	margin-left: 8px;
	padding: 10px;
	border: 0; background: transparent; cursor: pointer;
}
.rm-burger span { display: block; height: 2px; background: #fff; transition: transform .2s, opacity .2s; }
.rm-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.rm-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.rm-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ---------- Startbild ---------- */
.rm-hero {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	display: flex;
	align-items: flex-end;
	min-height: min(92vh, 760px);
	padding: calc(var(--rm-header-h) + 40px) 0 90px;
	color: #fff;
	background-color: #2b2420;
	background-image: var(--rm-hero-bg, radial-gradient(ellipse at 70% 30%, #6b5a4c, #2b2420 70%));
	background-size: cover;
	background-position: center;
}
/* Abdunklung über Bild/Video, damit der Text gut lesbar ist */
.rm-hero::before {
	content: "";
	position: absolute; inset: 0; z-index: -1;
	background:
		linear-gradient(to top, rgba(10, 16, 32, .85) 0%, rgba(10, 16, 32, .35) 55%, rgba(10, 16, 32, .55) 100%),
		rgba(10, 16, 32, .25);
}
.rm-hero__video {
	position: absolute; inset: 0; z-index: -2;
	width: 100%; height: 100%;
	object-fit: cover;
	opacity: 0;
	transition: opacity 1.2s ease;
}
.rm-hero__video.is-playing { opacity: 1; }
.rm-hero__inner { position: relative; }
.rm-hero__title {
	max-width: 620px;
	margin-bottom: 32px;
	font-size: clamp(32px, 5vw, 58px);
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: .01em;
}

/* ---------- Sektionen ---------- */
.rm-section { padding: 80px 0; }
.rm-section--muted { background: var(--rm-bg-muted); }
.rm-title {
	margin-bottom: 32px;
	font-size: clamp(24px, 3.2vw, 36px);
	font-weight: 500;
	text-transform: uppercase;
	color: var(--rm-navy);
}
.rm-title--light { color: #fff; }
.rm-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 32px; }
.rm-head .rm-title { margin: 0; }

/* Warum wir */
.rm-why { padding: 96px 0; }
.rm-why__grid { display: grid; grid-template-columns: 4fr 7fr; gap: 80px; align-items: start; }
.rm-why__kicker {
	margin-bottom: 14px;
	font-size: 12px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase;
	color: var(--rm-accent);
}
.rm-why__heading {
	margin-bottom: 20px;
	font-size: clamp(28px, 3.4vw, 42px); font-weight: 400; line-height: 1.1;
	text-transform: uppercase;
	color: var(--rm-navy);
}
.rm-why__lead { margin-bottom: 28px; font-size: 16px; line-height: 1.7; color: var(--rm-muted); }
.rm-why__link {
	display: inline-flex; align-items: center; gap: 10px;
	padding-bottom: 4px;
	border-bottom: 1px solid currentColor;
	font-size: 14px; font-weight: 600; letter-spacing: .02em;
	color: var(--rm-navy);
	text-decoration: none;
}
.rm-why__link span { transition: transform .25s ease; }
.rm-why__link:hover span { transform: translateX(4px); }
.rm-why__list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 48px 56px;
	margin: 0; padding: 0; list-style: none;
}
.rm-why__item { position: relative; padding-top: 22px; }
.rm-why__item::before,
.rm-why__item::after {
	content: "";
	position: absolute; top: 0; left: 0;
	height: 1px;
	background: var(--rm-line);
	width: 100%;
}
.rm-why__item::after {
	height: 2px; top: -.5px;
	width: 0;
	background: var(--rm-accent);
	transition: width .5s cubic-bezier(.2, .7, .3, 1);
}
.rm-why__item:hover::after { width: 100%; }
.rm-why__num {
	display: block;
	margin-bottom: 14px;
	font-size: 40px; font-weight: 200; line-height: 1;
	color: #c3c8d6;
	font-variant-numeric: tabular-nums;
	transition: color .3s ease;
}
.rm-why__item:hover .rm-why__num { color: var(--rm-accent); }
.rm-why__title { margin-bottom: 8px; font-size: 19px; font-weight: 500; color: var(--rm-navy); }
.rm-why__item p { margin: 0; font-size: 14.5px; line-height: 1.65; color: var(--rm-muted); }

/* Massage-Karten */
.rm-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.rm-card {
	position: relative;
	display: flex; flex-direction: column;
	background: #fff;
	border-radius: var(--rm-radius);
	overflow: hidden;
	box-shadow: 0 1px 2px rgba(29, 42, 71, .04);
	transition: transform .35s cubic-bezier(.2, .7, .3, 1), box-shadow .35s ease;
}
.rm-card:hover {
	transform: translateY(-6px);
	box-shadow: 0 18px 40px -12px rgba(29, 42, 71, .28);
}
.rm-card__media { position: relative; display: block; aspect-ratio: 4 / 5; overflow: hidden; text-decoration: none; }
.rm-card__media::after {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(to top, rgba(29, 42, 71, .35), rgba(29, 42, 71, 0) 60%);
	opacity: 0;
	transition: opacity .35s ease;
}
.rm-card:hover .rm-card__media::after { opacity: 1; }
.rm-card__media img,
.rm-card__media .rm-ph { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2, .7, .3, 1); }
.rm-card:hover .rm-card__media img,
.rm-card:hover .rm-card__media .rm-ph { transform: scale(1.07); }
.rm-card__title a { transition: color .2s; }
.rm-card:hover .rm-card__title a { color: var(--rm-accent); }
.rm-card:hover .rm-card__btn { background: var(--rm-navy); color: #fff; }
.rm-card__badge {
	position: absolute; top: 12px; left: 12px; z-index: 1;
	padding: 4px 10px;
	border-radius: 3px;
	background: var(--rm-accent);
	color: #fff;
	font-size: 10px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase;
}
.rm-card__badge--static { position: static; display: inline-block; margin-bottom: 12px; }
.rm-card__title { padding: 16px 16px 8px; font-size: 13px; font-weight: 600; text-transform: uppercase; color: var(--rm-navy); }
.rm-card__title a { text-decoration: none; }
.rm-card__prices { margin: 0 0 16px; padding: 0 16px; font-size: 13px; }
.rm-card__prices div { display: flex; justify-content: space-between; gap: 8px; padding: 6px 0; border-bottom: 1px solid var(--rm-line); }
.rm-card__prices dt { color: var(--rm-muted); }
.rm-card__prices dd { margin: 0; font-weight: 600; }
.rm-card__prices--lg { padding: 0; font-size: 16px; margin-bottom: 24px; max-width: 420px; }
/* Button immer unten – Karten in einer Reihe haben gleiche Höhe */
.rm-card__btn { margin: auto 16px 16px; }

/* Foto-Platzhalter */
.rm-ph {
	display: grid; place-items: center;
	width: 100%; height: 100%;
	min-height: 180px;
	background: linear-gradient(135deg, #c9b8a6, #8a7564);
	color: rgba(255, 255, 255, .85);
	font-size: 12px; letter-spacing: .08em; text-transform: uppercase; text-align: center;
	padding: 16px;
}

/* Gutschein */
.rm-cert__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.rm-cert__media img { border-radius: var(--rm-radius); }
.rm-cert__card {
	display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 8px;
	aspect-ratio: 4 / 3;
	border-radius: var(--rm-radius);
	background: linear-gradient(135deg, #e9e0d4, #cdbba6);
	color: var(--rm-navy);
}
.rm-cert__card span { font-size: 28px; font-weight: 600; text-transform: uppercase; letter-spacing: .1em; }
.rm-cert__card small { font-size: 12px; text-transform: uppercase; letter-spacing: .15em; }
.rm-cert__subtitle { margin-top: -20px; color: var(--rm-muted); }
.rm-steps { counter-reset: step; margin: 24px 0 0; padding: 0; list-style: none; }
.rm-steps li { counter-increment: step; display: flex; gap: 16px; align-items: flex-start; padding: 10px 0; font-size: 14px; }
.rm-steps li::before {
	content: counter(step);
	flex: 0 0 auto;
	font-size: 28px; line-height: 1; font-weight: 300;
	color: var(--rm-navy);
	min-width: 24px;
}

/* Über uns */
.rm-about { background: var(--rm-navy); color: rgba(255, 255, 255, .85); }
.rm-about__grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: 56px; align-items: center; }
.rm-about__body p { font-size: 14px; }
.rm-about__body .rm-btn { margin-top: 16px; }
.rm-about__gallery { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.rm-about__photo { position: relative; margin: 0; aspect-ratio: 3 / 4; border-radius: var(--rm-radius); overflow: hidden; }
.rm-about__photo--2 { margin-top: 48px; }
.rm-about__photo img { width: 100%; height: 100%; object-fit: cover; }
.rm-about__photo figcaption {
	position: absolute; left: 12px; bottom: 12px;
	padding: 6px 12px;
	background: rgba(10, 16, 32, .7);
	color: #fff;
	font-size: 11px; text-transform: uppercase; letter-spacing: .08em;
	border-radius: 3px;
}

/* Bewertungen */
.rm-reviews { padding: 72px 0; }
.rm-reviews__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 20px 32px; margin-bottom: 28px; }
.rm-reviews__head .rm-title { margin-bottom: 10px; }
.rm-reviews__rating { display: flex; align-items: center; gap: 10px; margin: 0; }
.rm-reviews__score { font-size: 28px; font-weight: 600; color: var(--rm-navy); line-height: 1; }
.rm-reviews__stars { color: #fbbc04; font-size: 20px; letter-spacing: 2px; line-height: 1; }
.rm-reviews__count { font-size: 14px; color: var(--rm-muted); }
.rm-reviews__actions { margin-top: 0; }
/* Trustindex-Widget an das Theme anpassen */
.rm-reviews .ti-widget { font-family: var(--rm-font) !important; }
.rm-reviews .ti-widget .ti-review-item > .ti-inner { border-radius: var(--rm-radius) !important; }
.rm-admin-note { padding: 16px 20px; border: 1px dashed var(--rm-line); border-radius: var(--rm-radius); color: var(--rm-muted); font-size: 13px; text-align: center; }

/* SEO-Text */
.rm-seo__text { position: relative; }
.rm-seo__text[data-collapsed="true"] { max-height: 420px; overflow: hidden; }
.rm-seo__text[data-collapsed="true"]::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 120px;
	background: linear-gradient(to bottom, rgba(243, 244, 248, 0), var(--rm-bg-muted));
}
.rm-seo__toggle { margin-top: 16px; }

.rm-prose { font-size: 14px; }
.rm-prose h2 { margin: 1.6em 0 .6em; font-size: 18px; font-weight: 600; text-transform: uppercase; color: var(--rm-navy); }
.rm-prose h3 { margin: 1.4em 0 .5em; font-size: 16px; font-weight: 600; color: var(--rm-navy); }
.rm-prose ul, .rm-prose ol { padding-left: 1.3em; }
.rm-prose li { margin-bottom: .3em; }
.rm-prose a { color: var(--rm-accent); }
.rm-prose > :first-child { margin-top: 0; }

/* FAQ */
.rm-faq__grid { display: grid; grid-template-columns: 1fr 1.3fr; gap: 56px; }
.rm-faq__intro { color: var(--rm-muted); font-size: 14px; }
.rm-faq__item { border-bottom: 1px solid var(--rm-line); }
.rm-faq__item summary {
	display: flex; justify-content: space-between; align-items: center; gap: 16px;
	padding: 18px 0;
	font-size: 13px; font-weight: 600; text-transform: uppercase; color: var(--rm-navy);
	list-style: none; cursor: pointer;
}
.rm-faq__item summary::-webkit-details-marker { display: none; }
.rm-faq__item summary svg { flex: 0 0 auto; transition: transform .2s; }
.rm-faq__item[open] summary svg { transform: rotate(45deg); }
.rm-faq__answer { padding-bottom: 18px; color: var(--rm-muted); }

/* Seiten */
.rm-page { padding-top: 56px; }
.rm-single { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: start; }
.rm-single__media { border-radius: var(--rm-radius); overflow: hidden; aspect-ratio: 4 / 3; }
.rm-single__media--portrait { aspect-ratio: 4 / 5; }
.rm-single__media img { width: 100%; height: 100%; object-fit: cover; }
.rm-container--narrow .rm-single__media { margin-bottom: 32px; }
.rm-posts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.rm-post__media { display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--rm-radius); margin-bottom: 12px; }
.rm-post__media img { width: 100%; height: 100%; object-fit: cover; }
.rm-post__date { display: block; font-size: 12px; color: var(--rm-muted); margin-bottom: 6px; }
.rm-post__title { font-size: 17px; font-weight: 600; margin-bottom: 8px; }
.rm-post__title a { text-decoration: none; color: var(--rm-navy); }
.rm-post__excerpt { font-size: 14px; color: var(--rm-muted); }
.nav-links { display: flex; gap: 8px; justify-content: center; margin-top: 40px; }
.page-numbers { padding: 6px 12px; border: 1px solid var(--rm-line); border-radius: 4px; text-decoration: none; }
.page-numbers.current { background: var(--rm-navy); color: #fff; border-color: var(--rm-navy); }

/* ---------- Footer ---------- */
.rm-footer { background: var(--rm-navy); color: rgba(255, 255, 255, .8); padding: 64px 0 24px; font-size: 13px; }
.rm-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 40px; }
.rm-logo--light { color: #fff; }
.rm-footer__desc { margin-top: 16px; max-width: 320px; }
.rm-footer__title { margin-bottom: 16px; font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: #fff; }
.rm-footer__menu,
.rm-footer__contacts { margin: 0; padding: 0; list-style: none; }
.rm-footer__menu li,
.rm-footer__contacts li { margin-bottom: 8px; }
.rm-footer a { text-decoration: none; }
.rm-footer a:hover { color: #fff; text-decoration: underline; }
.rm-footer .rm-socials { margin-top: 16px; }
.rm-footer__bottom { margin-top: 48px; padding-top: 20px; border-top: 1px solid rgba(255, 255, 255, .15); font-size: 12px; opacity: .7; }

/* Schwebende Buttons: nach oben + WhatsApp */
.rm-float {
	position: fixed; right: 20px; bottom: 20px; z-index: 40;
	display: flex; flex-direction: column; align-items: center; gap: 12px;
}
.rm-float__wa {
	position: relative;
	display: grid; place-items: center;
	width: 58px; height: 58px;
	border-radius: 50%;
	background: #25d366;
	color: #fff;
	box-shadow: 0 8px 24px rgba(37, 211, 102, .45);
	transition: transform .25s ease, box-shadow .25s ease;
}
.rm-float__wa svg { width: 30px; height: 30px; }
.rm-float__wa::before {
	content: "";
	position: absolute; inset: 0;
	border-radius: 50%;
	border: 2px solid #25d366;
	animation: rm-wa-ring 2.4s ease-out infinite;
}
.rm-float__wa:hover { transform: scale(1.08); box-shadow: 0 10px 28px rgba(37, 211, 102, .6); }
@keyframes rm-wa-ring {
	from { transform: scale(1); opacity: .8; }
	to { transform: scale(1.5); opacity: 0; }
}
.rm-float__top {
	display: grid; place-items: center;
	width: 44px; height: 44px;
	padding: 0;
	border: 1px solid var(--rm-line);
	border-radius: 50%;
	background: #fff;
	color: var(--rm-navy);
	cursor: pointer;
	box-shadow: 0 6px 18px rgba(29, 42, 71, .18);
	opacity: 0;
	transform: translateY(10px);
	transition: opacity .3s ease, transform .3s ease, background .2s, color .2s;
}
.rm-float__top.is-visible { opacity: 1; transform: none; }
.rm-float__top:hover { background: var(--rm-navy); color: #fff; }
.rm-float__top[hidden] { display: none; }


/* ---------- Sprachumschalter ---------- */
.rm-lang { display: flex; gap: 2px; margin: 0; padding: 0; list-style: none; }
.rm-lang a {
	display: block;
	padding: 4px 7px;
	border-radius: 3px;
	font-size: 12px; font-weight: 600; letter-spacing: .05em;
	text-decoration: none;
	opacity: .7;
}
.rm-lang a:hover { opacity: 1; }
.rm-lang a.is-current { opacity: 1; background: rgba(255, 255, 255, .15); }
.rm-header__info a { text-decoration: none; }
.rm-header__info a:hover { text-decoration: underline; }

/* ---------- Hausbesuch (Startseite) ---------- */
.rm-mobile {
	position: relative;
	display: grid;
	grid-template-columns: 1fr 1fr;
	min-height: 620px;
	background: #111827;
	color: rgba(255, 255, 255, .78);
	overflow: hidden;
}
.rm-mobile__media { position: relative; min-height: 420px; background: #1a2233; }
.rm-mobile__media img {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	object-fit: cover; object-position: 50% 30%;
}
/* Foto läuft weich in den dunklen Hintergrund aus */
.rm-mobile__media::after {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(to right, rgba(17, 24, 39, 0) 55%, #111827 100%);
}
.rm-mobile__body {
	align-self: center;
	max-width: 560px;
	padding: 88px 48px 88px 56px;
}
.rm-mobile__kicker {
	margin-bottom: 16px;
	font-size: 12px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase;
	color: #9fb4ff;
}
.rm-mobile__title {
	margin-bottom: 22px;
	font-size: clamp(30px, 3.6vw, 46px); font-weight: 300; line-height: 1.08;
	text-transform: uppercase;
	color: #fff;
}
.rm-mobile__text p { font-size: 16px; line-height: 1.7; }
.rm-mobile__facts { margin: 28px 0 32px; padding: 0; list-style: none; border-top: 1px solid rgba(255, 255, 255, .12); }
.rm-mobile__facts li {
	display: flex; align-items: flex-start; gap: 14px;
	padding: 14px 0;
	border-bottom: 1px solid rgba(255, 255, 255, .12);
	font-size: 14.5px; color: #fff;
}
.rm-mobile__facts svg { flex: 0 0 auto; width: 20px; height: 20px; margin-top: 1px; color: #9fb4ff; stroke-width: 1.6; }
.rm-mobile__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.rm-mobile__phone {
	display: inline-flex; align-items: center; gap: 10px;
	margin-top: 22px;
	font-size: 15px; font-weight: 500; color: #fff;
	text-decoration: none;
	border-bottom: 1px solid rgba(255, 255, 255, .3);
	padding-bottom: 3px;
	transition: border-color .2s;
}
.rm-mobile__phone:hover { border-color: #fff; }
.rm-mobile__phone svg { width: 16px; height: 16px; }

.rm-mobile__surcharge { font-size: 14px; font-weight: 600; color: var(--rm-navy); }
.rm-price-note { margin: 24px 0 0; font-size: 13px; color: var(--rm-muted); text-align: center; }
.rm-single .rm-price-note { text-align: left; margin: -8px 0 24px; }

/* ---------- Footer: Rechtliches ---------- */
.rm-footer__bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; }
.rm-footer__dev { font-size: 12px; opacity: .75; text-decoration: none; transition: opacity .2s; }
.rm-footer__dev:hover { opacity: 1; }
.rm-footer__dev strong { font-weight: 600; letter-spacing: .02em; }
.rm-footer__legal { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 0; padding: 0; list-style: none; }

@media (max-width: 860px) {
	.rm-mobile { grid-template-columns: 1fr; min-height: 0; }
	.rm-mobile__media { min-height: 360px; }
	.rm-mobile__media::after { background: linear-gradient(to bottom, rgba(17, 24, 39, 0) 50%, #111827 100%); }
	.rm-mobile__body { max-width: none; padding: 8px 20px 56px; }
	.rm-header__bar { gap: 12px; }
	.rm-header__contacts { gap: 12px; }
	.rm-burger { margin-left: 0; }
}

@media (max-width: 600px) {
	/* Telefon steht im mobilen Menü */
	.rm-header__phone { display: none; }
	.rm-logo__mark { width: 34px; height: 34px; font-size: 11px; }
	.rm-logo__img { height: 50px; }
}

/* Smartphone: kein Video, eigenes Hochformat-Bild (spart Datenvolumen) */
@media (max-width: 767px) {
	.rm-hero { background-image: var(--rm-hero-bg-m, var(--rm-hero-bg, radial-gradient(ellipse at 70% 30%, #6b5a4c, #2b2420 70%))); }
}


/* ---------- Online-Termin (Bookly) ---------- */
.rm-booking { background: var(--rm-bg-muted); }
.rm-booking__grid { display: grid; grid-template-columns: 4fr 7fr; gap: 64px; align-items: start; }
.rm-booking__alt { font-size: 14px; color: var(--rm-muted); }
.rm-booking__alt a { color: var(--rm-navy); font-weight: 600; }
.rm-booking__form {
	padding: 28px;
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 18px 44px -24px rgba(29, 42, 71, .3);
	min-height: 320px;
}
.rm-booking__form .bookly-form,
.rm-booking__form .bookly-form * { font-family: var(--rm-font) !important; }
/* Flaggen im Telefonfeld: Sprite als SVG (das Hostinger-CDN verkleinert PNG-Sprites auf 1600 px) */
.rm-booking__form .iti-flag {
	background-image: url("../img/flags.svg") !important;
	background-size: 5630px 15px !important;
}
.rm-booking__form .intl-tel-input { width: 100%; }

/* Massage-Auswahl in der Formularkarte (Startseite) */
.rm-booking--picker .rm-booking__panel {
	padding: 24px;
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 18px 44px -24px rgba(29, 42, 71, .3);
	scroll-margin-top: 100px;
}
.rm-booking--picker .rm-booking__form { padding: 0; box-shadow: none; border-radius: 0; min-height: 0; }
.rm-picker__title {
	display: flex; align-items: center; gap: 10px;
	margin: 0 0 14px;
	font-size: 15px; font-weight: 600; color: var(--rm-navy);
}
.rm-picker__title span {
	display: grid; place-items: center;
	width: 26px; height: 26px;
	border-radius: 50%;
	background: var(--rm-navy);
	color: #fff;
	font-size: 13px;
}
.rm-picker {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 8px;
	margin: 0; padding: 0; list-style: none;
}
.rm-pick {
	display: grid;
	grid-template-columns: 52px 1fr;
	gap: 12px;
	align-items: center;
	padding: 8px 10px 8px 8px;
	border: 1px solid var(--rm-line);
	border-radius: 12px;
	transition: border-color .2s ease, background .2s ease;
}
.rm-pick:hover { border-color: #b9c0d0; background: #fafbfd; }
.rm-pick.is-active { border-color: var(--rm-navy); background: #f5f7fb; }
.rm-pick__media { width: 52px; height: 52px; border-radius: 10px; overflow: hidden; background: var(--rm-bg-muted); }
.rm-pick__media img,
.rm-pick__media .rm-ph { width: 100%; height: 100%; min-height: 0; padding: 0; object-fit: cover; }
.rm-pick__title { margin: 0 0 6px; font-size: 13.5px; font-weight: 600; line-height: 1.25; color: var(--rm-navy); }
.rm-pick__options { display: flex; flex-wrap: wrap; gap: 5px; }
.rm-pick__opt {
	padding: 4px 9px;
	border: 1px solid #c9cedb;
	border-radius: 999px;
	background: #fff;
	color: var(--rm-ink);
	font: 500 11.5px/1.25 var(--rm-font);
	white-space: nowrap;
	cursor: pointer;
	transition: background .2s, color .2s, border-color .2s;
}
.rm-pick__opt:hover { border-color: var(--rm-navy); color: var(--rm-navy); }
.rm-pick__opt.is-active { background: var(--rm-navy); border-color: var(--rm-navy); color: #fff; }

.rm-booking__chosen {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 14px;
	margin: 0 0 18px; padding: 10px 14px;
	border-radius: 10px;
	background: var(--rm-bg-muted);
	font-size: 14px; color: var(--rm-muted);
}
.rm-booking__chosen[hidden] { display: none; }
.rm-booking__chosen strong { color: var(--rm-navy); }
.rm-booking__change { padding: 0; border: 0; background: none; color: var(--rm-accent); font: 600 13px var(--rm-font); cursor: pointer; text-decoration: underline; }

/* Zustände: ohne JS normales Formular; mit JS erst Liste, nach der Wahl Bookly-Schritte */
.rm-booking--picker:not(.rm-picker-ready) .rm-picker-wrap { display: none; }
.rm-picker-ready .rm-booking__form .bookly-js-mobile-prev-step,
.rm-picker-ready .rm-booking__form .bookly-service-step > .bookly-box.bookly-bold,
.rm-picker-ready .rm-booking__form [data-type="category"],
.rm-picker-ready .rm-booking__form [data-type="service"] { display: none !important; }
.rm-picker-ready:not(.rm-picker-chosen) .rm-booking__form,
.rm-picker-ready.rm-picker-editing .rm-booking__form { display: none; }
.rm-picker-ready.rm-picker-chosen:not(.rm-picker-editing) .rm-picker-wrap { display: none; }

@media (max-width: 600px) {
	.rm-booking--picker .rm-booking__panel { padding: 16px; }
	.rm-picker { grid-template-columns: 1fr; }
}

/* Schritt „Zeit“: nur der gewählte Tag (erste Spalte), Zeiten als Raster */
.rm-booking__form .bookly-columnizer .bookly-time-screen:not(:first-child),
.rm-booking__form .bookly-columnizer .bookly-column:not(.bookly-js-first-column),
.rm-booking__form .bookly-time-prev,
.rm-booking__form .bookly-time-next { display: none !important; }
.rm-booking__form .bookly-columnizer-wrap,
.rm-booking__form .bookly-columnizer,
.rm-booking__form .bookly-time-screen:first-child { width: 100% !important; height: auto !important; float: none !important; }
.rm-booking__form .bookly-columnizer .bookly-js-first-column {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(92px, 1fr));
	gap: 8px;
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
}
.rm-booking__form .bookly-js-first-column .bookly-day { grid-column: 1 / -1; width: 100% !important; margin: 0 0 4px !important; }
.rm-booking__form .bookly-js-first-column .bookly-hour { width: 100% !important; margin: 0 !important; }
/* Schritt 1: Masseur als Karten mit Foto */
.rm-booking__form .rm-staff-field { display: block !important; width: 100% !important; }
.rm-booking__form .rm-staff-field select { position: absolute !important; width: 1px !important; height: 1px !important; opacity: 0; pointer-events: none; }
.rm-staff-pick { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; margin-top: 6px; }
.rm-staff-pick__card {
	position: relative;
	display: flex; flex-direction: column; align-items: center; gap: 8px;
	padding: 16px 10px 14px;
	border: 1.5px solid var(--rm-line);
	border-radius: 12px;
	background: #fff;
	color: var(--rm-ink);
	font: 600 14px/1.25 var(--rm-font);
	text-align: center;
	cursor: pointer;
	transition: border-color .2s, box-shadow .2s, transform .2s;
}
.rm-staff-pick__card:hover { border-color: #aab2c8; transform: translateY(-2px); }
.rm-staff-pick__card.is-checked { border-color: var(--rm-navy); box-shadow: 0 0 0 1px var(--rm-navy), 0 10px 24px -14px rgba(29, 42, 71, .6); }
.rm-staff-pick__card img,
.rm-staff-pick__initial { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; border: 2px solid #fff; box-shadow: 0 2px 8px rgba(0, 0, 0, .15); }
.rm-staff-pick__initial { display: grid; place-items: center; background: var(--rm-navy); color: #fff; font-size: 20px; }
.rm-booking__form .rm-staff-field.rm-staff-single { display: none !important; }
.rm-staff-pick__any {
	display: grid; place-items: center;
	width: 56px; height: 56px;
	border-radius: 50%;
	background: var(--rm-bg-muted);
	color: var(--rm-navy);
	box-shadow: 0 2px 8px rgba(0, 0, 0, .12);
	border: 2px solid #fff;
}
.rm-staff-pick__card.is-checked .rm-staff-pick__any { background: var(--rm-navy); color: #fff; }
.rm-staff-pick__check {
	position: absolute; top: 8px; right: 8px;
	width: 20px; height: 20px;
	border: 1.5px solid #c3c8d6;
	border-radius: 50%;
	background: #fff;
}
.rm-staff-pick__card.is-checked .rm-staff-pick__check {
	border-color: var(--rm-navy);
	background: var(--rm-navy) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 12px no-repeat;
}
@media (max-width: 520px) {
	.rm-staff-pick { grid-template-columns: 1fr; }
	.rm-staff-pick__card { flex-direction: row; justify-content: flex-start; padding: 10px 44px 10px 12px; text-align: left; }
	.rm-staff-pick__card img, .rm-staff-pick__initial { width: 44px; height: 44px; }
	.rm-staff-pick__any { width: 44px; height: 44px; }
	.rm-staff-pick__any svg { width: 22px; height: 22px; }
	.rm-staff-pick__check { top: 50%; right: 14px; margin-top: -10px; }
}
/* Mittlere Breiten: Bookly zeigt Teilschritt 1 allein, blendet dort aber „Weiter“ aus */
.rm-booking__form .bookly-service-step:has(> .bookly-js-mobile-step-2[style*="none"]) .bookly-js-mobile-step-1 .bookly-nav-steps,
.rm-booking__form .bookly-service-step:has(> .bookly-js-mobile-step-2[style*="none"]) .bookly-js-mobile-next-step { display: block !important; }
.rm-booking__form .bookly-service-step:has(> .bookly-js-mobile-step-2[style*="none"]) .bookly-js-mobile-step-1 .bookly-nav-steps { overflow: hidden; }

/* Schritt „Zeit“ mit mehreren Masseuren: Name, darunter seine Zeiten (assets/js/bookly-staff.js) */
.rm-booking__form .rm-staff-mode .bookly-hour { display: none !important; }
.rm-booking__form .bookly-columnizer .bookly-time-screen:has(> .rm-staff-mode) { display: block !important; }
.rm-booking__form .rm-staff-loading { opacity: .5; pointer-events: none; }
.rm-staff-slots { grid-column: 1 / -1; display: grid; gap: 22px; }
.rm-staff-slots__group + .rm-staff-slots__group { padding-top: 18px; border-top: 1px solid var(--rm-line); }
.rm-staff-slots__head { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.rm-staff-slots__head img,
.rm-staff-slots__avatar { width: 40px; height: 40px; flex: 0 0 40px; border-radius: 50%; object-fit: cover; }
.rm-staff-slots__avatar { display: grid; place-items: center; background: var(--rm-navy); color: #fff; font-weight: 600; }
.rm-staff-slots__head strong { font-size: 15px; color: var(--rm-navy); }
.rm-staff-slots__times { display: grid; grid-template-columns: repeat(auto-fill, minmax(92px, 1fr)); gap: 8px; }
.rm-staff-slots__time {
	min-height: 44px;
	border: 1px solid var(--rm-line);
	border-radius: var(--rm-radius);
	background: #fff;
	color: var(--rm-ink);
	font: 500 14px/1 var(--rm-font);
	cursor: pointer;
	transition: border-color .2s, background .2s, color .2s;
}
.rm-staff-slots__time:hover { border-color: var(--rm-navy); }
.rm-staff-slots__time.is-loading { background: var(--rm-navy); border-color: var(--rm-navy); color: #fff; }
.rm-staff-slots__time:disabled:not(.is-loading) { opacity: .5; cursor: default; }
.rm-staff-slots__empty { margin: 0; font-size: 14px; color: var(--rm-muted); }
@media (max-width: 1024px) {
	.rm-booking__grid { grid-template-columns: 1fr; gap: 28px; }
}
@media (max-width: 520px) {
	.rm-booking__form { padding: 16px; }
}

/* Bookly-Schrittanzeige auf Smartphones: nummerierte Kreise statt ausgeblendeter Leiste */
@media (max-width: 650px) {
	.rm-booking__form .bookly-progress-tracker {
		display: flex !important;
		justify-content: space-between;
		counter-reset: rm-step;
		margin: 4px 0 22px !important;
	}
	.rm-booking__form .bookly-progress-tracker > div {
		position: relative;
		flex: 1;
		display: flex;
		justify-content: center;
		padding: 0 !important;
		font-size: 0 !important;
		counter-increment: rm-step;
	}
	.rm-booking__form .bookly-progress-tracker > div::before {
		content: counter(rm-step);
		position: relative; z-index: 1;
		display: grid; place-items: center;
		width: 34px; height: 34px;
		border-radius: 50%;
		border: 2px solid #c3c8d6;
		background: #fff;
		color: #8a91a5;
		font: 600 14px/1 var(--rm-font);
	}
	/* Verbindungslinie */
	.rm-booking__form .bookly-progress-tracker > div .step {
		position: absolute !important;
		top: 16px; left: 50%;
		width: 100%; height: 2px !important;
		margin: 0 !important;
		border-radius: 0 !important;
		background: #d7dbe5 !important;
	}
	.rm-booking__form .bookly-progress-tracker > div:last-child .step { display: none; }
	/* Erledigte und aktueller Schritt */
	.rm-booking__form .bookly-progress-tracker > div:has(~ .active)::before,
	.rm-booking__form .bookly-progress-tracker > .active::before {
		border-color: var(--rm-navy);
		background: var(--rm-navy);
		color: #fff;
	}
	.rm-booking__form .bookly-progress-tracker > div:has(~ .active) .step { background: var(--rm-navy) !important; }
	.rm-booking__form .bookly-progress-tracker > .active::before { box-shadow: 0 0 0 4px rgba(29, 42, 71, .15); }
}

/* ---------- Cookie-Hinweis ---------- */
.rm-cookie {
	position: fixed; left: 20px; bottom: 20px; z-index: 60;
	display: flex; flex-direction: column; gap: 16px;
	width: min(420px, calc(100% - 40px));
	padding: 22px 22px 20px;
	border-radius: 12px;
	background: #fff;
	color: var(--rm-ink);
	box-shadow: 0 20px 50px -12px rgba(17, 24, 39, .35), 0 0 0 1px rgba(17, 24, 39, .06);
	font-size: 13.5px; line-height: 1.55;
}
.rm-cookie[hidden] { display: none; }
.rm-cookie p { margin: 0; }
.rm-cookie__title { margin-bottom: 6px !important; font-size: 15px; font-weight: 600; color: var(--rm-navy); }
.rm-cookie a { color: var(--rm-accent); }
.rm-cookie__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.rm-cookie__actions .rm-btn { width: 100%; }
@media (max-width: 520px) {
	.rm-cookie { left: 12px; right: 12px; bottom: 12px; width: auto; }
}

.rm-reviews__consent {
	padding: 32px;
	border: 1px dashed #c3c8d6;
	border-radius: 12px;
	text-align: center;
	color: var(--rm-muted);
	font-size: 14px;
}
.rm-reviews__consent p { max-width: 560px; margin: 0 auto 16px; }
.rm-reviews__consent .rm-actions { justify-content: center; margin-top: 0; }

/* ---------- Seite Kontakt ---------- */
.rm-contact { padding: 56px 0 80px; background: var(--rm-bg-muted); }
.rm-contact__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: center; }
.rm-contact__media { border-radius: var(--rm-radius); overflow: hidden; aspect-ratio: 4 / 5; box-shadow: 0 24px 50px -24px rgba(29, 42, 71, .35); }
.rm-contact__media img,
.rm-contact__media .rm-ph { width: 100%; height: 100%; object-fit: cover; }
.rm-contact__body { max-width: 440px; }
.rm-contact__title {
	padding-bottom: 20px;
	border-bottom: 1px solid #9aa1b3;
	font-size: clamp(28px, 3.4vw, 40px); font-weight: 500; text-transform: uppercase;
	color: var(--rm-navy);
}
.rm-contact__intro { padding-top: 20px; font-size: 15px; color: var(--rm-muted); }
.rm-contact__intro p:last-child { margin-bottom: 0; }
.rm-contact__group { padding: 22px 0; border-bottom: 1px solid #9aa1b3; }
.rm-contact__group:last-child { border-bottom: 0; }
.rm-contact__heading { margin-bottom: 14px; font-size: 18px; font-weight: 500; text-transform: uppercase; color: var(--rm-navy); }
.rm-contact__list { margin: 0; padding: 0; list-style: none; }
.rm-contact__list li,
.rm-contact__list a { display: flex; align-items: center; gap: 12px; }
.rm-contact__list li { padding: 6px 0; font-size: 16px; color: var(--rm-ink); }
.rm-contact__list a { text-decoration: none; transition: color .2s; }
.rm-contact__list a:hover { color: var(--rm-accent); }
.rm-contact__list svg { flex: 0 0 auto; width: 22px; height: 22px; color: var(--rm-navy); stroke-width: 1.6; }
.rm-contact__list a svg:last-child:not(:first-child) { width: 16px; height: 16px; margin-left: 4px; }
.rm-contact__socials { display: flex; flex-wrap: wrap; gap: 10px; }
.rm-contact__socials a {
	display: grid; place-items: center;
	width: 42px; height: 42px;
	border: 1.5px solid var(--rm-navy);
	border-radius: 50%;
	color: var(--rm-navy);
	transition: background .2s, color .2s;
}
.rm-contact__socials a:hover { background: var(--rm-navy); color: #fff; }
@media (max-width: 860px) {
	.rm-contact { padding: 32px 0 56px; }
	.rm-contact__grid { grid-template-columns: 1fr; gap: 32px; }
	.rm-contact__media { aspect-ratio: 4 / 3; }
	.rm-contact__body { max-width: none; }
}

/* ---------- Seite Hausbesuch ---------- */
.rm-btn--ghost { background: transparent; border-color: rgba(255, 255, 255, .5); color: #fff; }
.rm-btn--ghost:hover { background: rgba(255, 255, 255, .12); border-color: #fff; }

.rm-visit {
	position: relative;
	padding: 64px 0 80px;
	color: rgba(255, 255, 255, .85);
	background:
		radial-gradient(ellipse at 85% 20%, rgba(59, 91, 219, .35), transparent 55%),
		linear-gradient(160deg, var(--rm-navy) 0%, #121a2e 100%);
	overflow: hidden;
}
.rm-visit__grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 64px; align-items: center; }
.rm-visit__kicker { margin-bottom: 12px; font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: #9fb4ff; }
.rm-visit__title { margin-bottom: 20px; font-size: clamp(28px, 4vw, 48px); font-weight: 500; text-transform: uppercase; color: #fff; }
.rm-visit__lead { font-size: 16px; max-width: 560px; }
.rm-visit__facts { margin: 24px 0 8px; padding: 0; list-style: none; }
.rm-visit__facts li { position: relative; padding: 8px 0 8px 32px; font-size: 14px; border-bottom: 1px solid rgba(255, 255, 255, .1); }
.rm-visit__facts li::before {
	content: "";
	position: absolute; left: 0; top: 10px;
	width: 18px; height: 18px;
	border-radius: 50%;
	background: var(--rm-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 12px no-repeat;
}
.rm-visit__video { margin: 0; justify-self: center; width: 100%; max-width: 340px; }
.rm-visit__video figcaption { margin-top: 12px; font-size: 12px; text-align: center; opacity: .7; }

.rm-player {
	position: relative;
	aspect-ratio: 9 / 16;
	border-radius: 24px;
	overflow: hidden;
	background: #000;
	box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .6), 0 0 0 6px rgba(255, 255, 255, .06);
}
.rm-player video { display: block; width: 100%; height: 100%; object-fit: cover; }
.rm-player__play {
	position: absolute; inset: 0; margin: auto;
	display: grid; place-items: center;
	width: 76px; height: 76px;
	padding: 0 0 0 4px;
	border: 0; border-radius: 50%;
	background: rgba(255, 255, 255, .92);
	color: var(--rm-navy);
	cursor: pointer;
	box-shadow: 0 10px 30px rgba(0, 0, 0, .35);
	transition: transform .25s ease, background .25s ease;
}
.rm-player__play::after {
	content: "";
	position: absolute; inset: -10px;
	border-radius: 50%;
	border: 2px solid rgba(255, 255, 255, .6);
	animation: rm-pulse 2s ease-out infinite;
}
.rm-player__play:hover { transform: scale(1.06); background: #fff; }
.rm-player.is-playing .rm-player__play { display: none; }
@keyframes rm-pulse {
	from { transform: scale(.9); opacity: 1; }
	to { transform: scale(1.35); opacity: 0; }
}

.rm-visit__content h2:first-child { margin-top: 0; }
.rm-visit__others { margin-top: 32px; padding: 16px 20px; border-left: 3px solid var(--rm-accent); background: var(--rm-bg-muted); font-weight: 600; }
.rm-visit__others a { display: inline-block; margin-left: 6px; }

.rm-pricelist { margin: 0; padding: 0; list-style: none; }
.rm-pricelist li { display: flex; align-items: baseline; gap: 8px; padding: 12px 0; border-bottom: 1px solid var(--rm-line); font-size: 15px; }
.rm-pricelist__name { font-weight: 600; color: var(--rm-navy); text-decoration: none; }
.rm-pricelist__name:hover { color: var(--rm-accent); }
.rm-pricelist__dots { flex: 1; border-bottom: 1px dotted #b8bdcc; transform: translateY(-4px); min-width: 24px; }
.rm-pricelist__price { font-weight: 600; white-space: nowrap; }
.rm-pricelist__note { margin: 20px 0 0; padding: 12px 16px; border-left: 3px solid var(--rm-accent); background: #fff; font-size: 14px; }

.rm-cta { padding: 72px 0; background: linear-gradient(135deg, var(--rm-navy), var(--rm-navy-2)); color: rgba(255, 255, 255, .85); text-align: center; }
.rm-cta__inner { max-width: 720px; }
.rm-cta__title { margin-bottom: 16px; font-size: clamp(22px, 3vw, 32px); font-weight: 500; text-transform: uppercase; color: #fff; }
.rm-cta .rm-actions { justify-content: center; }

@media (max-width: 860px) {
	.rm-visit { padding: 40px 0 56px; }
	.rm-visit__grid { grid-template-columns: 1fr; gap: 40px; }
	.rm-visit__video { max-width: 300px; }
}
@media (max-width: 520px) {
	.rm-pricelist li { flex-wrap: wrap; }
	.rm-pricelist__dots { display: none; }
	.rm-pricelist__price { width: 100%; font-weight: 500; color: var(--rm-muted); }
}

/* ---------- Seite Geschenkgutscheine ---------- */
:root { --rm-gold: #e9d8a6; --rm-gold-2: #c9b27a; --rm-forest: #0f1a14; }

.rm-btn--gold { background: var(--rm-gold); border-color: var(--rm-gold); color: var(--rm-forest); font-weight: 600; }
.rm-btn--gold:hover { background: transparent; border-color: var(--rm-gold); color: var(--rm-gold); }

.rm-gift-hero {
	position: relative;
	padding: 72px 0 88px;
	color: rgba(255, 255, 255, .82);
	background:
		radial-gradient(ellipse at 78% 45%, rgba(233, 216, 166, .16), transparent 55%),
		radial-gradient(ellipse at 10% 100%, rgba(59, 91, 219, .18), transparent 50%),
		linear-gradient(160deg, #15241b 0%, var(--rm-forest) 100%);
	overflow: hidden;
}
.rm-gift-hero__grid { display: grid; grid-template-columns: 1fr 1.05fr; gap: 56px; align-items: center; }
.rm-gift-hero__kicker { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; font-size: 12px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--rm-gold); }
.rm-gift-hero__kicker::before { content: ""; width: 32px; height: 1px; background: currentColor; }
.rm-gift-hero__title { margin-bottom: 20px; font-size: clamp(30px, 4.2vw, 52px); font-weight: 500; letter-spacing: .02em; text-transform: uppercase; color: #fff; }
.rm-gift-hero__lead { max-width: 520px; font-size: 16px; }
.rm-gift-hero__facts { margin: 24px 0 8px; padding: 0; list-style: none; }
.rm-gift-hero__facts li { position: relative; padding: 9px 0 9px 30px; font-size: 14px; border-bottom: 1px solid rgba(233, 216, 166, .14); }
.rm-gift-hero__facts li::before {
	content: "";
	position: absolute; left: 0; top: 13px;
	width: 16px; height: 16px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e9d8a6' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='8' width='18' height='13' rx='1.5'/%3E%3Cpath d='M3 12h18M12 8v13M12 8S10.5 3 7.5 3.5 7 8 12 8Zm0 0s1.5-5 4.5-4.5S17 8 12 8Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Fächer aus drei Gutscheinen */
.rm-gift-hero__stack { position: relative; aspect-ratio: 1487 / 1058; margin: 32px 0 16px 12%; }
.rm-gift-hero__stack img {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
	border-radius: 10px;
	box-shadow: 0 30px 60px -18px rgba(0, 0, 0, .7), 0 0 0 1px rgba(233, 216, 166, .18);
	transform-origin: 30% 100%;
	transition: transform .6s cubic-bezier(.2, .8, .2, 1);
}
.rm-gift-hero__stack img:nth-child(1) { transform: rotate(-11deg) translate(-9%, -3%); filter: brightness(.7); }
.rm-gift-hero__stack img:nth-child(2) { transform: rotate(-5deg) translate(-4%, -1%); filter: brightness(.85); }
.rm-gift-hero__stack img:nth-child(3) { transform: rotate(1.5deg); }
.rm-gift-hero__stack:hover img:nth-child(1) { transform: rotate(-15deg) translate(-12%, -5%); }
.rm-gift-hero__stack:hover img:nth-child(2) { transform: rotate(-7deg) translate(-6%, -2%); }
.rm-gift-hero__stack:hover img:nth-child(3) { transform: rotate(2.5deg) translate(1%, 0); }

/* Auswahl */
.rm-gifts__title { text-align: center; }
.rm-gifts__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; align-items: stretch; }
.rm-gift {
	position: relative;
	display: flex; flex-direction: column;
	border: 1px solid var(--rm-line);
	border-radius: 14px;
	background: #fff;
	overflow: hidden;
	transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.rm-gift:hover { transform: translateY(-6px); box-shadow: 0 24px 48px -24px rgba(15, 26, 20, .45); border-color: var(--rm-gold-2); }
.rm-gift--featured { border-color: var(--rm-gold-2); box-shadow: 0 0 0 1px var(--rm-gold-2), 0 24px 48px -28px rgba(15, 26, 20, .5); }
.rm-gift__badge {
	position: absolute; top: 14px; right: 14px; z-index: 1;
	padding: 5px 12px;
	border-radius: 999px;
	background: var(--rm-gold);
	color: var(--rm-forest);
	font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
	box-shadow: 0 6px 16px rgba(0, 0, 0, .25);
}
.rm-gift__media { aspect-ratio: 1487 / 1058; background: var(--rm-forest); overflow: hidden; }
.rm-gift__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.rm-gift:hover .rm-gift__media img { transform: scale(1.04); }
.rm-gift__body { display: flex; flex-direction: column; flex: 1; padding: 22px 24px 24px; }
.rm-gift__name { margin-bottom: 8px; font-size: 18px; font-weight: 600; color: var(--rm-navy); }
.rm-gift__text { flex: 1; color: var(--rm-muted); font-size: 14px; }
.rm-gift__buy { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-top: 16px; border-top: 1px solid var(--rm-line); }
.rm-gift__price { font-size: 28px; font-weight: 600; color: var(--rm-ink); white-space: nowrap; }
.rm-gift__btn { min-width: 128px; }
.rm-gifts__note { max-width: 640px; margin: 36px auto 0; text-align: center; color: var(--rm-muted); font-size: 14px; }

/* Ablauf */
.rm-gift-steps__list { display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; margin: 0; padding: 0; list-style: none; counter-reset: gift; }
.rm-gift-steps__list li { position: relative; padding-top: 64px; counter-increment: gift; }
.rm-gift-steps__list li::before {
	content: counter(gift);
	position: absolute; top: 0; left: 0;
	display: grid; place-items: center;
	width: 46px; height: 46px;
	border: 1px solid var(--rm-gold-2);
	border-radius: 50%;
	background: var(--rm-forest);
	color: var(--rm-gold);
	font-size: 17px; font-weight: 600;
}
.rm-gift-steps__list li:not(:last-child)::after {
	content: "";
	position: absolute; top: 23px; left: 58px; right: -16px;
	border-top: 1px dashed var(--rm-gold-2);
	opacity: .6;
}
.rm-gift-steps__list strong { display: block; margin-bottom: 6px; font-size: 15px; color: var(--rm-navy); }
.rm-gift-steps__list span { display: block; font-size: 14px; color: var(--rm-muted); }

/* Fenster „Online-Kauf in Kürze“ */
.rm-gift-dialog {
	width: min(440px, calc(100% - 32px));
	padding: 32px 28px 28px;
	border: 0;
	border-top: 4px solid var(--rm-gold-2);
	border-radius: 14px;
	color: var(--rm-ink);
	box-shadow: 0 30px 80px rgba(0, 0, 0, .35);
}
.rm-gift-dialog::backdrop { background: rgba(10, 16, 12, .6); backdrop-filter: blur(3px); }
.rm-gift-dialog__close-form { position: absolute; top: 8px; right: 8px; margin: 0; }
.rm-gift-dialog__close { width: 40px; height: 40px; border: 0; background: none; font-size: 26px; line-height: 1; color: var(--rm-muted); cursor: pointer; }
.rm-gift-dialog__title { margin-bottom: 12px; font-size: 20px; font-weight: 600; color: var(--rm-navy); }
.rm-gift-dialog p { font-size: 14px; color: var(--rm-muted); }
.rm-gift-dialog__choice { padding: 10px 14px; border-left: 3px solid var(--rm-gold-2); background: var(--rm-bg-muted); color: var(--rm-ink) !important; font-weight: 600; }
.rm-gift-dialog__choice:empty { display: none; }
.rm-gift-dialog .rm-actions { margin-top: 20px; }
.rm-gift-dialog .rm-actions .rm-btn { flex: 1; }

@media (max-width: 1024px) {
	.rm-gifts__grid { gap: 18px; }
	.rm-gift__buy { flex-direction: column; align-items: stretch; text-align: center; }
	.rm-gift-steps__list { grid-template-columns: repeat(2, 1fr); row-gap: 36px; }
	.rm-gift-steps__list li::after { display: none; }
}
@media (max-width: 860px) {
	.rm-gift-hero { padding: 40px 0 56px; }
	.rm-gift-hero__grid { grid-template-columns: 1fr; gap: 32px; }
	.rm-gift-hero__stack { order: -1; width: 78%; margin: 24px auto 16px; left: 5%; }
	.rm-gifts__grid { grid-template-columns: 1fr; max-width: 460px; margin: 0 auto; }
	.rm-gift__buy { flex-direction: row; align-items: center; text-align: left; }
}
@media (max-width: 520px) {
	.rm-gift-steps__list { grid-template-columns: 1fr; row-gap: 24px; }
	.rm-gift-steps__list li { padding: 4px 0 0 62px; min-height: 46px; }
}
@media (prefers-reduced-motion: reduce) {
	.rm-gift, .rm-gift__media img, .rm-gift-hero__stack img { transition: none; }
}

/* ---------- 404 ---------- */
.rm-404 {
	position: relative;
	display: flex; align-items: center;
	min-height: calc(100vh - var(--rm-header-h));
	min-height: calc(100svh - var(--rm-header-h));
	padding: 72px 0 88px;
	color: rgba(255, 255, 255, .85);
	text-align: center;
	background: linear-gradient(160deg, var(--rm-navy) 0%, #121a2e 100%);
	overflow: hidden;
	isolation: isolate;
}
.rm-404::before {
	content: "";
	position: absolute; inset: -20px;
	z-index: -2;
	background: var(--rm-404-bg, none) center / cover no-repeat;
	filter: blur(6px) saturate(.8);
	transform: scale(1.05);
	opacity: .45;
}
.rm-404::after {
	content: "";
	position: absolute; inset: 0;
	z-index: -1;
	background:
		radial-gradient(ellipse at 50% 35%, rgba(59, 91, 219, .28), transparent 60%),
		linear-gradient(180deg, rgba(18, 26, 46, .72), rgba(18, 26, 46, .92));
}
.rm-404__inner { display: flex; flex-direction: column; align-items: center; }
.rm-404__code {
	margin: 0 0 4px;
	font-size: clamp(120px, 24vw, 240px);
	font-weight: 700;
	line-height: .9;
	letter-spacing: -.04em;
	color: transparent;
	-webkit-text-stroke: 2px rgba(255, 255, 255, .55);
	background: linear-gradient(180deg, rgba(255, 255, 255, .22), rgba(255, 255, 255, 0) 80%);
	-webkit-background-clip: text;
	background-clip: text;
	animation: rm-404-breathe 6s ease-in-out infinite;
}
@keyframes rm-404-breathe {
	0%, 100% { transform: scale(1); opacity: .9; }
	50% { transform: scale(1.03); opacity: 1; }
}
.rm-404__title { max-width: 720px; margin-bottom: 16px; font-size: clamp(24px, 3.4vw, 38px); font-weight: 500; text-transform: uppercase; color: #fff; }
.rm-404__text { max-width: 540px; font-size: 16px; }
.rm-404__actions { justify-content: center; }
.rm-404__links {
	display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px;
	width: 100%; max-width: 860px;
	margin-top: 48px;
}
.rm-404__link {
	display: flex; align-items: center; gap: 12px;
	padding: 14px 16px;
	border: 1px solid rgba(255, 255, 255, .16);
	border-radius: 12px;
	background: rgba(255, 255, 255, .06);
	backdrop-filter: blur(6px);
	color: #fff;
	font-size: 14px; font-weight: 500;
	text-align: left;
	text-decoration: none;
	transition: background .25s, border-color .25s, transform .25s;
}
.rm-404__link:hover { background: rgba(255, 255, 255, .14); border-color: rgba(255, 255, 255, .4); transform: translateY(-3px); }
.rm-404__link > span:nth-child(2) { flex: 1; }
.rm-404__link > svg { opacity: .6; flex: 0 0 auto; }
.rm-404__icon { display: grid; place-items: center; width: 40px; height: 40px; flex: 0 0 40px; border-radius: 50%; background: rgba(159, 180, 255, .16); color: #c9d5ff; }
.rm-404__icon svg { width: 20px; height: 20px; }
@media (max-width: 860px) {
	.rm-404__links { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 520px) {
	.rm-404 { padding: 48px 0 64px; }
	.rm-404__links { grid-template-columns: 1fr; margin-top: 36px; }
	.rm-404__actions { flex-direction: column; width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
	.rm-404__code { animation: none; }
}

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
	.rm-cards,
	.rm-people { grid-template-columns: repeat(3, 1fr); }
	.rm-why__grid { grid-template-columns: 1fr; gap: 40px; }
	.rm-header__info { display: none; }
	.rm-header__contacts { margin-left: auto; }
}

@media (max-width: 860px) {
	:root { --rm-header-h: 64px; }
	html { scroll-padding-top: 80px; }
	.rm-burger { display: flex; }
	.rm-header__contacts .rm-socials { display: none; }
	.rm-nav {
		display: none;
		background: var(--rm-navy);
		border-top: 1px solid rgba(255, 255, 255, .1);
	}
	.rm-nav.is-open { display: block; }
	.rm-menu { flex-direction: column; gap: 0; padding: 8px 0 16px; }
	.rm-menu a { display: block; padding: 10px 0; font-size: 15px; }
	.rm-menu .sub-menu { display: block; padding-left: 16px; list-style: none; }
	.rm-nav__book {
		display: flex;
		width: 100%;
		min-height: 50px;
		margin: 4px 0 12px;
		font-size: 15px;
	}
	.rm-nav__phone {
		display: flex; align-items: center; gap: 10px;
		margin: 0 0 16px; padding: 12px 16px;
		border: 1px solid rgba(255, 255, 255, .25);
		border-radius: var(--rm-radius);
		font-size: 15px; font-weight: 600; text-decoration: none;
	}
	.rm-nav__phone svg { width: 18px; height: 18px; }

	.rm-section { padding: 56px 0; }
	.rm-cards,
	.rm-people,
	.rm-posts { grid-template-columns: repeat(2, 1fr); gap: 16px; }
	.rm-cert__grid,
	.rm-about__grid,
	.rm-faq__grid,
	.rm-single { grid-template-columns: 1fr; gap: 32px; }
	.rm-footer__grid { grid-template-columns: 1fr; gap: 32px; }
	.rm-hero { min-height: 80vh; padding-bottom: 56px; }
}

@media (max-width: 520px) {
	.rm-container { padding: 0 16px; }
	.rm-why { padding: 64px 0; }
	.rm-why__list { grid-template-columns: 1fr; gap: 32px; }
	.rm-why__num { font-size: 32px; }
	.rm-cards,
	.rm-posts { grid-template-columns: 1fr; }
	.rm-header__phone { font-size: 13px; }
	.rm-logo__text { font-size: 13px; }
}

@media (max-width: 782px) {
	.admin-bar .rm-header { top: 46px; }
}

/* Bis 600 px ist die WP-Admin-Leiste nicht fixiert und scrollt weg – Kopfzeile dann ganz oben andocken */
@media (max-width: 600px) {
	.admin-bar .rm-header:not(.rm-header--overlay),
	.admin-bar .rm-header.is-scrolled { top: 0; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	* { transition: none !important; animation: none !important; }
	.rm-card:hover,
	.rm-card:hover .rm-card__media img,
	.rm-card:hover .rm-card__media .rm-ph { transform: none; }
}
