/*
Theme Name: Women Sustainability Forum
Theme URI: https://drisabelfranco.com
Author: IBF International Institute for Better Futures
Description: Bilingual (English and Spanish) block theme for the Women Sustainability Forum, a global initiative of IBF International Institute for Better Futures. Includes the full site map (About us, Forums, Awards, Network, Sustainable Solutions, Academy, Policy and Research, Campaigns, Shop), a clickable world map with country pages, a one click site builder and a language switcher.
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 7.4
Version: 1.3.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: wsf
Tags: block-patterns, full-site-editing, custom-colors, editor-style, wide-blocks, translation-ready
*/

/* ---------- Header ---------- */
.wsf-topbar p { margin: 0; }
.wsf-topbar a { text-decoration: none; }
.wsf-topbar a:hover { text-decoration: underline; }
.wsf-lang-switch a {
	border: 1px solid rgba(255, 255, 255, .45);
	border-radius: 999px;
	padding: .15rem .7rem;
}
.wsf-lang-switch a:hover { background: rgba(255, 255, 255, .12); text-decoration: none !important; }

/* The whole header sticks; the top bar slides away (height set by a tiny script). */
.wp-site-blocks > header.wp-block-template-part {
	position: sticky;
	top: calc(-1 * var(--wsf-topbar-h, 36px));
	z-index: 50;
}
.admin-bar .wp-site-blocks > header.wp-block-template-part { top: calc(32px - var(--wsf-topbar-h, 36px)); }
@media (max-width: 782px) { .admin-bar .wp-site-blocks > header.wp-block-template-part { top: calc(46px - var(--wsf-topbar-h, 36px)); } }
@media (max-width: 600px) { .admin-bar .wp-site-blocks > header.wp-block-template-part { top: calc(-1 * var(--wsf-topbar-h, 36px)); } }
.wsf-logo { margin: 0 !important; }
.wsf-logo img { width: 170px; height: auto; display: block; }
@media (max-width: 600px) { .wsf-logo img { width: 118px !important; } }
.wsf-member-btn .wp-block-button__link { white-space: nowrap; }

.wsf-header .wp-block-navigation { color: var(--wp--preset--color--navy); }
.wsf-header .wp-block-navigation .wp-block-navigation-item__content { padding: .35rem 0; }
.wsf-header .wp-block-navigation > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--blue); }
.wsf-header .wp-block-navigation .wp-block-navigation__submenu-container {
	border: 1px solid var(--wp--preset--color--line) !important;
	border-top: 3px solid var(--wp--preset--color--leaf) !important;
	border-radius: 0 0 10px 10px;
	padding: .5rem !important;
	box-shadow: 0 18px 40px rgba(30, 52, 99, .12);
}
.wsf-header .wp-block-navigation .has-child:is(:hover, :focus-within) > .wp-block-navigation__submenu-container,
.wsf-header .wp-block-navigation .has-child > .wp-block-navigation__submenu-container[aria-hidden="false"],
.wsf-header .wp-block-navigation .has-child .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container { min-width: 260px; }
.wsf-nav .wp-block-navigation__container > .has-child:nth-last-child(-n+3) > .wp-block-navigation__submenu-container { left: auto; right: 0; }
.wsf-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: .55rem .75rem;
	border-radius: 6px;
}
.wsf-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
	background: var(--wp--preset--color--pale);
	color: var(--wp--preset--color--navy);
}
/* Header: logo and membership button on the first row, full width menu below.
   Below 1000px: logo, button and menu icon share one row. */
.wsf-header-inner { row-gap: 0 !important; align-items: center !important; }
.wsf-header-inner > .wsf-header-cta { margin-left: auto; margin-top: 0; }
.wsf-member-btn .wp-block-button__link { padding: .7rem 1.4rem; font-size: .92rem; }
.wsf-header-inner > .wsf-nav {
	order: 3;
	flex-basis: 100%;
	margin-top: .7rem;
	padding-top: .55rem;
	border-top: 1px solid var(--wp--preset--color--line);
	font-size: 0.95rem !important;
}
.wsf-header-inner > .wsf-nav .wp-block-navigation__responsive-container-content,
.wsf-header-inner > .wsf-nav .wp-block-navigation__container { width: 100%; justify-content: space-between; }
.wsf-header .wp-block-navigation .wp-block-navigation__submenu-icon { margin-left: .15rem; }
@media (max-width: 1180px) { .wsf-header-inner > .wsf-nav { font-size: 0.86rem !important; } }
@media (max-width: 1000px) {
	.wsf-header-inner { flex-wrap: nowrap !important; gap: .9rem !important; }
	.wsf-header-inner > .wsf-nav { flex-basis: auto; margin: 0; padding: 0; border: 0; }
	.wsf-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex !important; }
	.wsf-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none !important; }
	.wsf-header-inner > .wsf-nav .wp-block-navigation__responsive-container-content,
	.wsf-header-inner > .wsf-nav .wp-block-navigation__container { justify-content: flex-start; }
}
@media (max-width: 480px) { .wsf-member-btn .wp-block-button__link { padding: .55rem .9rem; font-size: .8rem; } }
.wsf-header .wp-block-navigation__responsive-container.is-menu-open { padding: 1.5rem; }
.wsf-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 1rem !important; font-size: 1.05rem; }
.wsf-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { border: 0 !important; box-shadow: none; padding: .25rem 0 .25rem 1rem !important; }

