/*
Theme Name: Ben2go
Theme URI: https://ben2go.de
Author: Ben Gaisser
Description: Overland-Reiseblog: Berlin → Mombasa. Kräftige schmale Überschriften, Sand- und Anthrazit-Töne, Rost als Akzent. Block-Theme für den Website-Editor.
Version: 1.10.4
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: ben2go
*/

/* Small additions theme.json cannot express. */

.wp-site-blocks { overflow-x: clip; }

/* Images in (old, classic) post content never overflow the column */
.wp-block-post-content img,
.wp-block-post-content figure,
.wp-block-post-content .wp-caption { max-width: 100%; height: auto; }
.wp-block-post-content .wp-caption { width: auto !important; }
.wp-block-post-content .wp-caption-text { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); margin-top: .4rem; }
.wp-block-post-content p img,
.wp-block-post-content > img { display: block; margin-block: 1.5rem; }
.wp-block-post-content .alignleft { float: none; margin-inline: 0; }
.wp-block-post-content .alignright { float: none; margin-inline: 0; }

/* Small all-caps label (kicker) */
.b2g-kicker {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

/* Status bar labels */
.b2g-status .b2g-label {
	font-size: 0.8125rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	margin: 0;
}
.b2g-status .b2g-value { margin: 0; }

/* Route stages: top rule and link behaviour */
.b2g-stage { border-top: 4px solid var(--wp--preset--color--contrast); padding-top: 1rem; }
.b2g-stage a { text-decoration: none; color: inherit; }
.b2g-stage a:hover, .b2g-stage a:focus { color: var(--wp--preset--color--accent); }

/* Cards: whole title link, gentle hover */
.b2g-card .wp-block-post-featured-image img { transition: transform .4s ease; }
.b2g-card .wp-block-post-featured-image { overflow: hidden; }
.b2g-card:hover .wp-block-post-featured-image img { transform: scale(1.03); }
.b2g-card .wp-block-post-title a:hover { color: var(--wp--preset--color--accent); }

/* Placeholder image box (no image chosen yet) */
.b2g-placeholder { border: 1px dashed var(--wp--preset--color--muted-light); }

/* Tip tiles in dark section */
.b2g-tiles > * { background: var(--wp--preset--color--contrast); }
.b2g-tiles a { color: inherit; text-decoration: none; }
.b2g-tiles a:hover, .b2g-tiles a:focus { color: var(--wp--preset--color--accent-light); }

/* Archive list rows */
.b2g-rows { list-style: none; padding-left: 0; }
.b2g-rows li { border-top: 1px solid var(--wp--preset--color--muted-light); padding: .7rem 0; }
.b2g-rows li:last-child { border-bottom: 1px solid var(--wp--preset--color--muted-light); }
.b2g-rows a { text-decoration: none; color: inherit; }
.b2g-rows a:hover, .b2g-rows a:focus { color: var(--wp--preset--color--accent); }

/* Header navigation on dark background */
.b2g-header .wp-block-navigation a:hover,
.b2g-header .wp-block-navigation a:focus { color: var(--wp--preset--color--accent-light); }
.b2g-header .wp-block-navigation__responsive-container.is-menu-open {
	background-color: var(--wp--preset--color--contrast) !important;
	color: var(--wp--preset--color--base) !important;
}

/* Comfortable tap targets */
.wp-block-navigation-item__content { padding-block: .6rem; }

/* Paragraphs set in the condensed heading font need tighter leading */
p.has-heading-font-family { line-height: 1.1; }

/* Headings inside old post content: no all-caps, calmer sizes */
.wp-block-post-content h1,
.wp-block-post-content h2 {
	text-transform: none;
	font-size: var(--wp--preset--font-size--x-large);
	line-height: 1.15;
	margin-top: 2.5rem;
}
.wp-block-post-content h3 { font-size: var(--wp--preset--font-size--large); }

/* Emoji images (flags etc.) from the old blog stay inline and text-sized */
.wp-block-post-content img[src*="emoji"],
.wp-block-post-content img.emoji,
.wp-block-post-content h1 img,
.wp-block-post-content h2 img,
.wp-block-post-content h3 img {
	display: inline-block;
	height: 1.1em;
	width: auto;
	margin: 0 0.15em;
	vertical-align: -0.15em;
}

/* Mobile menu overlay: big, left-aligned links */
.b2g-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	align-items: flex-start;
	padding-inline: clamp(1rem, 4vw, 2.5rem);
}
.b2g-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	align-items: flex-start;
	gap: 0.5rem;
}
.b2g-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.75rem;
	font-weight: 700;
}

