/*
Theme Name:        Osterweg Sylt
Description:       One-Pager für die Ferienwohnung „Carolin App. 3“ im Osterweg, Wenningstedt / Sylt. Lokale Schrift und Icons. OpenStreetMap zeigt den Standort direkt beim Seitenaufruf.
Version:           1.2.1
Requires at least: 6.3
Requires PHP:      8.0
Author:            Steffen Wentzel
License:           GPL-2.0-or-later
Text Domain:       osterweg
*/

/* ------------------------------------------------------------------ Schrift */

@font-face {
	font-family: "Inter Tight";
	font-style: normal;
	font-display: swap;
	font-weight: 100 900;
	src: url(assets/fonts/inter-tight-latin-wght-normal.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;
}

/* ------------------------------------------------------------------ Tokens */

:root {
	/* Grundpalette Sylt: Kreideweiß, Dünensand, Nordsee-Schiefer */
	--chalk: #FBFAF7;
	--paper: #F5F2EC;
	--sand-100: #EEE8DE;
	--sand-200: #E2D9CA;
	--sand-300: #CDBFA8;
	--sand-500: #A8957A;
	--driftwood: #7D6E5B;
	--sea-100: #E3E8EA;
	--sea-300: #A9B8BF;
	--sea-500: #5E7682;
	--sea-700: #3A4F5A;
	--ink: #1F2326;
	--ink-2: #4A4F53;
	--ink-3: #7C8084;
	--line: #DDD6CB;
	--line-strong: #BFB5A6;
	--white: #FFFFFF;
	/* Pine – Aktionsfarbe */
	--pine-50: #F6F9F8;
	--pine-100: #EEF3F2;
	--pine-200: #D5E0DE;
	--pine-500: #506A6C;
	--pine-700: #234C50;
	--pine-800: #1C3F42;
	--pine-900: #273F43;
	/* Belegung */
	--state-free: #E7ECE3;
	--state-free-ink: #4C5E45;
	--state-booked: #E6DCD3;
	--state-booked-ink: #8A5E4A;
	--state-booked-strong: #B9927D;
	--success: #4C6B4A;
	--error: #9A3F32;

	--surface-page: var(--chalk);
	--surface-alt: var(--paper);
	--surface-sand: var(--sand-100);
	--surface-card: var(--white);
	--text-body: var(--ink-2);
	--text-strong: var(--ink);
	--text-muted: var(--ink-3);
	--text-on-dark-muted: #B9B6B0;
	--border-default: var(--line);
	--border-strong: var(--line-strong);
	--focus-ring: var(--pine-700);

	/* Typografie */
	--font-sans: "Inter Tight", ui-sans-serif, system-ui, -apple-system, "Helvetica Neue", sans-serif;
	--text-display: clamp(44px, 6.4vw, 88px);
	--text-h1: clamp(36px, 4.4vw, 56px);
	--text-h2: clamp(28px, 3vw, 38px);
	--text-h3: 22px;
	--text-lead: 20px;
	--text-body-size: 17px;
	--leading-tight: 1.05;
	--leading-snug: 1.25;
	--leading-body: 1.65;
	--tracking-display: -0.025em;
	--tracking-heading: -0.015em;
	--tracking-eyebrow: 0.22em;
	--tracking-button: 0.12em;

	/* Abstände & Bewegung */
	--section-y: clamp(72px, 10vw, 144px);
	--gutter: clamp(20px, 4vw, 56px);
	--content-max: 1200px;
	--header-h: 78px;
	--shadow-lift: 0 1px 2px rgba(31, 35, 38, .04), 0 12px 32px -12px rgba(31, 35, 38, .18);
	--shadow-overlay: 0 24px 64px -16px rgba(31, 35, 38, .35);
	--scrim-hero: linear-gradient(180deg, rgba(31, 35, 38, .10) 0%, rgba(31, 35, 38, 0) 35%, rgba(31, 35, 38, .45) 100%);
	--ease-out: cubic-bezier(.22, .61, .36, 1);
	--dur-fast: 160ms;
	--dur-base: 280ms;
	--dur-slow: 700ms;
}

/* ------------------------------------------------------------------ Basis */

html {
	scroll-behavior: smooth;
	scroll-padding-top: var(--header-h);
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
}

body {
	margin: 0;
	background: var(--surface-page);
	color: var(--text-body);
	font-family: var(--font-sans);
	-webkit-font-smoothing: antialiased;
}

a { color: var(--pine-700); }
a:hover { color: var(--pine-800); }

:focus-visible {
	outline: 2px solid var(--focus-ring);
	outline-offset: 2px;
}

.ow-icon { flex: none; display: block; }

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.ow-skip:focus {
	clip: auto;
	width: auto;
	height: auto;
	margin: 0;
	top: 8px;
	left: 8px;
	z-index: 200;
	padding: 12px 16px;
	background: var(--white);
	color: var(--pine-700);
}

/* ------------------------------------------------------------------ Layout */

.ow-section { background: var(--surface-page); }
.ow-section--alt { background: var(--surface-alt); }
.ow-section--sand { background: var(--surface-sand); }

.ow-container {
	max-width: var(--content-max);
	margin: 0 auto;
	padding: var(--section-y) var(--gutter);
	box-sizing: border-box;
}

.ow-container--wide { max-width: 1440px; }

.ow-stack { display: flex; flex-direction: column; }
.ow-stack--14 { gap: 14px; }
.ow-stack--28 { gap: 28px; }
.ow-stack--32 { gap: 32px; }
.ow-stack--48 { gap: 48px; }
.ow-stack--56 { gap: 56px; }

/* ------------------------------------------------------------------ Text */

.ow-eyebrow {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 0;
	color: var(--driftwood);
	font-size: 12px;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
}

.ow-eyebrow--rule::before {
	content: "";
	width: 32px;
	height: 1px;
	background: currentColor;
	opacity: .6;
}

.ow-heading {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 20px;
	max-width: 720px;
}

.ow-heading--center {
	align-items: center;
	max-width: 760px;
	margin-inline: auto;
	text-align: center;
}

.ow-heading h2,
.ow-page__title {
	margin: 0;
	color: var(--text-strong);
	font-size: var(--text-h2);
	font-weight: 300;
	line-height: var(--leading-snug);
	letter-spacing: var(--tracking-heading);
	text-wrap: balance;
}

.ow-page__title { font-size: var(--text-h1); }

.ow-lead {
	margin: 0;
	color: var(--text-body);
	font-size: var(--text-lead);
	font-weight: 300;
	line-height: 1.6;
	text-wrap: pretty;
}

.ow-text {
	margin: 0;
	color: var(--text-body);
	font-size: var(--text-body-size);
	line-height: var(--leading-body);
	text-wrap: pretty;
}

h3 {
	margin: 0;
	color: var(--ink);
	font-size: var(--text-h3);
	font-weight: 400;
}

/* ------------------------------------------------------------------ Button */

.ow-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	box-sizing: border-box;
	padding: 15px 28px;
	border: 1px solid var(--pine-700);
	border-radius: 0;
	background: var(--pine-700);
	color: var(--white);
	font-family: var(--font-sans);
	font-size: 13px;
	font-weight: 500;
	line-height: 1;
	letter-spacing: var(--tracking-button);
	text-decoration: none;
	text-transform: uppercase;
	cursor: pointer;
	transition: background var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}

