/*
Theme Name: Europe Watch — Aqua
Theme URI: https://europe.watch/
Author: europe.watch
Description: A modern, water-led travel design for Europe Watch, built to work with the Europe Watch bathing-water data plugin.
Version: 2.5.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: europe-watch
Tags: two-columns, right-sidebar, custom-menu, custom-logo, translation-ready
*/

/* ==========================================================================
   EUROPE WATCH AQUA
   A destination-first interface: clear water, strong trust signals, useful
   data. The plugin remains the data engine; this theme owns the experience.
   ========================================================================== */

:root {
	--ink: #06283D;
	--ink-2: #124B68;
	--muted: #5D7888;
	--muted-2: #87A0AD;
	--paper: #F4FBFD;
	--card: #FFFFFF;
	--line: #D8EAF0;

	--aqua: #00A9C7;
	--aqua-dark: #007F9C;
	--blue: #1261A0;
	--navy: #063B5B;
	--foam: #E9FAFC;
	--sand: #FFF7E7;

	--excellent: #087F8C;
	--good: #27A98A;
	--sufficient: #D5A928;
	--poor: #D45B4C;
	--unknown: #8CA0AA;

	--sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--display: ui-rounded, "Avenir Next", "Segoe UI", var(--sans);
	--mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

	--max: 1180px;
	--gutter: clamp(1rem, 3vw, 2rem);
	--radius: 20px;
	--shadow: 0 16px 45px rgba(5, 57, 82, .10);
	--shadow-soft: 0 8px 24px rgba(5, 57, 82, .08);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
	margin:0;
	background:
		radial-gradient(circle at 8% 12%, rgba(0,169,199,.08), transparent 26rem),
		linear-gradient(180deg,#F7FCFE 0%,var(--paper) 55%,#EFF9FB 100%);
	color:var(--ink);
	font:16px/1.65 var(--sans);
	-webkit-font-smoothing:antialiased;
	text-rendering:optimizeLegibility;
}
body::before{
	content:"";position:fixed;inset:auto 0 0;z-index:-1;height:220px;opacity:.35;
	background:
		radial-gradient(ellipse at 20% 100%, transparent 62%, rgba(0,169,199,.07) 63%, transparent 66%),
		radial-gradient(ellipse at 75% 100%, transparent 62%, rgba(18,97,160,.06) 63%, transparent 66%);
	pointer-events:none;
}
a{color:var(--aqua-dark);text-underline-offset:3px}
a:hover{color:var(--navy)}
img,video,iframe{max-width:100%;height:auto}
:focus-visible{outline:3px solid rgba(0,169,199,.45);outline-offset:3px;border-radius:6px}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link:focus{position:fixed;top:.75rem;left:.75rem;z-index:1000;width:auto;height:auto;clip:auto;padding:.7rem 1rem;background:var(--navy);color:#fff;border-radius:10px}

/* Type */
h1,h2,h3,h4{font-family:var(--display);line-height:1.12;letter-spacing:-.035em;margin:0 0 .65rem;font-weight:800;color:var(--navy)}
h1{font-size:clamp(2rem,5vw,4.25rem)}
h2{font-size:clamp(1.45rem,3vw,2.25rem);margin-top:2.8rem}
h3{font-size:1.2rem;margin-top:1.6rem}
p,ul,ol,blockquote,table,pre{margin:0 0 1.2rem}
.entry-content{max-width:760px}
.entry-content.wide{max-width:none}
.entry-content li{margin-bottom:.4rem}
blockquote{border-left:4px solid var(--aqua);padding:.4rem 0 .4rem 1.2rem;color:var(--muted);font-style:normal;background:rgba(255,255,255,.55)}
code,pre,.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
code{background:var(--foam);padding:.12em .4em;border-radius:6px}
pre{background:#06283D;color:#E9FAFC;border:0;border-radius:16px;padding:1.2rem;overflow:auto}
hr{border:0;border-top:1px solid var(--line);margin:3rem 0}
table{width:100%;border-collapse:separate;border-spacing:0;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#fff}
th,td{text-align:left;padding:.75rem .8rem;border-bottom:1px solid var(--line)}
tr:last-child td{border-bottom:0}
th{font-size:.76rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:#F1FAFC}

/* Frame */
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.site-header{
	position:sticky;top:0;z-index:100;
	background:rgba(247,252,254,.88);
	backdrop-filter:blur(16px) saturate(150%);
	border-bottom:1px solid rgba(216,234,240,.85);
	box-shadow:0 3px 20px rgba(5,57,82,.04)
}
.site-header .wrap{display:flex;align-items:center;gap:2rem;min-height:76px}
.brand{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--display);font-weight:900;letter-spacing:-.05em;font-size:1.35rem;text-decoration:none;color:var(--navy);white-space:nowrap}
.brand::before{
	content:"";width:31px;height:31px;border-radius:50%;
	background:radial-gradient(circle at 32% 28%,#fff 0 7%,transparent 8%),linear-gradient(145deg,#42D7E4,#007F9C);
	box-shadow:inset 0 -5px 8px rgba(0,45,72,.12),0 5px 14px rgba(0,169,199,.22)
}
.brand span{color:var(--aqua-dark)}
.brand img{max-height:44px;width:auto;display:block}
.nav-toggle{margin-left:auto;display:none;background:#fff;border:1px solid var(--line);border-radius:12px;padding:.55rem .8rem;font:inherit;font-weight:700;color:var(--navy);cursor:pointer}
.main-nav{margin-left:auto}
.main-nav ul{list-style:none;display:flex;gap:.35rem;margin:0;padding:0;align-items:center}
.main-nav a{text-decoration:none;color:var(--ink-2);font-size:.92rem;font-weight:700;padding:.65rem .85rem;border-radius:10px;display:block}
.main-nav a:hover,.main-nav .current-menu-item>a{background:var(--foam);color:var(--aqua-dark)}
@media(max-width:760px){
	.site-header .wrap{min-height:66px;gap:1rem}
	.nav-toggle{display:block}
	.main-nav{display:none;flex-basis:100%;margin:0 0 .8rem}
	.main-nav.open{display:block}
	.main-nav ul{flex-direction:column;align-items:stretch;gap:.15rem}
	.main-nav a{padding:.75rem 1rem}
}

/* Plugin breadcrumb */
.crumbs{font-size:.82rem;color:var(--muted);padding:1rem 0 .15rem}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs a:hover{color:var(--aqua-dark)}
.layout{display:grid;grid-template-columns:minmax(0,1fr);gap:2.5rem;padding:2rem 0 0}
@media(min-width:900px){.layout.has-side{grid-template-columns:minmax(0,1fr) 285px}}

/* Generic sidebars */
.side{font-size:.92rem}
.side section,.side .widget{margin-bottom:1.75rem}
.side h2,.side .widget-title{font-family:var(--display);font-size:.9rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-2);margin:0 0 .75rem;font-weight:800}
.side ul{list-style:none;padding:0;margin:0}
.side li{padding:.55rem 0;border-bottom:1px solid var(--line)}
.side a{text-decoration:none;font-weight:650}
.side .km{float:right;color:var(--muted);font-size:.8rem;font-family:var(--mono)}

/* Buttons / forms */
input[type=text],input[type=search],input[type=email],input[type=url],textarea,select{
	width:100%;max-width:32rem;padding:.78rem .9rem;font:inherit;
	border:1px solid #C9E0E8;border-radius:12px;background:#fff;color:var(--ink);
	box-shadow:0 2px 5px rgba(5,57,82,.03)
}
input:focus,select:focus,textarea:focus{border-color:var(--aqua);box-shadow:0 0 0 4px rgba(0,169,199,.10);outline:0}
button,.button,input[type=submit]{
	font:inherit;font-weight:800;padding:.72rem 1.05rem;border-radius:12px;
	border:1px solid var(--aqua-dark);background:linear-gradient(135deg,var(--aqua),var(--blue));
	color:#fff;cursor:pointer;box-shadow:0 7px 18px rgba(0,127,156,.18)
}
button:hover,input[type=submit]:hover{transform:translateY(-1px);filter:brightness(.97)}
.search-form{display:flex;gap:.6rem;align-items:flex-start}

/* Ads */
.ad-slot{margin:1.8rem 0;text-align:center}
.ad-slot::before{content:"Advertisement";display:block;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2);margin-bottom:.35rem}
.ad-slot:empty{display:none}
.ad-header{margin:0;padding:.7rem 0;border-bottom:1px solid var(--line);background:rgba(255,255,255,.7)}
.side .ad-slot{margin:0 0 1.75rem}

/* ==========================================================================
   Home / destination hero
   ========================================================================== */
.hero{
	position:relative;
	margin:0 calc(var(--gutter) * -1);
	padding:clamp(3rem,8vw,6.5rem) var(--gutter) clamp(3.5rem,7vw,6rem);
	overflow:hidden;
	background:
		linear-gradient(115deg,rgba(4,55,83,.96) 0%,rgba(5,94,123,.90) 48%,rgba(0,169,199,.78) 100%),
		linear-gradient(180deg,#0B6684,#00A9C7);
	color:#fff;
	border-radius:0 0 44px 44px;
	box-shadow:0 24px 55px rgba(5,57,82,.16)
}
.hero::before{
	content:"";position:absolute;inset:auto -8% -95px;height:220px;
	background:#F4FBFD;border-radius:50% 50% 0 0/45% 45% 0 0;
	transform:rotate(-2deg)
}
.hero::after{
	content:"";position:absolute;width:500px;height:500px;right:-180px;top:-210px;border-radius:50%;
	background:radial-gradient(circle at 40% 40%,rgba(255,255,255,.2),rgba(255,255,255,0) 63%);
	pointer-events:none
}
.hero h1,.hero h2{color:#fff;max-width:760px;font-size:clamp(2.6rem,7vw,5.8rem);line-height:.98}
.hero p.lede{position:relative;z-index:2;font-size:clamp(1.05rem,2vw,1.28rem);color:rgba(255,255,255,.88);max-width:700px;margin:1.2rem 0 1.7rem}
.hero .stat{font-family:var(--mono);font-variant-numeric:tabular-nums;color:#fff;font-weight:900}
.hero .ew-sc,.hero .ew-search{position:relative;z-index:5}
.hero .ew-search input{max-width:650px!important;border:0!important;border-radius:16px!important;padding:1rem 1.1rem!important;font-size:1.05rem!important;box-shadow:0 15px 35px rgba(0,38,60,.2)!important}
.hero .ew-results{max-width:650px!important;background:#fff;border-radius:16px;padding:.4rem 1rem!important;box-shadow:var(--shadow)!important}
.hero .ew-results li{border-bottom:1px solid var(--line)!important}
.hero .ew-results a{color:var(--ink)!important;padding:.45rem 0}
.hero .ew-results .ew-where{color:var(--muted)!important}
.hero .ew-sc{color:#fff}
.hero .ew-sc a{color:var(--aqua)!important}

/* Homepage content cards */
.home-card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin:2.4rem 0 3.5rem}
.home-card-grid li{list-style:none}
.home-card{
	position:relative;display:block;min-height:150px;padding:1.35rem 1.25rem 1.15rem;
	background:#fff;border:1px solid var(--line);border-radius:18px;color:var(--navy);
	text-decoration:none;overflow:hidden;box-shadow:var(--shadow-soft);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease
}
.home-card::after{content:"";position:absolute;right:-28px;bottom:-35px;width:110px;height:110px;border-radius:50%;background:var(--foam)}
.home-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:#A9DCE7;color:var(--navy)}
.home-card .icon{display:block;font-size:1.9rem;margin-bottom:.75rem}
.home-card strong{display:block;font-family:var(--display);font-size:1.05rem;position:relative;z-index:2}
.home-card small{display:block;color:var(--muted);margin-top:.25rem;position:relative;z-index:2}
@media(max-width:900px){.home-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.home-card-grid{grid-template-columns:1fr}.home-card{min-height:120px}}

/* ==========================================================================
   Europe Watch plugin components — restyled, markup unchanged
   ========================================================================== */
.meta{color:var(--muted);font-size:.92rem;margin:0 0 1.5rem}
.taglist{display:flex;gap:.5rem;flex-wrap:wrap;margin:0 0 1.7rem;padding:0;list-style:none}
.taglist a{
	display:inline-flex;align-items:center;padding:.5rem .8rem;border:1px solid #CFE5EB;
	border-radius:999px;font-size:.82rem;text-decoration:none;background:rgba(255,255,255,.82);
	color:var(--ink-2);font-weight:750;box-shadow:0 2px 7px rgba(5,57,82,.03)
}
.taglist a:hover{border-color:#9BD4E0;background:var(--foam)}
.taglist .on{background:var(--navy);border-color:var(--navy);color:#fff}

/* Verdict */
.verdict{
	display:flex;align-items:center;gap:1rem;flex-wrap:wrap;
	background:linear-gradient(135deg,#fff,#F0FBFC);
	border:1px solid #CBE7ED;border-radius:20px;padding:1.25rem 1.35rem;margin-bottom:1.5rem;
	box-shadow:var(--shadow-soft)
}
.chip{display:inline-flex;align-items:center;padding:.42rem .82rem;border-radius:999px;color:#fff;font-weight:850;font-size:.9rem;box-shadow:0 5px 12px rgba(5,57,82,.12)}
.verdict .year{color:var(--muted);font-size:.9rem}

/* Readings */
.readings{
	display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:1px;
	background:#CBE4EA;border:1px solid #CBE4EA;border-radius:18px;overflow:hidden;margin-bottom:1.8rem;
	box-shadow:var(--shadow-soft)
}
.reading{background:#fff;padding:1rem 1.05rem;position:relative}
.reading::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,var(--aqua),#54D7D7);opacity:.35}
.reading dt{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:0 0 .35rem;font-weight:800}
.reading dd{margin:0;font-size:1.75rem;font-weight:850;letter-spacing:-.04em;color:var(--navy)}
.reading dd small{font-size:.8rem;font-weight:600;color:var(--muted)}

/* History */
.history{margin:0 0 1.8rem;background:#fff;border:1px solid var(--line);border-radius:18px;padding:1.2rem 1.25rem;box-shadow:var(--shadow-soft)}
.history h2{font-size:1.2rem;margin:0 0 .8rem}
.band{display:flex;gap:3px;align-items:flex-end;overflow-x:auto;padding-bottom:.45rem}
.band i{display:block;width:100%;min-width:10px;height:42px;border-radius:5px 5px 2px 2px;flex:1 1 0;opacity:.92;transition:transform .15s ease}
.band i:hover{transform:scaleY(1.08);transform-origin:bottom}
.band-axis{display:flex;justify-content:space-between;font-size:.7rem;color:var(--muted);margin-top:.3rem}
.legend{display:flex;gap:.9rem;flex-wrap:wrap;font-size:.75rem;color:var(--muted);margin-top:.8rem}
.legend b{display:inline-block;width:.7rem;height:.7rem;border-radius:50%;margin-right:.3rem;vertical-align:middle}

/* Notes */
.note{background:linear-gradient(135deg,#fff,#F3FBFC);border:1px solid var(--line);border-left:4px solid var(--aqua);padding:1rem 1.15rem;font-size:.9rem;color:var(--muted);margin-bottom:1.5rem;border-radius:0 14px 14px 0;box-shadow:0 4px 16px rgba(5,57,82,.04)}
.note strong{color:var(--navy)}
.warn{border-left-color:var(--poor);background:#FFF7F5;border-color:#F2D8D3}

/* Lists and grids */
.list{columns:2;column-gap:2rem;padding:0;list-style:none;margin:0 0 2rem}
.list li{break-inside:avoid;padding:.62rem .4rem;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:.25rem}
.list li:hover{background:#F5FBFC}
.list a{text-decoration:none;font-weight:650}
.list a:hover{text-decoration:underline}
.list .dot{display:inline-block;width:.65rem;height:.65rem;border-radius:50%;margin-right:.45rem;flex:0 0 auto;box-shadow:0 0 0 3px rgba(0,169,199,.06)}
@media(max-width:600px){.list{columns:1}}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;padding:0;list-style:none;margin:0 0 2rem}
.grid li{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow-soft);transition:transform .18s ease,box-shadow .18s ease}
.grid li:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.grid a{display:block;padding:1.05rem 1.1rem;text-decoration:none;color:var(--navy);font-weight:750}
.grid a:hover{color:var(--aqua-dark)}
.grid .n{display:block;font-size:.8rem;color:var(--muted);margin-top:.25rem;font-weight:500}

/* Plugin's shortcodes */
.ew-sc{--ew-ink:var(--ink);--ew-soft:var(--muted);--ew-rule:var(--line);--ew-accent:var(--aqua-dark);font-family:inherit;color:var(--ink);margin:1.5em 0}
.ew-card{border:1px solid var(--line)!important;border-radius:16px!important;padding:1.15rem 1.2rem!important;background:#fff!important;max-width:34rem!important;box-shadow:var(--shadow-soft)}
.ew-card h3{font-family:var(--display);color:var(--navy)}
.ew-chip{border-radius:999px!important;padding:.22rem .65rem!important;font-weight:800!important}
.ew-search input{border-radius:14px!important;border:1px solid #C9E0E8!important}
.ew-search input:focus{border-color:var(--aqua)!important}
.ew-results{border-radius:14px!important}
.ew-list li{padding:.4rem 0!important;border-bottom:1px solid var(--line)!important}
.ew-rank li{padding:.6rem 0!important;border-bottom:1px solid var(--line)!important}
.ew-rank a{color:var(--navy)!important}
.ew-rank-n{color:var(--muted)!important}
.ew-rank-v strong{color:var(--navy)!important}

/* WP posts */
.post-list{list-style:none;padding:0;margin:0}
.post-list li{padding:1.2rem 1.25rem;border:1px solid var(--line);background:#fff;border-radius:16px;margin-bottom:.8rem;box-shadow:var(--shadow-soft)}
.post-list h2{font-size:1.25rem;margin:0 0 .3rem}
.post-list h2 a{text-decoration:none;color:var(--navy)}
.post-list h2 a:hover{color:var(--aqua-dark)}
.post-meta{font-size:.8rem;color:var(--muted-2);margin:0 0 .4rem}
.post-meta time{font-family:var(--mono)}
.post-list p{margin:0;color:var(--muted)}
.entry-header{margin-bottom:1.5rem}
.entry-thumb{margin:0 0 1.5rem;border-radius:20px;overflow:hidden;box-shadow:var(--shadow)}
.entry-thumb img{display:block;width:100%}
.pagination{display:flex;gap:.5rem;flex-wrap:wrap;margin:2rem 0}
.pagination .page-numbers{padding:.5rem .75rem;border:1px solid var(--line);border-radius:10px;text-decoration:none;background:#fff;font-size:.9rem}
.pagination .current{background:var(--navy);border-color:var(--navy);color:#fff}

/* Footer */
.site-footer{
	position:relative;overflow:hidden;
	border-top:0;margin-top:4.5rem;padding:4rem 0 2.5rem;font-size:.88rem;color:#B7D0DA;
	background:linear-gradient(155deg,#052B42,#063E5C 55%,#006F87)
}
.site-footer::before{
	content:"";position:absolute;left:-5%;right:-5%;top:-52px;height:110px;background:#F4FBFD;border-radius:50% 50% 0 0/55% 55% 0 0;transform:rotate(-1deg)
}
.footer-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:2rem;position:relative}
.footer-cols h2{color:#fff}
.footer-cols ul{list-style:none;padding:0;margin:0}
.footer-cols li{padding:.2rem 0}
.footer-cols a{color:#C9E5EC;text-decoration:none}
.footer-cols a:hover{color:#fff}
.colophon{position:relative;margin-top:2rem;padding-top:1.4rem;border-top:1px solid rgba(201,229,236,.18);font-size:.78rem;color:#A9C5D0}
.colophon p{margin:0 0 .5rem;max-width:850px}


/* Full-width data experience: plugin pages use the complete content canvas.
   The navigation/sidebar remains available, but sits below the data rather
   than squeezing the swimming information into a narrow column. */
body:has(.ewt-map-wrap) .layout.has-side{
	display:block;
}
body:has(.ewt-map-wrap) .layout.has-side > main{
	width:100%;
	max-width:none;
}
body:has(.ewt-map-wrap) .layout.has-side > .side{
	width:100%;
	margin-top:2.5rem;
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
	gap:1rem;
}
body:has(.ewt-map-wrap) .layout.has-side > .side section,
body:has(.ewt-map-wrap) .layout.has-side > .side .widget{
	margin:0;
}
body:has(.ewt-map-wrap) .ewt-map-wrap{
	width:100%;
}

/* Country map is a major navigation element, not a sidebar widget. */
body:has(.ewt-map-wrap) .ewt-map-wrap{
	margin-top:2.4rem;
	margin-bottom:2.6rem;
}
@media(max-width:760px){
	body:has(.ewt-map-wrap) .layout.has-side > .side{
	grid-template-columns:1fr;
	margin-top:1.5rem;
	}
}

/* Search */
.search-results{padding-top:1rem}

/* Make plugin's inline SVG/images feel integrated */
main>h1:first-child{margin-top:.2rem}
@media(max-width:760px){
	.hero{border-radius:0 0 30px 30px}
	.hero h1{font-size:clamp(2.5rem,14vw,4rem)}
	.layout{padding-top:1.2rem}
	.readings{grid-template-columns:repeat(2,minmax(0,1fr))}
	.grid{grid-template-columns:1fr 1fr}
}
@media(max-width:480px){
	.grid{grid-template-columns:1fr}
	.readings{grid-template-columns:1fr 1fr}
	.verdict{align-items:flex-start}
}

/* ======================================================================
   DESTINATION EXPERIENCE — individual beach / lake / river pages
   The plugin supplies the data; the theme turns it into a travel-grade
   destination experience without changing the plugin markup or URLs.
   ====================================================================== */

.ew-ad{margin:2rem 0;text-align:center}
.ew-ad::before{content:"Advertisement";display:block;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2);margin-bottom:.4rem}
.ew-ad-sidebar{margin:0 0 1.5rem}

.destination-hero{
	position:relative;
	margin:0 calc(var(--gutter) * -1) 2rem;
	padding:clamp(2.1rem,5vw,4.5rem) var(--gutter) 2.5rem;
	overflow:hidden;
	background:
		radial-gradient(circle at 78% 20%,rgba(117,239,242,.42),transparent 17rem),
		radial-gradient(circle at 18% 0%,rgba(83,213,230,.25),transparent 21rem),
		linear-gradient(135deg,#04324c 0%,#075d79 46%,#009db8 100%);
	color:#fff;
	box-shadow:0 22px 55px rgba(3,58,82,.18);
	border-radius:0 0 42px 42px;
}
.destination-hero::before{
	content:"";
	position:absolute;left:-5%;right:-5%;bottom:-74px;height:145px;
	background:#F4FBFD;
	border-radius:50% 50% 0 0/55% 55% 0 0;
	transform:rotate(-1.2deg);
}
.destination-hero::after{
	content:"";
	position:absolute;width:620px;height:620px;right:-280px;top:-270px;border-radius:50%;
	background:radial-gradient(circle at 40% 40%,rgba(255,255,255,.18),transparent 58%);
	pointer-events:none;
}
.destination-hero h1{
	position:relative;z-index:3;
	max-width:900px;
	margin:0 0 1rem;
	color:#fff;
	font-size:clamp(2.7rem,6vw,5.6rem);
	line-height:.95;
	letter-spacing:-.055em;
}
.destination-hero h1::before{
	content:"SWIM DESTINATION";
	display:block;
	font:800 .72rem/1 var(--sans);
	letter-spacing:.18em;
	margin-bottom:1rem;
	color:#A9F5F3;
}
.destination-hero .taglist{position:relative;z-index:3;margin-bottom:1rem}
.destination-hero .taglist a{
	background:rgba(255,255,255,.12);
	border-color:rgba(255,255,255,.28);
	color:#fff;
	backdrop-filter:blur(8px);
	box-shadow:none;
}
.destination-hero .taglist a:hover{background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.55);color:#fff}
.destination-hero .meta{position:relative;z-index:3;color:rgba(255,255,255,.72);margin-bottom:1.4rem}
.destination-hero .mono{color:inherit}
.destination-hero .verdict{
	position:relative;z-index:4;
	max-width:780px;
	margin:0;
	background:rgba(255,255,255,.96);
	border:0;
	border-radius:22px;
	padding:1rem 1.15rem;
	box-shadow:0 18px 42px rgba(0,33,50,.2);
}
.destination-hero .verdict::before{
	content:"WATER QUALITY";
	font:800 .66rem/1 var(--sans);
	letter-spacing:.13em;
	color:var(--muted);
	align-self:center;
}
.destination-hero .chip{font-size:1rem;padding:.58rem .95rem}
.destination-hero .verdict .year{color:var(--muted)}

/* Snapshot card becomes a visual dashboard rather than a plain definition list. */
main:has(.destination-hero) .readings{
	position:relative;
	border:0;
	background:transparent;
	gap:.8rem;
	box-shadow:none;
	overflow:visible;
	margin:0 0 2rem;
}
main:has(.destination-hero) .readings::before{
	content:"TODAY AT THE WATER";
	grid-column:1/-1;
	font:800 .72rem/1 var(--sans);
	letter-spacing:.14em;
	color:var(--muted);
	padding:.15rem 0 .15rem .1rem;
}
main:has(.destination-hero) .reading{
	border:1px solid var(--line);
	border-radius:18px;
	padding:1.15rem 1.1rem;
	box-shadow:var(--shadow-soft);
	background:linear-gradient(145deg,#fff,#F5FCFD);
	min-height:112px;
}
main:has(.destination-hero) .reading::after{height:4px;opacity:.7;border-radius:0 0 18px 18px}
main:has(.destination-hero) .reading dt{font-size:.65rem}
main:has(.destination-hero) .reading dd{font-size:2rem}
main:has(.destination-hero) .reading dd small{font-size:.72rem}

/* Make the history look like a premium visual timeline. */
main:has(.destination-hero) .history{
	position:relative;
	padding:1.5rem;
	border-radius:24px;
	background:linear-gradient(135deg,#063a55,#075f79);
	border:0;
	box-shadow:var(--shadow);
	color:#fff;
}
main:has(.destination-hero) .history h2{color:#fff;font-size:1.45rem;margin:0 0 .25rem}
main:has(.destination-hero) .history::after{
	content:"40 seasons of context";
	position:absolute;right:1.5rem;top:1.55rem;
	font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:#9BE8EC;
}
main:has(.destination-hero) .history .band{padding:.9rem .2rem .55rem}
main:has(.destination-hero) .history .band i{height:54px;border-radius:6px 6px 3px 3px;box-shadow:0 5px 10px rgba(0,0,0,.08)}
main:has(.destination-hero) .history .band-axis,
main:has(.destination-hero) .history .legend{color:#B9D8E1}
main:has(.destination-hero) .history .legend b{box-shadow:0 0 0 2px rgba(255,255,255,.12)}

/* The caveat becomes an explicit traveller safety card. */
main:has(.destination-hero) > .note{
	position:relative;
	padding:1.2rem 1.3rem 1.2rem 3.6rem;
	border:1px solid #D7E7EA;
	border-left:4px solid var(--aqua);
	border-radius:18px;
	background:#fff;
	box-shadow:var(--shadow-soft);
	color:var(--muted);
}
main:has(.destination-hero) > .note::before{
	content:"✓";
	position:absolute;left:1.05rem;top:1.1rem;
	width:1.7rem;height:1.7rem;border-radius:50%;
	display:grid;place-items:center;
	background:var(--foam);color:var(--aqua-dark);font-weight:900;
}
main:has(.destination-hero) > .note.warn{border-left-color:var(--poor);background:#FFF9F7}
main:has(.destination-hero) > .note.warn::before{content:"!";background:#FCE9E5;color:var(--poor)}

/* Nearby links become useful destination cards in the sidebar. */
main:has(.destination-hero) + .side section:not(.ew-ad){
	padding:1.15rem 1.15rem .9rem;
	border:1px solid var(--line);
	border-radius:20px;
	background:rgba(255,255,255,.8);
	box-shadow:var(--shadow-soft);
}
main:has(.destination-hero) + .side section:not(.ew-ad) h2{margin:0 0 .65rem;color:var(--navy);font-size:.82rem}
main:has(.destination-hero) + .side section:not(.ew-ad) li{padding:.65rem .1rem}
main:has(.destination-hero) + .side section:not(.ew-ad) li:last-child{border-bottom:0}
main:has(.destination-hero) + .side section:not(.ew-ad) a{color:var(--navy)}

/* Hide the embed details' browser-default feel and make it an understated tool. */
main:has(.destination-hero) details{
	border:1px solid var(--line);border-radius:18px;padding:1rem 1.15rem;background:#fff;box-shadow:var(--shadow-soft)
}
main:has(.destination-hero) details summary{color:var(--navy)}

@media(max-width:760px){
	.destination-hero{margin-bottom:1.4rem;border-radius:0 0 30px 30px;padding-top:2rem}
	.destination-hero h1{font-size:clamp(2.5rem,13vw,4rem)}
	.destination-hero .verdict{display:grid;grid-template-columns:auto 1fr;gap:.6rem .8rem}
	.destination-hero .verdict::before{grid-column:1/-1}
	main:has(.destination-hero) .history::after{display:none}
}

@media(max-width:480px){
	.destination-hero{padding-bottom:2rem}
	.destination-hero .verdict{grid-template-columns:1fr}
	main:has(.destination-hero) .readings{grid-template-columns:1fr 1fr}
	main:has(.destination-hero) .reading{min-height:105px}
}


/* ==========================================================================\n   Full-width page chrome + dynamic bathing-water page headers\n   ========================================================================== */
.site-header {
\tposition:relative;
\twidth:100%;
\tbackground:linear-gradient(135deg,#042f43 0%,#075d72 52%,#00a9c7 100%);
\tborder-bottom:1px solid rgba(255,255,255,.12);
\tbox-shadow:0 8px 30px rgba(3,45,61,.12);
}
.site-header > .wrap {
\twidth:100%;
\tmax-width:none;
\tmargin:0;
\tpadding-left:clamp(1rem,4vw,4rem);
\tpadding-right:clamp(1rem,4vw,4rem);
}
.site-header .brand,
.site-header .custom-logo-link { color:#fff; }
.site-header .main-nav a { color:rgba(255,255,255,.92); }
.site-header .main-nav a:hover { color:#fff; }

/* The plugin supplies the real, route-specific H1. Make that header a full
   browser-width hero while keeping the data below in the normal readable
   measure. This is intentionally CSS-only: the plugin remains untouched. */
.ew-route-site .layout > main > h1:first-child,
.ew-route-country .layout > main > h1:first-child,
.ew-route-type .layout > main > h1:first-child,
.ew-route-index .layout > main > h1:first-child {
\tposition:relative;
\twidth:100vw;
\tmax-width:none;
\tmargin-left:calc(50% - 50vw);
\tmargin-right:calc(50% - 50vw);
\tmargin-top:-.5rem;
\tmargin-bottom:1.25rem;
\tpadding:clamp(2.4rem,6vw,5.5rem) clamp(1rem,7vw,7rem) clamp(2rem,4vw,3.5rem);
\tcolor:#fff;
\tfont-size:clamp(2.25rem,5.5vw,5.25rem);
\tline-height:.98;
\tletter-spacing:-.045em;
\tbackground:
\t\tradial-gradient(circle at 78% 22%,rgba(112,236,245,.30),transparent 22rem),
\t\tradial-gradient(circle at 12% 85%,rgba(0,169,199,.34),transparent 28rem),
\t\tlinear-gradient(135deg,#042f43 0%,#075d72 52%,#009bb6 100%);
\tbox-shadow:0 20px 50px rgba(4,58,73,.16);
\toverflow:hidden;
}
.ew-route-site .layout > main > h1:first-child::after,
.ew-route-country .layout > main > h1:first-child::after,
.ew-route-type .layout > main > h1:first-child::after,
.ew-route-index .layout > main > h1:first-child::after {
\tcontent:"";
\tposition:absolute;
\tleft:-5%; right:-5%; bottom:-3.2rem;
\theight:6rem;
\tbackground:rgba(255,255,255,.10);
\tborder-radius:50% 50% 0 0 / 100% 100% 0 0;
\ttransform:rotate(-1deg);
}
.ew-route-site .layout > main > h1:first-child + .taglist,
.ew-route-country .layout > main > h1:first-child + .taglist,
.ew-route-type .layout > main > h1:first-child + .taglist,
.ew-route-index .layout > main > h1:first-child + .taglist {
\tposition:relative;
\tmargin-top:-.2rem;
}

/* Country maps belong to the country content, not the footer. */
.ew-route-country .ewt-map-wrap { width:100%; margin-top:1.5rem; }
.ew-route-country .ewt-map { min-height:480px; }

/* Full-width map on destination pages too. */
.ew-route-site .ewt-map-wrap { width:100%; }

@media (max-width:700px) {
\t.ew-route-site .layout > main > h1:first-child,
\t.ew-route-country .layout > main > h1:first-child,
\t.ew-route-type .layout > main > h1:first-child,
\t.ew-route-index .layout > main > h1:first-child {
\t\tpadding-left:1rem;
\t\tpadding-right:1rem;
\t\tfont-size:clamp(2rem,11vw,3.25rem);
\t}
\t.ew-route-country .ewt-map { min-height:360px; }
}

/* ======================================================================
   FULL-WIDTH SITE HEADER + IMAGE SLIDER
   ====================================================================== */
.site-header{position:relative;top:auto;z-index:100;background:#062f47;border:0;box-shadow:0 10px 35px rgba(3,45,66,.18);overflow:hidden}
.site-header__bar{width:100%;background:rgba(4,38,57,.94);backdrop-filter:blur(14px) saturate(145%);border-bottom:1px solid rgba(255,255,255,.12)}
.site-header__inner{width:100%;min-height:76px;padding:0 clamp(1rem,4vw,4rem);display:flex;align-items:center;gap:2rem}
.site-header__inner .brand{color:#fff}
.site-header__inner .brand span{color:#68e0e2}
.site-header__inner .main-nav a{color:#e4f7f8}
.site-header__inner .main-nav a:hover,.site-header__inner .main-nav .current-menu-item>a{background:rgba(255,255,255,.12);color:#fff}
.site-header__inner .nav-toggle{margin-left:auto;background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.18);color:#fff}
.site-header__slider{position:relative;width:100%;height:clamp(190px,28vw,360px);overflow:hidden;background:#063b5b}
.site-header__slider .ew-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transform:scale(1.04);transition:opacity 1.1s ease,transform 7s ease}
.site-header__slider .ew-slide.is-active{opacity:1;transform:scale(1)}
.site-header__slider-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,36,56,.72),rgba(3,64,84,.28) 55%,rgba(0,127,156,.18));pointer-events:none}
.site-header__slider-caption{position:absolute;left:clamp(1rem,5vw,5rem);bottom:clamp(1.7rem,4vw,3.5rem);z-index:4;color:#fff;max-width:720px;text-shadow:0 3px 18px rgba(0,0,0,.28)}
.site-header__slider-caption strong{display:block;font-family:var(--display);font-size:clamp(1.6rem,3.4vw,3rem);line-height:1.05;letter-spacing:-.045em}
.site-header__slider-caption span{display:block;margin-top:.55rem;color:rgba(255,255,255,.84);font-size:clamp(.82rem,1.4vw,1rem)}
.site-header__slider .ew-slider-dots{position:absolute;right:clamp(1rem,4vw,4rem);bottom:1.7rem;z-index:5;display:flex;gap:.4rem}
.site-header__slider .ew-dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.45);display:block;transition:all .2s ease}
.site-header__slider .ew-dot.is-active{width:24px;border-radius:999px;background:#fff}

/* The virtual destination/country title is deliberately a separate full-bleed
   hero. It is generated from the plugin's actual route data, so it cannot get
   out of sync with the destination being viewed. */
.ew-virtual-hero{position:relative;width:100%;min-height:clamp(220px,27vw,360px);display:flex;align-items:flex-end;overflow:hidden;background:linear-gradient(135deg,#04324c,#007f9c 58%,#42d7e4);color:#fff}
.ew-virtual-hero__shade{position:absolute;inset:0;background:radial-gradient(circle at 80% 20%,rgba(255,255,255,.17),transparent 25%),linear-gradient(90deg,rgba(3,37,57,.66),rgba(0,127,156,.1));pointer-events:none}
.ew-virtual-hero__content{position:relative;z-index:2;width:100%;padding:clamp(2.5rem,6vw,5rem) clamp(1rem,5vw,5rem) clamp(2.4rem,5vw,4rem)}
.ew-virtual-kicker{font-size:.72rem;font-weight:850;letter-spacing:.18em;color:#a9f5f3;margin-bottom:.8rem}
.ew-virtual-hero h1{color:#fff;font-size:clamp(2.4rem,6vw,5.8rem);max-width:1100px;margin:0;letter-spacing:-.055em;line-height:.95}
.ew-virtual-hero p{max-width:900px;color:rgba(255,255,255,.84);font-size:clamp(.9rem,1.5vw,1.1rem);margin:1rem 0 0}
body:has(.ew-virtual-hero) .ew-route-site .layout > main > h1:first-child,
body:has(.ew-virtual-hero) .ew-route-country .layout > main > h1:first-child{display:none}
body:has(.ew-virtual-hero) .ewt-map-wrap{margin-top:0}
body:has(.ew-virtual-hero) .layout{padding-top:0}
body:has(.ew-virtual-hero) .crumbs{display:none}

/* Full-width header means the nav itself is never constrained by --max. */
@media(max-width:760px){
 .site-header__inner{min-height:64px}
 .site-header__inner .main-nav{display:none}
 .site-header__inner .main-nav.open{display:block}
 .site-header__slider{height:230px}
 .site-header__slider-caption{bottom:1.4rem;right:1rem}
 .site-header__slider-caption strong{font-size:1.45rem}
 .ew-virtual-hero{min-height:230px}
}


/* ========================================================================
   v2.5 destination composition
   Global slider first; one destination header second; map third.
   ======================================================================== */
body.ew-route-site .wrap,
body.ew-route-country .wrap{
	max-width:none;
	padding-left:0;
	padding-right:0;
}
body.ew-route-site .layout,
body.ew-route-country .layout{
	padding-top:0;
}
body.ew-route-site .layout > main,
body.ew-route-country .layout > main{
	width:100%;
	max-width:none;
}
body.ew-route-site .layout > .side,
body.ew-route-country .layout > .side{
	width:min(1180px, calc(100% - 2 * var(--gutter)));
	margin-left:auto;
	margin-right:auto;
}

.ew-destination-header{
	position:relative;
	overflow:hidden;
	padding:clamp(2rem,5vw,4.5rem) clamp(1rem,6vw,6rem) clamp(1.8rem,4vw,3.25rem);
	background:
		radial-gradient(circle at 88% 18%,rgba(103,235,238,.24),transparent 22rem),
		linear-gradient(135deg,#04344d 0%,#075f78 55%,#0099ae 100%);
	color:#fff;
	box-shadow:0 16px 45px rgba(4,52,77,.18);
}
.ew-destination-header::after{
	content:"";
	position:absolute;
	left:-5%;right:-5%;bottom:-55px;height:105px;
	background:#F4FBFD;
	border-radius:50% 50% 0 0/65% 65% 0 0;
	transform:rotate(-1deg);
}
.ew-destination-header > *{position:relative;z-index:2;max-width:1180px;margin-left:auto;margin-right:auto}
.ew-destination-header h1{
	color:#fff;
	font-size:clamp(2.3rem,6vw,5.6rem);
	line-height:.98;
	letter-spacing:-.055em;
	margin:0 0 1rem;
	max-width:1200px;
}
.ew-destination-header .meta{color:rgba(255,255,255,.76);margin:.9rem auto 1.1rem;max-width:1180px}
.ew-destination-header .taglist{margin:0 auto 1rem;max-width:1180px}
.ew-destination-header .taglist a{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.3);color:#fff;box-shadow:none}
.ew-destination-header .taglist a:hover{background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.55);color:#fff}
.ew-destination-header .taglist .on{background:#fff;border-color:#fff;color:#07516a}
.ew-destination-header .verdict{max-width:700px;margin:1.2rem 0 0;background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.24);box-shadow:none;color:#fff;backdrop-filter:blur(8px)}
.ew-destination-header .verdict .year{color:rgba(255,255,255,.82)}
.ew-destination-header .readings{max-width:1180px;margin:1.2rem auto 0;background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.25);box-shadow:none}
.ew-destination-header .reading{background:rgba(255,255,255,.08);color:#fff}
.ew-destination-header .reading dt{color:rgba(255,255,255,.7)}
.ew-destination-header .reading dd{color:#fff}
.ew-destination-header .reading dd small{color:rgba(255,255,255,.7)}
.ew-destination-header .note.warn{max-width:900px;margin:1rem 0 0;background:rgba(255,245,240,.12);border-color:rgba(255,220,205,.45);color:rgba(255,255,255,.86);box-shadow:none}
.ew-destination-header .note.warn strong{color:#fff}

/* The map is deliberately the first thing after the destination header. */
body.ew-route-site .ewt-map-wrap,
body.ew-route-country .ewt-map-wrap{
	width:100%;
	margin:0;
	border:0;
	border-radius:0;
	box-shadow:none;
}
body.ew-route-site .ewt-map-head,
body.ew-route-country .ewt-map-head{
	padding:1.25rem clamp(1rem,6vw,6rem);
}
body.ew-route-site .ewt-map-head > div,
body.ew-route-country .ewt-map-head > div{max-width:1180px}
body.ew-route-site .ewt-map,
body.ew-route-country .ewt-map{height:480px}

/* Reading content resumes on a comfortable travel-guide canvas. */
body.ew-route-site .layout > main > .readings,
body.ew-route-country .layout > main > .list,
body.ew-route-country .layout > main > .taglist,
body.ew-route-site .layout > main > .history,
body.ew-route-site .layout > main > .note,
body.ew-route-site .layout > main > details,
body.ew-route-country .layout > main > .list{
	width:min(1180px,calc(100% - 2 * var(--gutter)));
	margin-left:auto;
	margin-right:auto;
}
body.ew-route-site .layout > main > .readings{margin-top:2rem}
body.ew-route-country .layout > main > .list{margin-top:2rem}

@media(max-width:700px){
	.ew-destination-header{padding:2rem 1rem 1.5rem}
	body.ew-route-site .ewt-map,
	body.ew-route-country .ewt-map{height:360px}
}

/* Destination-page internal linking block before the site footer. */
.ew-destination-footer-links{
	margin:3.5rem 0 0;
	padding:0;
	background:linear-gradient(135deg,#063b4b 0%,#087f92 55%,#10a7b6 100%);
	color:#fff;
	position:relative;
	overflow:hidden;
}
.ew-destination-footer-links::before{
	content:"";
	position:absolute;
	inset:auto -10% -65% -10%;
	height:180%;
	border-radius:50%;
	background:rgba(255,255,255,.08);
}
.ew-destination-footer-links__inner{
	position:relative;
	z-index:1;
	max-width:1320px;
	margin:0 auto;
	padding:2.75rem clamp(1.25rem,4vw,3.5rem);
	display:grid;
	grid-template-columns:minmax(240px,.8fr) minmax(0,1.5fr);
	gap:2rem;
	align-items:center;
}
.ew-destination-footer-links__eyebrow{
	display:block;
	font-size:.68rem;
	font-weight:800;
	letter-spacing:.16em;
	color:rgba(255,255,255,.68);
	margin-bottom:.45rem;
}
.ew-destination-footer-links h2{
	margin:0 0 .35rem;
	color:#fff;
	font-size:clamp(1.45rem,2.5vw,2rem);
}
.ew-destination-footer-links p{
	margin:0;
	color:rgba(255,255,255,.78);
}
.ew-destination-footer-links__grid{
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:.75rem;
}
.ew-destination-footer-links__grid a{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:.75rem;
	padding:1rem 1.1rem;
	border:1px solid rgba(255,255,255,.2);
	border-radius:16px;
	background:rgba(255,255,255,.1);
	color:#fff;
	font-weight:750;
	text-decoration:none;
	backdrop-filter:blur(8px);
	transition:transform .18s ease,background .18s ease,border-color .18s ease;
}
.ew-destination-footer-links__grid a:hover{
	transform:translateY(-2px);
	background:rgba(255,255,255,.17);
	border-color:rgba(255,255,255,.42);
	color:#fff;
}
.ew-destination-footer-links__grid a span{font-size:1.15rem;opacity:.75}
@media(max-width:760px){
	.ew-destination-footer-links__inner{grid-template-columns:1fr;padding:2.2rem 1.1rem}
	.ew-destination-footer-links__grid{grid-template-columns:1fr}
}


/* ========================================================================
   Editorial swim stories / experiences
   ======================================================================== */
.section-eyebrow{
	display:block;font-size:.68rem;font-weight:850;letter-spacing:.17em;color:var(--aqua-dark);margin-bottom:.45rem;text-transform:uppercase
}
.stories-section{margin-top:4.5rem;padding:3rem 0 0;border-top:1px solid var(--line)}
.stories-section__heading{display:flex;justify-content:space-between;align-items:end;gap:2rem;margin-bottom:1.5rem}
.stories-section__heading h2{margin:0;color:var(--navy);font-size:clamp(1.8rem,3vw,2.6rem)}
.stories-section__heading p{max-width:720px;color:var(--muted);margin:.45rem 0 0}
.stories-section__all,.story-card__read{color:var(--aqua-dark);font-weight:850;text-decoration:none;white-space:nowrap}
.stories-section__all:hover,.story-card__read:hover{color:var(--blue)}
.story-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
.story-card{background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:var(--shadow-soft);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.story-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:#a8dce6}
.story-card__image{display:block;aspect-ratio:16/9;background:linear-gradient(135deg,#07516a,#00a9c7);overflow:hidden}
.story-card__image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s ease}
.story-card:hover .story-card__image img{transform:scale(1.045)}
.story-card__placeholder{height:100%;display:grid;place-items:center;background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.22),transparent 20%),linear-gradient(135deg,#063a52,#00a9c7);color:#fff}
.story-card__placeholder span{font-family:var(--display);font-weight:900;font-size:2rem;letter-spacing:.08em;opacity:.9}
.story-card__body{padding:1.15rem 1.2rem 1.3rem}
.story-card__body h2,.story-card__body h3{margin:.45rem 0 .35rem;font-size:1.25rem;line-height:1.12}
.story-card__body h2 a,.story-card__body h3 a{color:var(--navy);text-decoration:none}
.story-card__body h2 a:hover,.story-card__body h3 a:hover{color:var(--aqua-dark)}
.story-card__body p{color:var(--muted);margin:.55rem 0 1rem}
.story-card__read{display:inline-flex;gap:.4rem;align-items:center;font-size:.88rem}
.story-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin:0 0 .45rem}
.story-tags a{display:inline-flex;padding:.28rem .52rem;border-radius:999px;background:var(--foam);border:1px solid #cfe8ee;color:var(--aqua-dark);font-size:.68rem;font-weight:800;text-decoration:none}
.story-tags a:hover{background:#e0f7fa;border-color:#9ed6e0}
.story-grid--archive{margin:1.5rem 0 2rem}
.stories-page__hero{background:linear-gradient(135deg,#04344d,#087f92 58%,#10a7b6);color:#fff;padding:clamp(3rem,7vw,5.5rem) clamp(1rem,5vw,5rem)}
.stories-page__hero-inner{max-width:1200px;margin:0 auto}
.stories-page__hero .section-eyebrow{color:#a9f5f3}
.stories-page__hero h1{color:#fff;font-size:clamp(2.5rem,6vw,5rem);margin:0;line-height:.98}
.stories-page__hero p{max-width:760px;color:rgba(255,255,255,.84);font-size:1.08rem;margin:1rem 0 0}
.stories-page__content{padding-top:2.5rem;padding-bottom:4rem}
.stories-empty{padding:3rem;background:#fff;border:1px solid var(--line);border-radius:22px;text-align:center}
.story-article{max-width:1100px;margin:0 auto}
.story-article__header{padding:2rem 0 1.25rem}
.story-article__header h1{font-size:clamp(2.4rem,6vw,5rem);line-height:1;max-width:980px;margin:.2rem 0 1rem;color:var(--navy)}
.story-article__header .post-meta{margin-top:.75rem}
.story-article__hero{margin:0 0 2.25rem;border-radius:24px;overflow:hidden;box-shadow:var(--shadow);background:#dff7fb}
.story-article__hero img{display:block;width:100%;height:auto;max-height:700px;object-fit:cover}
.story-article__content{max-width:820px;margin:0 auto;font-size:1.08rem;line-height:1.8}
.story-article__content h2{margin-top:2.5rem}
.related-stories{margin:4rem 0 1rem;padding-top:2.5rem;border-top:1px solid var(--line)}
.pagination{margin:2rem 0}
.pagination .nav-links,.pagination ul{display:flex;flex-wrap:wrap;gap:.45rem;list-style:none;padding:0}
.pagination a,.pagination span{display:inline-flex;padding:.55rem .75rem;border:1px solid var(--line);border-radius:10px;text-decoration:none;background:#fff;color:var(--navy);font-weight:700}
.pagination .current{background:var(--navy);color:#fff;border-color:var(--navy)}
@media(max-width:900px){.story-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.stories-section__heading{align-items:flex-start;flex-direction:column;gap:.75rem}.story-grid{grid-template-columns:1fr}.stories-page__content{padding-top:1.5rem}.story-article__header{padding-top:1.25rem}.story-article__hero{border-radius:18px}.story-article__content{font-size:1rem}}


/* Blog posts: Europe Watch is an experience-led publication, not an author profile site. */
.single-post .author,
.single-post .byline,
.single-post .post-author,
.single-post .post-meta .author,
.single-post .entry-meta .author,
.single-post .entry-meta .byline,
.single-post [class*="author"],
.single-post [class*="byline"] {
    display: none !important;
}


/* Ensure the homepage hero title remains legible over every slide image. */
.site-header__slider-caption--home h1 {
	color: #fff !important;
	text-shadow: 0 3px 18px rgba(0, 0, 0, .55);
}


/* Compact language flags in the primary navigation. */
.main-nav .lang-item a { display: inline-grid; place-items: center; min-width: 1.65rem; font-size: 0; line-height: 1; text-decoration: none; }
.main-nav .lang-item a::before { font-size: 1.15rem; line-height: 1; filter: drop-shadow(0 1px 1px rgba(0,0,0,.18)); }
.main-nav .lang-item-en a::before { content: '🇬🇧'; }
.main-nav .lang-item-es a::before { content: '🇪🇸'; }
.main-nav .lang-item-de a::before { content: '🇩🇪'; }
.main-nav .lang-item-fr a::before { content: '🇫🇷'; }
.main-nav .lang-item-nl a::before { content: '🇳🇱'; }
.main-nav .lang-item.current-lang a::before { filter: drop-shadow(0 0 0.2rem rgba(255,255,255,.75)); }