/* Language switch for bilingual posts (without TranslatePress) */
.b2g-lang__switch {
	display: inline-flex;
	border: 2px solid var(--wp--preset--color--contrast);
	margin-bottom: 1.5rem;
}
.b2g-lang__switch button {
	font: 600 1rem/1 var(--wp--preset--font-family--body);
	padding: 0.75rem 1.25rem;
	min-height: 44px;
	border: 0;
	background: transparent;
	color: var(--wp--preset--color--contrast);
	cursor: pointer;
}
.b2g-lang__switch button[aria-pressed="true"] {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}
.b2g-lang__switch button:focus-visible { outline: 2px solid var(--wp--preset--color--accent-bright); outline-offset: 2px; }

/* Language links in the header menu (TranslatePress) */
.b2g-langswitch { font-size: 0.875rem; font-weight: 600; letter-spacing: 0.06em; }
.b2g-langswitch { align-self: center; }
.b2g-mainnav .b2g-langswitch a.wp-block-navigation-item__content { display: flex; align-items: center; min-height: 44px; padding-block: 0; }
/* Divider and extra space before the first flag, flags closer together */
.b2g-langswitch:not(.b2g-langswitch + .b2g-langswitch) {
	margin-left: 2.5rem;
	padding-left: 2.5rem;
	border-left: 1px solid rgba(237, 234, 227, 0.25);
}
.b2g-langswitch + .b2g-langswitch { margin-left: -0.75rem; }
/* Mobile menu: divider on top instead */
.b2g-header .wp-block-navigation__responsive-container.is-menu-open .b2g-langswitch:not(.b2g-langswitch + .b2g-langswitch) {
	margin-left: 0;
	padding-left: 0;
	border-left: 0;
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 1px solid rgba(237, 234, 227, 0.25);
}
.b2g-header .wp-block-navigation__responsive-container.is-menu-open .b2g-langswitch + .b2g-langswitch { margin-left: 0; }
.b2g-header .wp-block-navigation__responsive-container.is-menu-open .b2g-langswitch { align-self: flex-start; }
.b2g-flag {
	display: block;
	width: 26px;
	height: 17px;
	object-fit: cover;
	border-radius: 2px;
	box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.35);
	opacity: 0.55;
	transition: opacity .15s ease, transform .15s ease;
}
.b2g-langswitch a:hover .b2g-flag,
.b2g-langswitch a:focus .b2g-flag { opacity: 1; transform: scale(1.08); }
.b2g-langswitch.is-current .b2g-flag { opacity: 1; box-shadow: 0 0 0 2px var(--wp--preset--color--accent-light); }
.b2g-langswitch.is-current a { color: var(--wp--preset--color--accent-light) !important; }
.b2g-header .wp-block-navigation__responsive-container.is-menu-open .b2g-flag { width: 36px; height: 24px; }
.b2g-langswitch .screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

/* Contact form (WPForms) in the theme's look */
.wpforms-container {
	--wpforms-field-border-radius: 2px;
	--wpforms-field-border-color: var(--wp--preset--color--muted-light);
	--wpforms-field-background-color: var(--wp--preset--color--white);
	--wpforms-field-text-color: var(--wp--preset--color--contrast);
	--wpforms-label-color: var(--wp--preset--color--contrast);
	--wpforms-label-sublabel-color: var(--wp--preset--color--muted);
	--wpforms-button-border-radius: 0;
	--wpforms-button-background-color: var(--wp--preset--color--accent);
	--wpforms-button-text-color: var(--wp--preset--color--white);
}
/* Form starts flush with the text column next to it */
/* WPForms prints a <style> tag before the form, so the form is never :first-child –
   reset its outer margin wherever it sits in a column, and move the field spacing
   below each field so the first visible field starts at the very top. */
