/*
Theme Name:   Finswimmer News
Theme URI:    https://www.finswimmer.com/
Description:  Variante "news" del tema Finswimmer, ispirata ai portali sportivi: articolo in evidenza, elenco a righe con miniatura, barre di sezione, menu sticky. Figlio di GeneratePress (gratuito), mobile first.
Author:       Finswimmer Magazine
Template:     generatepress
Version:      1.0.0
License:      GNU General Public License v2 or later
Text Domain:  finswimmer-news
*/

/* ---------------------------------------------------------------------------------
   Font (Outfit, licenza aperta OFL, servito dal sito) e variabili
   --------------------------------------------------------------------------------- */
@font-face { font-family: "Outfit"; font-style: normal; font-weight: 400 800; font-display: swap; src: url("fonts/outfit-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Outfit"; font-style: normal; font-weight: 400 800; font-display: swap; src: url("fonts/outfit-latin-ext.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }

:root {
	--fw-blue: #0298db;
	--fw-blue-dark: #0278b0;
	--fw-navy: #08405f;
	--fw-ink: #101c27;
	--fw-muted: #5d6c79;
	--fw-bg: #eef2f6;
	--fw-card: #ffffff;
	--fw-soft: #f4f6f8;
	--fw-line: #e1e8ee;
	--fw-red: #d92d20;
	--fw-radius: 18px;
	--fw-shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 6px 18px rgba(16, 24, 40, .06);
}

body {
	background: var(--fw-bg);
	color: var(--fw-ink);
	font-family: "Outfit", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}
a { color: var(--fw-blue-dark); text-decoration-thickness: 1px; text-underline-offset: 2px; }
a:hover { color: var(--fw-blue); }
img { height: auto; max-width: 100%; }
h1, h2, h3, h4 { color: var(--fw-ink); line-height: 1.18; letter-spacing: -.015em; font-weight: 700; }
.grid-container { max-width: 1224px; }
ins.adsbygoogle { background: transparent !important; }

/* ---------------------------------------------------------------------------------
   Barra con la data (come i portali sportivi)
   --------------------------------------------------------------------------------- */
.iol-topbar { background: var(--fw-soft); border-bottom: 1px solid var(--fw-line); }
.iol-topbar .iol-topbar-in { max-width: 1224px; margin: 0 auto; padding: 8px 16px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.iol-datechip { background: #fff; border: 1px solid var(--fw-line); color: var(--fw-blue-dark); border-radius: 999px; padding: 3px 12px; font-size: .78rem; font-weight: 500; }
.iol-datechip b { font-weight: 700; }
.iol-topbar a { font-size: .78rem; font-weight: 600; text-decoration: none; text-transform: uppercase; letter-spacing: .04em; }

/* ---------------------------------------------------------------------------------
   Header: logo e banner
   --------------------------------------------------------------------------------- */
.site-header { background: #fff; }
.site-header .inside-header { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 12px 16px; }
.site-header .site-logo { margin: 0; }
.site-logo img { max-width: 100%; height: auto; width: 230px; }
.iol-header-banner-wrap { flex: 1 1 100%; }
@media (min-width: 769px) {
	.site-logo img { width: 290px; }
	.iol-header-banner-wrap { flex: 1 1 auto; display: flex; justify-content: flex-end; }
}
/* il titolo del sito resta per i motori di ricerca e gli screen reader */
.site-branding { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------------------------------------------------------------------------------
   Menu: barra bianca sticky, voci blu in maiuscolo; su mobile scorre in orizzontale
   --------------------------------------------------------------------------------- */
.main-navigation { position: sticky; top: 0; z-index: 60; background: #fff; border-top: 1px solid var(--fw-line); border-bottom: 1px solid var(--fw-line); box-shadow: 0 2px 8px rgba(16, 24, 40, .04); }
.admin-bar .main-navigation { top: 32px; }
.main-navigation .inside-navigation { display: flex; flex-wrap: wrap; align-items: center; padding: 0 12px; max-width: 1224px; margin: 0 auto; }
.main-navigation .main-nav ul li a,
.main-navigation .menu-toggle,
.main-navigation .menu-bar-items,
.main-navigation .menu-bar-item > a { color: var(--fw-blue-dark); font-weight: 600; font-size: .9rem; text-transform: uppercase; letter-spacing: .03em; }
.main-navigation .main-nav > ul > li > a { line-height: 52px; padding: 0 14px; border-bottom: 3px solid transparent; }
.main-navigation .main-nav ul li:hover > a,
.main-navigation .main-nav ul li:focus > a,
.main-navigation .main-nav ul li.sfHover > a { color: var(--fw-blue) !important; background: transparent; }
.main-navigation .main-nav > ul > li:hover > a,
.main-navigation .main-nav > ul > li[class*="current-menu-"] > a { color: var(--fw-blue) !important; border-bottom-color: var(--fw-blue); background: transparent; }
.main-navigation .main-nav ul li[class*="current-menu-"] > a { color: var(--fw-blue) !important; background: transparent; }
.main-navigation .dropdown-menu-toggle { color: var(--fw-blue-dark); }
.main-navigation ul ul { background: #fff; border: 1px solid var(--fw-line); border-radius: 12px; box-shadow: 0 12px 28px rgba(16, 24, 40, .14); padding: 6px 0; }
.main-navigation .main-nav ul ul li a { text-transform: none; font-weight: 500; font-size: .95rem; line-height: 1.3; padding: 11px 18px; }
.main-navigation .main-nav ul ul li:hover > a { background: var(--fw-soft); }
.iol-nav-search { display: flex; align-items: center; padding: 0 4px; }
.iol-nav-search input[type="search"] { background: var(--fw-soft); border: 1px solid var(--fw-line); border-radius: 999px; color: var(--fw-ink); height: 36px; padding: 4px 14px; width: 9.5rem; font: inherit; font-size: .85rem; }
.iol-nav-search input[type="search"]:focus { outline: 2px solid var(--fw-blue); background: #fff; }
.main-navigation .menu-toggle { display: flex; align-items: center; gap: 8px; padding: 0 12px; line-height: 52px; height: 52px; }
.main-navigation .menu-bar-items { margin-left: auto; display: flex; align-items: center; }
@media (min-width: 769px) { .main-navigation .menu-toggle { display: none; } .main-navigation .main-nav { flex: 1 1 auto; } .main-navigation .menu-bar-items { margin-left: 0; } }
@media (max-width: 768px) {
	/* Menu mobile: una sola barra con il pulsante; le voci compaiono solo aprendolo (voci grandi, sottomenu a fisarmonica) */
	.main-navigation .inside-navigation { padding: 0; }
	.main-navigation .menu-toggle { width: 100%; height: 52px; line-height: 52px; padding: 0 16px; justify-content: flex-start; font-size: .95rem; }
	.main-navigation .main-nav { flex: 1 0 100%; order: 3; min-width: 0; max-width: 100%; }
	.main-navigation.toggled .main-nav > ul { max-height: calc(100vh - 150px); overflow-y: auto; -webkit-overflow-scrolling: touch; border-top: 1px solid var(--fw-line); }
	.main-navigation .main-nav ul li { border-bottom: 1px solid var(--fw-line); }
	.main-navigation .main-nav ul li:last-child { border-bottom: 0; }
	.main-navigation .main-nav > ul > li > a { line-height: 1.3; padding: 15px 16px; border-bottom: 0; }
	.main-navigation .main-nav ul ul { position: static; box-shadow: none; border: 0; border-radius: 0; background: var(--fw-soft); padding: 0; }
	.main-navigation .main-nav ul ul li a { line-height: 1.3; padding: 13px 16px 13px 30px; }
}

/* ---------------------------------------------------------------------------------
   Contenitori e sidebar
   --------------------------------------------------------------------------------- */
.separate-containers .inside-article,
.separate-containers .comments-area,
.separate-containers .page-header,
.one-container .container,
.separate-containers .paging-navigation,
.inside-page-header { background: transparent; }
.separate-containers .site-main > * { margin-bottom: 18px; }
.sidebar .widget, .iol-upper .widget { background: var(--fw-card); border: 0; border-radius: var(--fw-radius); box-shadow: var(--fw-shadow); }
.sidebar .widget { padding: 18px; margin-bottom: 20px; }
.sidebar .widget-title { font-size: .8rem; text-transform: uppercase; letter-spacing: .07em; color: var(--fw-navy); border-bottom: 2px solid var(--fw-blue); padding-bottom: 8px; margin: 0 0 12px; font-weight: 700; }
.sidebar .widget img { border-radius: 12px; }

/* ---------------------------------------------------------------------------------
   Widget in alto nella home (icone, scorciatoie, carosello)
   --------------------------------------------------------------------------------- */
.iol-upper { margin-bottom: 18px; }
.iol-upper .widget { padding: 14px; margin-bottom: 14px; overflow: hidden; }
.iol-upper .widget .widget, .iol-upper .widget .sidebar-widget { background: none; border: 0; box-shadow: none; border-radius: 0; padding: 0; margin: 0; }
.iol-upper .widget .widget-title { text-align: center; text-transform: uppercase; letter-spacing: .07em; font-size: .82rem; color: var(--fw-navy); border: 0; }
.pcp-carousel-wrapper .sp-pcp-carousel { padding: 0; }
.sp-pcp-post .sp-pcp-title, .sp-pcp-post .sp-pcp-title a { text-transform: none; font-size: 14px !important; line-height: 1.35; color: var(--fw-ink); font-weight: 600; text-decoration: none; }
/* scorciatoie Past / Live / Next / World clubs: chip leggeri con un punto colore (scorrono su mobile) */
.iol-upper #custom_html-15.widget { background: none; box-shadow: none; padding: 0; margin-bottom: 16px; overflow: visible !important; }
.iol-upper #custom_html-15 .textwidget { overflow: visible !important; }
.iol-upper .mobile-menu { display: flex !important; flex-wrap: nowrap; gap: 8px; overflow-x: auto; padding: 2px 2px 8px; margin: 0; width: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.iol-upper .mobile-menu::-webkit-scrollbar { display: none; }
.iol-upper .mobile-menu a { flex: 0 0 auto !important; display: inline-flex !important; align-items: center; gap: 9px; padding: 9px 18px !important; background: #fff !important; color: var(--fw-ink) !important; border: 1px solid var(--fw-line) !important; border-radius: 999px; box-shadow: var(--fw-shadow); font-size: .8rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; text-decoration: none; line-height: 1.2; transition: border-color .15s ease, transform .15s ease; }
.iol-upper .mobile-menu a:hover, .iol-upper .mobile-menu a:focus-visible { border-color: var(--dot) !important; transform: translateY(-1px); color: var(--fw-ink) !important; }
.iol-upper .mobile-menu a img { display: none !important; }
.iol-upper .mobile-menu a::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: var(--dot); flex: none; }
.iol-upper .mobile-menu .menu-item-fascia-past { --dot: #64748b; }
.iol-upper .mobile-menu .menu-item-fascia { --dot: #d92d20; }
.iol-upper .mobile-menu .menu-item-fascia-next { --dot: var(--fw-blue); }
.iol-upper .mobile-menu .menu-item-fascia-clubs { --dot: #0f766e; }
.iol-upper .mobile-menu .menu-item-fascia::before { animation: fwPulse 1.8s ease-out infinite; }
@keyframes fwPulse { 0% { box-shadow: 0 0 0 0 rgba(217, 45, 32, .5); } 70% { box-shadow: 0 0 0 8px rgba(217, 45, 32, 0); } 100% { box-shadow: 0 0 0 0 rgba(217, 45, 32, 0); } }
@media (prefers-reduced-motion: reduce) { .iol-upper .mobile-menu .menu-item-fascia::before { animation: none; } }
/* ---------------------------------------------------------------------------------
   Riquadri Live / Latest / Next (inc/events.php): barra di sezione blu + elenco
   --------------------------------------------------------------------------------- */
.lpu.content-home { margin: 0 0 16px !important; width: auto !important; padding: 0 0 4px; overflow: hidden; background: var(--fw-card); border: 0; border-radius: var(--fw-radius); box-shadow: var(--fw-shadow); }
.lpu.content-home > div { margin: 0 !important; }
.lpu.content-home .section-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 0 0 4px; padding: 13px 18px; background: linear-gradient(90deg, var(--fw-blue-dark), var(--fw-blue)); color: #fff; font-size: .9rem; letter-spacing: .05em; text-transform: uppercase; font-weight: 700; border: 0; }
.lpu.content-home .section-heading, .lpu.content-home .section-heading a, .lpu.content-home .section-heading span { color: #fff !important; text-decoration: none; }
.lpu.content-home .section-heading span { flex: 1; }
.lpu.content-home .section-heading img { display: none; }
.iol-seeall { flex: none; font-size: .78rem; font-weight: 600; letter-spacing: .02em; text-transform: none; opacity: .95; white-space: nowrap; }
.lpu.content-home ul { list-style: none; margin: 0; padding: 4px 16px 6px; }
.lpu.content-home li { margin: 0; padding: 11px 0; border-bottom: 1px solid var(--fw-line); line-height: 1.35; font-size: .95rem; }
.lpu.content-home li:last-child { border-bottom: 0; }
.lpu.content-home li a { color: var(--fw-ink); text-decoration: none; display: block; font-weight: 500; }
.lpu.content-home li a:hover { color: var(--fw-blue-dark); }
.lpu.content-home li span[style*="red"] { color: var(--fw-red) !important; font-weight: 600; white-space: nowrap; }
.lpu.content-home li span[style*="grey"] { color: var(--fw-muted) !important; white-space: nowrap; }
.lpu.content-home img { border-radius: 0; }
/* Live: compare solo quando un evento e' in corso */
.lpu.content-home[style*="width:100%"] .section-heading { background: linear-gradient(90deg, #b42318, var(--fw-red)); }
.lpu.content-home[style*="width:100%"] { background: #fff7f6 !important; box-shadow: 0 0 0 2px #f4b8b3, var(--fw-shadow); }
.content-home.iol-lpu-row { display: grid; gap: 16px; margin-bottom: 4px; }
.content-home.iol-lpu-row > .lpu { margin: 0 !important; }
@media (min-width: 768px) { .content-home.iol-lpu-row { grid-template-columns: 1fr 1fr; } }

/* ---------------------------------------------------------------------------------
   Elenco articoli: articolo in evidenza + righe con miniatura
   --------------------------------------------------------------------------------- */
.iol-cards { display: block; }
.iol-card { margin: 0 !important; }
.iol-kicker { display: flex; align-items: center; gap: 6px; color: var(--fw-blue); font-size: .74rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; line-height: 1.2; }
.iol-flag img, .iol-flag { vertical-align: -2px; }
.iol-card-meta { font-size: .76rem; color: var(--fw-muted); letter-spacing: .02em; }
.iol-card-title { margin: 0; }
.iol-card-title a { color: var(--fw-ink); text-decoration: none; }
.iol-card-title a:hover { color: var(--fw-blue-dark); }
.iol-card-excerpt { color: #36444f; margin: 0; }
.iol-card-thumb { display: block; overflow: hidden; line-height: 0; }
.iol-card-thumb img { width: 100%; height: 100%; display: block; margin: 0; object-fit: cover; object-position: center top; }
.iol-card-body { display: flex; flex-direction: column; gap: 8px; min-width: 0; }

/* articolo in evidenza (primo della home) */
.iol-hero { background: var(--fw-soft); border-radius: 26px; overflow: hidden; margin-bottom: 18px !important; box-shadow: var(--fw-shadow); }
.iol-hero .iol-card-thumb { aspect-ratio: 16 / 9; }
.iol-hero .iol-card-body { padding: 18px 20px 20px; gap: 10px; }
.iol-hero .iol-card-title { font-size: clamp(1.55rem, 4.4vw, 2.35rem); font-weight: 800; }
.iol-hero .iol-card-excerpt { font-size: 1rem; }

/* righe */
.iol-row { display: flex; gap: 16px; align-items: flex-start; background: var(--fw-card); padding: 14px; margin-bottom: 12px !important; border-radius: var(--fw-radius); box-shadow: var(--fw-shadow); }
.iol-row .iol-card-thumb { flex: 0 0 36%; max-width: 270px; aspect-ratio: 4 / 3; border-radius: 12px; }
.iol-row .iol-card-body { flex: 1; padding: 2px 4px 2px 0; gap: 6px; }
.iol-row .iol-card-title { font-size: 1.05rem; font-weight: 700; }
.iol-row .iol-card-excerpt { font-size: .92rem; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
@media (max-width: 599px) {
	.iol-row { gap: 12px; padding: 12px; }
	.iol-row .iol-card-thumb { flex-basis: 34%; aspect-ratio: 1 / 1; }
	.iol-row .iol-card-title { font-size: .98rem; }
	.iol-row .iol-card-excerpt { display: none; }
}
@media (min-width: 700px) { .iol-row .iol-card-title { font-size: 1.2rem; } }

/* date dell'evento */
.iol-dates { display: inline-flex; flex-wrap: wrap; gap: 2px 14px; align-self: flex-start; background: #e8f5fc; color: #045d86; border-radius: 10px; padding: 5px 11px; font-size: .8rem; margin: 0; }
.single .iol-dates { margin: 6px 0 16px; border: 1px solid #b9defa; font-size: .95rem; }

/* paesi / continenti sopra l'articolo */
.countries_slug { margin: 6px 0 10px; }
a.balloon { display: inline-block; background: #fff; border: 1px solid var(--fw-line); color: var(--fw-blue-dark); border-radius: 999px; padding: 2px 11px; margin: 0 4px 4px 0; font-size: .78rem; font-weight: 600; text-decoration: none; text-transform: uppercase; letter-spacing: .03em; }
a.balloon:hover { background: var(--fw-blue); color: #fff; border-color: var(--fw-blue); }

/* articolo */
.single .entry-title { font-size: 1.8rem; font-weight: 800; }
.single .entry-content { font-size: 1.06rem; }
.iol-promo { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
.iol-promo a { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--fw-line); background: #fff; border-radius: 999px; padding: 5px 13px; font-size: .85rem; text-decoration: none; color: var(--fw-ink); }
.iol-promo img { width: 18px; height: 18px; }
@media (min-width: 769px) { .single .entry-title { font-size: 2.3rem; } }

/* paginazione */
.paging-navigation .nav-links, .page-numbers { display: inline-flex; gap: 6px; flex-wrap: wrap; }
.page-numbers { background: #fff; border: 1px solid var(--fw-line); border-radius: 10px; padding: 6px 13px; text-decoration: none; font-weight: 600; }
.page-numbers.current { background: var(--fw-blue); color: #fff; border-color: var(--fw-blue); }

/* ---------------------------------------------------------------------------------
   Banner dell'header (Ekipoo / libro)
   --------------------------------------------------------------------------------- */
.ekipoo-wrap { font-family: inherit; width: 100%; }
.ek-banner { text-decoration: none; display: flex; background: linear-gradient(135deg, #0a192f 0%, #061121 100%); border: 1px solid #1d3a5f; border-radius: 14px; box-sizing: border-box; }
.ek-desktop { width: 100%; max-width: 710px; min-height: 76px; padding: 0 20px; align-items: center; justify-content: space-between; gap: 16px; margin-left: auto; }
.ek-logo { font-weight: 800; font-size: 26px; color: #ff6b6b; letter-spacing: -1.5px; }
.ek-content-desk { display: flex; flex-direction: column; justify-content: center; flex: 1; min-width: 0; }
.ek-title-desk { color: #fff; font-size: 14px; font-weight: 800; margin: 0; line-height: 1.25; }
.ek-title-desk span { color: #4dbfff; display: block; }
.ek-desc-desk { color: rgba(255, 255, 255, .7); font-size: 11px; line-height: 1.3; margin-top: 2px; }
.ek-mobile { width: 100%; padding: 20px; flex-direction: column; gap: 8px; }
.ek-tag-mob { background: rgba(77, 191, 255, .1); color: #4dbfff; font-size: 10px; padding: 4px 10px; border-radius: 999px; align-self: flex-start; }
.ek-title-mob { color: #fff; font-size: 20px; font-weight: 800; line-height: 1.15; }
.ek-title-mob span { color: #4dbfff; display: block; }
.ek-desc-mob { color: rgba(255, 255, 255, .7); font-size: 14px; line-height: 1.5; }
.ek-btn { background: #00a3ff; color: #fff; padding: 10px 18px; border-radius: 8px; font-size: 13px; font-weight: 700; white-space: nowrap; flex-shrink: 0; align-self: flex-start; }
.ekipoo-wrap .ek-only-mobile { display: none; }
@media (max-width: 767px) {
	.ekipoo-wrap .ek-only-desktop { display: none; }
	.ekipoo-wrap .ek-only-mobile { display: flex; }
}
.iol-header-banner { display: block; }
.iol-header-banner img { border-radius: 14px; width: 100%; max-width: 710px; height: auto; margin-left: auto; display: block; }

/* ---------------------------------------------------------------------------------
   Liste eventi (inc/events.php), mappe
   --------------------------------------------------------------------------------- */
.iol-ev-month { margin-top: 20px; }
.iol-ev { list-style-type: none; }
.iol-ev-date { color: var(--fw-red); }
.iol-year { margin-top: 10px; }
.iol-year > summary { cursor: pointer; font-size: 1.25em; margin: 15px 0 5px; }
.iol-map-tools label, .iol-map-tools button { font-size: .9rem; }
.iol-map-tools button, .iolc-btn { background: var(--fw-blue); color: #fff; border: 0; border-radius: 999px; padding: 7px 14px; cursor: pointer; }
.iol-map-info { color: var(--fw-muted); font-size: .9rem; margin: 6px 0 16px; }

/* ---------------------------------------------------------------------------------
   Pagine riepilogo dei paesi (plugin Finswimmer Core)
   --------------------------------------------------------------------------------- */
.iolc-hub { background: var(--fw-card); border: 0; border-radius: var(--fw-radius); box-shadow: var(--fw-shadow); padding: 18px 20px; margin: 0 0 20px; }
.iolc-hub-title { font-size: 1.5rem; margin: 0 0 8px; }
.iolc-hub-cols { display: grid; gap: 18px; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
.iolc-hub h3, .iolc-hub-news h3 { font-size: .8rem; text-transform: uppercase; letter-spacing: .07em; color: var(--fw-navy); border-bottom: 2px solid var(--fw-blue); padding-bottom: 6px; margin: 14px 0 8px; }
.iolc-hub-list { list-style: none; margin: 0; padding: 0; }
.iolc-hub-list li { padding: 6px 0; border-bottom: 1px solid var(--fw-line); line-height: 1.4; font-size: .95rem; }
.iolc-hub-list li:last-child { border-bottom: 0; }
.iolc-hub-list a { text-decoration: none; color: var(--fw-ink); }
.iolc-hub-list a:hover { color: var(--fw-blue-dark); }
.iolc-hub-date { display: block; color: var(--fw-muted); font-size: .8rem; }
.iolc-hub-more { font-size: .9rem; margin: 8px 0 0; }
.iolc-btn { display: inline-block; text-decoration: none; margin: 0 6px 6px 0; }
.iolc-hub-actions { margin: 16px 0 0; }
.page-header .page-title { font-size: 2rem; font-weight: 800; margin-bottom: 14px; }

/* ---------------------------------------------------------------------------------
   Footer
   --------------------------------------------------------------------------------- */
.site-info { color: var(--fw-muted); font-size: .85rem; text-align: center; padding: 18px 12px; }
.site-footer { background: transparent; }

/* Banner Ekipoo su mobile: piu' compatto (resta intero, senza la descrizione lunga) */
@media (max-width: 767px) {
	.site-header .ek-mobile { padding: 14px 16px; gap: 6px; }
	.site-header .ek-desc-mob { display: none; }
	.site-header .ek-title-mob { font-size: 17px; }
	.site-header .ek-logo { font-size: 28px !important; }
}

/* ---------------------------------------------------------------------------------
   Home a portale: sezioni con barra, articoli a una o due colonne
   --------------------------------------------------------------------------------- */
.iol-sec { margin: 0 0 26px; }
.iol-sec-bar { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 0 0 12px; padding: 12px 18px; background: linear-gradient(90deg, var(--fw-blue-dark), var(--fw-blue)); border-radius: 14px; }
.iol-sec-bar h2 { margin: 0; color: #fff; font-size: .95rem; letter-spacing: .06em; text-transform: uppercase; font-weight: 700; }
.iol-sec-bar .iol-seeall { color: #fff; text-decoration: none; }
.iol-pat { display: grid; gap: 16px; grid-template-columns: 1fr; }
@media (min-width: 640px) {
	.iol-pat-wide, .iol-pat-grid, .iol-pat-lead { grid-template-columns: 1fr 1fr; }
	.iol-pat-wide > .iol-p-wide { grid-column: 1 / -1; }
}
.iol-pat-rows { gap: 12px; }
.iol-stack { display: flex; flex-direction: column; gap: 12px; }
.iol-pat-lead > .iol-p-std { align-self: start; }

.iol-p { background: var(--fw-card); border-radius: var(--fw-radius); box-shadow: var(--fw-shadow); overflow: hidden; display: flex; flex-direction: column; margin: 0; }
.iol-p .iol-card-thumb { aspect-ratio: 16 / 10; }
.iol-p .iol-card-body { padding: 14px 16px 16px; gap: 7px; }
.iol-p .iol-card-title { font-size: 1.08rem; font-weight: 700; }
.iol-p .iol-card-excerpt { font-size: .92rem; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.iol-p-wide .iol-card-thumb { aspect-ratio: 16 / 8; }
.iol-p-wide .iol-card-body { padding: 18px 20px 20px; gap: 9px; }
.iol-p-wide .iol-card-title { font-size: clamp(1.45rem, 3.6vw, 2.1rem); font-weight: 800; }
.iol-p-wide .iol-card-excerpt { font-size: 1rem; -webkit-line-clamp: 3; }
/* riga con miniatura (dentro "lead" e negli elenchi) */
.iol-p-row { flex-direction: row; align-items: flex-start; gap: 12px; padding: 10px; border-radius: 14px; box-shadow: none; border: 1px solid var(--fw-line); }
.iol-p-row .iol-card-thumb { flex: 0 0 34%; max-width: 190px; aspect-ratio: 4 / 3; border-radius: 10px; }
.iol-p-row .iol-card-body { padding: 0; gap: 5px; flex: 1; }
.iol-p-row .iol-card-title { font-size: .98rem; }
.iol-pat-rows .iol-p-row { box-shadow: var(--fw-shadow); border: 0; }
@media (max-width: 599px) { .iol-p-row .iol-card-thumb { flex-basis: 32%; aspect-ratio: 1 / 1; } }

/* club */
.iol-clubs { display: grid; gap: 16px; grid-template-columns: 1fr; }
@media (min-width: 640px) { .iol-clubs { grid-template-columns: 1.1fr 1fr; } }
.iol-clubs-hero { background: linear-gradient(140deg, var(--fw-navy), #0b6a96); color: #fff; border-radius: var(--fw-radius); padding: 22px; display: flex; flex-direction: column; gap: 10px; justify-content: center; }
.iol-clubs-num strong { display: block; font-size: 3.2rem; line-height: 1; font-weight: 800; }
.iol-clubs-num span { font-size: 1rem; opacity: .9; }
.iol-clubs-hero p { margin: 0; opacity: .9; }
.iol-clubs-cta { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.iol-btn-fill, .iol-btn-line { display: inline-block; border-radius: 999px; padding: 9px 18px; font-weight: 700; font-size: .88rem; text-decoration: none; }
.iol-btn-fill { background: var(--fw-blue); color: #fff; }
.iol-btn-fill:hover { background: var(--fw-blue-dark); color: #fff; }
.iol-clubs-hero .iol-btn-fill { background: #fff; color: var(--fw-navy); }
.iol-btn-line { border: 2px solid #fff; color: #fff; }
.iol-btn-line:hover { background: rgba(255, 255, 255, .15); color: #fff; }
.iol-clubs-list { background: var(--fw-card); border-radius: var(--fw-radius); box-shadow: var(--fw-shadow); padding: 16px 18px; }
.iol-clubs-list h3 { font-size: .8rem; text-transform: uppercase; letter-spacing: .07em; color: var(--fw-navy); margin: 0 0 6px; }
.iol-clubs-list ul { list-style: none; margin: 0; padding: 0; }
.iol-clubs-list li { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--fw-line); }
.iol-clubs-list li:last-child { border-bottom: 0; }
.iol-clubs-list a { color: var(--fw-ink); text-decoration: none; font-weight: 600; font-size: .95rem; }
.iol-clubs-list a:hover { color: var(--fw-blue-dark); }
.iol-clubs-list em { font-style: normal; font-size: .78rem; color: var(--fw-muted); white-space: nowrap; }

/* paesi */
.iol-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.iol-chips a { display: inline-flex; align-items: center; gap: 7px; background: var(--fw-card); border-radius: 999px; box-shadow: var(--fw-shadow); padding: 7px 14px; color: var(--fw-ink); text-decoration: none; font-weight: 600; font-size: .9rem; }
.iol-chips a:hover { background: var(--fw-blue); color: #fff; }
.iol-more { text-align: center; margin: 4px 0 20px; }
/* Barre dei riquadri Live / Latest / Next: titolo a sinistra, "See all" a destra, su una riga */
.lpu.content-home .section-heading span:empty { display: none; }
.lpu.content-home .section-heading > span { flex: 1 1 auto; }
.content-home.iol-lpu-row { margin-bottom: 18px; }
.lpu.content-home { margin-bottom: 16px !important; }
@media (max-width: 767px) { .lpu.content-home .section-heading { font-size: .85rem; } }

/* ---------------------------------------------------------------------------------
   Carosello "Main Finswimming Events": schede con immagine, titolo in evidenza, frecce tonde
   --------------------------------------------------------------------------------- */
.iol-upper #text-3.widget { background: none; box-shadow: none; padding: 0; overflow: visible; }
.iol-upper #text-3 .widget, .iol-upper #text-3 .textwidget { overflow: visible; }
.iol-upper #text-3 .iol-sec-bar { margin: 0 0 12px; }
.pcp-carousel-wrapper { position: relative; }
.pcp-carousel-wrapper .sp-pcp-carousel { padding: 4px 2px 14px !important; }
.pcp-carousel-wrapper .sp-pcp-post { background: var(--fw-card); border: 0 !important; border-radius: 14px; box-shadow: var(--fw-shadow); overflow: hidden; height: 100%; display: flex; flex-direction: column; text-align: left; transition: transform .15s ease, box-shadow .15s ease; }
.pcp-carousel-wrapper .sp-pcp-post:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(16, 24, 40, .14); }
.pcp-carousel-wrapper .sp-pcp-post-thumb-area { background: var(--fw-soft); }
.pcp-carousel-wrapper .sp-pcp-thumb { display: block; line-height: 0; }
.pcp-carousel-wrapper .sp-pcp-thumb img { width: 100% !important; height: auto !important; aspect-ratio: 16 / 10; object-fit: cover; object-position: center top; display: block; margin: 0; border-radius: 0; }
.pcp-carousel-wrapper .sp-pcp-post-details { padding: 10px 12px 12px !important; flex: 1; }
.pcp-carousel-wrapper .sp-pcp-post .sp-pcp-title, .pcp-carousel-wrapper .sp-pcp-post .sp-pcp-title a { font-size: .92rem !important; line-height: 1.3 !important; font-weight: 700 !important; color: var(--fw-ink) !important; text-align: left; margin: 0; text-decoration: none; }
.pcp-carousel-wrapper .sp-pcp-post .sp-pcp-title a { display: -webkit-box !important; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.pcp-carousel-wrapper .sp-pcp-post .sp-pcp-title a:hover { color: var(--fw-blue-dark) !important; }
.pcp-carousel-wrapper .pcp-button-prev, .pcp-carousel-wrapper .pcp-button-next { width: 36px !important; height: 36px !important; border: 0 !important; border-radius: 50% !important; background: #fff !important; box-shadow: 0 2px 10px rgba(16, 24, 40, .22); margin-top: -18px !important; }
.pcp-carousel-wrapper .pcp-button-prev .fa, .pcp-carousel-wrapper .pcp-button-next .fa { color: var(--fw-blue-dark) !important; line-height: 36px; }
.pcp-carousel-wrapper .pcp-button-prev:hover, .pcp-carousel-wrapper .pcp-button-next:hover { background: var(--fw-blue) !important; }
.pcp-carousel-wrapper .pcp-button-prev:hover .fa, .pcp-carousel-wrapper .pcp-button-next:hover .fa { color: #fff !important; }
.pcp-carousel-wrapper .swiper-pagination-bullet { background: #c3d3df !important; opacity: 1; }
.pcp-carousel-wrapper .swiper-pagination-bullet-active { background: var(--fw-blue) !important; }.pcp-carousel-wrapper .sp-pcp-post, .pcp-carousel-wrapper .sp-pcp-post-details, .pcp-carousel-wrapper .sp-pcp-post-details-content { background: #fff !important; }
.pcp-carousel-wrapper .sp-pcp-post .sp-pcp-title a { -webkit-line-clamp: 4; overflow-wrap: anywhere; hyphens: auto; }
@media (min-width: 769px) { .pcp-carousel-wrapper .sp-pcp-post .sp-pcp-title, .pcp-carousel-wrapper .sp-pcp-post .sp-pcp-title a { font-size: .82rem !important; } }

/* Ricerca accanto alle icone social */
.iol-upper .widget.iol-has-search { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; }
.iol-upper .widget.iol-has-search > :not(.iol-search) { flex: 0 1 auto; margin: 0 auto; }
.iol-search { position: relative; flex: 1 1 280px; max-width: 460px; min-width: 220px; margin: 0 auto; }
.iol-search input[type="search"] { width: 100%; height: 44px; border: 1px solid var(--fw-line); border-radius: 999px; background: var(--fw-soft); padding: 0 52px 0 18px; font: inherit; font-size: .95rem; color: var(--fw-ink); box-sizing: border-box; }
.iol-search input[type="search"]:focus { outline: 2px solid var(--fw-blue); background: #fff; border-color: transparent; }
.iol-search button { position: absolute; right: 4px; top: 4px; width: 36px; height: 36px; border: 0; border-radius: 50%; background: var(--fw-blue); color: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; }
.iol-search button:hover { background: var(--fw-blue-dark); }
@media (max-width: 599px) { .iol-search { flex-basis: 100%; max-width: none; } }
.iol-upper #text-3 .iol-sec-bar p, .iol-upper #text-3 .iol-sec-bar br { margin: 0; }
.iol-upper #text-3 .iol-sec-bar br { display: none; }

/* Carosello: angoli arrotondati e ombra non tagliata */
.pcp-carousel-wrapper .sp-pcp-carousel { padding: 6px 6px 18px !important; }
.pcp-carousel-wrapper .sp-pcp-post { border-radius: 14px !important; overflow: hidden !important; }
.pcp-carousel-wrapper .sp-pcp-post-thumb-area, .pcp-carousel-wrapper .sp-pcp-thumb img { border-radius: 14px 14px 0 0 !important; }

/* Scorciatoie su desktop: quattro chip uguali che riempiono tutta la riga */
@media (min-width: 768px) {
	.iol-upper .mobile-menu { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 10px; overflow: visible; padding: 2px 0 8px; }
	.iol-upper .mobile-menu a { justify-content: center; }
}

/* ---------------------------------------------------------------------------------
   Banner del libro negli articoli (inc/book-banner.php).
   Stesso aspetto del tema precedente (il tema nuovo non lo aveva).
   --------------------------------------------------------------------------------- */
.finswimmer-book-banner,
.finswimmer-book-banner * { box-sizing: border-box; }
.finswimmer-book-banner {
    border: 3px solid #006fa8;
    padding: 28px;
    margin: 45px 0;
    border-radius: 16px;
    background: linear-gradient(135deg, #e9f6ff 0%, #ffffff 100%);
    display: flex;
    gap: 25px;
    align-items: center;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.finswimmer-book-banner:hover {
    transform: scale(1.02);
    box-shadow: 0 10px 35px rgba(0, 0, 0, 0.22);
}
.finswimmer-book-banner .fbb-cover { flex-shrink: 0; }
.finswimmer-book-banner .fbb-cover img {
    width: 170px;
    height: auto;
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}
.finswimmer-book-banner .fbb-body { flex: 1; min-width: 0; }
.finswimmer-book-banner .fbb-link { color: inherit; text-decoration: none; }
.finswimmer-book-banner .fbb-title {
    margin: 0 0 14px 0;
    font-size: 26px;
    line-height: 1.3;
    color: #004d73;
    word-wrap: break-word;
}
.finswimmer-book-banner .fbb-text {
    margin: 0 0 22px 0;
    font-size: 17px;
    line-height: 1.6;
    color: #222;
    word-wrap: break-word;
}
.finswimmer-book-banner .finswimmer-cta-button {
    display: inline-block;
    background: #ff8a00;
    color: #ffffff;
    padding: 14px 24px;
    border-radius: 10px;
    font-size: 17px;
    font-weight: 700;
    letter-spacing: 0.3px;
    text-transform: uppercase;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
    transition: background 0.25s ease;
    text-align: center;
}
.finswimmer-book-banner .finswimmer-cta-button:hover { background: #ff6e00; }
@media (max-width: 750px) {
    .finswimmer-book-banner { flex-direction: column; text-align: center; padding: 20px; }
    .finswimmer-book-banner .fbb-cover img { width: 140px; margin: 0 auto; }
    .finswimmer-book-banner .fbb-title { font-size: 20px; margin-top: 16px; }
    .finswimmer-book-banner .fbb-text { font-size: 15px; margin-bottom: 18px; }
    .finswimmer-book-banner .finswimmer-cta-button {
        width: calc(100% - 8px);
        max-width: 100%;
        display: block;
        padding: 12px 16px;
        font-size: 14px;
        margin: 0 auto;
    }
}
/* il tema padre sottolinea i link: nel banner no */
.finswimmer-book-banner a, .finswimmer-book-banner a:hover { text-decoration: none; }
.finswimmer-book-banner .finswimmer-cta-button, .finswimmer-book-banner .finswimmer-cta-button:hover { color: #fff; }
.finswimmer-book-banner .fbb-title { font-family: inherit; font-weight: 800; }

/* Tabelle e blocchi larghi dei vecchi articoli: scorrono dentro il testo invece di allargare la pagina su mobile */
.entry-content table { display: block; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.entry-content pre, .entry-content code { white-space: pre-wrap; overflow-wrap: anywhere; }
.entry-content iframe, .entry-content video, .entry-content embed { max-width: 100%; }

/* Articoli e pagine: il contenuto sta su una scheda bianca */
.single .inside-article, .page:not(.home) .inside-article { background: #fff; border-radius: 18px; box-shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 6px 18px rgba(16, 24, 40, .06); padding: 22px 20px; }
@media (min-width: 769px) { .single .inside-article, .page:not(.home) .inside-article { padding: 32px 36px; } }

/* Intestazione degli archivi (titolo categoria / ricerca): larga come i blocchi sotto, senza il rientro del tema padre */
.page-header, .separate-containers .page-header { padding: 4px 0 8px; margin: 0 0 14px; width: 100%; max-width: none; box-sizing: border-box; }
.page-header .page-title { margin: 0; }

/* Pagine riepilogo: niente bordo azzurro in alto, piu' aria tra il titolo e il riquadro */
.iolc-hub, .iolc-hub.iolc-hub-country, .iolc-hub.iolc-hub-area { border-top: 0 !important; }
.page-header, .separate-containers .page-header { margin-bottom: 24px; }
/* Il riquadro dei paesi sta dentro l'intestazione dell'archivio: distanza dal titolo */
.page-header .page-title { margin-bottom: 18px; }
.page-header .iolc-hub { margin-top: 0; }
/* Con il riquadro del paese il titolo ripete lo stesso nome: si nasconde alla vista ma resta nella pagina (SEO e screen reader) */
.page-header:has(.iolc-hub) .page-title { position: absolute; width: 1px; height: 1px; margin: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.page-header:has(.iolc-hub) { padding-top: 0; }

/* Paginazione */
.paging-navigation { margin: 30px 0 10px; }
.paging-navigation .nav-links { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px; }
.page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; padding: 0 14px; background: #fff; border: 1px solid var(--fw-line); border-radius: 999px; box-shadow: var(--fw-shadow); color: var(--fw-blue-dark); font-size: .95rem; font-weight: 700; line-height: 1; text-decoration: none; transition: background .15s ease, color .15s ease, transform .15s ease, box-shadow .15s ease; }
a.page-numbers:hover, a.page-numbers:focus-visible { background: var(--fw-blue); border-color: var(--fw-blue); color: #fff; transform: translateY(-2px); box-shadow: 0 8px 18px rgba(2, 152, 219, .3); }
.page-numbers.current { background: linear-gradient(135deg, var(--fw-blue-dark), var(--fw-blue)); border-color: transparent; color: #fff; box-shadow: 0 6px 16px rgba(2, 152, 219, .4); }
.page-numbers.dots { min-width: 0; padding: 0 4px; background: transparent; border: 0; box-shadow: none; color: var(--fw-muted); letter-spacing: .12em; }
.page-numbers.prev, .page-numbers.next { padding: 0 20px; gap: 6px; }
@media (max-width: 599px) {
	.paging-navigation .nav-links { gap: 6px; }
	.page-numbers { min-width: 40px; height: 40px; padding: 0 10px; font-size: .9rem; }
	.page-numbers.prev, .page-numbers.next { padding: 0 14px; }
}
/* Su mobile "Previous" e "Next" diventano solo la freccia: tutto resta su una riga */
@media (max-width: 599px) {
	.page-numbers.prev, .page-numbers.next { font-size: 0; padding: 0; min-width: 40px; }
	.page-numbers.prev::before { content: "\2190"; font-size: 1.15rem; }
	.page-numbers.next::before { content: "\2192"; font-size: 1.15rem; }
}

/* Mappa dei club (pagina "Finswimming clubs in the world"): serve un'altezza, il contenitore e' vuoto finche' Leaflet non lo riempie.
   Nel tema precedente stava nel CSS aggiuntivo del Personalizzatore, che non passa al tema nuovo. */
#map { height: 560px; width: 100%; border-radius: 14px; border: 1px solid var(--fw-line); overflow: hidden; position: relative; z-index: 1; }
@media (max-width: 768px) { #map { height: 420px; } }

/* Mobile: i blocchi non hanno gli angoli arrotondati (i chip delle scorciatoie, i pulsanti e i tag restano tondi) */
@media (max-width: 768px) {
	.iol-hero, .iol-p, .iol-row, .iol-card, .iol-card-thumb, .iol-p .iol-card-thumb, .iol-row .iol-card-thumb,
	.lpu.content-home, .iol-sec-bar, .sidebar .widget, .iol-upper .widget:not(#custom_html-15),
	.single .inside-article, .page:not(.home) .inside-article, .iolc-hub, .iol-clubs-hero, .iol-clubs-list,
	.finswimmer-book-banner, .ek-banner, .iol-header-banner img, #map, .iol-sec-bar,
	.pcp-carousel-wrapper .sp-pcp-post, .pcp-carousel-wrapper .sp-pcp-post-thumb-area, .pcp-carousel-wrapper .sp-pcp-thumb img,
	.sidebar .widget img { border-radius: 0 !important; }
}@media (max-width: 768px) {
	/* il banner dell'header occupa tutta la larghezza (GeneratePress in colonna lo restringe al contenuto) */
	.iol-header-banner-wrap { width: 100%; align-self: stretch; }
	.site-header .inside-header { padding: 10px 12px; }
}

/* Logo piccolo nella barra del menu (solo mobile, dopo aver scorso la pagina) e distanza dal bordo con la barra admin */
.iol-nav-logo { display: none; }
@media (max-width: 768px) {
	.iol-nav-logo { display: flex; align-items: center; flex: 0 0 auto; width: 0; opacity: 0; overflow: hidden; margin: 0; transition: width .2s ease, opacity .2s ease, margin .2s ease; }
	.iol-nav-logo img { width: 34px; height: 34px; display: block; }
	.iol-scrolled .iol-nav-logo { width: 34px; opacity: 1; margin: 0 2px 0 14px; }
	.main-navigation .menu-toggle { flex: 1 1 0; width: auto; min-width: 0; }
}
/* barra admin: su schermi piccoli e' alta 46px (e sotto i 600px scorre via con la pagina) */
@media (max-width: 782px) { .admin-bar .main-navigation { top: 46px; } }
@media (max-width: 600px) { .admin-bar .main-navigation { top: 0; } }

/* Il logo piccolo del menu esiste solo su mobile: regola con priorita' alta (online un altro stile lo mostrava anche su desktop) */
.main-navigation .inside-navigation .iol-nav-logo { display: none !important; }
@media (max-width: 768px) {
	.main-navigation .inside-navigation .iol-nav-logo { display: flex !important; }
}

/* Logo piccolo nel menu: ovunque compare solo dopo lo scroll (desktop e mobile) */
.main-navigation .inside-navigation .iol-nav-logo { display: flex !important; align-items: center; flex: 0 0 auto; width: 0; opacity: 0; overflow: hidden; margin: 0; pointer-events: none; transition: width .2s ease, opacity .2s ease, margin .2s ease; }
.main-navigation .inside-navigation .iol-nav-logo img { width: 34px; height: 34px; display: block; }
.iol-scrolled .main-navigation .inside-navigation .iol-nav-logo { width: 34px; opacity: 1; margin: 0 6px 0 14px; pointer-events: auto; }

/* ---------------------------------------------------------------------------------
   Home a schede: barra in alto con ricerca, blocco "Events", "Latest by topic"
   --------------------------------------------------------------------------------- */
.iol-topbar-in { gap: 14px; }
.iol-topbar .iol-search { flex: 0 1 360px; max-width: 360px; min-width: 0; margin: 0 0 0 auto; }
.iol-topbar .iol-search input[type="search"] { height: 36px; font-size: .88rem; padding: 0 44px 0 16px; background: #fff; }
.iol-topbar .iol-search button { width: 30px; height: 30px; top: 3px; right: 3px; }
.iol-topbar .iol-search button svg { width: 15px; height: 15px; }
.iol-topbar-cal { flex: none; }
@media (max-width: 768px) {
	.iol-topbar-in { flex-wrap: wrap; padding: 8px 12px; gap: 8px 10px; }
	.iol-datechip { order: 1; }
	.iol-topbar-cal { order: 2; margin-left: auto; }
	.iol-topbar .iol-search { order: 3; flex: 1 0 100%; max-width: none; margin: 0; }
	.iol-upd-wrap { display: none; }
}

/* schede */
.iol-tabbox { background: var(--fw-card); border-radius: var(--fw-radius); box-shadow: var(--fw-shadow); overflow: hidden; }
.iol-tablist { display: flex; gap: 6px; padding: 10px 12px; overflow-x: auto; scrollbar-width: none; border-bottom: 1px solid var(--fw-line); background: var(--fw-soft); }
.iol-tablist::-webkit-scrollbar { display: none; }
.iol-tab { flex: 0 0 auto; border: 0; background: transparent; color: var(--fw-muted); font: inherit; font-size: .84rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; padding: 8px 16px; border-radius: 999px; cursor: pointer; transition: background .15s ease, color .15s ease; }
.iol-tab:hover { color: var(--fw-blue-dark); background: #fff; }
.iol-tab[aria-selected="true"] { background: var(--fw-blue); color: #fff; box-shadow: 0 4px 12px rgba(2, 152, 219, .35); }
.iol-tab:focus-visible { outline: 2px solid var(--fw-blue-dark); outline-offset: 2px; }
.iol-tab-live::before { content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--fw-red); margin-right: 8px; animation: fwPulse 1.8s ease-out infinite; vertical-align: 1px; }
.iol-tab-live[aria-selected="true"] { background: var(--fw-red); box-shadow: 0 4px 12px rgba(217, 45, 32, .35); }
.iol-tab-live[aria-selected="true"]::before { background: #fff; animation: none; }
.iol-tabpanel { padding: 6px 18px 12px; }
.iol-tabpanel[hidden] { display: none; }
.iol-tabpanel { touch-action: pan-y pinch-zoom; }
@keyframes iolSwipeL { from { opacity: 0; transform: translateX(28px); } to { opacity: 1; transform: none; } }
@keyframes iolSwipeR { from { opacity: 0; transform: translateX(-28px); } to { opacity: 1; transform: none; } }
.iol-tabpanel.iol-swipe-l { animation: iolSwipeL .24s ease-out; }
.iol-tabpanel.iol-swipe-r { animation: iolSwipeR .24s ease-out; }
@media (prefers-reduced-motion: reduce) { .iol-tabpanel.iol-swipe-l, .iol-tabpanel.iol-swipe-r { animation: none; } }
.iol-tabfoot { display: flex; flex-wrap: wrap; gap: 6px 18px; align-items: center; justify-content: space-between; margin: 6px 0 0; padding-top: 10px; border-top: 1px solid var(--fw-line); font-size: .88rem; font-weight: 600; }
.iol-tabfoot a { text-decoration: none; }
.iol-empty { color: var(--fw-muted); margin: 14px 0; }

/* elenco eventi nelle schede */
.iol-evlist { list-style: none; margin: 0; padding: 0; }
.iol-evlist li { border-bottom: 1px solid var(--fw-line); }
.iol-evlist li:last-child { border-bottom: 0; }
.iol-evlist a { display: grid; grid-template-columns: auto 1fr auto; gap: 4px 12px; align-items: center; padding: 11px 0; color: var(--fw-ink); text-decoration: none; }
.iol-evlist a:hover .iol-ev-title { color: var(--fw-blue-dark); }
.iol-ev-flag { display: flex; }
.iol-ev-title { font-weight: 600; line-height: 1.3; font-size: .95rem; }
.iol-ev-when { font-size: .82rem; font-weight: 600; white-space: nowrap; color: var(--fw-muted); }
.iol-ev-live, .iol-ev-past { color: var(--fw-red); }

/* elenco eventi: blocco data, titolo, dettagli e badge */
.iol-evlist .iol-evrow2 a { grid-template-columns: 54px 1fr auto; gap: 14px; padding: 12px 0; align-items: center; }
.iol-edt { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 54px; height: 58px; border-radius: 12px; background: var(--fw-soft); color: var(--fw-blue-dark); line-height: 1; border: 1px solid var(--fw-line); }
.iol-edt b { font-size: 1.45rem; font-weight: 800; letter-spacing: -.02em; }
.iol-edt i { font-size: .66rem; font-style: normal; font-weight: 700; letter-spacing: .12em; margin-top: 4px; }
.iol-edt-past { color: var(--fw-muted); background: #f1f3f5; }
.iol-edt-live { background: var(--fw-red); border-color: var(--fw-red); color: #fff; }
.iol-evbody { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.iol-evbody .iol-ev-title { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.iol-evmeta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; font-size: .8rem; color: var(--fw-muted); }
.iol-evmeta .iol-ev-flag img { display: block; border-radius: 2px; }
.iol-evrange { font-weight: 600; }
.iol-evkind { padding: 1px 8px; border-radius: 999px; background: var(--fw-soft); font-size: .68rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--fw-blue-dark); }
.iol-evbadge { align-self: center; padding: 4px 10px; border-radius: 999px; font-size: .74rem; font-weight: 700; white-space: nowrap; background: #e8f6ee; color: #11743a; }
.iol-evbadge-past { background: #f1f3f5; color: var(--fw-muted); }
.iol-evbadge-live { background: #fdecea; color: var(--fw-red); }
.iol-evrow2 a:hover .iol-edt { transform: translateY(-2px); box-shadow: 0 6px 14px rgba(2, 152, 219, .3); }
.iol-edt { transition: transform .15s ease, box-shadow .15s ease; }
@media (max-width: 600px) {
	.iol-evlist .iol-evrow2 a { grid-template-columns: 48px 1fr; gap: 12px; }
	.iol-edt { width: 48px; height: 52px; }
	.iol-evbadge { grid-column: 2; justify-self: start; margin-top: -2px; }
}
@media (max-width: 600px) {
	.iol-evlist a { grid-template-columns: auto 1fr; }
	.iol-ev-when { grid-column: 2; }
}

/* "Latest by topic": le schede mostrano righe con miniatura su due colonne */
.iol-topicgrid { display: grid; gap: 12px; grid-template-columns: 1fr; padding: 14px 0 4px; }
@media (min-width: 700px) { .iol-topicgrid { grid-template-columns: 1fr 1fr; } }
.iol-tabs-topics .iol-p-row { box-shadow: none; border: 1px solid var(--fw-line); }
.iol-tabs-topics .iol-tabpanel { padding-top: 0; }
@media (max-width: 768px) { .iol-tabbox { border-radius: 0; } }
/* Mobile: le notizie secondarie di "Top news" sono righe compatte (la prima resta grande) */
@media (max-width: 639px) {
	.iol-sec-top .iol-p-std { flex-direction: row; align-items: flex-start; gap: 12px; padding: 10px; box-shadow: none; border: 1px solid var(--fw-line); }
	.iol-sec-top .iol-p-std .iol-card-thumb { flex: 0 0 34%; aspect-ratio: 1 / 1; }
	.iol-sec-top .iol-p-std .iol-card-body { padding: 0; gap: 5px; }
	.iol-sec-top .iol-p-std .iol-card-title { font-size: .98rem; }
	.iol-sec-top .iol-p-std .iol-card-excerpt { display: none; }
}

/* ---------------------------------------------------------------------------------
   Intestazioni delle sezioni: leggere (titolo con segno blu e filetto), niente barre piene ripetute
   --------------------------------------------------------------------------------- */
.iol-sec-bar { position: relative; display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin: 0 0 14px; padding: 0 0 10px; background: none; border-radius: 0; border-bottom: 2px solid var(--fw-line); }
.iol-sec-bar::after { content: ""; position: absolute; left: 0; bottom: -2px; width: 72px; height: 2px; background: var(--fw-blue); }
.iol-sec-bar h2 { display: flex; align-items: center; gap: 10px; margin: 0; color: var(--fw-navy); font-size: 1.2rem; font-weight: 800; letter-spacing: .01em; text-transform: none; line-height: 1.2; }
.iol-sec-bar h2::before { content: ""; flex: none; width: 6px; height: 22px; border-radius: 3px; background: var(--fw-blue); }
.iol-sec-bar .iol-seeall, .iol-sec-bar a { color: var(--fw-blue-dark); font-size: .85rem; font-weight: 700; text-decoration: none; letter-spacing: .01em; white-space: nowrap; }
.iol-sec-bar .iol-seeall:hover, .iol-sec-bar a:hover { color: var(--fw-blue); }
.iol-sec-top .iol-sec-bar h2::before { background: var(--fw-red); }
.iol-sec-top .iol-sec-bar::after { background: var(--fw-red); }
@media (max-width: 768px) { .iol-sec-bar { padding: 0 12px 10px; margin-bottom: 12px; } .iol-sec-bar::after { left: 12px; } .iol-sec-bar h2 { font-size: 1.1rem; } }

/* Banner dell'header: spazio riservato (niente salti di layout mentre l'immagine arriva) */
.iol-header-banner img { aspect-ratio: 710 / 88; }
@media (max-width: 767px) { .iol-header-banner img { aspect-ratio: 3 / 1; } }

/* Icona del segnaposto nel widget social (prima "fa-map-marker" di Font Awesome 3): disegnata in CSS, senza scaricare il font */
.zoom-social_icons-list-span.fa-map-marker { position: relative; display: inline-block; width: 1em; height: 1em; box-sizing: content-box; font-size: 18px; }
.zoom-social_icons-list-span.fa-map-marker::before { content: ""; position: absolute; inset: 8px; background: #fff; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1a8 8 0 0 0-8 8c0 6 8 14 8 14s8-8 8-14a8 8 0 0 0-8-8Zm0 11a3 3 0 1 1 0-6 3 3 0 0 1 0 6Z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1a8 8 0 0 0-8 8c0 6 8 14 8 14s8-8 8-14a8 8 0 0 0-8-8Zm0 11a3 3 0 1 1 0-6 3 3 0 0 1 0 6Z'/%3E%3C/svg%3E") center / contain no-repeat; }

/* ---------------------------------------------------------------------------------
   Banner Ekipoo (header e colonna destra)
   --------------------------------------------------------------------------------- */
.ek2 { position: relative; display: flex; align-items: center; gap: 18px; width: 100%; max-width: 710px; margin-left: auto; padding: 12px 18px; border-radius: 16px; overflow: hidden; isolation: isolate; text-decoration: none; color: #fff; font-family: inherit;
	background: radial-gradient(420px 160px at 6% 0%, rgba(255, 107, 107, .28), rgba(255, 107, 107, 0) 70%), linear-gradient(120deg, #05172d 0%, #08305a 55%, #0a5a8f 100%);
	border: 1px solid rgba(120, 200, 255, .22); box-shadow: 0 8px 24px rgba(4, 25, 52, .28); transition: transform .2s ease, box-shadow .2s ease; }
.ek2::before { content: ""; position: absolute; inset: 0; z-index: -1; opacity: .5; background-image: radial-gradient(rgba(255, 255, 255, .14) 1.2px, transparent 1.6px); background-size: 16px 16px; -webkit-mask-image: linear-gradient(90deg, transparent 20%, #000 100%); mask-image: linear-gradient(90deg, transparent 20%, #000 100%); }
.ek2:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(4, 25, 52, .38); color: #fff; }
.ek2-brand { flex: none; display: flex; flex-direction: column; line-height: 1; }
.ek2-logo { font-size: 30px; font-weight: 800; letter-spacing: -.045em; color: #ff6b6b; }
.ek2-tag { margin-top: 4px; font-size: 9.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: #8fd4ff; opacity: .9; }
.ek2-copy { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 7px; }
.ek2-title { font-size: 15px; font-weight: 800; line-height: 1.2; color: #fff; }
.ek2-title em { font-style: normal; color: #6fd0ff; }
.ek2-chips { display: flex; flex-wrap: wrap; gap: 5px; }
.ek2-chips i { font-style: normal; font-size: 10.5px; font-weight: 600; padding: 2px 9px; border-radius: 999px; background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .18); color: #dff2ff; }
.ek2-cta { flex: none; display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; border-radius: 999px; background: #fff; color: #07304f; font-size: 13.5px; font-weight: 800; box-shadow: 0 6px 16px rgba(0, 0, 0, .25); transition: background .2s ease, color .2s ease; }
.ek2-cta svg { transition: transform .2s ease; }
.ek2:hover .ek2-cta { background: #6fd0ff; color: #04203a; }
.ek2:hover .ek2-cta svg { transform: translateX(3px); }
@media (max-width: 767px) {
	.ek2 { flex-wrap: wrap; gap: 8px 12px; padding: 14px 16px; border-radius: 14px; }
	.ek2-brand { order: 1; flex-direction: row; align-items: baseline; gap: 8px; }
	.ek2-tag { margin: 0; }
	.ek2-cta { order: 2; margin-left: auto; padding: 8px 14px; font-size: 12.5px; }
	.ek2-copy { order: 3; flex: 1 0 100%; gap: 8px; }
	.ek2-title { font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) { .ek2, .ek2-cta svg { transition: none; } }

/* Colonna destra: stesso linguaggio grafico (il codice del widget resta quello, qui si ridisegna) */
.ek-sidebar-container { padding: 0 !important; }
.ek-sidebar-banner { position: relative; overflow: hidden; isolation: isolate; max-width: none !important; border-radius: 18px !important; padding: 26px 22px 22px !important; font-family: inherit !important;
	background: radial-gradient(300px 220px at 0% 0%, rgba(255, 107, 107, .3), rgba(255, 107, 107, 0) 70%), linear-gradient(160deg, #05172d 0%, #08305a 58%, #0a5a8f 100%) !important;
	border: 1px solid rgba(120, 200, 255, .22) !important; box-shadow: 0 10px 28px rgba(4, 25, 52, .3) !important; }
.ek-sidebar-banner::before { content: ""; position: absolute; inset: 0; z-index: -1; opacity: .45; background-image: radial-gradient(rgba(255, 255, 255, .14) 1.2px, transparent 1.6px); background-size: 16px 16px; -webkit-mask-image: linear-gradient(200deg, #000 0%, transparent 60%); mask-image: linear-gradient(200deg, #000 0%, transparent 60%); }
.ek-sb-tag { font-family: inherit; border-radius: 999px !important; letter-spacing: .08em !important; }
.ek-sb-logo { font-size: 38px !important; letter-spacing: -.05em !important; margin-bottom: 8px !important; }
.ek-sb-title { font-size: 23px !important; margin-bottom: 12px !important; }
.ek-sb-desc { font-size: 14px !important; margin-bottom: 20px !important; color: rgba(255, 255, 255, .78) !important; }
.ek-sb-btn { border-radius: 999px !important; background: #fff !important; color: #07304f !important; font-weight: 800 !important; box-shadow: 0 6px 16px rgba(0, 0, 0, .25); }
.ek-sb-btn:hover, .ek-sidebar-banner:hover .ek-sb-btn { background: #6fd0ff !important; color: #04203a !important; }
@media (max-width: 768px) { .ek-sidebar-banner, .ek2 { border-radius: 0 !important; } .ek2 { max-width: none; } }
/* Ekipoo: la regola del widget (in pagina, dopo il tema) colorava il testo del pulsante di bianco su bianco: specificita' piu' alta */
.ek-sidebar-container .ek-sidebar-banner .ek-sb-btn { background: #fff !important; color: #07304f !important; }
.ek-sidebar-container .ek-sidebar-banner:hover .ek-sb-btn { background: #6fd0ff !important; color: #04203a !important; }
@media (max-width: 767px) {
	.ek2 { text-align: left; align-items: center; }
	.ek2-chips { display: none; }
	.ek2-copy { gap: 0; }
}
@media (max-width: 767px) {
	.ek2-tag { display: none; }
	.ek2-brand { flex: 1 1 auto; }
	.ek2-logo { font-size: 28px; }
}

/* ---------------------------------------------------------------------------------
   Banner del libro (header): HTML e CSS al posto dell'immagine (nitido, accessibile, piu' leggero)
   --------------------------------------------------------------------------------- */
.bk2 { position: relative; display: flex; align-items: center; gap: 18px; width: 100%; max-width: 710px; margin-left: auto; padding: 12px 18px 12px 96px; min-height: 76px; text-decoration: none; color: #fff; isolation: isolate; }
.bk2-bg { position: absolute; inset: 0; z-index: -1; border-radius: 16px; overflow: hidden; border: 1px solid rgba(232, 195, 90, .35); box-shadow: 0 8px 24px rgba(3, 40, 52, .28);
	background: radial-gradient(380px 150px at 0% 100%, rgba(232, 195, 90, .26), rgba(232, 195, 90, 0) 70%), linear-gradient(120deg, #032a38 0%, #064a5f 55%, #0a7390 100%); transition: box-shadow .2s ease; }
.bk2-bg::after { content: ""; position: absolute; inset: 0; opacity: .45; background-image: radial-gradient(rgba(255, 255, 255, .14) 1.2px, transparent 1.6px); background-size: 16px 16px; -webkit-mask-image: linear-gradient(90deg, transparent 25%, #000 100%); mask-image: linear-gradient(90deg, transparent 25%, #000 100%); }
.bk2:hover .bk2-bg { box-shadow: 0 12px 30px rgba(3, 40, 52, .4); }
.bk2-cover { position: absolute; left: 20px; top: 50%; width: 52px; height: auto; transform: translateY(-52%) rotate(-5deg); border-radius: 4px; box-shadow: 0 10px 20px rgba(0, 0, 0, .45), 0 0 0 1px rgba(232, 195, 90, .5); transition: transform .25s ease; }
.bk2:hover .bk2-cover { transform: translateY(-56%) rotate(-2deg) scale(1.05); }
.bk2-copy { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.bk2-kicker { font-size: 9.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #f0d27a; }
.bk2-title { font-size: 19px; font-weight: 800; line-height: 1.1; letter-spacing: -.01em; color: #fff; }
.bk2-title em { font-style: normal; color: #f0d27a; }
.bk2-sub { font-size: 11.5px; line-height: 1.35; color: rgba(255, 255, 255, .82); }
.bk2-cta { flex: none; display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; border-radius: 999px; background: linear-gradient(135deg, #f6dc8a, #e1b640); color: #3a2a00; font-size: 13.5px; font-weight: 800; box-shadow: 0 6px 16px rgba(0, 0, 0, .3); transition: filter .2s ease; }
.bk2-cta svg { transition: transform .2s ease; }
.bk2:hover .bk2-cta { filter: brightness(1.08); }
.bk2:hover .bk2-cta svg { transform: translateX(3px); }
@media (max-width: 767px) {
	.bk2 { flex-wrap: wrap; gap: 8px 12px; padding: 14px 16px 14px 86px; min-height: 100px; }
	.bk2-bg { border-radius: 0; }
	.bk2-cover { left: 16px; width: 54px; }
	.bk2-copy { flex: 1 0 calc(100% - 4px); }
	.bk2-sub { display: none; }
	.bk2-title { font-size: 18px; }
	.bk2-cta { padding: 8px 14px; font-size: 12.5px; }
}
@media (prefers-reduced-motion: reduce) { .bk2-cover, .bk2-cta svg, .bk2-bg { transition: none; } }
.bk2, .bk2-copy { text-align: left; }
.bk2-sub { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* I due banner dell'header (Ekipoo e libro) hanno la stessa altezza: la pagina non cambia da un caricamento all'altro */
.ek2, .bk2 { min-height: 82px; box-sizing: border-box; }
@media (max-width: 767px) { .ek2, .bk2 { min-height: 112px; } }

/* ---------------------------------------------------------------------------------
   Libro nella colonna destra
   --------------------------------------------------------------------------------- */
.widget:has(.bk3) { padding: 0 !important; background: none !important; box-shadow: none !important; border: 0 !important; }
.widget:has(.bk3) > .widget-title { display: none; }
.bk3 { position: relative; display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 26px 22px 22px; border-radius: 18px; text-align: center; text-decoration: none; color: #fff; isolation: isolate; overflow: hidden; }
.bk3-bg { position: absolute; inset: 0; z-index: -1; border: 1px solid rgba(232, 195, 90, .35); border-radius: 18px; box-shadow: 0 10px 28px rgba(3, 40, 52, .3);
	background: radial-gradient(260px 200px at 50% 28%, rgba(232, 195, 90, .3), rgba(232, 195, 90, 0) 70%), linear-gradient(165deg, #032a38 0%, #064a5f 58%, #0a7390 100%); }
.bk3-bg::after { content: ""; position: absolute; inset: 0; opacity: .4; background-image: radial-gradient(rgba(255, 255, 255, .14) 1.2px, transparent 1.6px); background-size: 16px 16px; -webkit-mask-image: linear-gradient(180deg, #000, transparent 70%); mask-image: linear-gradient(180deg, #000, transparent 70%); }
.bk3-cover { width: 132px; height: auto; margin: 0 0 8px; border-radius: 5px; transform: rotate(-3deg); box-shadow: 0 16px 28px rgba(0, 0, 0, .5), 0 0 0 1px rgba(232, 195, 90, .5); transition: transform .25s ease; }
.bk3:hover .bk3-cover { transform: rotate(0) scale(1.04); }
.bk3-kicker { font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #f0d27a; }
.bk3-title { font-size: 22px; font-weight: 800; line-height: 1.12; letter-spacing: -.01em; color: #fff; }
.bk3-title em { font-style: normal; color: #f0d27a; }
.bk3-sub { font-size: 13.5px; line-height: 1.45; color: rgba(255, 255, 255, .82); max-width: 250px; }
.bk3-langs { display: flex; flex-wrap: wrap; justify-content: center; gap: 5px; margin: 2px 0 6px; }
.bk3-langs i { font-style: normal; font-size: 10.5px; font-weight: 600; padding: 2px 10px; border-radius: 999px; background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .2); color: #eaf6fb; }
.bk3-cta { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; padding: 12px 16px; border-radius: 999px; background: linear-gradient(135deg, #f6dc8a, #e1b640); color: #3a2a00; font-size: 14px; font-weight: 800; box-shadow: 0 6px 16px rgba(0, 0, 0, .3); transition: filter .2s ease; }
.bk3-cta svg { transition: transform .2s ease; }
.bk3:hover .bk3-cta { filter: brightness(1.08); }
.bk3:hover .bk3-cta svg { transform: translateX(3px); }
@media (max-width: 768px) { .bk3, .bk3-bg { border-radius: 0; } }
@media (prefers-reduced-motion: reduce) { .bk3-cover, .bk3-cta svg { transition: none; } }
/* ---------------------------------------------------------------------------------
   Pagina "Live Finswimming Events"
   --------------------------------------------------------------------------------- */
.iol-livehead { display: flex; align-items: center; gap: 12px; margin: 4px 0 10px; }
.iol-livehead h2 { margin: 0; font-size: 1.5rem; font-weight: 800; color: var(--fw-ink); }
.iol-livedot { flex: none; width: 14px; height: 14px; border-radius: 50%; background: var(--fw-red); animation: fwPulse 1.8s ease-out infinite; }
.iol-livedot.is-off { background: #9aa8b3; animation: none; }
.iol-livechips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 18px !important; }
.iol-livechips a { display: inline-block; padding: 7px 16px; border-radius: 999px; background: #fff; border: 1px solid var(--fw-line); box-shadow: var(--fw-shadow); color: var(--fw-ink); font-size: .85rem; font-weight: 700; text-decoration: none; transition: border-color .15s ease, transform .15s ease; }
.iol-livechips a:hover { border-color: var(--fw-blue); transform: translateY(-1px); }
.iol-livechips a.is-accent { background: var(--fw-blue); border-color: var(--fw-blue); color: #fff; }
.iol-liveempty { margin: 0 0 14px; color: var(--fw-muted); }
.iol-lgrid { display: grid; gap: 16px; grid-template-columns: 1fr; margin: 0 0 20px; }
@media (min-width: 700px) { .iol-lgrid { grid-template-columns: 1fr 1fr; } }
.iol-lcard { display: flex; flex-direction: column; background: var(--fw-card); border: 1px solid var(--fw-line); border-radius: 16px; box-shadow: var(--fw-shadow); overflow: hidden; }
.iol-lcard-live { border-color: #f4b8b3; box-shadow: 0 0 0 1px #f4b8b3, var(--fw-shadow); }
.iol-lcard-thumb { position: relative; display: block; aspect-ratio: 16 / 9; background: var(--fw-soft); overflow: hidden; line-height: 0; }
.iol-lcard-thumb img { width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block; margin: 0; }
.iol-lcard-noimg { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; background: linear-gradient(135deg, #06406a, #0a86c4); color: #fff; font-size: 1.4rem; font-weight: 800; line-height: 1.2; text-align: center; padding: 12px; }
.iol-lcard-badge { position: absolute; left: 12px; top: 12px; display: inline-flex; align-items: center; gap: 6px; padding: 4px 12px; border-radius: 999px; background: #fff; color: var(--fw-ink); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; line-height: 1.4; box-shadow: 0 4px 12px rgba(0, 0, 0, .25); }
.iol-lcard-live .iol-lcard-badge { background: var(--fw-red); color: #fff; }
.iol-lcard-badge i { width: 8px; height: 8px; border-radius: 50%; background: #fff; animation: fwPulse 1.8s ease-out infinite; }
.iol-lcard-body { display: flex; flex-direction: column; gap: 8px; padding: 16px 18px 18px; flex: 1; }
.iol-lcard-where { display: flex; align-items: center; gap: 8px; font-size: .78rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--fw-blue-dark); }
.iol-lcard-title { margin: 0; font-size: 1.15rem; font-weight: 800; line-height: 1.2; }
.iol-lcard-title a { color: var(--fw-ink); text-decoration: none; }
.iol-lcard-title a:hover { color: var(--fw-blue-dark); }
.iol-lcard-dates { font-size: .9rem; color: var(--fw-muted); font-weight: 600; }
.iol-lcard-status { display: flex; align-items: center; gap: 12px; font-size: .82rem; font-weight: 700; color: var(--fw-red); }
.iol-lcard-next .iol-lcard-status { color: var(--fw-blue-dark); }
.iol-lcard-bar { flex: 1; height: 6px; border-radius: 999px; background: #fde4e1; overflow: hidden; }
.iol-lcard-bar i { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, #f0605a, var(--fw-red)); }
.iol-lcard-btn { margin-top: auto; align-self: flex-start; display: inline-flex; align-items: center; gap: 8px; padding: 9px 18px; border-radius: 999px; background: var(--fw-blue); color: #fff !important; font-size: .86rem; font-weight: 700; text-decoration: none; }
.iol-lcard-btn:hover { background: var(--fw-blue-dark); }
.iol-livemap { height: 340px; width: 100%; border-radius: 16px; border: 1px solid var(--fw-line); overflow: hidden; z-index: 1; margin: 0 0 16px; }
@media (max-width: 768px) { .iol-livemap { height: 260px; border-radius: 0; } .iol-lcard { border-radius: 0; } .iol-livehead h2 { font-size: 1.3rem; } }/* Un solo evento in corso: scheda orizzontale a tutta larghezza (non una colonna con un vuoto accanto) */
@media (min-width: 700px) {
	.iol-lgrid:has(> .iol-lcard:only-child) { grid-template-columns: 1fr; }
	.iol-lgrid > .iol-lcard:only-child { flex-direction: row; }
	.iol-lgrid > .iol-lcard:only-child .iol-lcard-thumb { flex: 0 0 42%; aspect-ratio: auto; min-height: 220px; }
	.iol-lgrid > .iol-lcard:only-child .iol-lcard-body { justify-content: center; padding: 22px 26px; }
	.iol-lgrid > .iol-lcard:only-child .iol-lcard-title { font-size: 1.45rem; }
}

/* ---------------------------------------------------------------------------------
   Pagine "Upcoming events" e "Past events"
   --------------------------------------------------------------------------------- */
.iol-chipbar { display: flex; flex-wrap: nowrap; gap: 8px; overflow-x: auto; padding: 2px 2px 10px; margin: 0 0 14px; scrollbar-width: thin; -webkit-overflow-scrolling: touch; }
.iol-chip { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 8px; padding: 7px 14px; border-radius: 999px; background: #fff; border: 1px solid var(--fw-line); box-shadow: var(--fw-shadow); color: var(--fw-ink); font-size: .8rem; font-weight: 700; letter-spacing: .02em; text-decoration: none; white-space: nowrap; transition: border-color .15s ease, background .15s ease; }
.iol-chip:hover { border-color: var(--fw-blue); color: var(--fw-ink); }
.iol-chip.is-active { background: var(--fw-blue); border-color: var(--fw-blue); color: #fff; }
@media (min-width: 900px) { .iol-chipbar { flex-wrap: wrap; overflow: visible; } }
.iol-listhead { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 18px; margin: 0 0 6px; }
.iol-listcount { margin: 0; font-size: 1.3rem; font-weight: 800; color: var(--fw-ink); }
.iol-listcount strong { color: var(--fw-blue-dark); font-size: 1.7rem; margin-right: 4px; }
.iol-listhead .iol-livechips { margin: 0 !important; }
.iol-chipdot { display: inline-block; width: 8px; height: 8px; margin-right: 7px; border-radius: 50%; background: var(--fw-red); animation: fwPulse 1.8s ease-out infinite; }
.iolc-cal { margin: 4px 0 14px; font-size: .9rem; color: var(--fw-muted); }
.iol-ev-month { margin: 26px 0 12px !important; font-size: 1.15rem; font-weight: 800; color: var(--fw-navy); display: flex; align-items: center; gap: 10px; }
.iol-ev-month::before { content: ""; width: 6px; height: 20px; border-radius: 3px; background: var(--fw-blue); }
.iol-evrows { list-style: none; margin: 0 0 8px; padding: 0; display: grid; gap: 10px; grid-template-columns: 1fr; }
@media (min-width: 700px) { .iol-evrows { grid-template-columns: 1fr 1fr; } }
.iol-evrow { margin: 0; list-style: none; }
.iol-evrow > a { display: flex; align-items: center; gap: 14px; height: 100%; padding: 12px 14px; background: var(--fw-card); border: 1px solid var(--fw-line); border-radius: 14px; box-shadow: var(--fw-shadow); color: var(--fw-ink); text-decoration: none; transition: border-color .15s ease, transform .15s ease; }
.iol-evrow > a:hover { border-color: var(--fw-blue); transform: translateY(-2px); }
.iol-evdate { flex: none; width: 52px; padding: 7px 0; border-radius: 12px; background: linear-gradient(160deg, var(--fw-blue-dark), var(--fw-blue)); color: #fff; text-align: center; line-height: 1.05; }
.iol-evdate b { display: block; font-size: 1.35rem; font-weight: 800; }
.iol-evdate i { display: block; margin-top: 2px; font-style: normal; font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; opacity: .95; }
.iol-evmain { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.iol-evwhere { display: flex; align-items: center; gap: 7px; font-size: .72rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--fw-blue-dark); }
.iol-evname { font-weight: 700; line-height: 1.25; font-size: .98rem; }
.iol-evrange { font-size: .82rem; color: var(--fw-muted); font-weight: 600; }
.iol-evrange em { font-style: normal; color: var(--fw-blue-dark); }
.iol-year { margin: 14px 0 0; }
.iol-year > summary { cursor: pointer; font-size: 1.2rem; font-weight: 800; padding: 12px 16px; background: var(--fw-card); border: 1px solid var(--fw-line); border-radius: 14px; box-shadow: var(--fw-shadow); list-style-position: inside; }
.iol-year[open] > summary { margin-bottom: 4px; }
@media (max-width: 768px) { .iol-evrow > a { border-radius: 0; } .iol-year > summary { border-radius: 0; } }/* Molti paesi (archivio): una sola riga che scorre, non dieci righe di chip; con pochi paesi vanno a capo */
@media (min-width: 900px) {
	.iol-chipbar { flex-wrap: nowrap; overflow-x: auto; }
	.iol-chipbar:not(:has(> a:nth-child(15))) { flex-wrap: wrap; overflow: visible; }
}

/* ---------------------------------------------------------------------------------
   Mappe: segnaposto tondi per tipo, bolle di raggruppamento, popup a scheda, legenda
   --------------------------------------------------------------------------------- */
.iol-map-muted .leaflet-tile-pane { filter: saturate(.5) contrast(.96) brightness(1.04); }
.iol-pin-wrap { background: none; border: 0; }
.iol-pin { display: block; width: 20px; height: 20px; border-radius: 50%; border: 3px solid #fff; background: var(--pc, #0298db); box-shadow: 0 2px 7px rgba(3, 30, 52, .45); transition: transform .15s ease; box-sizing: border-box; }
.iol-pin-wrap:hover .iol-pin { transform: scale(1.25); }
.iol-pin-international { --pc: #0278b0; }
.iol-pin-national { --pc: #0f9d8a; }
.iol-pin-regional { --pc: #f08a1c; }
.iol-pin-club { --pc: #0b6e63; }
.iol-pin-other { --pc: #0298db; }
.iol-pin-live { --pc: #d92d20; animation: fwPulse 1.8s ease-out infinite; }
.iol-cluster { background: none; border: 0; }
.iol-cluster span { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; border-radius: 50%; color: #fff; font-weight: 800; font-size: 13px; background: linear-gradient(145deg, #0a86c4, #06406a); border: 3px solid rgba(255, 255, 255, .9); box-shadow: 0 0 0 5px rgba(2, 152, 219, .25), 0 3px 10px rgba(3, 30, 52, .4); box-sizing: border-box; }
.iol-cluster-m span { font-size: 14px; box-shadow: 0 0 0 7px rgba(2, 152, 219, .25), 0 3px 10px rgba(3, 30, 52, .4); }
.iol-cluster-l span { font-size: 16px; box-shadow: 0 0 0 9px rgba(2, 152, 219, .25), 0 3px 10px rgba(3, 30, 52, .4); }
.iol-cluster-club span { background: linear-gradient(145deg, #12a08f, #064a45); box-shadow: 0 0 0 5px rgba(15, 157, 138, .28), 0 3px 10px rgba(3, 30, 52, .4); }
.iol-cluster-club.iol-cluster-m span { box-shadow: 0 0 0 7px rgba(15, 157, 138, .28), 0 3px 10px rgba(3, 30, 52, .4); }
.iol-cluster-club.iol-cluster-l span { box-shadow: 0 0 0 9px rgba(15, 157, 138, .28), 0 3px 10px rgba(3, 30, 52, .4); }
.iol-popup .leaflet-popup-content-wrapper { border-radius: 14px; padding: 4px; box-shadow: 0 10px 28px rgba(3, 30, 52, .3); }
.iol-popup .leaflet-popup-content { margin: 12px 14px; font-family: inherit; line-height: 1.35; }
.iol-pop { display: flex; flex-direction: column; gap: 5px; min-width: 190px; }
.iol-pop-kind { align-self: flex-start; font-size: .66rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; padding: 2px 9px; border-radius: 999px; color: #fff; background: var(--fw-blue); }
.iol-pop-international { background: #0278b0; }
.iol-pop-national { background: #0f9d8a; }
.iol-pop-regional { background: #f08a1c; }
.iol-pop-live { background: var(--fw-red); }
.iol-pop-club { background: #0b6e63; }
.iol-pop-title { font-size: 1rem; font-weight: 800; color: var(--fw-ink); }
.iol-pop-date { font-size: .84rem; font-weight: 700; color: var(--fw-blue-dark); }
.iol-pop-addr { font-size: .8rem; color: var(--fw-muted); }
.iol-pop-actions, .iol-pop-links { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; margin-top: 4px; }
.iol-pop-links br { display: none; }
.iol-pop-links b { font-weight: 700; }
.iol-pop-btn { display: inline-block; padding: 6px 14px; border-radius: 999px; background: var(--fw-blue); color: #fff !important; font-size: .8rem; font-weight: 700; text-decoration: none; }
.iol-pop-btn:hover { background: var(--fw-blue-dark); }
.iol-pop-link { font-size: .8rem; font-weight: 600; }
.iol-legend { display: flex; flex-wrap: wrap; gap: 6px 16px; list-style: none; margin: 8px 0 4px; padding: 0; font-size: .82rem; font-weight: 600; color: var(--fw-muted); }
.iol-legend li { display: flex; align-items: center; gap: 7px; margin: 0; }
.iol-legend .iol-pin { width: 14px; height: 14px; border-width: 2px; box-shadow: 0 1px 3px rgba(3, 30, 52, .35); }
/* Elenco eventi: le schede non si sovrappongono (il contenitore e' flex e il link riempie la cella) e i titoli dei mesi hanno aria */
.iol-evrows { align-items: stretch; margin-bottom: 18px; }
.iol-evrow { display: flex; min-width: 0; }
.iol-evrow > a { flex: 1 1 auto; height: auto; min-width: 0; }
.iol-ev-month { margin: 38px 0 16px !important; }
.iol-year .iol-ev-month:first-of-type, .iol-listhead + .iol-livemap + .iol-map-info + .iol-ev-month { margin-top: 24px !important; }
.iol-year > .iol-ev-month:first-child { margin-top: 20px !important; }

/* Barre trascinabili con il mouse */
@media (hover: hover) and (pointer: fine) {
	.iol-draggable { cursor: grab; }
	.iol-draggable.is-dragging { cursor: grabbing; user-select: none; }
	.iol-draggable.is-dragging a, .iol-draggable.is-dragging button { pointer-events: none; }
}
.iol-chipbar, .iol-tablist { overscroll-behavior-x: contain; }

/* ---------------------------------------------------------------------------------
   Menu principale (desktop): voce attiva con segno corto, spaziatura uniforme, mega menu per Countries, sottomenu con bandiere
   --------------------------------------------------------------------------------- */
@media (min-width: 769px) {
	.main-navigation .main-nav > ul > li > a { padding-left: 14px; padding-right: 14px; position: relative; border-bottom: 0 !important; }
	.main-navigation .main-nav > ul > li > a::after { content: ""; position: absolute; left: 50%; bottom: 0; width: 0; height: 3px; border-radius: 3px 3px 0 0; background: var(--fw-blue); transform: translateX(-50%); transition: width .2s ease; }
	.main-navigation .main-nav > ul > li:hover > a::after,
	.main-navigation .main-nav > ul > li.sfHover > a::after,
	.main-navigation .main-nav > ul > li[class*="current-menu-"] > a::after { width: 28px; }
	.main-navigation .main-nav > ul > li.menu-item-has-children > a { padding-right: 8px; }
	.main-navigation .main-nav > ul > li > a .dropdown-menu-toggle { padding-left: 4px; padding-right: 6px; opacity: .7; }
	.main-navigation .main-nav > ul > li > a .dropdown-menu-toggle .gp-icon svg { width: .8em; height: .8em; }
	.main-navigation .main-nav ul ul li a { display: flex; align-items: center; gap: 10px; }
	.iol-mflag { flex: none; width: 20px; height: 14px; object-fit: cover; border-radius: 2px; box-shadow: 0 0 0 1px rgba(16, 24, 40, .12); }
	.iol-mlive { flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--fw-red); animation: fwPulse 1.8s ease-out infinite; }
	.main-navigation ul ul { animation: fwMenuIn .16s ease-out; }

	/* Countries: pannello largo con un blocco per continente */
	.main-navigation .main-nav > ul > li.red_menu { position: static; }
	.main-navigation .inside-navigation { position: relative; }
	.main-navigation .main-nav > ul > li.red_menu > ul.sub-menu { width: min(1080px, 100%); left: 50% !important; right: auto !important; transform: translateX(-50%); display: none; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px 10px; padding: 18px 16px 16px; }
	.main-navigation .main-nav > ul > li.red_menu:hover > ul.sub-menu,
	.main-navigation .main-nav > ul > li.red_menu.sfHover > ul.sub-menu,
	.main-navigation .main-nav > ul > li.red_menu:focus-within > ul.sub-menu { display: grid; opacity: 1; height: auto; pointer-events: auto; }
	.main-navigation .main-nav > ul > li.red_menu > ul.sub-menu > li { display: block; width: auto; float: none; border: 0; }
	.main-navigation .main-nav > ul > li.red_menu > ul.sub-menu > li > a { font-weight: 800; font-size: .76rem; letter-spacing: .08em; text-transform: uppercase; color: var(--fw-navy) !important; border-bottom: 2px solid var(--fw-blue); padding: 6px 4px 8px; margin-bottom: 4px; line-height: 1.2; pointer-events: auto; }
	.main-navigation .main-nav > ul > li.red_menu > ul.sub-menu > li > a .dropdown-menu-toggle { display: none; }
	.main-navigation .main-nav > ul > li.red_menu ul.sub-menu ul.sub-menu { position: static !important; display: block !important; opacity: 1 !important; height: auto !important; width: auto !important; float: none; pointer-events: auto; box-shadow: none; border: 0; background: transparent; padding: 0; animation: none; }
	.main-navigation .main-nav > ul > li.red_menu ul.sub-menu ul.sub-menu li { display: block; width: auto; float: none; }
	.main-navigation .main-nav > ul > li.red_menu ul.sub-menu ul.sub-menu a { font-size: .86rem; padding: 6px 8px; line-height: 1.25; border-radius: 8px; }
	.main-navigation .main-nav > ul > li.red_menu ul.sub-menu ul.sub-menu a:hover { background: var(--fw-soft); }
	.main-navigation .main-nav > ul > li.red_menu ul.sub-menu ul.sub-menu a .dropdown-menu-toggle { display: none; }
}
@keyframes fwMenuIn { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
/* Mobile: anche qui la bandiera, un po' piu' piccola */
@media (max-width: 768px) {
	.iol-mflag { width: 18px; height: 12px; margin-right: 8px; vertical-align: -1px; border-radius: 2px; }
	.iol-mlive { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--fw-red); margin-right: 8px; }
}
@media (prefers-reduced-motion: reduce) { .main-navigation ul ul, .iol-mlive { animation: none; } }
/* Countries: pannello piu' basso (colonne proporzionali al numero di paesi) e, in ogni caso, mai oltre lo schermo */
@media (min-width: 769px) {
	.main-navigation .main-nav > ul > li.red_menu > ul.sub-menu { width: min(1240px, calc(100vw - 32px)); grid-template-columns: 1fr 1fr 2fr 3fr 1fr; gap: 4px 14px; padding: 14px 14px 12px; max-height: calc(100vh - 130px); overflow-y: auto; overscroll-behavior: contain; }
	.main-navigation .main-nav > ul > li.red_menu > ul.sub-menu > li > a { padding: 5px 4px 7px; margin-bottom: 2px; }
	.main-navigation .main-nav > ul > li.red_menu ul.sub-menu ul.sub-menu { column-gap: 8px; }
	.main-navigation .main-nav > ul > li.red_menu > ul.sub-menu > li:nth-child(3) > ul.sub-menu { column-count: 2; }
	.main-navigation .main-nav > ul > li.red_menu > ul.sub-menu > li:nth-child(4) > ul.sub-menu { column-count: 3; }
	.main-navigation .main-nav > ul > li.red_menu ul.sub-menu ul.sub-menu li { break-inside: avoid; }
	.main-navigation .main-nav > ul > li.red_menu ul.sub-menu ul.sub-menu a { font-size: .82rem; padding: 4px 6px; gap: 8px; }
}

/* Tutti i sottomenu: mai piu' alti dello schermo, scorrono all'interno (rotella, trascinamento, tastiera) */
@media (min-width: 769px) {
	.main-navigation .main-nav > ul > li > ul.sub-menu { max-height: calc(100vh - 140px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #b9c9d6 transparent; }
	.main-navigation .main-nav > ul > li:not(.red_menu) > ul.sub-menu { width: 280px; }
	.main-navigation .main-nav > ul > li > ul.sub-menu::-webkit-scrollbar { width: 8px; }
	.main-navigation .main-nav > ul > li > ul.sub-menu::-webkit-scrollbar-thumb { background: #b9c9d6; border-radius: 8px; }
}

/* ---------------------------------------------------------------------------------
   Articolo: intestazione piu' ordinata (briciole, titolo, scheda dell'evento, inviti a fine testo)
   --------------------------------------------------------------------------------- */
.iol-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; margin: 0 0 10px; font-size: .78rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.iol-crumbs a { color: var(--fw-blue-dark); text-decoration: none; }
.iol-crumbs a:hover { color: var(--fw-blue); }
.iol-crumbs > span[aria-hidden] { color: var(--fw-line); font-size: 1rem; line-height: 1; }
.iol-crumb-country { display: inline-flex; align-items: center; gap: 7px; padding: 3px 11px 3px 8px; border-radius: 999px; background: #eaf6fd; color: #045d86 !important; }
.iol-single .entry-title { margin: 0 0 8px; font-size: clamp(1.6rem, 4.6vw, 2.4rem); font-weight: 800; line-height: 1.12; }
.iol-byline { margin: 0 0 18px; font-size: .85rem; color: var(--fw-muted); }
.iol-evcard { display: flex; align-items: center; gap: 18px; margin: 0 0 22px; padding: 14px 18px; background: var(--fw-soft); border: 1px solid var(--fw-line); border-radius: 18px; }
.iol-evcard-date { flex: none; width: 66px; padding: 9px 0 8px; border-radius: 14px; text-align: center; color: #fff; line-height: 1; background: linear-gradient(160deg, var(--fw-blue-dark), var(--fw-blue)); box-shadow: 0 6px 14px rgba(2, 152, 219, .3); }
.iol-evcard-date b { display: block; font-size: 1.9rem; font-weight: 800; }
.iol-evcard-date i { display: block; margin-top: 3px; font-style: normal; font-size: .74rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.iol-evcard-date em { display: block; margin-top: 3px; font-style: normal; font-size: .66rem; opacity: .85; }
.iol-evcard-live .iol-evcard-date { background: linear-gradient(160deg, #b42318, var(--fw-red)); box-shadow: 0 6px 14px rgba(217, 45, 32, .3); }
.iol-evcard-past .iol-evcard-date { background: linear-gradient(160deg, #475569, #64748b); box-shadow: none; }
.iol-evcard-main { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 5px; }
.iol-evcard-when { font-size: 1.1rem; font-weight: 800; color: var(--fw-ink); line-height: 1.2; }
.iol-evcard-where { display: flex; align-items: flex-start; gap: 7px; font-size: .9rem; color: var(--fw-muted); line-height: 1.35; }
.iol-evcard-where svg { flex: none; margin-top: 2px; color: var(--fw-blue-dark); }
.iol-evcard-where a { color: inherit; text-decoration: none; border-bottom: 1px dotted currentColor; }
.iol-evcard-where a:hover { color: var(--fw-blue-dark); }
.iol-evcard-status { align-self: flex-start; display: inline-flex; align-items: center; gap: 7px; padding: 2px 11px; border-radius: 999px; background: #e8f5fc; color: #045d86; font-size: .76rem; font-weight: 800; letter-spacing: .03em; }
.iol-evcard-live .iol-evcard-status { background: #fde4e1; color: #b42318; }
.iol-evcard-past .iol-evcard-status { background: #eceff3; color: var(--fw-muted); }
.iol-evcard-status i { width: 8px; height: 8px; border-radius: 50%; background: var(--fw-red); animation: fwPulse 1.8s ease-out infinite; }
.iol-evcard-cal { position: relative; flex: none; }
.iol-evcard-cal > summary { display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; border-radius: 999px; background: var(--fw-blue); color: #fff; font-size: .85rem; font-weight: 700; cursor: pointer; list-style: none; white-space: nowrap; box-shadow: 0 6px 14px rgba(2, 152, 219, .3); }
.iol-evcard-cal > summary::-webkit-details-marker { display: none; }
.iol-evcard-cal > summary:hover { background: var(--fw-blue-dark); }
.iol-evcard-calmenu { position: absolute; right: 0; top: calc(100% + 8px); z-index: 20; min-width: 210px; display: flex; flex-direction: column; padding: 6px; background: #fff; border: 1px solid var(--fw-line); border-radius: 14px; box-shadow: 0 14px 30px rgba(16, 24, 40, .18); }
.iol-evcard-calmenu a { padding: 10px 14px; border-radius: 9px; color: var(--fw-ink); font-size: .9rem; font-weight: 600; text-decoration: none; }
.iol-evcard-calmenu a:hover { background: var(--fw-soft); color: var(--fw-blue-dark); }
@media (max-width: 640px) {
	.iol-evcard { flex-wrap: wrap; gap: 12px 14px; padding: 14px; border-radius: 0; }
	.iol-evcard-cal { flex: 1 0 100%; }
	.iol-evcard-cal > summary { width: 100%; justify-content: center; }
	.iol-evcard-calmenu { left: 0; right: 0; }
}
/* inviti a fine articolo */
.iol-promo-end { align-items: center; margin: 26px 0 6px; padding-top: 18px; border-top: 1px solid var(--fw-line); }
.iol-promo-lead { flex: 1 0 100%; font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--fw-muted); }@media (max-width: 640px) {
	.iol-evcard-cal { flex: 1 1 100%; min-width: 0; }
	.iol-evcard-cal > summary { box-sizing: border-box; }
}

/* Countries: compare dal basso come gli altri sottomenu, restando centrato (l'animazione generica azzerava il centraggio e lo faceva "arrivare da destra") */
@keyframes fwMenuInCenter { from { opacity: 0; transform: translateX(-50%) translateY(-6px); } to { opacity: 1; transform: translateX(-50%); } }
@media (min-width: 769px) {
	.main-navigation .main-nav > ul > li.red_menu > ul.sub-menu { animation: fwMenuInCenter .16s ease-out; transition: none !important; }
}
@media (prefers-reduced-motion: reduce) { .main-navigation .main-nav > ul > li.red_menu > ul.sub-menu { animation: none; } }

/* Scheda dell'evento: periodo e stato sulla stessa riga, luogo breve; su mobile data piccola a sinistra e pulsante sottile */
.iol-evcard-top { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.iol-evcard-where { align-items: center; }
.iol-evcard-where a { display: inline-block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: bottom; }
@media (max-width: 640px) {
	.iol-evcard { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 10px 14px; padding: 14px; }
	.iol-evcard-date { width: 56px; padding: 7px 0 6px; border-radius: 12px; }
	.iol-evcard-date b { font-size: 1.55rem; }
	.iol-evcard-date em { display: none; }
	.iol-evcard-main { gap: 7px; }
	.iol-evcard-when { font-size: 1.02rem; }
	.iol-evcard-status { font-size: .72rem; padding: 2px 10px; }
	.iol-evcard-where { grid-column: auto; font-size: .86rem; }
	.iol-evcard-cal { grid-column: 1 / -1; }
	.iol-evcard-cal > summary { padding: 9px 16px; font-size: .84rem; box-shadow: none; }
}
/* Mobile, prima schermata: barra in alto su una riga, logo piccolo, banner sotto gli eventi, righe evento compatte */
.iol-banner-after { display: none; }
@media (max-width: 768px) {
	.iol-topbar-in { position: relative; flex-wrap: nowrap; padding: 6px 12px; gap: 8px; }
	.iol-datechip { order: 1; min-width: 0; }
	.iol-topbar .iol-search { order: 2; flex: 0 0 auto; width: 34px; min-width: 0; max-width: 34px; margin: 0 0 0 auto; }
	.iol-topbar .iol-search input[type="search"] { display: none; }
	.iol-topbar .iol-search button { position: static; width: 34px; height: 34px; }
	.iol-topbar .iol-search button svg { width: 17px; height: 17px; }
	.iol-topbar-cal { order: 3; margin-left: 0; }
	.iol-topbar .iol-search.is-open { position: absolute; z-index: 60; left: 0; right: 0; top: 100%; width: auto; max-width: none; padding: 8px 12px; background: var(--fw-soft); border-bottom: 1px solid var(--fw-line); box-shadow: 0 10px 24px rgba(8, 30, 48, .12); }
	.iol-topbar .iol-search.is-open input[type="search"] { display: block; height: 40px; font-size: 1rem; padding-right: 52px; }
	.iol-topbar .iol-search.is-open button { position: absolute; right: 15px; top: 11px; width: 34px; height: 34px; }
	.site-header .inside-header { padding: 6px 12px; gap: 6px; }
	.site-logo img { width: 168px; }
	body.home .iol-header-banner-wrap { display: none; }
	body.home .iol-banner-after { display: block; margin: 4px 0 14px; }
	.iol-banner-after .iol-banner-inner { width: 100%; }
}
@media (max-width: 600px) {
	.iol-evlist .iol-evrow2 a { grid-template-columns: 48px 1fr auto; grid-template-areas: "d t t" "d m b"; gap: 4px 10px; padding: 10px 0; align-items: start; }
	.iol-evlist .iol-evrow2 .iol-edt { grid-area: d; width: 48px; height: 50px; }
	.iol-evlist .iol-evrow2 .iol-evbody { display: contents; }
	.iol-evlist .iol-evrow2 .iol-ev-title { grid-area: t; font-size: .94rem; }
	.iol-evlist .iol-evrow2 .iol-evmeta { grid-area: m; align-self: center; }
	.iol-evlist .iol-evrow2 .iol-evkind { display: none; }
	.iol-evlist .iol-evrow2 .iol-evbadge { grid-area: b; justify-self: end; align-self: center; margin: 0; }
}

/* Primo evento in arrivo: scheda in risalto con l'immagine dell'articolo (visibile a meta', sotto un velo che scurisce verso il basso) */
.iol-evlist .iol-evrow2.is-hero { border-bottom: 0; margin: 4px 0 12px; }
.iol-evlist .iol-evrow2.is-hero > a { display: flex; flex-direction: column; align-items: stretch; justify-content: space-between; gap: 22px; position: relative; overflow: hidden; min-height: 210px; padding: 16px; border-radius: 16px; color: #fff; text-decoration: none; background: linear-gradient(180deg, rgba(8, 30, 48, .30) 0%, rgba(8, 30, 48, .94) 100%), var(--evbg, none) center / cover no-repeat, #0b2a3d; box-shadow: 0 10px 26px rgba(8, 30, 48, .22); transition: box-shadow .2s ease, transform .2s ease; }
.iol-evlist .iol-evrow2.is-hero > a:hover { transform: translateY(-2px); box-shadow: 0 14px 32px rgba(8, 30, 48, .3); }
.iol-evtop { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.iol-evtag { padding: 4px 11px; border-radius: 999px; background: rgba(255, 255, 255, .16); border: 1px solid rgba(255, 255, 255, .35); font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; backdrop-filter: blur(4px); }
.iol-evlist .iol-evrow2.is-hero .iol-evbadge { background: #fff; color: #11743a; box-shadow: 0 4px 12px rgba(0, 0, 0, .18); }
.iol-evlist .iol-evrow2.is-hero .iol-evbadge-past { color: #44505c; }
.iol-evhm { display: flex; align-items: flex-end; gap: 14px; }
.iol-evlist .iol-evrow2.is-hero .iol-evbody { display: flex; flex: 1 1 auto; min-width: 0; gap: 6px; }
.iol-evlist .iol-evrow2.is-hero .iol-edt { flex: none; width: 56px; height: 60px; background: #fff; border-color: #fff; color: var(--fw-blue-dark); box-shadow: 0 6px 16px rgba(0, 0, 0, .25); }
.iol-evlist .iol-evrow2.is-hero .iol-ev-title, .iol-evlist .iol-evrow2.is-hero a:hover .iol-ev-title { color: #fff; font-size: 1.12rem; line-height: 1.25; text-shadow: 0 1px 8px rgba(0, 0, 0, .45); -webkit-line-clamp: 3; }
.iol-evlist .iol-evrow2.is-hero .iol-evmeta { color: rgba(255, 255, 255, .9); align-self: flex-start; }
.iol-evlist .iol-evrow2.is-hero .iol-evkind { display: inline-block; background: rgba(255, 255, 255, .18); color: #fff; }
@media (min-width: 700px) {
	.iol-evlist .iol-evrow2.is-hero > a { min-height: 250px; padding: 20px 22px; }
	.iol-evlist .iol-evrow2.is-hero .iol-ev-title, .iol-evlist .iol-evrow2.is-hero a:hover .iol-ev-title { font-size: 1.45rem; }
	.iol-evlist .iol-evrow2.is-hero .iol-edt { width: 64px; height: 68px; }
}
@media (max-width: 600px) {
	.iol-evlist .iol-evrow2.is-hero > a { grid-template-columns: none; grid-template-areas: none; padding: 14px; }
	.iol-evlist .iol-evrow2.is-hero .iol-edt { width: 52px; height: 56px; }
}

/* Schede (Events, Latest by topic): i pulsanti stanno sulla riga del titolo, come un selettore a pastiglia */
.iol-sec-bar-tabs { align-items: center; flex-wrap: nowrap; }
.iol-sec-bar-tabs h2 { flex: 0 0 auto; }
.iol-sec-bar .iol-tablist { flex: 0 1 auto; min-width: 0; margin-left: auto; gap: 2px; padding: 3px; border: 1px solid var(--fw-line); border-radius: 999px; background: #fff; box-shadow: 0 2px 8px rgba(8, 30, 48, .06); }
.iol-sec-bar .iol-tab { padding: 7px 15px; font-size: .74rem; letter-spacing: .06em; }
.iol-sec-bar .iol-tab:hover { background: var(--fw-soft); }
.iol-sec-bar .iol-tab[aria-selected="true"] { background: var(--fw-blue); color: #fff; box-shadow: 0 3px 9px rgba(2, 152, 219, .35); }
.iol-sec-bar .iol-tab-live[aria-selected="true"] { background: var(--fw-red); box-shadow: 0 3px 9px rgba(217, 45, 32, .35); }
.iol-sec-bar-tabs a { font-size: inherit; letter-spacing: inherit; }
.iol-tabsec .iol-tabbox { border-top-left-radius: 14px; border-top-right-radius: 14px; }
@media (max-width: 768px) {
	.iol-sec-bar-tabs { gap: 8px; }
	.iol-sec-bar .iol-tab { padding: 7px 13px; }
	.iol-sec-bar-tabs h2 { font-size: 1.05rem; }
	/* Titolo corto accanto alle schede ("Topics"): le schede in piu' scorrono nello spazio rimasto */
	.iol-sec-bar-tabs .iol-h-long { display: none; }
	.iol-sec-bar-tabs .iol-h-short { display: inline; }
	.iol-sec-bar .iol-tablist { max-width: calc(100% - 96px); }
	.iol-tabsec .iol-tabbox { border-radius: 0; }
}

/* Sfumatura a destra quando ci sono altre schede da scoprire scorrendo */
.iol-tablist.has-more { -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 36px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 36px), transparent); }

.iol-h-short { display: none; }

/* "News by country" su mobile: due righe di pastiglie che scorrono di lato (invece di sei righe che vanno a capo) */
@media (max-width: 768px) {
	.iol-chips-scroll { display: grid; grid-template-rows: repeat(2, auto); grid-auto-flow: column; grid-auto-columns: max-content; gap: 8px; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none; padding: 4px 12px 12px; -webkit-overflow-scrolling: touch; }
	.iol-chips-scroll::-webkit-scrollbar { display: none; }
	.iol-chips-scroll li { margin: 0; }
	.iol-chips-scroll.has-more { -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 36px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 36px), transparent); }
}

/* Lente nella barra del menu (solo mobile, dopo aver scorso la pagina), a destra del menu a panino */
.main-navigation .inside-navigation .iol-nav-sbtn, .main-navigation .inside-navigation .iol-navsearch { display: none !important; }
@media (max-width: 768px) {
	.main-navigation .inside-navigation .iol-nav-sbtn { display: flex !important; align-items: center; justify-content: center; order: 2; flex: 0 0 auto; width: 0; height: 36px; margin: 0; padding: 0; border: 0; border-radius: 50%; background: var(--fw-blue); color: #fff; opacity: 0; overflow: hidden; cursor: pointer; transition: width .2s ease, opacity .2s ease, margin .2s ease; }
	.iol-scrolled .main-navigation .inside-navigation .iol-nav-sbtn { width: 36px; opacity: 1; margin: 0 12px 0 6px; }
	.main-navigation .inside-navigation .menu-toggle { order: 1; }
	.main-navigation .inside-navigation .iol-nav-logo { order: 0; }
	.main-navigation .inside-navigation .main-nav, .main-navigation .inside-navigation #primary-menu { order: 5; }
	.main-navigation .inside-navigation .iol-navsearch:not([hidden]) { display: block !important; position: absolute; z-index: 70; left: 0; right: 0; top: 100%; padding: 8px 12px 10px; background: #fff; border-bottom: 1px solid var(--fw-line); box-shadow: 0 12px 24px rgba(8, 30, 48, .14); }
	.iol-navsearch input[type="search"] { width: 100%; height: 42px; border: 1px solid var(--fw-line); border-radius: 999px; background: var(--fw-soft); padding: 0 52px 0 16px; font: inherit; font-size: 1rem; }
	.iol-navsearch input[type="search"]:focus { outline: 2px solid var(--fw-blue); background: #fff; border-color: transparent; }
	.iol-navsearch button { position: absolute; right: 16px; top: 12px; width: 34px; height: 34px; border: 0; border-radius: 50%; background: var(--fw-blue); color: #fff; display: flex; align-items: center; justify-content: center; }
}

/* Pulsante di invio della ricerca: con la parola "Search", non solo la lente */
.iol-sb-label { display: none; }
.iol-search button, .iol-navsearch button { white-space: nowrap; }
@media (min-width: 769px) {
	.iol-topbar .iol-search button { width: auto; height: 30px; padding: 0 14px 0 11px; border-radius: 999px; gap: 6px; font-size: .78rem; font-weight: 700; letter-spacing: .03em; }
	.iol-topbar .iol-search .iol-sb-label { display: inline; }
	.iol-topbar .iol-search input[type="search"] { padding-right: 112px; }
}
@media (max-width: 768px) {
	.iol-topbar .iol-search.is-open button { width: auto; padding: 0 14px 0 11px; border-radius: 999px; gap: 6px; font-size: .8rem; font-weight: 700; letter-spacing: .03em; }
	.iol-topbar .iol-search.is-open .iol-sb-label, .iol-navsearch .iol-sb-label { display: inline; }
	.iol-topbar .iol-search.is-open input[type="search"] { padding-right: 118px; }
	.iol-navsearch button { width: auto; padding: 0 14px 0 11px; border-radius: 999px; gap: 6px; font-size: .8rem; font-weight: 700; letter-spacing: .03em; }
	.iol-navsearch input[type="search"] { padding-right: 118px; }
}

/* Mobile: parte alta in due livelli. Striscia sottile con data e Calendar (scorre via) + barra fissa: menu a sinistra, logo al centro, lente a destra */
.iol-nav-brand { display: none; }
@media (max-width: 768px) {
	/* striscia sottile */
	.iol-topbar .iol-topbar-in { padding: 2px 14px; min-height: 28px; gap: 10px; }
	.iol-topbar .iol-search { display: none !important; }
	.iol-topbar .iol-datechip { border: 0; background: transparent; box-shadow: none; padding: 0; }
	.iol-topbar .iol-datechip b { font-size: .74rem; font-weight: 700; }
	.iol-topbar .iol-topbar-cal { font-size: .7rem; margin-left: auto; }
	/* il logo della testata passa nella barra fissa */
	.site-header .site-logo { display: none; }
	body.home .site-header .inside-header { padding: 0; min-height: 0; }
	/* barra fissa */
	.main-navigation .inside-navigation { position: relative; }
	.main-navigation .inside-navigation .iol-nav-brand { display: flex !important; align-items: center; position: absolute; z-index: 1; left: 50%; top: 26px; transform: translate(-50%, -50%); }
	.iol-nav-brand img { display: block; width: 128px; height: auto; }
	.main-navigation .inside-navigation a.iol-nav-logo { display: none !important; }
	.main-navigation .inside-navigation .menu-toggle { flex: 0 0 auto; width: auto; padding: 0 12px 0 16px; order: 0; }
	.main-navigation .inside-navigation .iol-nav-sbtn, .iol-scrolled .main-navigation .inside-navigation .iol-nav-sbtn { width: 36px; opacity: 1; margin: 0 12px 0 auto !important; }
}
@media (max-width: 380px) { .iol-nav-brand img { width: 112px; } }

/* Mobile: la barra del menu parte dagli stessi 12 px dal bordo del resto della pagina (GeneratePress aggiunge 20 px al contenitore) */
@media (max-width: 768px) {
	.main-navigation .inside-navigation.grid-container { padding-left: 0 !important; padding-right: 0 !important; }
	.main-navigation .inside-navigation .menu-toggle { padding-left: 12px; }
	.main-navigation .inside-navigation .iol-nav-sbtn, .iol-scrolled .main-navigation .inside-navigation .iol-nav-sbtn { margin-right: 12px !important; }
}

/* Schede (Next/Latest, Topics): stati chiari in ogni caso. Il grigio scuro dei pulsanti di GeneratePress (hover/focus) restava sul pulsante toccato per ultimo anche dopo lo swipe. */
.iol-tablist .iol-tab:not([aria-selected="true"]),
.iol-tablist .iol-tab:not([aria-selected="true"]):focus,
.iol-tablist .iol-tab:not([aria-selected="true"]):active { background: transparent; color: var(--fw-muted); box-shadow: none; }
.iol-tablist .iol-tab[aria-selected="true"],
.iol-tablist .iol-tab[aria-selected="true"]:hover,
.iol-tablist .iol-tab[aria-selected="true"]:focus,
.iol-tablist .iol-tab[aria-selected="true"]:active { background: var(--fw-blue); color: #fff; }
.iol-tablist .iol-tab-live[aria-selected="true"],
.iol-tablist .iol-tab-live[aria-selected="true"]:hover,
.iol-tablist .iol-tab-live[aria-selected="true"]:focus { background: var(--fw-red); color: #fff; }
@media (hover: hover) {
	.iol-tablist .iol-tab:not([aria-selected="true"]):hover { background: var(--fw-soft); color: var(--fw-blue-dark); }
}

/* Il logo nella barra del menu esiste solo su mobile: su desktop resta nascosto anche contro le regole dei link del menu di GeneratePress */
.main-navigation .inside-navigation a.iol-nav-brand { display: none !important; }
@media (max-width: 768px) {
	.main-navigation .inside-navigation a.iol-nav-brand { display: flex !important; }
}

/* Fine articolo: "Join the finswimming community" come due schede (icona, titolo, riga di spiegazione, freccia) invece di due pastiglie */
.iol-promo-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; align-items: stretch; margin: 30px 0 8px; padding-top: 20px; }
.iol-promo-cards .iol-promo-lead { grid-column: 1 / -1; }
.iol-promo-cards .iol-pc { display: flex; align-items: center; gap: 14px; min-width: 0; padding: 14px 16px; border: 1px solid var(--fw-line); border-radius: 16px; background: #fff; color: var(--fw-ink); text-decoration: none; box-shadow: 0 2px 10px rgba(8, 30, 48, .05); transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.iol-promo-cards .iol-pc-club { background: linear-gradient(135deg, #eaf6fd 0%, #fff 70%); }
.iol-promo-cards .iol-pc-tg { background: linear-gradient(135deg, #e6f4fc 0%, #fff 70%); }
.iol-promo-cards .iol-pc:hover { transform: translateY(-2px); border-color: var(--fw-blue); box-shadow: 0 10px 24px rgba(2, 152, 219, .16); color: var(--fw-ink); }
.iol-pc-ico { flex: none; display: flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 14px; background: #fff; box-shadow: 0 2px 8px rgba(8, 30, 48, .1); }
.iol-promo-cards .iol-pc-ico img { width: 26px; height: 26px; display: block; }
.iol-pc-txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1 1 auto; line-height: 1.3; }
.iol-pc-txt strong { font-size: .97rem; font-weight: 700; }
.iol-pc-txt span { font-size: .82rem; color: var(--fw-muted); }
.iol-promo-cards .iol-pc-go { flex: none; color: var(--fw-blue-dark); transition: transform .18s ease; }
.iol-promo-cards .iol-pc:hover .iol-pc-go { transform: translateX(3px); }
@media (max-width: 640px) {
	.iol-promo-cards { grid-template-columns: 1fr; gap: 10px; }
}

/* Inviti dentro il testo (sotto il banner del libro): niente filo sopra, un po' di aria */
.entry-content .iol-promo-cards { margin: 16px 0 26px; padding-top: 0; border-top: 0; }
.entry-content .iol-promo-cards .iol-promo-lead { margin-bottom: 0; }

/* Libro dentro l'articolo: scheda orizzontale, stessi colori del libro in sidebar (verde petrolio e oro) */
.bka { position: relative; display: flex; align-items: center; gap: 20px; margin: 30px 0 12px; padding: 20px 22px; border-radius: 18px; color: #fff; text-decoration: none; isolation: isolate; overflow: hidden; }
.bka:hover { color: #fff; }
.bka-bg { position: absolute; inset: 0; z-index: -1; border: 1px solid rgba(232, 195, 90, .35); border-radius: 18px; box-shadow: 0 10px 28px rgba(3, 40, 52, .28); background: radial-gradient(300px 220px at 14% 50%, rgba(232, 195, 90, .3), rgba(232, 195, 90, 0) 70%), linear-gradient(165deg, #032a38 0%, #064a5f 58%, #0a7390 100%); }
.bka-bg::after { content: ""; position: absolute; inset: 0; opacity: .35; background-image: radial-gradient(rgba(255, 255, 255, .14) 1.2px, transparent 1.6px); background-size: 16px 16px; -webkit-mask-image: linear-gradient(90deg, #000, transparent 75%); mask-image: linear-gradient(90deg, #000, transparent 75%); }
.entry-content .bka-cover { flex: none; width: 96px; height: auto; margin: 0; border-radius: 5px; transform: rotate(-3deg); box-shadow: 0 14px 26px rgba(0, 0, 0, .5), 0 0 0 1px rgba(232, 195, 90, .5); transition: transform .25s ease; }
.bka:hover .bka-cover { transform: rotate(0) scale(1.04); }
.bka-copy { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; min-width: 0; }
.bka-kicker { font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #f0d27a; }
.bka-title { font-size: 1.35rem; font-weight: 800; line-height: 1.15; letter-spacing: -.01em; color: #fff; }
.bka-title em { font-style: normal; color: #f0d27a; }
.bka-sub { font-size: .9rem; line-height: 1.45; color: rgba(255, 255, 255, .85); max-width: 46ch; }
.bka-cta { display: inline-flex; align-items: center; gap: 8px; margin-top: 4px; padding: 10px 18px; border-radius: 999px; background: linear-gradient(135deg, #f6dc8a, #e1b640); color: #3a2a00; font-size: .88rem; font-weight: 800; box-shadow: 0 6px 16px rgba(0, 0, 0, .3); transition: filter .2s ease; }
.bka-cta svg { transition: transform .2s ease; }
.bka:hover .bka-cta { filter: brightness(1.08); }
.bka:hover .bka-cta svg { transform: translateX(3px); }
@media (max-width: 640px) {
	.bka { gap: 14px; padding: 16px 14px; margin: 24px 0 10px; }
	.entry-content .bka-cover { width: 70px; }
	.bka-title { font-size: 1.12rem; }
	.bka-sub { font-size: .84rem; }
}
@media (prefers-reduced-motion: reduce) { .bka-cover, .bka-cta svg { transition: none; } }