.ow-button:hover {
	border-color: var(--pine-800);
	background: var(--pine-800);
	color: var(--white);
}

.ow-button:active { transform: translateY(1px); }

.ow-button--sm {
	padding: 10px 18px;
	font-size: 12px;
}

.ow-button--secondary {
	background: transparent;
	color: var(--pine-700);
}

.ow-button--secondary:hover {
	border-color: var(--pine-700);
	background: var(--pine-700);
	color: var(--white);
}

@media (max-width: 600px) {
	.ow-button { line-height: 1.35; text-align: left; }
}

/* ------------------------------------------------------------------ Header */

.ow-header {
	position: fixed;
	top: 0;
	right: 0;
	left: 0;
	z-index: 50;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 22px var(--gutter);
	border-bottom: 1px solid transparent;
	background: transparent;
	color: var(--chalk);
	transition: background var(--dur-base) var(--ease-out), border-color var(--dur-base);
}

.ow-header.is-solid {
	border-bottom-color: var(--border-default);
	background: rgba(251, 250, 247, .96);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	color: var(--ink);
}

.ow-header.is-open {
	background: rgba(251, 250, 247, .96);
	color: var(--ink);
}

.admin-bar .ow-header { top: 32px; }

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

.ow-wordmark {
	display: inline-flex;
	flex: none;
	align-items: center;
	gap: 12px;
	color: inherit;
	line-height: 1;
	text-decoration: none;
}

.ow-wordmark:hover { color: inherit; }
.ow-logo-mark { display: block; flex: none; }