/* ---------- Typography helpers ---------- */
.wsf-eyebrow {
	letter-spacing: .16em;
	text-transform: uppercase;
	font-weight: 600;
	margin-bottom: .25rem;
}
.wsf-arrow-link a { text-decoration: none; font-weight: 600; }
.wsf-arrow-link a:hover { text-decoration: underline; }

/* Secondary buttons */
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--navy);
	border: 1.5px solid var(--wp--preset--color--navy);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--wp--preset--color--navy);
	color: var(--wp--preset--color--white);
}

/* ---------- Hero ---------- */
.wsf-hero { position: relative; overflow: hidden; }
.wsf-hero::before {
	content: "";
	position: absolute;
	right: -14vw;
	top: -18vw;
	width: 62vw;
	height: 62vw;
	border-radius: 50%;
	border: 2px solid var(--wp--preset--color--pale);
	box-shadow: 0 0 0 3vw rgba(238, 244, 223, .55);
	pointer-events: none;
}
.wsf-hero > * { position: relative; }
.wsf-hero h1 { margin-top: .35rem; }
.wsf-hero-mark img { width: min(420px, 100%); height: auto; animation: wsf-turn 90s linear infinite; }
@media (prefers-reduced-motion: reduce) { .wsf-hero-mark img { animation: none; } }
@keyframes wsf-turn { to { transform: rotate(360deg); } }

/* ---------- Page heroes ---------- */
.wsf-page-hero { position: relative; overflow: hidden; }
.wsf-page-hero::after {
	content: "";
	position: absolute;
	right: -120px;
	bottom: -220px;
	width: 520px;
	height: 520px;
	border-radius: 50%;
	border: 14px solid rgba(176, 208, 97, .28);
	outline: 2px solid rgba(181, 164, 102, .45);
	outline-offset: 28px;
	pointer-events: none;
}
.wsf-page-hero-inner > * { max-width: 820px; }
.wsf-page-hero .wsf-lead { color: var(--wp--preset--color--muted); }

/* ---------- Cards ---------- */
.wsf-card {
	height: 100%;
	box-sizing: border-box;
	border-top: 4px solid transparent;
	transition: transform .25s ease, box-shadow .25s ease;
}
.wsf-card:hover { transform: translateY(-3px); box-shadow: 0 22px 44px rgba(30, 52, 99, .09); }
.wsf-card--blue { border-top-color: var(--wp--preset--color--blue); }
.wsf-card--gold { border-top-color: var(--wp--preset--color--gold); }
.wsf-card--leaf { border-top-color: var(--wp--preset--color--leaf); }
.wsf-card h3 { margin-top: .25rem; }
.wsf-grid-2 .wp-block-column { display: flex; flex-direction: column; gap: var(--wp--preset--spacing--40); }

.wsf-step-number {
	width: 2.4rem;
	height: 2.4rem;
	border-radius: 50%;
	background: var(--wp--preset--color--blue);
	display: flex;
	align-items: center;
	justify-content: center;
}

.wsf-portrait {
	aspect-ratio: 1;
	width: 120px;
	border-radius: 50%;
	background: var(--wp--preset--color--pale);
	border: 3px solid var(--wp--preset--color--leaf);
	margin: 0 0 1rem;
	overflow: hidden;
}
.wsf-portrait img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }

/* ---------- Numbers band ---------- */
.wsf-stat { border-top: 2px solid var(--wp--preset--color--leaf); padding-top: 1.1rem; }
.wsf-stat p { margin-top: .25rem; }
.wsf-stat-number { font-variant-numeric: lining-nums tabular-nums; }