.wp-block-column .wpforms-container,
.wp-block-column .wpforms-container .wpforms-form { margin-top: 0 !important; padding-top: 0 !important; }
.wp-block-column .wpforms-container .wpforms-field { padding-top: 0 !important; padding-bottom: 30px !important; }
.wp-block-column .wpforms-container .wpforms-submit-container { padding-top: 0 !important; }
.wpforms-container .wpforms-field-label { font-family: var(--wp--preset--font-family--heading); font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; }
.wpforms-container .wpforms-field-label-inline { font-family: var(--wp--preset--font-family--body); text-transform: none; letter-spacing: 0; font-weight: 400; }
.wp-site-blocks .wpforms-container .wpforms-submit {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 0.85rem 1.75rem;
	height: auto;
	background-color: var(--wp--preset--color--accent);
	border-radius: 0;
}
.wp-site-blocks .wpforms-container .wpforms-submit:hover,
.wp-site-blocks .wpforms-container .wpforms-submit:focus { background-color: var(--wp--preset--color--accent-bright); }
.wpforms-container input:focus,
.wpforms-container textarea:focus,
.wpforms-container select:focus { border-color: var(--wp--preset--color--accent) !important; box-shadow: 0 0 0 1px var(--wp--preset--color--accent) !important; }

/* Contact page: first line of the text column and first form label share one top line */
.wp-block-columns:has(.wpforms-container) { align-items: flex-start; }
.wp-block-columns:has(.wpforms-container) > .wp-block-column { padding-top: 0 !important; }
.wp-block-columns:has(.wpforms-container) > .wp-block-column > :first-child { margin-top: 0 !important; }
.wp-block-columns:has(.wpforms-container) > .wp-block-column > p:first-child {
	line-height: 1.5;
	margin-top: calc(11.5px - 0.75em) !important; /* optical correction, measured for Barlow vs. Barlow Condensed label */
}
.wpforms-container .wpforms-field-label { font-size: 16px; line-height: 19px; }

/* Contact page: airier text column */
.wp-block-columns:has(.wpforms-container) > .wp-block-column:not(:has(.wpforms-container)) p:not(:first-child),
.wp-block-columns:has(.wpforms-container) > .wp-block-column:not(:has(.wpforms-container)) li { line-height: 1.85; }
.wp-block-columns:has(.wpforms-container) > .wp-block-column:not(:has(.wpforms-container)) li + li { margin-top: 0.4rem; }

/* Countries overview (Länder page) */
.b2g-countries { display: grid; grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr)); gap: 2.5rem 2rem; }
.b2g-countries__stage { border-top: 4px solid var(--wp--preset--color--contrast); padding-top: 1rem; }
.b2g-countries__num { font-family: var(--wp--preset--font-family--heading); font-weight: 700; color: var(--wp--preset--color--accent); margin: 0; }
.b2g-countries__title { font-size: var(--wp--preset--font-size--x-large); margin: 0.2rem 0 0.4rem; }
.b2g-countries__title a { color: inherit; text-decoration: none; }
.b2g-countries__title a:hover, .b2g-countries__title a:focus { color: var(--wp--preset--color--accent); }
.b2g-countries__desc { color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); margin: 0 0 0.9rem; }
.b2g-countries__list { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.b2g-countries__list a {
	display: inline-flex; align-items: center; gap: 0.4rem; min-height: 36px; padding: 0.3rem 0.75rem;
	border: 1px solid var(--wp--preset--color--muted-light); color: var(--wp--preset--color--contrast);
	text-decoration: none; font-size: 0.9375rem; background: var(--wp--preset--color--white);
}
.b2g-countries__list .is-empty a { background: transparent; color: var(--wp--preset--color--muted); }
.b2g-countries__list a:hover, .b2g-countries__list a:focus { border-color: var(--wp--preset--color--accent); color: var(--wp--preset--color--accent); }
.b2g-countries__count { font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: 0.8125rem; color: var(--wp--preset--color--white); background: var(--wp--preset--color--accent); padding: 0 0.4rem; line-height: 1.4; }

/* Search in the main menu */
.b2g-search { position: relative; align-self: center; }
.b2g-search__toggle {
	display: flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px;
	padding: 0 !important; background: none; border: 0; color: inherit; cursor: pointer;
}
.b2g-search__toggle:hover, .b2g-search__toggle:focus-visible, .b2g-search.is-open .b2g-search__toggle { color: var(--wp--preset--color--accent-light); }
.b2g-search__form {
	display: none; position: absolute; right: 0; top: calc(100% + 0.75rem); z-index: 50;
	width: min(22rem, 80vw); padding: 0.75rem; gap: 0.5rem;
	background: var(--wp--preset--color--contrast); box-shadow: 0 8px 24px rgba(0,0,0,.25);
}
.b2g-search.is-open .b2g-search__form { display: flex; }
.b2g-search__form input {
	flex: 1; min-width: 0; min-height: 44px; padding: 0 0.75rem; border: 1px solid var(--wp--preset--color--muted);
	background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast);
	font: 400 1rem var(--wp--preset--font-family--body);
}
.b2g-search__form button {
	min-height: 44px; padding: 0 1rem; border: 0; cursor: pointer;
	background: var(--wp--preset--color--accent); color: var(--wp--preset--color--white);
	font: 700 0.95rem var(--wp--preset--font-family--heading); letter-spacing: 0.06em; text-transform: uppercase;
}
.b2g-search__form button:hover, .b2g-search__form button:focus-visible { background: var(--wp--preset--color--accent-bright); }
/* Mobile menu overlay: field always visible, full width */
.b2g-header .wp-block-navigation__responsive-container.is-menu-open .b2g-search { align-self: stretch; width: 100%; margin-top: 1rem; }
.b2g-header .wp-block-navigation__responsive-container.is-menu-open .b2g-search__toggle { display: none; }
.b2g-header .wp-block-navigation__responsive-container.is-menu-open .b2g-search__form { display: flex; position: static; width: 100%; padding: 0; box-shadow: none; background: transparent; }