.ow-wordmark__name {
	font-size: 14px;
	font-weight: 500;
	letter-spacing: .3em;
	text-transform: uppercase;
}

/* Auf hellem Grund in Kiefergrün, über dem Foto in Kreide. */
.ow-header.is-solid .ow-wordmark,
.ow-header.is-open .ow-wordmark { color: var(--pine-700); }

.ow-nav {
	display: flex;
	flex-wrap: nowrap;
	justify-content: flex-end;
	gap: clamp(16px, 2.4vw, 32px);
}

.ow-nav a {
	padding-bottom: 4px;
	border-bottom: 1px solid transparent;
	color: inherit;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: clamp(.08em, .2vw, .16em);
	text-decoration: none;
	text-transform: uppercase;
	white-space: nowrap;
	opacity: .78;
}

.ow-nav a:hover { opacity: 1; }

.ow-nav a.is-active {
	border-bottom-color: currentColor;
	opacity: 1;
}

.ow-menu-toggle {
	display: none;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	background: transparent;
	color: inherit;
	cursor: pointer;
}

.ow-menu-toggle__close,
.ow-header.is-open .ow-menu-toggle__open { display: none; }
.ow-header.is-open .ow-menu-toggle__close { display: block; }

@media (max-width: 819px) {
	.ow-menu-toggle { display: flex; }

	.ow-nav {
		position: absolute;
		top: 100%;
		right: 0;
		left: 0;
		display: none;
		flex-direction: column;
		gap: 0;
		padding: 8px var(--gutter) 20px;
		border-bottom: 1px solid var(--border-default);
		background: var(--chalk);
	}

	.ow-header.is-open .ow-nav { display: flex; }

	.ow-nav a {
		padding: 14px 0;
		border-top: 1px solid var(--border-default);
		border-bottom: 0;
		color: var(--ink);
		font-size: 13px;
		letter-spacing: .16em;
		opacity: 1;
	}

	.ow-nav a.is-active { color: var(--pine-700); }
}

/* ------------------------------------------------------------------ Hero */

.ow-hero {
	position: relative;
	display: flex;
	align-items: flex-end;
	height: 100vh;
	min-height: 520px;
	overflow: hidden;
	background: var(--ink);
}

.ow-hero__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ow-hero__scrim {
	position: absolute;
	inset: 0;
	background: var(--scrim-hero);
}

.ow-hero__content {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 22px;
	width: 100%;
	box-sizing: border-box;
	padding: 0 var(--gutter) clamp(56px, 9vh, 104px);
}

.ow-hero h1 {
	max-width: 980px;
	margin: 0;
	color: var(--chalk);
	font-size: var(--text-display);
	font-weight: 200;
	line-height: var(--leading-tight);
	letter-spacing: var(--tracking-display);
	text-wrap: balance;
}

.ow-hero__sub {
	margin: 0;
	color: var(--chalk);
	font-size: clamp(16px, 1.6vw, 20px);
	font-weight: 400;
	letter-spacing: .24em;
	text-transform: uppercase;
	opacity: .9;
}

.ow-hero__down {
	position: absolute;
	right: var(--gutter);
	bottom: clamp(56px, 9vh, 104px);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	box-sizing: border-box;
	border: 1px solid rgba(251, 250, 247, .6);
	border-radius: 999px;
	color: var(--chalk);
	transition: background var(--dur-base) var(--ease-out), border-color var(--dur-base);
}

.ow-hero__down:hover {
	border-color: var(--chalk);
	background: rgba(251, 250, 247, .12);
	color: var(--chalk);
}

/* ------------------------------------------------------------------ Wohnung */

.ow-intro {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
	align-items: center;
	gap: 48px 80px;
}

.ow-intro__img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 5;
	object-fit: cover;
}

/* ------------------------------------------------------------------ Ausstattung */

.ow-facts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr));
	column-gap: 40px;
	margin: 0;
	border-top: 1px solid var(--border-default);
}

.ow-facts > div {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 20px 0;
	border-bottom: 1px solid var(--border-default);
}

.ow-facts dt {
	color: var(--driftwood);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .18em;
	text-transform: uppercase;
}

.ow-facts dd {
	margin: 0;
	color: var(--ink);
	font-size: 30px;
	font-weight: 300;
	line-height: 1.45;
	letter-spacing: -.01em;
}

.ow-areas {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
	gap: 48px;
}

/* ------------------------------------------------------------------ Galerie */

.ow-gallery {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr));
	grid-auto-flow: dense;
	gap: 8px;
}