/* ---------- Vision ---------- */
.wsf-vision { position: relative; overflow: hidden; }
.wsf-vision::before, .wsf-vision::after {
	content: "";
	position: absolute;
	border-radius: 50%;
	pointer-events: none;
}
.wsf-vision::before { width: 300px; height: 300px; left: -120px; top: -80px; border: 10px solid rgba(176, 208, 97, .3); }
.wsf-vision::after { width: 220px; height: 220px; right: -60px; bottom: -90px; border: 6px solid rgba(58, 96, 169, .18); }

/* ---------- Timeline ---------- */
.wsf-timeline-item {
	border-top: 1px solid var(--wp--preset--color--line);
	padding-top: var(--wp--preset--spacing--40);
	margin-bottom: var(--wp--preset--spacing--40) !important;
}
.wsf-theme-list { list-style: none; padding-left: 0; }
.wsf-theme-list li {
	padding: .9rem 0 .9rem 2rem;
	border-bottom: 1px solid rgba(255, 255, 255, .18);
	position: relative;
}
.wsf-theme-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 1.35rem;
	width: .8rem;
	height: .8rem;
	border-radius: 50%;
	border: 2px solid var(--wp--preset--color--leaf);
}

/* ---------- Partners ---------- */
.wsf-partner-tile {
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 10px;
	min-height: 96px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
	margin: 0;
	font-size: 1.05rem;
	line-height: 1.3;
	text-align: center;
}
.wsf-partner-tile--cta { border-style: dashed; border-color: var(--wp--preset--color--gold); }
.wsf-partner-tile--cta a { text-decoration: none; font-weight: 600; }

/* ---------- Book ---------- */
.wsf-book-cover {
	aspect-ratio: 2 / 3;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	box-shadow: 10px 14px 0 var(--wp--preset--color--leaf);
}

/* ---------- Posts ---------- */
.wsf-post-card .wp-block-post-featured-image img { border-radius: 10px; }
.wsf-post-card .wp-block-post-title a { text-decoration: none; color: var(--wp--preset--color--navy); }
.wsf-post-card .wp-block-post-title a:hover { color: var(--wp--preset--color--blue); }

/* ---------- Lists ---------- */
.wp-block-list.is-style-none { list-style: none; }
.wp-block-list.is-style-none li { margin-bottom: .45rem; }

/* ---------- Footer ---------- */
.wsf-footer a { text-decoration: none; }
.wsf-footer a:hover { text-decoration: underline; }
.wsf-footer-logo img { width: 220px; height: auto; }
.wsf-footer-about { opacity: .85; }
.wsf-footer-rule { background-color: rgba(255, 255, 255, .18) !important; color: rgba(255, 255, 255, .18) !important; border: 0; height: 1px; margin-top: var(--wp--preset--spacing--50) !important; }
.wsf-footer p { margin-top: .4rem; }

/* ---------- Mobile ---------- */
@media (max-width: 781px) {
	.wsf-hero-mark, .wsf-hero-mark img { width: 200px !important; height: auto !important; }
	.wsf-topbar-initiative { display: none; }
	.wsf-topbar .wp-block-group { justify-content: center !important; }
	.wsf-topbar-tools { flex-wrap: wrap !important; justify-content: center; row-gap: .4rem; }
	.wsf-cta-buttons { justify-content: flex-start !important; }
	.wsf-map-footer { flex-direction: column; align-items: flex-start !important; }
	.wsf-hero::before { width: 120vw; height: 120vw; right: -60vw; top: -40vw; }
	.wsf-page-hero::after { width: 300px; height: 300px; right: -160px; bottom: -160px; }
	.wsf-newsletter .wp-block-buttons, .wsf-partners + * .wp-block-buttons { justify-content: flex-start !important; }
	.wp-block-columns .wp-block-buttons.is-content-justification-right { justify-content: flex-start; }
}

/* ---------- Accessible focus ---------- */
:where(a, button, .wp-element-button):focus-visible {
	outline: 2px solid var(--wp--preset--color--leaf-deep);
	outline-offset: 3px;
}

/* Sections sit flush against each other and the footer */
.wp-site-blocks > footer, .wp-site-blocks > .wp-block-template-part:last-child { margin-block-start: 0; }
.wp-site-blocks > main { margin-block-start: 0; }


