/* RG Fris: layer for the rostockgedser.com network on top of the PF Fris base */

:root {
	--rg-ink: var(--wp--preset--color--ink);
	--rg-soft: var(--wp--preset--color--ink-soft);
	--rg-line: var(--wp--preset--color--line);
	--rg-sea: var(--wp--preset--color--amber);
	--rg-sea-tint: var(--wp--preset--color--amber-tint);
	--rg-white: #fff;
	--rg-radius: 8px;
	--rg-wrap: 1200px;
	--rg-gutter: clamp(1rem, 3vw, 2rem);
	--rg-brand: #14124d;
	--rg-deco: #00b56a;
	--rg-cta: #ffc53d;
	--rg-cta-hover: #ffb300;
	--rg-cta-ink: #14124d;
}

html { scroll-behavior: smooth; }

/* Disclosure bar: the existing wording, kept on every page */
.rg-utility-bar {
	background: var(--rg-ink);
	color: rgba(255, 255, 255, 0.88);
}
.rg-disclosure {
	max-width: var(--rg-wrap);
	margin: 0 auto !important;
	padding: 0.45rem var(--rg-gutter) !important;
	font-size: 0.78rem !important;
	line-height: 1.45;
	display: flex;
	gap: 0.5rem;
	align-items: baseline;
}
.rg-disclosure a { color: #fff; text-decoration: underline; text-underline-offset: 2px; white-space: nowrap; }
.rg-disclosure-icon {
	flex: none;
	width: 1.05em;
	height: 1.05em;
	border: 1px solid currentColor;
	border-radius: 50%;
	font-size: 0.72rem;
	font-style: italic;
	font-weight: 600;
	line-height: 1;
	display: inline-grid;
	place-items: center;
	transform: translateY(1px);
}

/* Header */
.rg-header {
	background: var(--rg-white);
	border-bottom: 1px solid var(--rg-line);
	position: sticky;
	top: 0;
	z-index: 50;
}
.admin-bar .rg-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .rg-header { top: 0; position: relative; } }

.rg-header-inner {
	max-width: var(--rg-wrap);
	margin: 0 auto;
	padding: 0.7rem var(--rg-gutter);
	display: flex;
	align-items: center;
	gap: 1.5rem;
}
.rg-header .rg-nav { margin-left: auto; }
.rg-header a { color: var(--rg-ink); text-decoration: none; }

.rg-wordmark {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(1.15rem, 1rem + 0.8vw, 1.4rem);
	font-weight: 700;
	color: var(--rg-ink);
	text-decoration: none !important;
	white-space: nowrap;
	margin: 0;
}

.rg-nav-list > li > a[aria-current="page"] { color: var(--rg-sea); font-weight: 600; }

.rg-header-actions { display: flex; align-items: center; gap: 0.75rem; }