.ow-gallery__item {
	display: block;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	background: var(--sand-100);
	cursor: zoom-in;
}

/* Breite Kacheln (2 × 2) erst, wenn mindestens zwei Spalten Platz haben. */
@media (min-width: 580px) {
	.ow-gallery__item.is-wide {
		grid-column: span 2;
		grid-row: span 2;
		aspect-ratio: auto;
	}
}

.ow-gallery__item img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--dur-slow) var(--ease-out), opacity var(--dur-base);
}

.ow-gallery__item:hover img { transform: scale(1.03); }

.ow-lightbox {
	position: fixed;
	inset: 0;
	z-index: 100;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 20px;
	padding: 64px 72px;
	background: rgba(24, 27, 29, .94);
}

.ow-lightbox[hidden] { display: none; }

.ow-lightbox__img {
	max-width: 100%;
	max-height: calc(100% - 40px);
	object-fit: contain;
	box-shadow: var(--shadow-overlay);
}

.ow-lightbox__btn {
	position: absolute;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--chalk);
	cursor: pointer;
	opacity: .85;
}

.ow-lightbox__btn:hover { opacity: 1; }
.ow-lightbox__close { top: 20px; right: 20px; }
.ow-lightbox__prev,
.ow-lightbox__next { top: 50%; transform: translateY(-50%); }
.ow-lightbox__prev { left: 16px; }
.ow-lightbox__next { right: 16px; }

.ow-lightbox__caption {
	display: flex;
	align-items: baseline;
	gap: 16px;
	margin: 0;
	color: var(--chalk);
	font-size: 14px;
}

.ow-lightbox__alt { font-weight: 300; }

.ow-lightbox__count {
	color: var(--text-on-dark-muted);
	font-variant-numeric: tabular-nums;
	letter-spacing: .1em;
}

html.ow-noscroll { overflow: hidden; }

/* ------------------------------------------------------------------ Belegung */

.ow-booking-head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 40px;
}

.ow-sas {
	display: flex;
	align-items: center;
	gap: 20px;
	max-width: 480px;
}

.ow-sas img {
	flex: none;
	width: 64px;
	height: 64px;
	object-fit: contain;
}

.ow-sas p {
	margin: 0;
	color: var(--text-body);
	font-size: 15px;
	line-height: var(--leading-body);
	text-wrap: pretty;
}

/* Der Belegungskalender bringt sein eigenes CSS mit (Plugin, nutzt die Tokens oben). */

/* ------------------------------------------------------------------ Über uns */

.ow-about {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 28px;
	max-width: 900px;
	text-align: center;
}

.ow-about__text {
	margin: 0;
	color: var(--ink);
	font-size: clamp(22px, 2.4vw, 30px);
	font-weight: 300;
	line-height: 1.5;
	letter-spacing: -.01em;
	text-wrap: balance;
}

/* ------------------------------------------------------------------ Kontakt */

.ow-contact-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 400px), 1fr));
	align-items: start;
	gap: 56px 96px;
}

/* Standort: OpenStreetMap direkt anzeigen, mit dauerhaft sichtbarem Link. */
.ow-map {
	grid-column: 1 / -1;
	min-width: 0;
	margin: 0;
	border: 1px solid var(--border-default);
	background: var(--surface-sand);
}

.ow-map__frame { display: block; width: 100%; height: 440px; border: 0; }
.ow-map .ow-map__canvas { height: 440px; isolation: isolate; z-index: 0; font-family: inherit; }
.ow-map__canvas[hidden] { display: none; }
.ow-map__marker { color: var(--pine-700); }
.ow-map__pin {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	border: 2px solid var(--pine-700);
	border-radius: 50%;
	background: var(--chalk);
	box-shadow: 0 3px 12px #0003;
}
.ow-map__pin::after {
	content: '';
	position: absolute;
	left: 26px;
	top: 61px;
	width: 12px;
	height: 12px;
	transform: rotate(45deg);
	border-right: 2px solid var(--pine-700);
	border-bottom: 2px solid var(--pine-700);
	background: var(--chalk);
}
.ow-map__marker:focus-visible { outline: 3px solid var(--pine-700); outline-offset: 5px; border-radius: 50%; }
.ow-map__fallback { margin: 0; padding: 20px 24px; }
.ow-map .leaflet-popup-content { margin: 16px 24px; line-height: 1.6; }
.ow-map .leaflet-control-attribution { font-size: 11px; }