/* ---------- Grids ---------- */
.wsf-grid-rows > .wsf-grid + .wsf-grid { margin-top: var(--wp--preset--spacing--40); }
.wsf-grid > .wp-block-column:empty { visibility: hidden; }
@media (max-width: 781px) { .wsf-grid > .wp-block-column:empty { display: none; } }

/* ---------- Siblings strip ---------- */
.wsf-siblings { border-top: 1px solid var(--wp--preset--color--line); }
.wsf-siblings .wsf-eyebrow a { color: inherit; }
.wsf-chips { gap: .6rem !important; margin-top: .75rem; }
.wsf-chips .wp-block-button__link { font-size: .85rem; padding: .55rem 1.1rem; }

/* ---------- Placeholder images ---------- */
.wsf-thumb {
	aspect-ratio: 4 / 3;
	width: 100%;
	background: linear-gradient(135deg, var(--wp--preset--color--pale), var(--wp--preset--color--line));
	border-radius: 10px;
	margin: 0 0 1rem;
	overflow: hidden;
}
.wsf-thumb img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- Shop ---------- */
.wsf-product { display: flex; flex-direction: column; height: 100%; gap: .75rem; }
.wsf-product .wsf-book-cover { margin-bottom: .75rem; max-width: 220px; }
.wsf-product .wp-block-buttons { margin-top: auto; }