/* Newsletter box */
.b2g-newsletter {
	display: flex; flex-wrap: wrap; gap: 1.5rem 2.5rem; align-items: flex-start;
	margin-block: var(--wp--preset--spacing--60) 0; padding: var(--wp--preset--spacing--50);
	background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base);
}
.b2g-newsletter p { margin: 0 0 0.5rem; }
.b2g-newsletter__kicker { color: var(--wp--preset--color--accent-light); font-size: 0.875rem; }
.b2g-newsletter__title { color: var(--wp--preset--color--base); font-size: var(--wp--preset--font-size--x-large); margin: 0 0 0.6rem; }
.b2g-newsletter__form input[type="email"], .b2g-newsletter__form input[type="text"] {
	width: 100% !important; min-height: 48px; padding: 0 0.85rem !important; border: 0 !important; border-radius: 0 !important;
	font: 400 1rem var(--wp--preset--font-family--body) !important; color: var(--wp--preset--color--contrast) !important; background: var(--wp--preset--color--base) !important;
}
.b2g-newsletter__form input[type="submit"], .b2g-newsletter__form button {
	min-height: 48px; padding: 0 1.5rem !important; border: 0 !important; border-radius: 0 !important; cursor: pointer;
	background: var(--wp--preset--color--accent) !important; color: var(--wp--preset--color--white) !important;
	font: 700 1rem var(--wp--preset--font-family--heading) !important; letter-spacing: 0.06em; text-transform: uppercase;
}
.b2g-newsletter__form input[type="submit"]:hover, .b2g-newsletter__form button:hover { background: var(--wp--preset--color--accent-bright) !important; }
.b2g-newsletter__form a { color: var(--wp--preset--color--accent-light); }
.b2g-newsletter--hint { display: block; background: var(--wp--preset--color--base-2); color: var(--wp--preset--color--contrast); border-left: 4px solid var(--wp--preset--color--accent); padding: 1rem 1.25rem; }