.ow-map__caption {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px 24px;
	padding: 18px 24px;
	border-top: 1px solid var(--border-default);
	background: var(--surface-card);
	font-size: 14px;
	line-height: 1.5;
}

.ow-map__caption > a { display: inline-flex; align-items: center; gap: 8px; }
.ow-map__caption small { font-size: 12px; }

@media (max-width: 600px) {
	.ow-map__frame { height: 380px; }
	.ow-map .ow-map__canvas { height: 380px; }
	.ow-map__caption { padding: 16px 20px; }
}

.ow-address {
	margin: 0;
	color: var(--ink);
	font-size: var(--text-body-size);
	line-height: var(--leading-body);
}

.ow-tiles {
	display: grid;
	gap: 12px;
}

.ow-tile {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	min-height: 140px;
	box-sizing: border-box;
	padding: 28px 28px 26px;
	border: 1px solid var(--border-default);
	background: var(--white);
	color: var(--ink);
	text-decoration: none;
	transition: background var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out), border-color var(--dur-base);
}

.ow-tile:hover {
	border-color: var(--pine-700);
	background: var(--pine-700);
	color: var(--white);
}

.ow-tile__text {
	display: flex;
	flex-direction: column;
	gap: 10px;
	min-width: 0;
}

.ow-tile__eyebrow {
	color: var(--driftwood);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .18em;
	text-transform: uppercase;
	transition: color var(--dur-base) var(--ease-out);
}

.ow-tile:hover .ow-tile__eyebrow { color: var(--pine-200); }

.ow-tile__title {
	font-size: 22px;
	font-weight: 300;
	letter-spacing: -.01em;
	overflow-wrap: anywhere;
}

.ow-tile .ow-icon { transition: transform var(--dur-base) var(--ease-out); }
.ow-tile:hover .ow-icon { transform: translate(2px, -2px); }

/* ------------------------------------------------------------------ Footer */

.ow-footer {
	padding: 48px var(--gutter);
	border-top: 1px solid var(--pine-200);
	background: var(--pine-100);
	color: var(--pine-500);
}

.ow-footer__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 32px 48px;
	max-width: var(--content-max);
	margin: 0 auto;
}

.ow-footer__brand {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.ow-footer__cap {
	margin: 0;
	color: var(--pine-900);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.ow-footer__title {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 0;
	color: var(--pine-900);
	font-size: 26px;
	font-weight: 600;
	letter-spacing: -.01em;
}

.ow-footer__title .ow-logo-mark { color: var(--pine-700); }

.ow-footer__blurb {
	margin: 0;
	font-size: 15px;
	line-height: 1.55;
}

.ow-footer__legal {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 28px;
}

.ow-footer__legal a {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: var(--pine-900);
	font-size: 16px;
	text-decoration: none;
}

.ow-footer__legal a:hover {
	color: var(--pine-700);
	text-decoration: underline;
	text-underline-offset: 4px;
}

/* ------------------------------------------------------------------ Cookie-Hinweis */

.ow-cookie {
	position: fixed;
	bottom: 24px;
	left: 24px;
	z-index: 90;
	display: flex;
	flex-direction: column;
	gap: 16px;
	width: min(440px, calc(100vw - 48px));
	box-sizing: border-box;
	padding: 28px;
	border: 1px solid var(--border-default);
	background: var(--white);
	box-shadow: var(--shadow-lift);
}

.ow-cookie[hidden] { display: none; }

.ow-cookie__title {
	margin: 0;
	color: var(--ink);
	font-size: 18px;
	font-weight: 400;
}

.ow-cookie__text {
	margin: 0;
	color: var(--ink-2);
	font-size: 14px;
	line-height: 1.6;
}

.ow-cookie__text a { text-underline-offset: 3px; }

.ow-cookie__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 4px;
}

/* ------------------------------------------------------------------ Unterseiten */

.ow-page { padding-top: var(--header-h); }

.ow-page__inner { max-width: 760px; }

.ow-prose {
	color: var(--text-body);
	font-size: var(--text-body-size);
	line-height: var(--leading-body);
}

.ow-prose > :first-child { margin-top: 0; }

.ow-prose h2,
.ow-prose h3,
.ow-prose h4 {
	margin: 1.8em 0 .6em;
	color: var(--ink);
	font-weight: 400;
	line-height: var(--leading-snug);
}

.ow-prose h2 { font-size: 26px; font-weight: 300; }
.ow-prose h3 { font-size: 21px; }
.ow-prose h4 { font-size: 18px; }
.ow-prose a { text-underline-offset: 4px; }