/* ---------- World map ---------- */
.wsf-map { margin-top: var(--wp--preset--spacing--50) !important; position: relative; }
.wsf-map-svg { width: 100%; height: auto; display: block; }
.wsf-country path {
	fill: #DCE3D3;
	stroke: #FFFFFF;
	stroke-width: .5;
	transition: fill .15s ease;
}
.wsf-country.r-americas path { fill: #D5DEC9; }
.wsf-country.r-emea path { fill: #DDE2D8; }
.wsf-country:hover path, .wsf-country:focus path { fill: var(--wp--preset--color--leaf); }
.wsf-country.is-active path { fill: var(--wp--preset--color--blue); }
.wsf-country.is-active:hover path, .wsf-country.is-active:focus path { fill: var(--wp--preset--color--navy); }
.wsf-country:focus { outline: none; }
.wsf-country:focus-visible path { stroke: var(--wp--preset--color--navy); stroke-width: 1.5; }
.wsf-map-tip {
	position: absolute;
	left: 0;
	top: 0;
	margin: 0;
	background: var(--wp--preset--color--navy);
	color: #fff;
	font-size: .85rem;
	font-weight: 600;
	padding: .4rem .8rem;
	border-radius: 999px;
	opacity: 0;
	transition: opacity .15s ease;
	pointer-events: none;
}
.wsf-map-tip.is-on { opacity: 1; }
.wsf-map-footer {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 1rem 2rem;
	margin-top: 1.25rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--wp--preset--color--line);
}
.wsf-map-legend { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; font-size: .9rem; color: var(--wp--preset--color--muted); }
.wsf-map-legend li { display: flex; align-items: center; gap: .5rem; }
.wsf-key { width: 14px; height: 14px; border-radius: 3px; background: #DCE3D3; display: inline-block; }
.wsf-key--active { background: var(--wp--preset--color--blue); }
.wsf-map-form { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; font-size: .9rem; }
.wsf-map-form label { font-weight: 600; color: var(--wp--preset--color--navy); }
.wsf-map-form select {
	font: inherit;
	padding: .55rem .8rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 8px;
	background: #fff;
	min-width: 220px;
	max-width: 100%;
}
.wsf-map-form button { padding: .55rem 1.2rem; font-size: .9rem; border: 0; cursor: pointer; }
.wsf-map-section p:empty { display: none; }

/* ---------- 100 Exceptional Women in Sustainability book ---------- */
.wsf-cover100 {
	position: relative;
	aspect-ratio: 2 / 3;
	max-width: 340px;
	margin: 0 auto;
	padding: 2.2rem 1.8rem 1.6rem;
	border-radius: 4px 10px 10px 4px;
	background: linear-gradient(160deg, #26407A 0%, #1E3463 55%, #172A52 100%) !important;
	box-shadow: inset 6px 0 0 rgba(0, 0, 0, .18), 18px 22px 0 var(--wp--preset--color--leaf), 0 30px 60px rgba(10, 20, 45, .35);
	display: flex;
	flex-direction: column;
	overflow: hidden;
	transform: rotate(-2deg);
}
.wsf-cover100::before {
	content: "";
	position: absolute;
	right: -40%;
	bottom: -28%;
	width: 110%;
	aspect-ratio: 1;
	border-radius: 50%;
	border: 10px solid rgba(176, 208, 97, .35);
	outline: 2px solid rgba(181, 164, 102, .55);
	outline-offset: 16px;
}
.wsf-cover100 > * { position: relative; margin: 0 !important; }
.wsf-cover100-mark img { width: 64px; height: auto; filter: drop-shadow(0 2px 6px rgba(0,0,0,.25)); }
.wsf-cover100-num { font-size: clamp(4.5rem, 9vw, 6.5rem) !important; line-height: .9 !important; margin-top: 1.4rem !important; }
.wsf-cover100-title { font-size: clamp(1.25rem, 2.2vw, 1.6rem) !important; line-height: 1.2 !important; margin-top: .6rem !important; }
.wsf-cover100-sub { font-size: .8rem !important; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; margin-top: .9rem !important; }
.wsf-cover100-imprint { margin-top: auto !important; font-size: .7rem !important; letter-spacing: .16em; text-transform: uppercase; opacity: .8; }
.wsf-book-subtitle { margin-top: .35rem !important; }

.wsf-book-feature { position: relative; overflow: hidden; }
.wsf-on-dark { background: radial-gradient(120% 140% at 0% 0%, #2B4C8C 0%, #1E3463 50%, #172A52 100%) !important; }
.wsf-on-dark .wp-block-button:not(.is-style-outline) > .wp-block-button__link { background: var(--wp--preset--color--leaf); color: var(--wp--preset--color--navy); }
.wsf-on-dark .wp-block-button:not(.is-style-outline) > .wp-block-button__link:hover { background: #FFFFFF; }
.wsf-on-dark .wp-block-button.is-style-outline > .wp-block-button__link { color: #FFFFFF; border-color: rgba(255,255,255,.7); }
.wsf-on-dark .wp-block-button.is-style-outline > .wp-block-button__link:hover { background: #FFFFFF; color: var(--wp--preset--color--navy); }

/* Smaller cover inside shop cards */
.wsf-product .wsf-cover100 { max-width: 220px; margin: 0 0 1.4rem; padding: 1.4rem 1.2rem 1.1rem; transform: none; box-shadow: inset 5px 0 0 rgba(0,0,0,.18), 10px 12px 0 var(--wp--preset--color--leaf); }
.wsf-product .wsf-cover100-mark img { width: 42px; }
.wsf-product .wsf-cover100-num { font-size: 3.6rem !important; margin-top: .9rem !important; }
.wsf-product .wsf-cover100-title { font-size: 1.05rem !important; }
.wsf-product .wsf-cover100-sub { font-size: .62rem !important; }
.wsf-product .wsf-cover100-imprint { font-size: .55rem !important; }
@media (max-width: 781px) {
	.wsf-cover100 { max-width: 240px; transform: none; }
}
.wsf-num { font-family: var(--wp--preset--font-family--sans); font-weight: 300; letter-spacing: -0.03em; }
.wsf-cover100-num { font-weight: 200 !important; letter-spacing: -0.04em; }
@media (max-width: 781px) {
	.wsf-cover100 { aspect-ratio: auto; min-height: 380px; padding: 1.6rem 1.4rem 1.3rem; }
	.wsf-cover100-num { font-size: 4.2rem !important; }
	.wsf-cover100-imprint { padding-top: 1.2rem; }
}
/* Slogan accent: "better futures" */
.wsf-accent {
	color: var(--wp--preset--color--blue);
	position: relative;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
	background-image: linear-gradient(transparent 72%, rgba(176, 208, 97, .55) 72%, rgba(176, 208, 97, .55) 90%, transparent 90%);
}
/* Pins for countries where we have worked (keeps small islands visible) */
.wsf-pin-dot { fill: var(--wp--preset--color--gold); stroke: #FFFFFF; stroke-width: 1.5; }
.wsf-pin-halo { fill: rgba(181, 164, 102, .28); transform-box: fill-box; transform-origin: center; animation: wsf-pulse 2.4s ease-out infinite; }
.wsf-pin:hover .wsf-pin-dot { fill: var(--wp--preset--color--navy); }
@keyframes wsf-pulse { 0% { transform: scale(.6); opacity: 1; } 100% { transform: scale(1.8); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .wsf-pin-halo { animation: none; } }
.wsf-key--pin { background: var(--wp--preset--color--gold); border-radius: 50%; }

/* Real book covers */
.wsf-real-cover { margin: 0 0 .75rem !important; }
.wsf-real-cover img {
	width: 100%;
	max-width: 220px;
	height: auto;
	aspect-ratio: 2 / 3;
	object-fit: cover;
	border-radius: 3px;
	box-shadow: 10px 12px 0 var(--wp--preset--color--leaf), 0 18px 36px rgba(30, 52, 99, .18);
}
.wsf-card .wsf-real-cover img { max-width: 100%; }

/* ---------- Forum edition pages ---------- */
.wsf-edition-hero-img img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 14px; box-shadow: 14px 14px 0 var(--wp--preset--color--leaf), 0 20px 40px rgba(30, 52, 99, .16); }
.wsf-edition-hero-img.is-banner img { object-fit: contain; background: var(--wp--preset--color--white); padding: 1.5rem; }
.wsf-edition-theme { margin-top: .75rem; }
.wsf-facts { align-items: start; grid-template-columns: repeat(auto-fit, minmax(min(10.5rem, 100%), 1fr)) !important; }
.wsf-fact { border-top: 2px solid var(--wp--preset--color--leaf); padding-top: 1rem; }
.wsf-fact > * { margin-block: 0; }
.wsf-fact .wsf-fact-icon { margin: 0 0 .7rem; }
.wsf-fact .wsf-fact-icon img { width: 44px; height: 44px; display: block; }
.wsf-fact-value { font-size: clamp(1.45rem, 2.4vw, 1.9rem); line-height: 1.15; font-weight: 300; letter-spacing: -0.01em; margin-top: .2rem !important; }
.wsf-fact-label { font-size: .95rem; opacity: .9; margin-top: .35rem !important; }
.wsf-fact-note { opacity: .65; margin-top: 1.5rem; }
.wsf-edition-card { background: var(--wp--preset--color--white); border-radius: 14px; overflow: hidden; border: 1px solid var(--wp--preset--color--line); height: 100%; transition: box-shadow .2s, transform .2s; }
.wsf-edition-card:hover { box-shadow: 0 14px 30px rgba(30, 52, 99, .14); transform: translateY(-2px); }
.wsf-edition-card > * { margin-block: 0; }
.wsf-edition-card-img { margin: 0; }
.wsf-edition-card-img img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; display: block; }
.wsf-edition-card-body { padding: 1.25rem 1.4rem 1.5rem; }
.wsf-edition-card-body > * + * { margin-top: .5rem; }
.wsf-edition-card h3 a { text-decoration: none; color: var(--wp--preset--color--navy); }
.wsf-edition-card h3 a:hover { color: var(--wp--preset--color--blue); }
.wsf-gallery.wp-block-gallery img { border-radius: 10px; aspect-ratio: 3 / 2; }
.wsf-edition-nav a { font-weight: 600; text-decoration: none; }
.wsf-edition-nav .wsf-edition-prev, .wsf-edition-nav .wsf-edition-next { min-width: 7rem; margin: 0; }
.wsf-rmap { margin: 0; background: #EEF3FA; border-radius: 16px; padding: .5rem; overflow: hidden; }
.wsf-rmap svg { overflow: hidden; }
.wsf-rmap svg { display: block; width: 100%; height: auto; }
.wsf-rmap path { stroke: #FFFFFF; stroke-width: .35; vector-effect: non-scaling-stroke; }
.wsf-rmap .wsf-rmap-other { fill: #D9DEE6; }
.wsf-rmap .wsf-rmap-region { fill: #A9BEE0; }
.wsf-rmap.is-world .wsf-rmap-region { fill: var(--wp--preset--color--blue); }
.wsf-rmap .wsf-rmap-host { fill: var(--wp--preset--color--gold); stroke: var(--wp--preset--color--navy); stroke-width: 1; }
.wsf-rmap a:hover .wsf-rmap-host { fill: var(--wp--preset--color--gold-deep); }
.wsf-rmap-halo { fill: rgba(30, 52, 99, .22); }
.wsf-rmap-dot { fill: var(--wp--preset--color--navy); stroke: #FFFFFF; stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.wsf-rmap-label { fill: var(--wp--preset--color--navy); font-family: var(--wp--preset--font-family--sans); font-weight: 600; paint-order: stroke; stroke: #FFFFFF; stroke-width: 3px; stroke-linejoin: round; }
@media (max-width: 781px) {
	.wsf-edition-nav .wp-block-group { justify-content: center !important; }
}
.wsf-edition-card-img.is-banner img { object-fit: contain; padding: 1.25rem; background: var(--wp--preset--color--white); }