/* Info boxes in reports: border crossing, hike, costs */
.b2g-infobox {
	margin-block: var(--wp--preset--spacing--50);
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50);
	background: var(--wp--preset--color--base-2);
	border-top: 4px solid var(--wp--preset--color--contrast);
}
.b2g-infobox--border { border-top-color: var(--wp--preset--color--accent); }
.b2g-infobox--hike { border-top-color: #4F6B3A; }
.b2g-infobox--costs { border-top-color: var(--wp--preset--color--muted); }
.b2g-infobox > * + * { margin-top: 0.6rem; }
.wp-block-post-content .b2g-infobox .b2g-infobox__title,
.b2g-infobox__title { font-size: var(--wp--preset--font-size--x-large); text-transform: uppercase; margin-top: 0.1rem; }
.b2g-infobox__kicker { font-size: 0.875rem; color: var(--wp--preset--color--accent); margin: 0; }
.b2g-infobox--hike .b2g-infobox__kicker { color: #4F6B3A; }
.b2g-infobox__intro { color: var(--wp--preset--color--contrast-2); }
.b2g-facts { gap: 0.9rem 1.5rem; margin-block: 1rem 0.5rem; }
.b2g-fact { gap: 0.1rem; padding-top: 0.6rem; border-top: 1px solid var(--wp--preset--color--muted-light); }
.b2g-fact p { margin: 0; }
.b2g-fact__label {
	font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: 0.8125rem;
	letter-spacing: 0.1em; text-transform: uppercase; color: var(--wp--preset--color--muted);
}
.b2g-fact__value { font-weight: 500; }
.b2g-infobox__sub { font-size: var(--wp--preset--font-size--large); margin-top: 1.25rem; }
.b2g-infobox__tip { padding: 0.75rem 1rem; background: var(--wp--preset--color--base); border-left: 3px solid var(--wp--preset--color--accent); }
.b2g-infobox ol, .b2g-infobox ul { padding-left: 1.25rem; }

/* Route map */
.b2g-map { position: relative; width: 100%; background: var(--wp--preset--color--base-2) linear-gradient(135deg, rgba(0,0,0,.03) 25%, transparent 25%, transparent 50%, rgba(0,0,0,.03) 50%, rgba(0,0,0,.03) 75%, transparent 75%) 0 0 / 24px 24px; border: 1px solid var(--wp--preset--color--stone); }
.b2g-map__consent { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.75rem; padding: 1.5rem; text-align: center; }
.b2g-map__consent p { max-width: 34rem; margin: 0; color: var(--wp--preset--color--contrast-2); }
.b2g-map__title { font-family: var(--wp--preset--font-family--heading); font-weight: 800; font-size: var(--wp--preset--font-size--x-large); text-transform: uppercase; color: var(--wp--preset--color--contrast) !important; }
.b2g-map__load { min-height: 48px; padding: 0 1.75rem; border: 0; cursor: pointer; background: var(--wp--preset--color--accent); color: var(--wp--preset--color--white); font: 700 1rem var(--wp--preset--font-family--heading); letter-spacing: 0.06em; text-transform: uppercase; }
.b2g-map__load:hover, .b2g-map__load:focus-visible { background: var(--wp--preset--color--accent-bright); }
.b2g-map.is-loaded { background: #e8e4dc; }
.b2g-map .leaflet-popup-content { font-family: var(--wp--preset--font-family--body); font-size: 0.95rem; }
.b2g-map .leaflet-popup-content a { font-weight: 600; color: var(--wp--preset--color--accent); }
.b2g-map__date { font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: 0.8rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--wp--preset--color--muted); }

/* MailPoet form inside the newsletter box: no own spacing, theme fonts */
.b2g-newsletter__form .mailpoet_form,
.b2g-newsletter__form form { padding: 0 !important; margin: 0 !important; background: none !important; border: 0 !important; }
.b2g-newsletter__form .mailpoet_paragraph { margin: 0 0 0.75rem !important; padding: 0 !important; }
.b2g-newsletter__form,
.b2g-newsletter__form p,
.b2g-newsletter__form label,
.b2g-newsletter__form .mailpoet_form_paragraph,
.b2g-newsletter__form .mailpoet_message { font-family: var(--wp--preset--font-family--body) !important; }
.b2g-newsletter__form p:not(.mailpoet_paragraph),
.b2g-newsletter__form .mailpoet_form_paragraph {
	font-size: var(--wp--preset--font-size--small) !important; line-height: 1.5 !important;
	color: var(--wp--preset--color--muted-light) !important; margin: 0.25rem 0 0 !important;
}
.b2g-newsletter__form .mailpoet_message p { color: var(--wp--preset--color--accent-light) !important; font-size: 1rem !important; }
.b2g-newsletter__form input[type="submit"] { width: 100% !important; }

.b2g-newsletter > .b2g-newsletter__text, .b2g-newsletter > .b2g-newsletter__form { flex: 1 1 16rem; min-width: 0; }
.b2g-newsletter > :not(.b2g-newsletter__text):not(.b2g-newsletter__form) { display: none !important; }
.b2g-newsletter__form > p:empty, .b2g-newsletter__form br { display: none !important; }
.b2g-newsletter__form *:not(input):not(button):not(svg):not(path) { font-family: var(--wp--preset--font-family--body) !important; }
.b2g-newsletter__form .mailpoet_form_loading, .b2g-newsletter__form .mailpoet_form_paragraph:empty { display: none !important; }
.b2g-newsletter__form .mailpoet_paragraph:first-of-type { margin-top: 0 !important; }
.b2g-newsletter__form input { box-sizing: border-box !important; max-width: 100% !important; margin: 0 !important; }

/* Map legend */
.b2g-map__legend{background:rgba(255,255,255,.92);padding:6px 10px;font:12px/1.6 var(--wp--preset--font-family--body,sans-serif);color:#1C1B19;display:flex;flex-direction:column;gap:2px;border-radius:2px;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.b2g-map__legend span{display:flex;align-items:center;gap:8px}
.b2g-map__legend i{display:inline-block;width:22px;height:0}
.b2g-map__legend b{display:inline-block;width:10px;height:10px;border-radius:50%;background:#5C564C;border:2px solid #1C1B19;margin:0 6px}
.b2g-map__wait { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; margin: 0; color: var(--wp--preset--color--contrast-2); font-size: 0.9rem; }

/* Tipps & Infos: whole tile clickable */
.b2g-tiles > * { position: relative; transition: background-color .15s; }
.b2g-tiles h3 a::after { content: ""; position: absolute; inset: 0; }
.b2g-tiles > *:hover { background: #2a2825; }
.b2g-tiles > *:hover h3 a { color: var(--wp--preset--color--accent-light); }

/* Links in row lists: visible as links */
.b2g-rows a { text-decoration: underline; text-decoration-color: var(--wp--preset--color--muted-light); text-decoration-thickness: 1px; text-underline-offset: 3px; }
.b2g-rows a:hover, .b2g-rows a:focus-visible { color: var(--wp--preset--color--accent); text-decoration-color: currentColor; }

/* Tipps & Infos page: topic cards */
.b2g-topics { display: grid; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); gap: 2px; margin-top: var(--wp--preset--spacing--50); background: var(--wp--preset--color--contrast-2); }
.b2g-topic { display: flex; flex-direction: column; gap: .5rem; padding: var(--wp--preset--spacing--40); background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); text-decoration: none; transition: background-color .15s; }
.b2g-topic:hover, .b2g-topic:focus-visible { background: #2a2825; }
.b2g-topic__title { font-family: var(--wp--preset--font-family--heading); font-weight: 800; font-size: var(--wp--preset--font-size--large); text-transform: uppercase; line-height: 1.1; }
.b2g-topic:hover .b2g-topic__title { color: var(--wp--preset--color--accent-light); }
.b2g-topic__desc { color: var(--wp--preset--color--muted-light); }
.b2g-topic__count { margin-top: auto; padding-top: .5rem; font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--accent-light); }
.b2g-soon { border-left: 4px solid var(--wp--preset--color--accent); padding: var(--wp--preset--spacing--50); }

/* World map */
.b2g-sw { display: inline-block; width: 16px; height: 12px; border: 1.5px solid #B4441F; }
.b2g-sw--done { background: rgba(180, 68, 31, .5); border-style: solid; }
.b2g-sw--plan { background: rgba(180, 68, 31, .06); border-style: dashed; }
.b2g-world__stats { margin: .75rem 0 0; font-family: var(--wp--preset--font-family--heading); font-weight: 800; font-size: var(--wp--preset--font-size--large); text-transform: uppercase; letter-spacing: .02em; }
.b2g-world__stats:empty { display: none; }
.b2g-map__legend i.b2g-sw { width: 16px; height: 12px; border-top-width: 1.5px; }