/* Buttons */
.rg-btn, .rg-bookbar, .rg-section, .rg-hero, .rg-tile, .rg-fact, .rg-note { box-sizing: border-box; }
.rg-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	padding: 0.6rem 1.05rem;
	border-radius: var(--rg-radius);
	font-weight: 600;
	font-size: 0.95rem;
	line-height: 1.2;
	text-decoration: none !important;
	white-space: nowrap;
	transition: background-color 0.15s, color 0.15s;
}
.rg-btn-book { background: var(--rg-sea); color: #fff !important; }
.rg-btn-book:hover, .rg-btn-book:focus-visible { background: var(--rg-ink); }
.rg-btn-ghost { border: 1px solid var(--rg-line); color: var(--rg-ink) !important; background: #fff; }
.rg-btn-ghost:hover { border-color: var(--rg-ink); }

/* Language switcher */
.rg-lang { position: relative; }
.rg-lang summary {
	list-style: none;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.45rem 0.6rem;
	border: 1px solid var(--rg-line);
	border-radius: var(--rg-radius);
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--rg-ink);
}
.rg-lang summary::-webkit-details-marker { display: none; }
.rg-lang summary svg { width: 1rem; height: 1rem; }
.rg-lang[open] summary { border-color: var(--rg-ink); }
.rg-lang ul {
	position: absolute;
	right: 0;
	top: calc(100% + 6px);
	min-width: 11rem;
	margin: 0;
	padding: 0.35rem;
	list-style: none;
	background: #fff;
	border: 1px solid var(--rg-line);
	border-radius: var(--rg-radius);
	box-shadow: 0 8px 24px rgba(31, 42, 44, 0.08);
	z-index: 60;
}
.rg-lang li a {
	display: flex;
	gap: 0.6rem;
	padding: 0.5rem 0.6rem;
	border-radius: 6px;
	font-size: 0.92rem;
}
.rg-lang li a:hover { background: var(--wp--preset--color--page-tint); }
.rg-lang li a[aria-current="true"] { font-weight: 600; color: var(--rg-sea); }
.rg-lang-code { width: 1.8rem; color: var(--rg-soft); font-size: 0.78rem; letter-spacing: 0.04em; padding-top: 0.12rem; }

@media (max-width: 900px) {
	.rg-header-inner { flex-wrap: wrap; gap: 0.6rem; padding-top: 0.55rem; padding-bottom: 0.55rem; }
	.rg-header .rg-nav { order: 3; margin-left: 0; }
	.rg-header-actions { margin-left: auto; }
	.rg-header .rg-btn-book { display: none; } /* the sticky bar takes over */
}

/* Elementor pages inside the new chrome */
.rg-elementor-main { background: var(--wp--preset--color--page-tint); padding-bottom: 1px; }
.rg-classic .rg-elementor-main .elementor { background: transparent; }

/* Footer */
.rg-footer {
	background: var(--rg-ink);
	color: rgba(255, 255, 255, 0.78);
	margin-top: 3rem;
	padding: 2.6rem 0 1.2rem;
}
.rg-footer-inner { max-width: var(--rg-wrap); margin: 0 auto; padding: 0 var(--rg-gutter); }
.rg-footer a { color: #fff; }
.rg-footer .rg-wordmark { color: #fff; margin-bottom: 0.8rem; }
.rg-footer-grid {
	display: grid;
	grid-template-columns: 2fr repeat(3, 1fr);
	gap: 2rem;
}
.rg-footer-col h2 {
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.6);
	margin: 0 0 0.8rem;
}
.rg-footer-col ul { list-style: none; margin: 0; padding: 0; }
.rg-footer-col li { margin: 0 0 0.45rem; }
.rg-footer-col li a { text-decoration: none; font-size: 0.92rem; }
.rg-footer-col li a:hover { text-decoration: underline; }
.rg-footer-col p { font-size: 0.9rem; line-height: 1.6; margin: 0 0 0.7rem; max-width: 34rem; }
.rg-footer-langs a[aria-current="true"] { font-weight: 600; }
.rg-footer-disclosure { margin-top: 2rem; border-top: 1px solid rgba(255, 255, 255, 0.14); }
.rg-footer-disclosure .rg-utility-bar { background: none; }
.rg-footer-disclosure .rg-disclosure { padding-left: 0 !important; padding-right: 0 !important; padding-top: 1rem !important; }
.rg-footer-legal {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 0.5rem 2rem;
	font-size: 0.8rem;
	color: rgba(255, 255, 255, 0.6);
	padding-top: 0.6rem;
}
.rg-footer-legal p { margin: 0; font-size: 0.8rem; }
@media (max-width: 900px) {
	.rg-footer-grid { grid-template-columns: 1fr 1fr; }
	.rg-footer-about { grid-column: 1 / -1; }
}
@media (max-width: 480px) {
	.rg-footer-grid { grid-template-columns: 1fr; }
}

/* Sticky booking bar, phones only */
.rg-bookbar { display: none; }
@media (max-width: 900px) {
	.rg-bookbar {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 0.75rem;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 70;
		padding: 0.55rem var(--rg-gutter) calc(0.55rem + env(safe-area-inset-bottom));
		background: #fff;
		border-top: 1px solid var(--rg-line);
		box-shadow: 0 -6px 18px rgba(31, 42, 44, 0.08);
	}
	.rg-bookbar-text { display: flex; flex-direction: column; line-height: 1.25; min-width: 0; }
	.rg-bookbar-text strong { font-size: 0.95rem; color: var(--rg-ink); }
	.rg-bookbar-text span { font-size: 0.75rem; color: var(--rg-soft); }
	.rg-bookbar .rg-btn { padding: 0.65rem 1.3rem; }
	body { padding-bottom: 4.2rem; }
}

/* Tables: clear grid with a dark header row and zebra stripes on desktop,
   one bordered card per row on small screens */
.rg-section table, .rg-fares {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	margin: 1rem 0;
	font-size: 0.92rem;
	border: 1px solid var(--rg-line);
	border-radius: 10px;
	overflow: hidden;
	background: #fff;
}
.rg-section table th, .rg-fares th {
	background: var(--rg-ink);
	color: #fff;
	text-align: left;
	font-size: 0.74rem;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	padding: 0.7rem 0.75rem;
	border-right: 1px solid rgba(255, 255, 255, 0.12);
}
.rg-section table th:last-child, .rg-fares th:last-child { border-right: 0; }
.rg-section table td, .rg-fares td {
	padding: 0.65rem 0.75rem;
	border-bottom: 1px solid var(--rg-line);
	border-right: 1px solid var(--rg-line);
	vertical-align: top;
	line-height: 1.45;
}
.rg-section table td:last-child, .rg-fares td:last-child { border-right: 0; }
.rg-section table tbody tr:last-child td, .rg-fares tbody tr:last-child td { border-bottom: 0; }
.rg-section table tbody tr:nth-child(even) td, .rg-fares tbody tr:nth-child(even) td { background: var(--wp--preset--color--page-tint); }
.rg-fares td:first-child { font-weight: 600; white-space: nowrap; }
.rg-fares td:nth-child(3) { white-space: nowrap; font-variant-numeric: tabular-nums; font-weight: 600; color: var(--rg-sea); }

@media (max-width: 900px) {
	.rg-responsive-table, .rg-responsive-table tbody, .rg-responsive-table tr, .rg-responsive-table td { display: block; width: 100%; box-sizing: border-box; }
	.rg-responsive-table { border: 0; background: none; overflow: visible; }
	.rg-responsive-table thead, .rg-responsive-table tr:has(> th) { display: none; }
	.rg-responsive-table tr {
		border: 1px solid var(--rg-line);
		border-radius: 10px;
		overflow: hidden;
		margin-bottom: 0.9rem;
		background: #fff;
	}
	.rg-responsive-table tbody tr:nth-child(even) td { background: #fff; }
	.rg-responsive-table td {
		display: grid;
		grid-template-columns: minmax(6.5rem, 38%) 1fr;
		gap: 0.75rem;
		align-items: start;
		padding: 0.55rem 0.8rem !important;
		border-right: 0 !important;
		border-bottom: 1px solid var(--rg-line) !important;
		text-align: left;
		white-space: normal !important;
	}
	.rg-responsive-table td::before {
		content: attr(data-label);
		font-size: 0.7rem;
		font-weight: 600;
		letter-spacing: 0.05em;
		text-transform: uppercase;
		color: var(--rg-soft);
		padding-top: 0.15rem;
	}
	.rg-responsive-table td:last-child { border-bottom: 0 !important; }
	/* First cell becomes the card header */
	.rg-responsive-table td:first-child {
		display: block;
		background: var(--rg-ink) !important;
		color: #fff;
		font-weight: 600;
		font-size: 0.98rem;
		padding: 0.6rem 0.8rem !important;
	}
	.rg-responsive-table td:first-child::before,
	.rg-responsive-table td[data-label=""]::before { content: none; }
	.rg-fares td:nth-child(3) { color: var(--rg-sea); }
}

/* Live timetable tables from the plugin: same contrast */
.tp-table thead th { background: var(--rg-ink) !important; color: #fff !important; }
.tp-table tbody td { border-bottom: 1px solid var(--rg-line) !important; }
.tp-table tbody tr:nth-child(even) td { background: var(--wp--preset--color--page-tint); }

/* Live timetable (timetables25 plugin): calmer cards in the theme palette */
.tp-wrap {
	--tp-primary: var(--rg-ink);
	--tp-link: var(--rg-sea);
	--tp-text: var(--rg-ink);
	--tp-muted: var(--rg-soft);
	--tp-border: var(--rg-line);
	--tp-card-border: var(--rg-line);
	--tp-card-radius: 10px;
	--tp-card-shadow: none;
	--tp-accent: var(--rg-sea-tint);
}
@media (max-width: 900px) {
	.tp-table, .tp-table tbody, .tp-table tr, .tp-table td { display: block; width: 100%; }
	.tp-table thead { display: none; }
	.tp-table tr { border: 1px solid var(--rg-line); border-radius: 10px; margin-bottom: 0.6rem; padding: 0.5rem 0.8rem; }
	.tp-table td { border: 0 !important; padding: 0.2rem 0 !important; }
}

/* Focus that is visible on both white and navy */
:where(a, button, summary):focus-visible {
	outline: 2px solid var(--rg-sea);
	outline-offset: 2px;
	border-radius: 4px;
}

/* Decision hero: answer left, numbers and next steps right */
.rg-hero {
	max-width: var(--rg-wrap);
	margin: 1.5rem auto;
	background: #fff;
	border: 1px solid var(--rg-line);
	border-radius: 14px;
	padding: clamp(1.2rem, 3vw, 2.4rem);
	display: grid;
	grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
	gap: clamp(1.2rem, 3vw, 2.6rem);
	align-items: start;
}
@media (max-width: 1264px) { .rg-hero { margin-left: var(--rg-gutter); margin-right: var(--rg-gutter); } }
.rg-hero-eyebrow {
	margin: 0 0 0.6rem;
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--rg-sea);
}
.rg-hero-title {
	margin: 0 0 0.9rem;
	font-size: clamp(1.75rem, 1.2rem + 2.4vw, 2.7rem);
	line-height: 1.12;
	color: var(--rg-ink);
}
.rg-hero-intro { margin: 0 0 1.2rem; font-size: 1.05rem; line-height: 1.65; color: #3a4546; max-width: 44rem; }
.rg-chips { display: flex; flex-wrap: wrap; gap: 0.45rem; list-style: none; margin: 0; padding: 0; }
.rg-chip {
	font-size: 0.82rem;
	padding: 0.32rem 0.7rem;
	border: 1px solid var(--rg-line);
	border-radius: 6px;
	background: var(--wp--preset--color--page-tint);
	color: var(--rg-ink);
}
.rg-chip-own { background: var(--rg-sea-tint); border-color: #a9e2c4; color: #006b3f; font-weight: 600; }


@media (max-width: 900px) {
	.rg-hero { grid-template-columns: 1fr; margin-top: 0.8rem; }
	.rg-hero-intro { font-size: 1rem; }
}
@media (max-width: 420px) {
	.rg-stats { gap: 0.6rem; }
	.rg-stat strong { font-size: 1.2rem; }
}

/* ---------- Content sections (block pages) ---------- */
.rg-page { padding-bottom: 1rem; }
.rg-wrap, .rg-page .rg-breadcrumbs { max-width: var(--rg-wrap); margin-left: auto; margin-right: auto; }
.rg-page .rg-breadcrumbs { padding: 1rem var(--rg-gutter) 0; font-size: 0.82rem; color: var(--rg-soft); }
.rg-page .rg-breadcrumbs a { color: var(--rg-soft); }
.rg-page .rg-hero { margin-top: 0.8rem; }

.rg-section {
	max-width: var(--rg-wrap);
	margin: 1.25rem auto;
	background: #fff;
	border: 1px solid var(--rg-line);
	border-radius: 14px;
	padding: clamp(1.2rem, 3vw, 2.4rem);
}
@media (max-width: 1264px) { .rg-section { margin-left: var(--rg-gutter); margin-right: var(--rg-gutter); } }
@media (max-width: 600px) { .rg-section { margin-left: 0.6rem; margin-right: 0.6rem; } }
.rg-section > :first-child { margin-top: 0; }
.rg-section > :last-child { margin-bottom: 0; }
.rg-section h2 { font-size: clamp(1.4rem, 1.1rem + 1.2vw, 1.9rem); margin: 0 0 0.8rem; scroll-margin-top: 90px; }
.rg-section h3 { font-size: 1.15rem; margin: 1.6rem 0 0.5rem; scroll-margin-top: 90px; }
.rg-section p, .rg-section li { line-height: 1.7; }
.rg-section p { margin: 0 0 1rem; }
.rg-section a:not(.rg-btn) { color: var(--rg-sea); text-underline-offset: 2px; }
.rg-lead { font-size: 1.08rem; color: #3a4546; max-width: 46rem; }

.rg-kicker {
	display: block;
	margin: 0 0 0.35rem;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: var(--rg-sea);
}

/* Jump nav */
.rg-jumpnav { display: flex; flex-wrap: wrap; gap: 0.45rem; margin: 0; padding: 0; list-style: none; }
.rg-jumpnav a {
	display: inline-block;
	padding: 0.4rem 0.75rem;
	border: 1px solid var(--rg-line);
	border-radius: 6px;
	font-size: 0.86rem;
	color: var(--rg-ink) !important;
	text-decoration: none;
	background: #fff;
}
.rg-jumpnav a:hover { border-color: var(--rg-sea); color: var(--rg-sea) !important; }
.rg-section-nav { padding-top: 0.9rem; padding-bottom: 0.9rem; }

/* Two live tables side by side on wide screens */
.rg-timetables { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.6rem; }
.rg-timetables > div > h2 { font-size: 1.35rem; }
@media (max-width: 1000px) { .rg-timetables { grid-template-columns: minmax(0, 1fr); } }
.rg-timetables > div { min-width: 0; }
/* Long CTA labels must wrap on phones instead of widening the column */
.rg-live-cta .rg-btn, .rg-btn-lg, .rg-cta-band .rg-btn { white-space: normal; text-align: center; }
.rg-section { min-width: 0; overflow-wrap: anywhere; }
.rg-section .tp-wrap { max-width: 100%; }

/* Split: text and photo */
.rg-split { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: clamp(1.2rem, 3vw, 2.4rem); align-items: start; }
.rg-split.rg-split-flip > :first-child { order: 2; }
@media (max-width: 900px) { .rg-split { grid-template-columns: 1fr; } .rg-split.rg-split-flip > :first-child { order: 0; } }

/* Photos */
.rg-photo { margin: 0; }
.rg-photo img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 10px; }
.rg-photo figcaption { margin-top: 0.45rem; font-size: 0.8rem; color: var(--rg-soft); line-height: 1.45; }
.rg-photo-wide img { aspect-ratio: 16 / 9; }
.rg-gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.9rem; margin: 1.2rem 0 0; }
.rg-gallery-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 900px) { .rg-gallery, .rg-gallery-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.rg-missing { color: #a33; font-size: 0.8rem; }

/* Fact panel */
.rg-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; border: 1px solid var(--rg-line); border-radius: 10px; margin: 1.2rem 0; overflow: hidden; }
.rg-fact { padding: 0.85rem 1rem; border-right: 1px solid var(--rg-line); }
.rg-fact:last-child { border-right: 0; }
.rg-fact span { display: block; font-size: 0.72rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--rg-soft); }
.rg-fact strong { display: block; margin-top: 0.2rem; font-size: 1.05rem; color: var(--rg-ink); }
.rg-fact small { display: block; margin-top: 0.15rem; font-size: 0.78rem; color: var(--rg-soft); line-height: 1.4; }
@media (max-width: 900px) {
	.rg-facts { grid-template-columns: 1fr 1fr; }
	.rg-fact:nth-child(2n) { border-right: 0; }
	.rg-fact:nth-child(-n+2) { border-bottom: 1px solid var(--rg-line); }
}

/* Callouts */
.rg-note { border-radius: 10px; padding: 0.95rem 1.1rem; margin: 1.2rem 0; background: var(--wp--preset--color--page-tint); border: 1px solid var(--rg-line); }
.rg-note p:last-child { margin-bottom: 0; }
.rg-note-own { background: var(--rg-sea-tint); border-color: #a9e2c4; }
.rg-note-own strong:first-child { color: #006b3f; }

/* Facility list */
.rg-facilities { list-style: none; padding: 0; margin: 1rem 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.55rem 1.2rem; }
.rg-facilities li { position: relative; padding-left: 1.5rem; line-height: 1.5; }
.rg-facilities li::before { content: ""; position: absolute; left: 0; top: 0.45em; width: 0.7rem; height: 0.7rem; border-radius: 3px; background: var(--rg-sea); opacity: 0.85; }
@media (max-width: 600px) { .rg-facilities { grid-template-columns: 1fr; } }

/* Checklist */
.rg-checklist { padding-left: 1.2rem; }
.rg-checklist li { margin-bottom: 0.35rem; }

/* Link tiles */
.rg-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 0.8rem; margin: 1rem 0 0; }
.rg-tile { display: block; padding: 0.9rem 1rem; border: 1px solid var(--rg-line); border-radius: 10px; text-decoration: none !important; color: var(--rg-ink) !important; background: #fff; }
.rg-tile strong { display: block; font-size: 1rem; }
.rg-tile span { display: block; font-size: 0.84rem; color: var(--rg-soft); margin-top: 0.15rem; }
.rg-tile:hover { border-color: var(--rg-sea); }

/* FAQ */
.rg-faq details { border-bottom: 1px solid var(--rg-line); }
.rg-faq summary { cursor: pointer; list-style: none; padding: 0.95rem 2rem 0.95rem 0; font-weight: 600; position: relative; }
.rg-faq summary::-webkit-details-marker { display: none; }
.rg-faq summary::after { content: "+"; position: absolute; right: 0.2rem; top: 0.8rem; font-size: 1.3rem; color: var(--rg-sea); }
.rg-faq details[open] summary::after { content: "\2212"; }
.rg-faq details > p { margin: 0 0 1rem; }

/* CTA band */
.rg-cta-band { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; background: var(--rg-sea-tint); border-color: #a9e2c4; }
.rg-cta-band p { margin: 0; }
.rg-live-cta { margin: 0.8rem 0 0 !important; }
.rg-live-cta .rg-btn { width: 100%; }

.rg-tiles div.rg-tile { cursor: default; }

/* Port essentials: map, forecast, facilities */
.rg-essentials { display: grid; grid-template-columns: 1.25fr 1fr 1fr; gap: 1.2rem; margin: 1rem 0; }
.rg-essentials > div { border: 1px solid var(--rg-line); border-radius: 10px; padding: 0.9rem 1rem; min-width: 0; background: #fff; }
.rg-essentials h3 { margin: 0 0 0.6rem; font-size: 0.78rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--rg-soft); }
.rg-essentials .rg-port-map { height: 240px; border-radius: 8px; z-index: 0; }
.rg-essentials ul { margin: 0; padding-left: 1.1rem; font-size: 0.92rem; line-height: 1.6; }
.rg-essentials address { font-style: normal; font-size: 0.9rem; margin-top: 0.6rem; color: var(--rg-soft); }
.rg-weather-day-wind { font-size: 0.74rem; color: var(--rg-soft); margin-top: 0.15rem; }
@media (max-width: 1000px) { .rg-essentials { grid-template-columns: 1fr 1fr; } .rg-essentials > div:first-child { grid-column: 1 / -1; } }
@media (max-width: 600px) { .rg-essentials { grid-template-columns: 1fr; } }
.rg-section-photo { padding: 0.6rem; }
.rg-section-photo .rg-photo img { border-radius: 10px; aspect-ratio: 21 / 9; }
@media (max-width: 700px) { .rg-section-photo .rg-photo img { aspect-ratio: 16 / 10; } }

/* Departure board: the decision panel in the hero */
.rg-board {
	background: var(--rg-ink);
	color: #fff;
	border-radius: 12px;
	padding: 1.1rem 1.2rem 1.2rem;
	display: flex;
	flex-direction: column;
	gap: 0.8rem;
	box-sizing: border-box;
	min-width: 0;
}
.rg-board-head { display: flex; justify-content: space-between; align-items: baseline; gap: 0.6rem; flex-wrap: wrap; }
.rg-board-title { font-family: var(--wp--preset--font-family--heading); font-size: 1.15rem; font-weight: 700; }
.rg-board-live { font-size: 0.72rem; letter-spacing: 0.06em; text-transform: uppercase; color: rgba(255, 255, 255, 0.65); display: inline-flex; align-items: center; gap: 0.35rem; }
.rg-board-dot { width: 0.5rem; height: 0.5rem; border-radius: 50%; background: #4ade80; box-shadow: 0 0 0 0 rgba(74, 222, 128, 0.6); animation: rg-pulse 2.4s infinite; }
@keyframes rg-pulse { 0% { box-shadow: 0 0 0 0 rgba(74, 222, 128, 0.55); } 70% { box-shadow: 0 0 0 6px rgba(74, 222, 128, 0); } 100% { box-shadow: 0 0 0 0 rgba(74, 222, 128, 0); } }
@media (prefers-reduced-motion: reduce) { .rg-board-dot { animation: none; } }
.rg-board-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 0.8rem; }
.rg-board-col { min-width: 0; border-top: 1px solid rgba(255, 255, 255, 0.14); padding-top: 0.6rem; }
.rg-board-col h3 { margin: 0 0 0.45rem; font-family: var(--wp--preset--font-family--body); font-size: 0.72rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: rgba(255, 255, 255, 0.65); }
.rg-board-col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.4rem; }
.rg-board-col li { display: inline-flex; flex-direction: column; align-items: center; min-width: 3.4rem; padding: 0.35rem 0.55rem; border: 1px solid rgba(255, 255, 255, 0.22); border-radius: 6px; font-variant-numeric: tabular-nums; line-height: 1.15; }
.rg-board-col li time { font-size: 1.1rem; font-weight: 600; }
.rg-board-col li small { font-size: 0.62rem; color: rgba(255, 255, 255, 0.6); text-transform: uppercase; letter-spacing: 0.04em; }
.rg-board-col li.is-next { background: var(--rg-sea); border-color: var(--rg-sea); }
.rg-board-none { margin: 0; font-size: 0.85rem; color: rgba(255, 255, 255, 0.6); }
.rg-board-meta { margin: 0 !important; font-size: 0.86rem; color: rgba(255, 255, 255, 0.8); }
.rg-board .rg-btn-book { background: var(--rg-sea); }
.rg-board .rg-btn-book:hover { background: #006b3f; }
.rg-board-link { color: #fff !important; font-size: 0.92rem; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; text-align: center; }
.rg-board-note { margin: 0 !important; font-size: 0.72rem; line-height: 1.45; color: rgba(255, 255, 255, 0.6); }
.rg-btn-lg { width: 100%; padding: 0.85rem 1.1rem; font-size: 1rem; }
@media (max-width: 420px) { .rg-board-col li { min-width: 3rem; padding: 0.3rem 0.45rem; } .rg-board-col li time { font-size: 1rem; } }

/* Header: everything on one baseline */
.rg-header .rg-nav { display: flex; align-items: center; margin-top: 0; margin-bottom: 0; }
.rg-header .rg-nav-list { margin: 0; padding: 0; }
@media (min-width: 901px) { .rg-header .rg-nav-toggle { display: none; } }

/* Weather page: two forecast panels and responsive Windy maps */
.rg-essentials-2 { grid-template-columns: 1fr 1fr; }
@media (max-width: 700px) { .rg-essentials-2 { grid-template-columns: 1fr; } }
.rg-maps { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; margin: 1rem 0; }
@media (max-width: 1000px) { .rg-maps { grid-template-columns: 1fr; } }
.rg-map { margin: 0; }
.rg-map iframe { width: 100%; height: 420px; border: 1px solid var(--rg-line); border-radius: 10px; display: block; }
.rg-map figcaption { margin-top: 0.4rem; font-size: 0.8rem; color: var(--rg-soft); }

/* Board pills: white on the dark panel, also on the highlighted next sailing */
.rg-board .rg-board-col li a,
.rg-board .rg-board-col li a:visited { color: #fff !important; text-decoration: none; display: inline-flex; flex-direction: column; align-items: center; }
.rg-board-col li:hover { border-color: #fff; }
.rg-board-col li.is-next:hover { background: #006b3f; }
.rg-board a.rg-ext::after, .rg-board .rg-btn::after { display: none; }

/* Footer: same left edge as the header wordmark */
.rg-footer .rg-footer-grid { max-width: none; margin-left: 0; margin-right: 0; padding-left: 0; padding-right: 0; }
.rg-footer .rg-footer-legal, .rg-footer .rg-footer-disclosure { max-width: none; margin-left: 0; margin-right: 0; padding-left: 0; padding-right: 0; }
.rg-video iframe { height: auto; aspect-ratio: 16 / 9; }

/* Light design only: stop forced dark modes from recolouring buttons */
:root { color-scheme: light only; }
.rg-btn-book, .rg-board, .rg-bookbar, .rg-chooser-option, .rg-responsive-table td:first-child { forced-color-adjust: none; }
.rg-btn-book { background-color: var(--rg-cta) !important; color: var(--rg-cta-ink) !important; border: 1px solid var(--rg-cta); font-weight: 600; }
.rg-btn-book:hover, .rg-btn-book:focus-visible { background-color: var(--rg-cta-hover) !important; border-color: var(--rg-cta-hover); }
.rg-board .rg-btn-book:hover { background-color: var(--rg-cta-hover) !important; }
.rg-bookbar { background-color: #fff !important; }
.rg-bookbar-text strong { color: #14124d !important; }

/* Ticket chooser */
.rg-chooser {
	max-width: var(--rg-wrap);
	margin: 1.25rem auto;
	box-sizing: border-box;
	background: #fff;
	border: 2px solid var(--rg-sea);
	border-radius: 14px;
	padding: clamp(1.2rem, 3vw, 2.2rem);
}
@media (max-width: 1264px) { .rg-chooser { margin-left: var(--rg-gutter); margin-right: var(--rg-gutter); } }
@media (max-width: 600px) { .rg-chooser { margin-left: 0.6rem; margin-right: 0.6rem; } }
.rg-chooser-head h2 { margin: 0 0 0.3rem; font-size: clamp(1.4rem, 1.1rem + 1.2vw, 1.9rem); scroll-margin-top: 90px; }
.rg-chooser-head p { margin: 0 0 1.2rem; font-size: 0.9rem; color: var(--rg-soft); }
.rg-chooser-body:focus { outline: none; }
.rg-chooser-step { margin: 0 0 0.3rem !important; font-size: 0.74rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--rg-sea); }
.rg-chooser-q { margin: 0 0 0.9rem; font-size: 1.2rem; }
.rg-chooser-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.7rem; }
@media (max-width: 700px) { .rg-chooser-options { grid-template-columns: 1fr; } }
.rg-chooser-option {
	display: block;
	width: 100%;
	text-align: left;
	padding: 0.85rem 1rem;
	background: var(--wp--preset--color--page-tint);
	border: 1px solid var(--rg-line);
	border-radius: 10px;
	font: inherit;
	color: var(--rg-ink);
	cursor: pointer;
}
.rg-chooser-option strong { display: block; font-size: 1rem; }
.rg-chooser-option span { display: block; margin-top: 0.15rem; font-size: 0.84rem; color: var(--rg-soft); }
.rg-chooser-option:hover, .rg-chooser-option:focus-visible { border-color: var(--rg-sea); background: var(--rg-sea-tint); }
.rg-chooser-back { margin-top: 1rem; background: none; border: 0; padding: 0; font: inherit; font-size: 0.9rem; color: var(--rg-soft); text-decoration: underline; cursor: pointer; }
.rg-chooser-result-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.3rem 1rem; margin-bottom: 0.6rem; }
.rg-chooser-result-head h3 { margin: 0; font-size: 1.5rem; }
.rg-chooser-price { margin: 0 !important; font-weight: 600; color: var(--rg-sea); }
.rg-chooser-why { margin: 0 0 0.8rem; padding-left: 1.2rem; line-height: 1.6; }
.rg-chooser-caveat { margin: 0 0 0.8rem !important; padding: 0.7rem 0.9rem; background: var(--wp--preset--color--page-tint); border-radius: 8px; font-size: 0.92rem; line-height: 1.55; }
.rg-chooser-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.8rem 1.2rem; margin-top: 1rem; }
.rg-chooser-actions .rg-btn { padding: 0.8rem 1.3rem; font-size: 1rem; white-space: normal; text-align: center; }
.rg-chooser-link { color: var(--rg-sea); font-weight: 600; text-underline-offset: 3px; }
.rg-chooser-foot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.6rem 1rem; margin-top: 1.2rem; padding-top: 0.9rem; border-top: 1px solid var(--rg-line); }
.rg-chooser-foot .rg-chooser-back { margin-top: 0; }
@media (max-width: 600px) { .rg-chooser-actions .rg-btn { width: 100%; box-sizing: border-box; } }

/* Mobile header: always one row, and the menu panel is anchored to the
   header itself, so it can never open outside the screen whatever the
   position of the burger. */
@media (max-width: 900px) {
	.rg-header-inner { flex-wrap: nowrap; gap: 0.5rem; position: relative; }
	.rg-header .rg-wordmark { min-width: 0; flex: 0 1 auto; font-size: clamp(1rem, 4.6vw, 1.3rem); }
	.rg-header-actions { flex: none; }
	.rg-header .rg-nav { position: static; flex: none; order: 3; }
	.rg-header .rg-nav-list {
		left: var(--rg-gutter);
		right: var(--rg-gutter);
		width: auto;
		top: calc(100% + 0.4rem);
		max-height: calc(100vh - 11rem);
		max-height: calc(100dvh - 11rem);
	}
}

/* Tap targets on the departure board: the whole pill is the link, not just
   the digits, and the secondary link gets a finger-sized hit area. */
.rg-board .rg-board-col li:has(> a) { padding: 0; }
.rg-board .rg-board-col li > a { padding: 0.6rem 0.7rem; min-width: 3.4rem; min-height: 44px; box-sizing: border-box; justify-content: center; }
.rg-board-link { display: inline-block; padding: 0.6rem 0.4rem; }

/* Footer: about text on the left, one block per menu group on the right.
   Blocks share one grid, so headings and first links line up row by row. */
.rg-footer .rg-footer-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2.6fr); gap: 2.5rem 3rem; align-items: start; }
.rg-footer-nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.8rem 2rem; align-items: start; }
.rg-footer-col h2 { line-height: 1.3; min-height: 1.3em; }
.rg-footer-about .rg-wordmark { margin-top: -0.2rem; }
.rg-footer-langs { display: flex; flex-wrap: wrap; gap: 0.2rem 1rem; }
.rg-footer-langs li { margin: 0 0 0.3rem; }
@media (max-width: 900px) {
	.rg-footer .rg-footer-grid { grid-template-columns: minmax(0, 1fr); gap: 1.8rem; }
	.rg-footer-about { grid-column: auto; }
	.rg-footer-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.6rem 1.2rem; }
}
@media (max-width: 330px) { .rg-footer-nav { grid-template-columns: minmax(0, 1fr); } }

/* Mobile hero: the departure board is the reason people come, so it sits
   directly under the title, before the intro text. */
@media (max-width: 900px) {
	.rg-hero { row-gap: 0.9rem; }
	.rg-hero-main { display: contents; }
	.rg-hero-eyebrow { order: 1; margin-bottom: -0.3rem; }
	.rg-hero-title { order: 2; margin-bottom: 0; }
	.rg-hero .rg-board { order: 3; }
	.rg-hero-intro { order: 4; margin-bottom: 0; }
	.rg-hero .rg-chips { order: 5; }
}
/* Chips that link somewhere look and behave like buttons. */
.rg-chip a { color: inherit !important; text-decoration: none; display: inline-block; }
.rg-chip:has(a) { cursor: pointer; transition: border-color 0.15s, background 0.15s; }
.rg-chip:has(a):hover { border-color: var(--rg-sea); }
.rg-chip a::after { content: " \2192"; }
@media (max-width: 900px) { .rg-chip a { padding: 0.35rem 0; } }

/* Phones: the disclosure stays, but as flowing text with the link inline, so
   it costs two to three lines instead of five. */
@media (max-width: 700px) {
	.rg-utility-bar .rg-disclosure { display: block; font-size: 0.72rem !important; line-height: 1.35; padding-top: 0.35rem !important; padding-bottom: 0.35rem !important; }
	.rg-utility-bar .rg-disclosure-icon { display: none; }
	.rg-utility-bar .rg-disclosure a { white-space: normal; margin-left: 0.25rem; }
}

/* Cost planner */
.rg-planner { max-width: var(--rg-wrap); margin: 1.5rem auto; background: #fff; border: 2px solid var(--rg-sea); border-radius: 14px; padding: clamp(1.1rem, 3vw, 2rem); box-sizing: border-box; }
@media (max-width: 1264px) { .rg-planner { margin-left: var(--rg-gutter); margin-right: var(--rg-gutter); } }
.rg-planner-head h2 { margin: 0 0 0.35rem; font-size: clamp(1.4rem, 1.1rem + 1.4vw, 2rem); }
.rg-planner-head p { margin: 0 0 1.1rem; color: var(--rg-soft); font-size: 0.9rem; max-width: 60rem; }
.rg-planner-controls { display: grid; gap: 0.9rem; margin-bottom: 1.2rem; }
.rg-planner-label { display: block; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--rg-sea); margin-bottom: 0.4rem; }
.rg-planner-options { display: flex; flex-wrap: wrap; gap: 0.45rem; }
.rg-planner-options button { appearance: none; font: inherit; font-size: 0.95rem; font-weight: 600; line-height: 1.25; min-height: 44px; padding: 0.55rem 0.95rem; border-radius: 8px; border: 1px solid var(--rg-line); background: var(--rg-sand, #f3f0e9) !important; color: var(--rg-ink) !important; cursor: pointer; text-align: left; }
.rg-planner-options button:hover { border-color: var(--rg-sea); }
.rg-planner-options button[aria-pressed="true"] { background: var(--rg-ink) !important; border-color: var(--rg-ink); color: #fff !important; }
.rg-planner-options button:focus-visible { outline: 2px solid var(--rg-sea); outline-offset: 2px; }
.rg-planner-sum { margin: 0 0 0.9rem; font-size: 1.02rem; font-weight: 600; max-width: 62rem; }
.rg-planner-note, .rg-planner-more { margin: 0 0 0.9rem; font-size: 0.9rem; color: var(--rg-soft); max-width: 62rem; }
.rg-planner-more { order: 3; margin: 1rem 0 0; }
.rg-planner-result:not([hidden]) { display: flex; flex-direction: column; }
.rg-planner-result .rg-planner-cards { order: 2; }
.rg-planner-cards { display: grid; gap: 0.9rem; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; }
.rg-planner-cards-1 { grid-template-columns: minmax(0, 28rem); }
.rg-planner-cards-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 900px) { .rg-planner-cards, .rg-planner-cards-2 { grid-template-columns: minmax(0, 1fr); } }
.rg-planner-card { position: relative; display: flex; flex-direction: column; border: 1px solid var(--rg-line); border-radius: 10px; padding: 1.1rem 1rem 1rem; background: #fff; }
.rg-planner-card.is-pick { border: 2px solid var(--rg-sea); background: var(--rg-sea-tint, #e8f5f2); }
.rg-planner-card h3 { margin: 0 0 0.2rem; font-size: 1.05rem; line-height: 1.3; }
.rg-planner-price { margin: 0 0 0.6rem; font-size: 1.45rem; font-weight: 700; font-variant-numeric: tabular-nums; line-height: 1.2; color: var(--rg-ink); }
.rg-planner-gets { margin: 0 0 0.5rem; font-size: 0.93rem; }
.rg-planner-catch { margin: 0 0 0.9rem; font-size: 0.88rem; color: var(--rg-soft); padding-left: 0.7rem; border-left: 3px solid var(--rg-line); }
.rg-planner-card .rg-btn { margin-top: auto; text-align: center; justify-content: center; white-space: normal; }
.rg-planner-tag { align-self: flex-start; margin: -0.2rem 0 0.5rem; font-size: 0.7rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; padding: 0.2rem 0.5rem; border-radius: 4px; background: var(--rg-ink); color: #fff; }
.rg-planner-tag-cheapest { background: #fff; color: #006b3f; border: 1px solid #006b3f; }

/* ==========================================================================
   Brand refresh, September 2026: the two-arrow logo in its old colours, a
   yellow booking button, a light departure board and a photo hero on the
   home page. Colours live in :root (--rg-brand, --rg-deco, --rg-cta).
   ========================================================================== */

/* Logo: mark on the left, the two port names stacked */
.rg-wordmark {
	display: inline-grid;
	grid-template-columns: auto auto;
	column-gap: 0.6rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.25rem;
	font-weight: 700;
	letter-spacing: -0.015em;
	line-height: 1.02;
}
.rg-wordmark-mark { grid-row: 1 / 3; width: 2.5rem; height: 2.5rem; display: block; }
.rg-wordmark-port { grid-column: 2; }
.rg-mark-back { fill: var(--rg-deco); stroke: var(--rg-deco); }
.rg-mark-out { fill: currentColor; stroke: currentColor; }
@media (max-width: 900px) {
	.rg-wordmark { font-size: 1.05rem; }
	.rg-wordmark-mark { width: 2.1rem; height: 2.1rem; }
}

/* Departure board: a light card, the booking button carries the colour */
.rg-board {
	background: #fff;
	color: var(--rg-ink);
	border: 1px solid var(--rg-line);
	border-top: 4px solid var(--rg-cta);
	box-shadow: 0 18px 40px -22px rgba(16, 24, 64, 0.35);
}
.rg-board-live, .rg-board-col h3, .rg-board-col li small, .rg-board-none, .rg-board-note { color: var(--rg-soft); }
.rg-board-meta { color: var(--rg-ink); }
.rg-board-col { border-top-color: var(--rg-line); }
.rg-board-col li { border-color: var(--rg-line); background: var(--wp--preset--color--paper); }
.rg-board .rg-board-col li a, .rg-board .rg-board-col li a:visited { color: var(--rg-ink) !important; }
.rg-board-col li:hover { border-color: var(--rg-brand); }
.rg-board-col li.is-next, .rg-board-col li.is-next:hover { background: var(--rg-brand); border-color: var(--rg-brand); }
.rg-board .rg-board-col li.is-next a, .rg-board .rg-board-col li.is-next a:visited { color: #fff !important; }
.rg-board-dot { background: #16a34a; }
.rg-board-link { color: var(--rg-sea) !important; }

/* Home: photo hero */
.rg-page:has(> .entry-content > .rg-phero:first-child),
.rg-page:has(> .entry-content > .rg-shero:first-child) { margin-top: 0; }
.rg-phero { position: relative; isolation: isolate; box-sizing: border-box; }
.rg-phero-bg { position: absolute; inset: 0; margin: 0; z-index: -1; overflow: hidden; background: #2b5f9e; }
.rg-phero-bg img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 50% 66%; }
.rg-phero-bg::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(12, 16, 66, 0.66) 0%, rgba(12, 16, 66, 0.36) 42%, rgba(12, 16, 66, 0) 66%),
		linear-gradient(180deg, rgba(12, 16, 66, 0.25) 0%, rgba(12, 16, 66, 0) 35%);
}
.rg-phero-inner {
	max-width: var(--rg-wrap);
	margin: 0 auto;
	padding: clamp(2rem, 5vw, 4.5rem) var(--rg-gutter) clamp(4.5rem, 8vw, 7.5rem);
	box-sizing: content-box;
}
.rg-phero-inner > * { max-width: 36rem; }
.rg-phero .rg-hero-eyebrow { color: var(--rg-cta); }
.rg-phero .rg-hero-title { color: #fff; font-size: clamp(2rem, 1.3rem + 3vw, 3.3rem); text-shadow: 0 2px 18px rgba(8, 10, 50, 0.45); max-width: 40rem; }
.rg-hero-claim { margin: 0 0 0.9rem; font-size: clamp(1.05rem, 0.95rem + 0.5vw, 1.25rem); line-height: 1.45; font-weight: 600; color: #fff; text-shadow: 0 1px 10px rgba(8, 10, 50, 0.5); }
.rg-phero .rg-hero-intro { color: rgba(255, 255, 255, 0.93); text-shadow: 0 1px 8px rgba(8, 10, 50, 0.55); }
.rg-phero-actions { display: flex; flex-wrap: wrap; gap: 0.7rem; margin: 0; }
.rg-phero-actions .rg-btn { padding: 0.8rem 1.2rem; font-size: 1rem; }
.rg-btn-glass { background: rgba(255, 255, 255, 0.14); color: #fff !important; border: 1px solid rgba(255, 255, 255, 0.55); backdrop-filter: blur(4px); }
.rg-btn-glass:hover { background: rgba(255, 255, 255, 0.26); }
/* On wide screens the photo is drawn wider than the hero, which moves the ferry out from under the text */
@media (min-width: 901px) { .rg-phero-bg img { width: 128%; } }

/* Trust strip and the board as a bar, right under the photo */
.rg-hero-below { max-width: var(--rg-wrap); margin: -3rem auto 2rem; position: relative; display: flex; flex-direction: column; gap: 1rem; }
@media (max-width: 1264px) { .rg-hero-below { margin-left: var(--rg-gutter); margin-right: var(--rg-gutter); } }
.rg-trust {
	list-style: none;
	margin: 0;
	padding: 1rem 1.2rem;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1rem 1.4rem;
	background: #fff;
	border: 1px solid var(--rg-line);
	border-radius: 14px;
	box-shadow: 0 14px 30px -20px rgba(16, 24, 64, 0.35);
	box-sizing: border-box;
}
.rg-trust li { display: flex; gap: 0.7rem; align-items: flex-start; min-width: 0; }
.rg-trust svg { flex: none; width: 2.3rem; height: 2.3rem; padding: 0.5rem; box-sizing: border-box; border-radius: 50%; background: var(--rg-sea-tint); color: var(--rg-sea); }
.rg-trust strong { display: block; font-size: 0.92rem; line-height: 1.3; color: var(--rg-ink); }
.rg-trust small { display: block; font-size: 0.78rem; line-height: 1.4; color: var(--rg-soft); }

.rg-board-bar { scroll-margin-top: 6rem; }
@media (min-width: 901px) {
	.rg-board-bar {
		display: grid;
		grid-template-columns: minmax(0, 1.5fr) minmax(0, 1.1fr) minmax(14rem, auto);
		grid-template-areas: "head meta btn" "cols note link";
		gap: 0.6rem 2rem;
		align-items: center;
		padding: 1.2rem 1.5rem;
	}
	.rg-board-bar .rg-board-head { grid-area: head; }
	.rg-board-bar .rg-board-cols { grid-area: cols; }
	.rg-board-bar .rg-board-meta { grid-area: meta; font-weight: 600; font-size: 0.95rem; }
	.rg-board-bar .rg-board-note { grid-area: note; align-self: start; }
	.rg-board-bar .rg-btn-book { grid-area: btn; }
	.rg-board-bar .rg-board-link { grid-area: link; align-self: start; }
}
@media (max-width: 900px) {
	/* Phone: photo band on top, text on the brand colour, then the board, then the proof */
	.rg-phero { background: var(--rg-brand); }
	.rg-phero-bg { position: relative; inset: auto; z-index: 0; height: 13rem; }
	.rg-phero-bg::after { background: linear-gradient(180deg, rgba(20, 18, 77, 0) 55%, var(--rg-brand) 100%); }
	.rg-phero-inner { padding-top: 0.4rem; padding-bottom: 4rem; }
	.rg-phero .rg-hero-eyebrow { margin-bottom: 0.5rem; }
	.rg-phero .rg-hero-title { margin-bottom: 0.7rem; }
	.rg-phero .rg-hero-intro { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
	.rg-hero-below { margin-top: -2.4rem; }
	.rg-hero-below .rg-board { order: -1; }
	.rg-trust { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) { .rg-trust { grid-template-columns: 1fr; } }

/* Strip of our own photos */
.rg-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.9rem; margin: 1.6rem 0 0.5rem; }
.rg-strip-shot { margin: 0; }
.rg-strip-shot a { display: block; border-radius: 12px; overflow: hidden; aspect-ratio: 4 / 3; cursor: zoom-in; }
.rg-strip-shot img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 0.35s; }
.rg-strip-shot a:hover img { transform: scale(1.04); }
.rg-strip-shot figcaption { margin-top: 0.45rem; font-size: 0.86rem; line-height: 1.4; color: var(--rg-ink); }
.rg-strip-credit { margin: 0 0 1.4rem !important; font-size: 0.8rem; color: var(--rg-soft); }
@media (max-width: 700px) {
	.rg-strip { grid-template-columns: repeat(3, 78%); overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 0.4rem; }
	.rg-strip-shot { scroll-snap-align: start; }
}

/* Click a photo to see it large */
.rg-photo img { cursor: zoom-in; }
.rg-zoom { border: 0; padding: 0; background: transparent; max-width: 96vw; max-height: 96vh; overflow: visible; }
.rg-zoom::backdrop { background: rgba(10, 12, 48, 0.88); }
.rg-zoom figure { margin: 0; }
.rg-zoom img { display: block; max-width: 96vw; max-height: 86vh; width: auto; height: auto; border-radius: 8px; cursor: zoom-out; }
.rg-zoom figcaption { margin: 0.6rem auto 0; color: #fff; font-size: 0.92rem; line-height: 1.45; text-align: center; max-width: 60rem; }
.rg-zoom-close { position: fixed; top: 0.8rem; right: 0.9rem; width: 2.75rem; height: 2.75rem; border-radius: 50%; border: 0; background: rgba(255, 255, 255, 0.16); color: #fff; font-size: 1.5rem; line-height: 1; cursor: pointer; }
.rg-zoom-close:hover { background: rgba(255, 255, 255, 0.3); }

/* Text-and-photo blocks (.rg-split): the photos follow the text they belong to.
   One photo stands next to the text and is cropped to the height of that text;
   next to a long text it stays in view while you read. Two or more photos, or a
   block with a table in it, stack instead: text (and table) at full width, the
   photos in a row underneath, so nothing hangs next to empty space. */
@media (min-width: 901px) {
	.rg-split { align-items: stretch; }
	.rg-split > div:last-child:has(> .rg-photo:only-child) > .rg-photo {
		position: sticky;
		top: 6rem;
		display: flex;
		flex-direction: column;
		height: 100%;
		min-height: 16rem;
		max-height: 32rem;
	}
	.rg-split > div:last-child:has(> .rg-photo:only-child) > .rg-photo img { flex: 1; min-height: 0; height: auto; aspect-ratio: auto; }

	.rg-split:has(> div > .rg-photo + .rg-photo),
	.rg-split:has(table) { grid-template-columns: minmax(0, 1fr); }
	.rg-split:has(> div > .rg-photo + .rg-photo) > :first-child,
	.rg-split:has(table) > :first-child { order: 0; }
	.rg-split:has(> div > .rg-photo + .rg-photo) > :first-child > p,
	.rg-split:has(table) > :first-child > p { max-width: 48rem; }
	.rg-split:has(> div > .rg-photo + .rg-photo) > div:last-child,
	.rg-split:has(table) > div:last-child { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.2rem; align-items: start; }
	.rg-split:has(> div > .rg-photo + .rg-photo + .rg-photo) > div:last-child { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.rg-split:has(table) > div:last-child:has(> .rg-photo:only-child) { grid-template-columns: minmax(0, 1fr); max-width: 40rem; }
}
@media (max-width: 900px) { .rg-split > div > .rg-photo + .rg-photo { margin-top: 1rem; } }

/* Jump target of the board times: leave room for the sticky header and the heading above the table */
#rg-live { scroll-margin-top: 9.5rem; }

/* Breadcrumbs: one small line inside the hero, not a block of their own */
.rg-crumbs { margin: 0 0 0.6rem; font-size: 0.78rem; line-height: 1.4; color: var(--rg-soft); }
.rg-crumbs a { color: inherit; text-decoration: none; }
.rg-crumbs a:hover { text-decoration: underline; }
.rg-phero .rg-crumbs { color: rgba(255, 255, 255, 0.82); }
.rg-phero .rg-crumbs { margin-bottom: 1rem; }

/* Photo hero on pages without the departure board */
.rg-phero-page { background: var(--rg-brand); margin-bottom: 1.5rem; }
.rg-phero-page .rg-phero-bg img { width: 100%; object-position: 50% 55%; }
@media (min-width: 901px) {
	.rg-phero-page .rg-phero-bg::after { background: linear-gradient(90deg, rgba(12, 16, 66, 0.84) 0%, rgba(12, 16, 66, 0.66) 38%, rgba(12, 16, 66, 0.18) 68%, rgba(12, 16, 66, 0) 85%); }
}
.rg-phero-page .rg-phero-inner { padding-top: clamp(1.6rem, 3.5vw, 2.8rem); padding-bottom: clamp(1.8rem, 4vw, 3rem); }
.rg-phero-page .rg-hero-title { font-size: clamp(1.8rem, 1.2rem + 2.4vw, 2.8rem); }
.rg-phero-page .rg-phero-actions { align-items: center; gap: 0.7rem 1.2rem; }
.rg-phero-own { color: #fff !important; font-size: 0.88rem; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 900px) {
	.rg-phero-page .rg-phero-bg { height: 11rem; }
	.rg-phero-page .rg-phero-inner { padding-bottom: 1.6rem; }
	.rg-phero-page .rg-hero-intro { -webkit-line-clamp: 5; }
	.rg-phero .rg-hero-intro { margin-bottom: 1.1rem; }
}

/* FAQ: compact rows, two columns on wide screens */
.rg-faq details { padding: 0; }
.rg-faq summary { padding: 0.7rem 2rem 0.7rem 0; font-family: var(--wp--preset--font-family--body); font-size: 0.98rem; line-height: 1.4; }
.rg-faq summary::after { top: 0.5rem; }
.rg-faq details > p { margin: 0 0 0.9rem; font-size: 0.95rem; }
@media (min-width: 901px) {
	.rg-faq { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 2.5rem; align-items: start; }
	.rg-faq > :not(details) { grid-column: 1 / -1; }
	.rg-faq details:last-child { border-bottom: 1px solid var(--rg-line); }
}

/* [rg_compare]: why this route, and when not */
.rg-compare { margin-top: 1.4rem; }
.rg-compare-title { margin: 0 0 0.2rem; font-size: 1.25rem; }
.rg-compare-why { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 1.4rem; }
.rg-compare-why .rg-tile { cursor: default; border-top: 3px solid var(--rg-deco); }
.rg-compare-scroll { overflow-x: auto; }
.rg-cmp-table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 0.95rem; line-height: 1.4; }
.rg-cmp-table th, .rg-cmp-table td { padding: 0.7rem 0.9rem; text-align: left; vertical-align: top; border-bottom: 1px solid var(--rg-line); }
.rg-cmp-table thead th { font-family: var(--wp--preset--font-family--heading); font-size: 1rem; border-bottom: 2px solid var(--rg-ink); }
.rg-cmp-table tbody th { font-weight: 600; white-space: nowrap; font-size: 0.9rem; background: #fff; color: var(--rg-ink); text-transform: none; letter-spacing: 0; }
.rg-cmp-table tbody td { background: #fff; }
.rg-cmp-table thead th:first-child { background: transparent; border-bottom-color: transparent; }
.rg-cmp-table .is-us { background: var(--rg-sea-tint); }
.rg-cmp-table thead .is-us { border-radius: 10px 10px 0 0; color: var(--rg-brand); }
.rg-cmp-table tbody tr:last-child td, .rg-cmp-table tbody tr:last-child th { border-bottom: 0; }
.rg-cmp-table tbody tr:last-child .is-us { border-radius: 0 0 10px 10px; }
.rg-cmp-table .is-best { font-weight: 600; }
.rg-cmp-table .is-best::before { content: ""; display: inline-block; width: 0.55rem; height: 0.55rem; margin-right: 0.45rem; border-radius: 50%; background: var(--rg-deco); }
.rg-compare-verdict { margin: 1.1rem 0 0 !important; font-weight: 600; max-width: 52rem; }
.rg-compare-more { margin: 0.9rem 0 0 !important; }
.rg-compare-note { margin-top: 1rem !important; font-size: 0.78rem; }
@media (max-width: 760px) {
	.rg-compare-why { grid-template-columns: minmax(0, 1fr); }
	.rg-cmp-table thead { display: none; }
	.rg-cmp-table, .rg-cmp-table tbody, .rg-cmp-table tr, .rg-cmp-table th, .rg-cmp-table td { display: block; }
	.rg-cmp-table tr { padding: 0.7rem 0; border-bottom: 1px solid var(--rg-line); }
	.rg-cmp-table tbody th { border: 0; padding: 0 0 0.3rem; font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.05em; }
	.rg-cmp-table td { border: 0; padding: 0.3rem 0.6rem; border-radius: 6px; }
	.rg-cmp-table td::before { content: attr(data-label) ": "; font-weight: 400; color: var(--rg-soft); }
	.rg-cmp-table .is-best::before { content: attr(data-label) ": "; width: auto; height: auto; margin: 0; border-radius: 0; background: none; display: inline; }
	.rg-cmp-table .is-best { color: #006b3f; }
}

/* [rg_live_map]: third-party AIS map behind a click */
.rg-livemap { position: relative; isolation: isolate; min-height: 24rem; margin: 1.2rem 0 0; border-radius: 14px; overflow: hidden; background: var(--rg-brand); display: grid; place-items: center; }
.rg-livemap-bg { position: absolute; inset: 0; margin: 0; z-index: -1; }
.rg-livemap-bg img { width: 100%; height: 100%; object-fit: cover; display: block; filter: brightness(0.55); }
.rg-livemap-gate { max-width: 34rem; padding: 2rem 1.4rem; text-align: center; color: #fff; }
.rg-livemap-gate h3 { margin: 0 0 0.6rem; color: #fff; font-size: 1.5rem; }
.rg-livemap-gate p { margin: 0 0 1.2rem; font-size: 0.92rem; line-height: 1.55; color: rgba(255, 255, 255, 0.92); }
.rg-livemap.is-live { display: block; min-height: 0; background: #dfe7ee; }
.rg-livemap iframe { display: block; width: 100%; height: 560px; border: 0; }
.rg-livemap-ships { margin: 1.6rem 0 0; font-size: 1.1rem; }
@media (max-width: 700px) { .rg-livemap iframe { height: 440px; } }

/* Story hero: text plus a collage of our own photos, for the pages about what
   we saw on board and in the ports */
.rg-shero { background: linear-gradient(135deg, #d5dbf6 0%, #e4e8fa 55%, #d9f0e4 100%); border-bottom: 1px solid #c3cbef; margin-bottom: 1.5rem; padding-bottom: clamp(1.2rem, 2.5vw, 2rem); }
.rg-shero-inner {
	max-width: var(--rg-wrap);
	margin: 0 auto;
	padding: clamp(1.6rem, 3.5vw, 3rem) var(--rg-gutter) 0;
	box-sizing: content-box;
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
	gap: clamp(1.5rem, 4vw, 3.5rem);
	align-items: center;
}
.rg-shero .rg-hero-title { font-size: clamp(1.9rem, 1.2rem + 2.6vw, 2.9rem); }
.rg-shero .rg-hero-intro { max-width: 36rem; }
.rg-shero .rg-phero-actions { align-items: center; gap: 0.7rem 1.2rem; }
.rg-shero-own { color: var(--rg-ink) !important; font-size: 0.88rem; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.rg-collage { position: relative; padding: 1rem 0 3.4rem 2.2rem; min-width: 0; }
.rg-shot { margin: 0; position: relative; border-radius: 14px; overflow: hidden; box-shadow: 0 20px 40px -22px rgba(20, 18, 77, 0.55); background: #fff; }
.rg-shot a { display: block; height: 100%; cursor: zoom-in; }
.rg-shot img { display: block; width: 100%; height: 100%; object-fit: cover; }
.rg-shot figcaption { position: absolute; left: 0.6rem; right: 0.6rem; bottom: 0.6rem; width: fit-content; max-width: calc(100% - 1.2rem); padding: 0.25rem 0.65rem; border-radius: 999px; background: rgba(255, 255, 255, 0.93); color: var(--rg-ink); font-size: 0.72rem; font-weight: 600; line-height: 1.3; pointer-events: none; }
.rg-shot-1 { aspect-ratio: 4 / 3; }
.rg-shot-1 figcaption { left: auto; }
.rg-shot-2, .rg-shot-3 { position: absolute; z-index: 2; width: 40%; aspect-ratio: 4 / 3; border: 4px solid #fff; }
.rg-shot-2 { left: 0; bottom: 0.4rem; transform: rotate(-2deg); }
.rg-shot-3 { right: -0.6rem; top: 0; width: 34%; transform: rotate(2deg); }
.rg-shot-2 figcaption, .rg-shot-3 figcaption { font-size: 0.66rem; border-radius: 8px; }
.rg-collage-credit { position: absolute; right: 0; bottom: 0.9rem; max-width: 56%; margin: 0 !important; font-size: 0.76rem; line-height: 1.35; text-align: right; color: var(--rg-soft); }
@media (max-width: 1264px) { .rg-shero-inner { box-sizing: border-box; } }
@media (max-width: 900px) {
	.rg-shero { background: linear-gradient(180deg, #d5dbf6 0%, #e4e8fa 100%); padding-bottom: 1.2rem; }
	.rg-shero-inner { grid-template-columns: minmax(0, 1fr); }
	.rg-collage { padding-left: 1.2rem; }
	.rg-shot-3 { right: 0; }
	.rg-shero .rg-hero-intro { display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; margin-bottom: 1.1rem; }
}

/* On-page navigation: no underline, and the section you are in is marked */
.rg-jumpnav a, .rg-jumpnav a:hover, .rg-jumpnav a:focus { text-decoration: none !important; }
.rg-jumpnav a[aria-current="true"] { background: var(--rg-brand); border-color: var(--rg-brand); color: #fff !important; }

/* Port "at a glance": the map fills the left column, weather and facilities share the right one */
@media (min-width: 1001px) {
	.rg-essentials:not(.rg-essentials-2):has(> div:nth-child(3)) { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); grid-template-rows: auto 1fr; }
	.rg-essentials:not(.rg-essentials-2):has(> div:nth-child(3)) > div:nth-child(1) { grid-column: 1; grid-row: 1 / span 2; display: flex; flex-direction: column; }
	.rg-essentials:not(.rg-essentials-2):has(> div:nth-child(3)) > div:nth-child(1) .rg-port-map { flex: 1; height: auto; min-height: 260px; }
	.rg-essentials:not(.rg-essentials-2):has(> div:nth-child(3)) > div:nth-child(2) { grid-column: 2; grid-row: 1; }
	.rg-essentials:not(.rg-essentials-2):has(> div:nth-child(3)) > div:nth-child(3) { grid-column: 2; grid-row: 2; }
}
@media (max-width: 1000px) { .rg-essentials { align-items: start; } }

/* Language lists: a small round flag next to the language name */
.rg-flag { flex: none; width: 1.25rem; height: 1.25rem; display: block; border-radius: 50%; }
.rg-lang ul { min-width: 12.5rem; }
.rg-lang li a { display: flex; align-items: center; gap: 0.6rem; border-radius: 8px; }
.rg-lang-name { flex: 1; }
.rg-lang-code { width: auto; padding-top: 0; }
.rg-lang li a[aria-current="true"] { background: var(--rg-brand); color: #fff !important; font-weight: 600; }
.rg-lang li a[aria-current="true"] .rg-lang-code { color: rgba(255, 255, 255, 0.75); }
.rg-lang li a[aria-current="true"]:hover { background: var(--rg-brand); }
.rg-footer-langs { gap: 0.45rem 0.6rem; }
.rg-footer-langs li { margin: 0; }
.rg-footer-langs a { display: inline-flex; align-items: center; gap: 0.45rem; padding: 0.3rem 0.7rem 0.3rem 0.35rem; border: 1px solid rgba(255, 255, 255, 0.22); border-radius: 999px; text-decoration: none; font-size: 0.88rem; }
.rg-footer-langs a:hover { border-color: #fff; }
.rg-footer-langs a[aria-current="true"] { background: #fff; color: var(--rg-brand) !important; border-color: #fff; }

/* Main menu: no underline on hover or on the current page, colour does the work */
.rg-header a:hover, .rg-header a:focus, .rg-header .rg-nav-list a:hover { text-decoration: none !important; box-shadow: none; }

/* Live map: pick a ship to follow */
.rg-livewrap { margin-top: 1.2rem; }
.rg-livewrap .rg-livemap { margin-top: 0; }
.rg-livepick { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin-bottom: 0.8rem; }
.rg-livepick[hidden] { display: none; }
.rg-livepick p { flex: 1 1 100%; margin: 0.2rem 0 0 !important; font-size: 0.86rem; color: var(--rg-soft); max-width: 60rem; }
.rg-livepick .rg-btn[aria-pressed="true"] { background: var(--rg-brand); border-color: var(--rg-brand); color: #fff !important; }

/* Quiet frames: no green or yellow boxes and borders. Colour is for buttons and
   links; cards are white with a hairline, notes are plain text with a rule. */
.rg-board { border-top: 1px solid var(--rg-line); }
.rg-planner, .rg-chooser { border: 1px solid var(--rg-line); }
.rg-planner-card.is-pick { border: 2px solid var(--rg-brand); background: #f3f4fb; }
.rg-chip-own { background: var(--wp--preset--color--page-tint); border-color: var(--rg-line); color: var(--rg-ink); font-weight: 600; }
.rg-note { background: none; border: 0; border-radius: 0; padding: 0; font-size: 0.86rem; color: var(--rg-soft); }
.rg-note-own { background: none; border: 0; border-left: 3px solid var(--rg-brand); border-radius: 0; padding: 0.15rem 0 0.15rem 1.1rem; font-size: 1rem; color: var(--rg-ink); }
.rg-note-own strong:first-child { color: var(--rg-ink); }
.rg-cta-band { background: #fff; border-color: var(--rg-line); }
.rg-compare-why .rg-tile { border-top: 1px solid var(--rg-line); }
.rg-cmp-table .is-us { background: #f0f1fa; }
.rg-cmp-table .is-best { color: var(--rg-ink); }
.rg-trust svg { background: #eceefa; color: var(--rg-brand); }
.rg-chooser-option:hover, .rg-chooser-option:focus-visible { border-color: var(--rg-brand); background: #f3f4fb; }
.rg-shero { background: linear-gradient(135deg, #d5dbf6 0%, #e8ebfa 100%); }

/* Home: the trust strip and the board follow the collage hero without overlap */
.rg-shero + .rg-hero-below { margin-top: 0; }
.rg-shero .rg-hero-claim { color: var(--rg-brand); text-shadow: none; max-width: 36rem; }
.rg-shero .rg-phero-actions .rg-btn { padding: 0.8rem 1.2rem; }
@media (max-width: 900px) {
	.rg-shero .rg-hero-eyebrow { margin-bottom: 0.5rem; }
	.rg-shero .rg-hero-title { margin-bottom: 0.7rem; }
}

/* Home on phones: the board comes first, the photo collage sits right under it */
.rg-collage-narrow { display: none; }
@media (max-width: 900px) {
	.rg-collage-wide { display: none; }
	.rg-collage-narrow { display: block; order: -1; padding: 0.6rem 0 3.2rem 1.2rem; margin: 0.4rem 0 0.6rem; }
	.rg-hero-below .rg-board { order: -2; }
	.rg-shero:has(.rg-collage-wide) { padding-bottom: 3.2rem; }
	.rg-shero + .rg-hero-below { margin-top: -2.2rem; }
}

/* Collage without the credit line needs less room underneath */
.rg-collage-plain { padding-bottom: 2.2rem; }

/* [rg_route_map]: city picker, map and the three routes in numbers */
.rg-routemap { margin-top: 1.2rem; }
.rg-routemap-pick { margin: 0 0 0.5rem !important; }
.rg-routemap-cities { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-bottom: 1rem; }
.rg-routemap-cities .rg-btn { padding: 0.4rem 0.8rem; font-size: 0.88rem; }
.rg-routemap-cities .rg-btn[aria-pressed="true"] { background: var(--rg-brand); border-color: var(--rg-brand); color: #fff !important; }
.rg-routemap-grid { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: 1.2rem; align-items: stretch; }
.rg-routemap-map { min-height: 30rem; border-radius: 12px; border: 1px solid var(--rg-line); z-index: 0; }
.rg-routemap-panel { display: flex; flex-direction: column; gap: 0.7rem; }
.rg-routemap-row { display: flex; gap: 0.8rem; padding: 0.8rem 0.9rem; border: 1px solid var(--rg-line); border-radius: 10px; background: #fff; }
.rg-routemap-line { flex: none; width: 1.6rem; height: 0; margin-top: 0.65rem; border-top: 5px solid #14124d; border-radius: 3px; }
.rg-routemap-r1 .rg-routemap-line { border-top: 4px solid #2f7dd1; }
.rg-routemap-r2 .rg-routemap-line { border-top: 4px dotted #4f5560; }
.rg-routemap-row strong { display: block; font-size: 1rem; }
.rg-routemap-row small { display: block; font-size: 0.8rem; color: var(--rg-soft); }
.rg-routemap-row p { margin: 0.35rem 0 0 !important; font-size: 0.95rem; line-height: 1.45; font-variant-numeric: tabular-nums; }
.rg-routemap-row em { display: inline-block; margin: 0.4rem 0.35rem 0 0; padding: 0.15rem 0.5rem; border-radius: 999px; background: var(--rg-brand); color: #fff; font-style: normal; font-size: 0.72rem; font-weight: 600; }
.rg-routemap-verdict { margin: 0.2rem 0 0 !important; font-weight: 600; line-height: 1.45; }
.rg-routemap-tip { font-weight: 600; border: 0; box-shadow: 0 2px 8px rgba(20, 18, 77, 0.25); }
@media (max-width: 900px) {
	.rg-routemap-grid { grid-template-columns: minmax(0, 1fr); }
	.rg-routemap-map { min-height: 22rem; }
}
.rg-routemap-picks { display: flex; flex-wrap: wrap; gap: 0 2.5rem; }

/* Tables: the third column is often text, not a price, so no green and no forced single line */
.rg-fares td:nth-child(3) { color: var(--rg-ink); white-space: normal; font-weight: 400; }

/* Hero: who wrote the page and when it was last updated */
.rg-hero-meta { margin: 0 0 1rem; font-size: 0.82rem; color: var(--rg-soft); }
.rg-hero-meta a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.rg-hero .rg-hero-meta { margin-top: -0.5rem; }

/* Long button labels wrap instead of pushing the page wider on phones */
@media (max-width: 600px) { .rg-btn-ghost, .rg-compare-more .rg-btn, .rg-livepick .rg-btn { white-space: normal; text-align: center; max-width: 100%; box-sizing: border-box; } }

/* "Book online, not at the harbour" */
.rg-board-foot { display: flex; flex-direction: column; gap: 0.35rem; min-width: 0; }
.rg-board-save { margin: 0 !important; font-size: 0.86rem; font-weight: 600; line-height: 1.4; color: var(--rg-ink); padding-left: 1.5rem; position: relative; }
.rg-board-save::before { content: ""; position: absolute; left: 0; top: 0.12rem; width: 1.05rem; height: 1.05rem; border-radius: 50%; background: var(--rg-cta); box-shadow: inset 0 0 0 4px #fff, inset 0 0 0 9px var(--rg-cta); border: 1px solid var(--rg-cta-hover); box-sizing: border-box; }
.rg-hero-save { margin: 0.9rem 0 0 !important; max-width: 34rem; font-size: 0.88rem; font-weight: 600; color: var(--rg-ink); }
@media (min-width: 901px) { .rg-board-bar .rg-board-foot { grid-area: note; align-self: start; } }

/* Numbered steps */
.rg-steps { list-style: none; counter-reset: rg-step; margin: 1.2rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.9rem 2rem; }
.rg-steps li { counter-increment: rg-step; position: relative; padding-left: 2.7rem; line-height: 1.55; }
.rg-steps li::before { content: counter(rg-step); position: absolute; left: 0; top: 0.1rem; width: 1.9rem; height: 1.9rem; border-radius: 50%; background: var(--rg-brand); color: #fff; font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: 0.95rem; display: grid; place-items: center; }
@media (max-width: 800px) { .rg-steps { grid-template-columns: minmax(0, 1fr); } }
/* Home says it in the board right below, once is enough */
.rg-shero:has(.rg-collage-wide) .rg-hero-save { display: none; }

/* [rg_fare_table]: fares per kind of traveller */
.rg-faretable-scroll { overflow-x: auto; margin-top: 1rem; }
.rg-faretable { width: 100%; border-collapse: collapse; font-size: 0.95rem; line-height: 1.45; }
.rg-faretable th, .rg-faretable td { padding: 0.75rem 0.9rem; text-align: left; vertical-align: top; border-bottom: 1px solid var(--rg-line); background: #fff; color: var(--rg-ink); text-transform: none; letter-spacing: 0; font-weight: 400; }
.rg-faretable thead th { font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: 0.95rem; border-bottom: 2px solid var(--rg-ink); }
.rg-faretable tbody th { font-weight: 600; min-width: 12rem; }
.rg-faretable tbody th small { display: block; margin-top: 0.15rem; font-size: 0.8rem; font-weight: 400; color: var(--rg-soft); }
.rg-faretable td { font-variant-numeric: tabular-nums; }
.rg-faretable-none { color: var(--rg-soft); }
.rg-faretable-scroll + .rg-note { margin-top: 0.9rem; }
@media (max-width: 760px) {
	.rg-faretable thead { display: none; }
	.rg-faretable, .rg-faretable tbody, .rg-faretable tr, .rg-faretable th, .rg-faretable td { display: block; }
	.rg-faretable tr { padding: 0.8rem 0; border-bottom: 1px solid var(--rg-line); }
	.rg-faretable th, .rg-faretable td { border: 0; padding: 0.15rem 0; }
	.rg-faretable td::before { content: attr(data-label) ": "; color: var(--rg-soft); }
	.rg-faretable td:has(.rg-faretable-none) { display: none; }
}

/* Row headers in our own tables are labels, not the dark uppercase column heads of the global table style */
.rg-faretable tbody th, .rg-cmp-table tbody th {
	background: #fff !important;
	color: var(--rg-ink) !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	font-size: 0.92rem !important;
	font-weight: 600 !important;
}
.rg-faretable thead th { text-transform: none !important; letter-spacing: 0 !important; font-size: 0.9rem !important; }
.rg-cmp-table thead th:first-child { background: transparent !important; }

/* Booking button with the online saving as its second line */
.rg-btn-save { flex-direction: column; gap: 0.18rem; white-space: normal; text-align: center; }
.rg-btn-main { display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem; }
.rg-btn-sub { font-size: 0.78rem; font-weight: 500; line-height: 1.25; letter-spacing: 0; }
.rg-btn-lg .rg-btn-sub { font-size: 0.82rem; }
.rg-cta-band .rg-btn-save { align-self: center; }
.rg-btn-save.rg-ext::after { display: none; } /* the arrow in the first line already says it */

/* Contrast (WCAG AA): small text on the tinted collage hero needs darker tones than on white */
.rg-shero .rg-hero-eyebrow { color: #006a3e; }
.rg-shero .rg-crumbs, .rg-shero .rg-crumbs a, .rg-shero .rg-hero-meta { color: #4b5563; }

/* Collage inside a page ([rg_collage]): the hero collage next to the text about the crossing */
.rg-collage-inline { padding: 0.4rem 0 3rem 1.6rem; margin: 0.4rem 0 0; }
.rg-collage-inline .rg-shot-4 { position: absolute; z-index: 2; right: -0.4rem; bottom: 0.2rem; width: 34%; aspect-ratio: 4 / 3; border: 4px solid #fff; transform: rotate(-1.5deg); }
.rg-collage-inline .rg-shot-4 figcaption { font-size: 0.66rem; border-radius: 8px; }
.rg-collage-n4 .rg-shot-1 figcaption { top: 0.6rem; bottom: auto; left: 0.6rem; right: auto; }
.rg-collage-inline .rg-shot-cap-long { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; } /* read out and shown in the lightbox */
@media (min-width: 901px) { .rg-split > .rg-collage-col { position: sticky; top: 6rem; align-self: start; } }
@media (max-width: 900px) { .rg-collage-inline { padding-left: 1rem; } .rg-collage-inline .rg-shot-4 { right: 0; } }
@media (min-width: 901px) { .rg-split.rg-split-collage { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .rg-split-collage .rg-facilities { grid-template-columns: 1fr; } }

/* Fare table: no zebra rows from the global table style, the rows are separated by lines */
.rg-faretable tbody tr td, .rg-faretable tbody tr th { background: #fff !important; }
@media (max-width: 700px) { .rg-faretable-scroll { border: 0; } .rg-faretable tr:last-child { border-bottom: 0; } }

/* Compare table on phones: one block per topic, our route tinted, no zebra rows */
.rg-section table.rg-cmp-table tbody tr td { background: #fff; }
.rg-section table.rg-cmp-table tbody tr td.is-us { background: #f0f1fa; }
@media (max-width: 760px) {
	.rg-cmp-table { border: 0; margin: 0.6rem 0 0; }
	.rg-cmp-table tbody th { white-space: normal; padding: 0 0 0.35rem; }
	.rg-cmp-table td { box-sizing: border-box; width: 100%; margin-top: 0.15rem; }
	.rg-cmp-table tr:last-child { border-bottom: 0; }
}
@media (max-width: 760px) {
	.rg-section table.rg-cmp-table, .rg-section table.rg-cmp-table td, .rg-section table.rg-cmp-table th, .rg-compare-scroll { border: 0; border-radius: 0; }
	.rg-section table.rg-cmp-table td { border-radius: 6px; }
	.rg-section table.rg-cmp-table tr { border-bottom: 1px solid var(--rg-line); }
}
@media (max-width: 700px) {
	.rg-section table.rg-faretable, .rg-section table.rg-faretable td, .rg-section table.rg-faretable th { border: 0; border-radius: 0; }
	.rg-section table.rg-faretable tr { border-bottom: 1px solid var(--rg-line); }
}

/* Booking button with a small link to the price example underneath */
.rg-cta-wrap { display: inline-flex; flex-direction: column; align-items: flex-start; gap: 0.35rem; }
.rg-cta-proof { font-size: 0.8rem; color: var(--rg-soft) !important; text-decoration: underline; text-underline-offset: 3px; }
.rg-shero .rg-cta-proof { color: #4b5563 !important; }
.rg-cta-proof:hover { color: var(--rg-ink) !important; }
.rg-board-note .rg-cta-proof { font-size: inherit; white-space: nowrap; }
[id="price-example"], [id="preisbeispiel"], [id="prisexempel"], [id="priseksempel"], [id="przyklad-cenowy"] { scroll-margin-top: 6rem; }

/* [rg_today]: today's sailings at a glance, quiet two-column facts */
.rg-today { margin: 1rem 0 1.2rem; padding: 0 0 0 1.1rem; border-left: 3px solid var(--rg-brand); }
.rg-today-date { margin: 0 0 0.6rem !important; font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: 1.1rem; color: var(--rg-ink); }
.rg-today-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.8rem 2rem; }
.rg-today-col h3 { margin: 0 0 0.2rem; font-size: 0.8rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--rg-soft); }
.rg-today-col p { margin: 0 !important; }
.rg-today-times { margin-top: 0.25rem !important; font-variant-numeric: tabular-nums; font-size: 0.95rem; line-height: 1.7; color: var(--rg-ink); }
.rg-today .rg-note { margin: 0.8rem 0 0 !important; }
@media (max-width: 600px) { .rg-today-cols { grid-template-columns: minmax(0, 1fr); } }

/* [rg_combi_map]: overview map of the trip on to Sweden */
.rg-combimap { margin: 1.2rem 0; }
.rg-combimap-map { height: 26rem; border-radius: 14px; overflow: hidden; border: 1px solid var(--rg-line); background: #dfe7ee; z-index: 0; }
.rg-combimap-label { background: #fff; border: 0; border-radius: 6px; box-shadow: 0 2px 8px rgba(20, 18, 77, 0.18); color: var(--rg-ink); font-family: var(--wp--preset--font-family--heading); font-weight: 600; font-size: 0.82rem; padding: 0.15rem 0.45rem; }
.rg-combimap-label::before { display: none; }
.rg-combimap-legend { list-style: none; margin: 0.7rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.4rem 1.4rem; font-size: 0.85rem; color: var(--rg-soft); }
.rg-combimap-legend li { display: flex; align-items: center; gap: 0.5rem; margin: 0; }
.rg-combimap-key { display: inline-block; width: 1.8rem; height: 0; border-top: 4px solid #4f5560; }
.rg-combimap-key-ferry { border-top: 4px dotted #14124d; }
.rg-combimap-key-bridge { border-top-color: #00b56a; }
@media (max-width: 600px) { .rg-combimap-map { height: 21rem; } }

/* Departure board, list layout: direction as heading, sailings under each other, departure and arrival side by side */
.rg-board .rg-board-col h3 { margin: 0 0 0.35rem; font-family: var(--wp--preset--font-family--heading); font-size: 1rem; font-weight: 700; letter-spacing: 0; text-transform: none; color: var(--rg-ink); white-space: nowrap; }
.rg-board-th { display: grid; grid-template-columns: 1fr 1fr; margin: 0 0 0.25rem !important; padding: 0 0.7rem; font-size: 0.72rem; line-height: 1.3; color: var(--rg-soft); }
.rg-board .rg-board-col ul { flex-direction: column; flex-wrap: nowrap; gap: 0.3rem; }
.rg-board .rg-board-col li { display: block; min-width: 0; }
.rg-board .rg-board-col li > a { display: grid; grid-template-columns: 1fr 1fr; align-items: baseline; justify-content: stretch; width: 100%; min-height: 40px; padding: 0.5rem 0.7rem; }
.rg-board .rg-board-col li time { font-size: 1.05rem; font-weight: 700; }
.rg-board-arr { font-size: 1rem; font-variant-numeric: tabular-nums; }
.rg-board .rg-board-col li small { grid-column: 1 / -1; margin-top: 0.1rem; text-align: left; }
.rg-board .rg-board-col li.is-next small { color: rgba(255, 255, 255, 0.75); }
@media (max-width: 420px) { .rg-board .rg-board-col h3 { font-size: 0.9rem; } .rg-board .rg-board-col li > a { padding: 0.45rem 0.5rem; } .rg-board-th { padding: 0 0.5rem; } }

/* Hero actions: buttons on one line, the two small links (price example, sailed it ourselves) together on the next */
.rg-phero-actions .rg-cta-wrap { display: contents; }
.rg-phero-actions { align-items: center; }
.rg-phero-actions::after { content: ""; order: 4; flex-basis: 100%; height: 0; margin-top: -0.35rem; }
.rg-phero-actions .rg-cta-proof { order: 5; }
.rg-phero-actions .rg-shero-own, .rg-phero-actions .rg-phero-own { order: 6; font-size: 0.8rem; font-weight: 500; }
.rg-shero .rg-phero-actions .rg-shero-own { color: #4b5563 !important; }

/* Home departures bar with the list board: sailings left over the full height, on the right one column (facts, button, link, note) */
@media (min-width: 901px) {
	.rg-board-bar {
		grid-template-columns: minmax(0, 1.5fr) minmax(17rem, 1fr);
		grid-template-areas: "head meta" "cols btn" "cols link" "cols note";
		grid-template-rows: auto auto auto 1fr;
		gap: 0.7rem 2.5rem;
		align-items: start;
	}
	.rg-board-bar .rg-board-head, .rg-board-bar .rg-board-meta { align-self: center; margin: 0; }
	.rg-board-bar .rg-btn-book { width: 100%; box-sizing: border-box; }
	.rg-board-bar .rg-board-link { justify-self: center; margin: 0; }
	.rg-board-bar .rg-board-foot { margin: 0; }
}

/* Price example: the three price levels as a quiet list between the two note paragraphs */
.rg-price-levels { margin: 0.4rem 0 0.6rem 1.1rem; padding: 0 0 0 1.1rem; border-left: 3px solid var(--rg-brand); list-style: none; font-size: 0.95rem; line-height: 1.55; }
.rg-price-levels li { margin: 0 0 0.35rem; }

/* Sea-state label per sailing on the departure board (Open-Meteo marine forecast, filled in by board.js) */
.rg-board .rg-board-col li .rg-board-sea { grid-column: 1 / -1; margin-top: 0.1rem; font-size: 0.68rem; line-height: 1.3; text-align: left; color: var(--rg-soft); }
.rg-board .rg-board-col li .rg-board-sea.rg-sea-2 { color: #b45309; }
.rg-board .rg-board-col li .rg-board-sea.rg-sea-3 { color: #b91c1c; font-weight: 600; }
.rg-board .rg-board-col li.is-next .rg-board-sea { color: rgba(255, 255, 255, 0.8); }
.rg-board .rg-board-col li.is-next .rg-board-sea.rg-sea-2 { color: #fdba74; }
.rg-board .rg-board-col li.is-next .rg-board-sea.rg-sea-3 { color: #fca5a5; }

/* 22 Sep: no dark left rule before own-experience passages and the today block; logo green (--rg-deco) as a small accent in a few blocks */
.rg-note-own { border-left: 0; padding-left: 0; }
.rg-today { border-left: 0; padding: 1rem 1.1rem; background: var(--wp--preset--color--page-tint); border-radius: 10px; }
.rg-faq summary::after { color: var(--rg-deco); font-weight: 700; }
.rg-section table th, .rg-fares th { border-bottom: 3px solid var(--rg-deco); }
.rg-facilities li::before { background: var(--rg-deco); opacity: 1; }
.rg-tile:hover, .rg-chooser-option:hover, .rg-chooser-option:focus-visible { border-color: var(--rg-deco); }
.rg-faretable thead th { border-bottom: 3px solid var(--rg-deco); }

/* 22 Sep: a little more air between modules */
.rg-section { margin-top: 1.75rem; margin-bottom: 1.75rem; }
.rg-trust { margin-bottom: 0.5rem; }
.rg-shero { margin-bottom: 2rem; }
