/* =========================================================
   Webto tema — global stylesheet
   Lillebælt Naturistcamping. Brand: marine blue + sun gold.
   Brand tokens are mapped onto the Theme Settings palette
   variables (--webto-color-*) so colours stay editable under
   Udseende > Theme Settings.
   ========================================================= */

:root {
	/* Theme Settings palette fallbacks (overwritten by dynamic CSS) */
	--webto-color-1: #20407c;
	--webto-color-2: #162c54;
	--webto-color-3: #e8a838;
	--webto-color-4: #f8f4ec;
	--webto-color-5: #ffffff;
	--webto-color-6: #1f2530;
	--webto-color-7: #838a97;
	--webto-color-8: #e0d8c8;
	--webto-color-9: #6f9b54;
	--webto-color-10: #cd7b45;
	--webto-color-primary: var(--webto-color-1);
	--webto-color-secondary: var(--webto-color-2);
	--webto-color-accent: var(--webto-color-3);
	--webto-color-background: var(--webto-color-4);
	--webto-color-surface: var(--webto-color-5);
	--webto-color-text: var(--webto-color-6);
	--webto-color-muted: var(--webto-color-7);
	--webto-color-border: var(--webto-color-8);
	--webto-color-success: var(--webto-color-9);
	--webto-color-danger: var(--webto-color-10);
	--webto-font-family: "Hanken Grotesk", system-ui, -apple-system, sans-serif;

	/* ---- Brand semantic tokens (mapped to the palette) ---- */
	--marine: var(--webto-color-primary);
	--marine-deep: var(--webto-color-secondary);
	--marine-soft: #4f6fa6;
	--sun: var(--webto-color-accent);
	--sun-soft: #f3cd82;
	--terra: var(--webto-color-danger);
	--green: var(--webto-color-success);

	--bg: var(--webto-color-background);
	--bg-alt: #efe8da;
	--bg-cool: #e9eef2;
	--surface: var(--webto-color-surface);
	--ink: var(--webto-color-text);
	--ink-2: #4b5360;
	--muted: var(--webto-color-muted);
	--line: rgba(31, 37, 48, .12);
	--line-soft: rgba(31, 37, 48, .07);

	--accent: var(--sun);
	--accent-line: var(--terra);

	/* ---- Type ---- */
	--serif: "Spectral", Georgia, "Times New Roman", serif;
	--sans: var(--webto-font-family);
	--mono: var(--sans);

	/* ---- Metrics ---- */
	--maxw: 1240px;
	--gutter: clamp(20px, 5vw, 64px);
	--radius: 4px;
	--radius-lg: 8px;
	--webto-radius: var(--radius);

	--shadow-sm: 0 1px 2px rgba(22, 28, 40, .06), 0 2px 8px rgba(22, 28, 40, .05);
	--shadow: 0 6px 24px rgba(22, 28, 40, .10), 0 2px 6px rgba(22, 28, 40, .06);
	--shadow-lg: 0 22px 60px rgba(22, 28, 40, .16);
	--ease: cubic-bezier(.22, .61, .36, 1);
}

*,
*::before,
*::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: 96px;
}

body {
	margin: 0;
	background: var(--bg);
	color: var(--ink);
	font-family: var(--sans);
	font-size: 17px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

img,
svg,
video {
	display: block;
	max-width: 100%;
	height: auto;
}

button,
input,
textarea,
select { font: inherit; }

a {
	color: var(--marine);
	text-decoration: none;
}

h1, h2, h3, h4 {
	font-family: var(--serif);
	font-weight: 500;
	line-height: 1.08;
	letter-spacing: -.01em;
	margin: 0;
	text-wrap: balance;
	color: var(--ink);
}

p { margin: 0 0 1em; text-wrap: pretty; }
p:last-child { margin-bottom: 0; }

:where(a, button, input, textarea, select):focus-visible {
	outline: 3px solid var(--accent);
	outline-offset: 3px;
	border-radius: 2px;
}

/* ---- Accessibility helpers ---- */
.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
.screen-reader-text:focus,
.skip-link:focus {
	top: 1rem;
	left: 1rem;
	z-index: 100000;
	display: block;
	width: auto;
	height: auto;
	padding: .75rem 1rem;
	clip: auto;
	background: var(--marine-deep);
	color: #fff;
}

/* ---- Layout ---- */
.container {
	width: 100%;
	max-width: var(--maxw);
	margin-inline: auto;
	padding-inline: var(--gutter);
}

.section { padding: clamp(64px, 9vw, 124px) 0; }
.section--alt { background: var(--bg-alt); }
.section--cool { background: var(--bg-cool); }

.eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	font-family: var(--mono);
	font-size: 12.5px;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--ink-2);
	margin: 0 0 18px;
}
.eyebrow::before {
	content: "";
	width: 34px;
	height: 2px;
	background: var(--accent-line);
}
.eyebrow.center { justify-content: center; }

.section-head { max-width: 720px; margin-bottom: clamp(22px, 2.6vw, 36px); }
.section-head.center { margin-inline: auto; text-align: center; }
.section-head h2 { font-size: clamp(30px, 4.2vw, 50px); }
.section-head .lead {
	margin-top: 18px;
	font-size: clamp(17px, 1.6vw, 19px);
	color: var(--ink-2);
}

/* ---- Buttons ---- */
.btn {
	--btn-bg: var(--marine);
	--btn-fg: #fff;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--sans);
	font-weight: 600;
	font-size: 14.5px;
	letter-spacing: .02em;
	padding: 14px 26px;
	border-radius: 100px;
	background: var(--btn-bg);
	color: var(--btn-fg);
	border: 1.5px solid var(--btn-bg);
	cursor: pointer;
	transition: transform .25s var(--ease), background .25s, color .25s, box-shadow .25s;
}
.btn:hover { transform: translateY(-2px); box-shadow: var(--shadow); color: var(--btn-fg); }
.btn .arr { transition: transform .25s var(--ease); }
.btn:hover .arr { transform: translateX(4px); }
.btn--light { --btn-bg: #fff; --btn-fg: var(--marine-deep); }
.btn--outline-light {
	--btn-bg: transparent;
	--btn-fg: #fff;
	border-color: rgba(255, 255, 255, .55);
}
.btn--outline-light:hover { background: rgba(255, 255, 255, .12); border-color: #fff; }

.tlink {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	font-weight: 600;
	font-size: 15px;
	color: var(--marine);
	border-bottom: 1.5px solid transparent;
	padding-bottom: 2px;
	transition: gap .25s var(--ease), border-color .25s;
}
.tlink .arr { transition: transform .25s var(--ease); }
.tlink:hover { border-color: var(--accent-line); color: var(--marine); }
.tlink:hover .arr { transform: translateX(4px); }
.tlink--light { color: #fff; }
.tlink--light:hover { border-color: var(--sun); color: #fff; }

/* =========================================================
   Topbar
   ========================================================= */
.topbar {
	background: var(--marine-deep);
	color: #f4ead2;
	font-size: 13px;
	letter-spacing: .04em;
	position: relative;
	z-index: 70;
}
.topbar__inner {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	min-height: 40px;
	text-align: center;
}
.topbar .star { color: var(--sun); }

/* =========================================================
   Header / nav
   ========================================================= */
.site-header {
	position: sticky;
	top: 0;
	z-index: 60;
	background: rgba(248, 244, 236, .92);
	backdrop-filter: blur(12px);
	border-bottom: 1px solid var(--line);
	transition: background .35s var(--ease), box-shadow .35s, color .35s;
}
.site-header__inner {
	display: flex;
	align-items: center;
	gap: 24px;
	min-height: 72px;
	padding-block: 10px;
}
.site-branding { flex-shrink: 0; }
.brand-link { display: inline-flex; align-items: center; gap: 13px; }
.brand-logo { display: inline-flex; }
.brand-logo img { width: 46px; height: 46px; object-fit: contain; }
.brand-logo .logo--light { display: none; }
.brand-text { line-height: 1.05; margin-bottom: -8px; }
.brand-text b {
	display: block;
	font-family: var(--serif);
	font-weight: 600;
	font-size: 18px;
	letter-spacing: .01em;
	color: var(--ink);
}
.brand-text span {
	font-family: var(--mono);
	font-size: 9.5px;
	letter-spacing: .26em;
	text-transform: uppercase;
	color: var(--muted);
}

.primary-navigation { margin-left: auto; display: flex; align-items: center; }
.primary-menu {
	display: flex;
	align-items: center;
	gap: 28px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.primary-menu li { position: relative; }
.primary-menu a {
	display: inline-flex;
	align-items: center;
	font-size: 14.5px;
	font-weight: 500;
	color: var(--ink-2);
	padding: 6px 0;
	transition: color .25s;
}
.primary-menu > li > a::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 0;
	height: 2px;
	background: var(--accent);
	transition: width .28s var(--ease);
}
.primary-menu > li > a:hover::after,
.primary-menu > li.current-menu-item > a::after { width: 100%; }
.primary-menu a:hover,
.primary-menu .current-menu-item > a { color: var(--ink); }

/* dropdowns */
.primary-menu .sub-menu {
	position: absolute;
	top: 100%;
	left: -16px;
	min-width: 210px;
	margin: 0;
	padding: 8px;
	list-style: none;
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow);
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity .2s var(--ease), transform .2s var(--ease), visibility .2s;
	z-index: 5;
}
.primary-menu .sub-menu .sub-menu { top: -9px; left: 100%; }
.primary-menu li:hover > .sub-menu,
.primary-menu li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.primary-menu .sub-menu a {
	display: flex;
	justify-content: space-between;
	gap: 14px;
	padding: 9px 12px;
	border-radius: var(--radius);
	font-size: 14px;
	color: var(--ink-2);
}
.primary-menu .sub-menu a:hover { background: var(--bg-alt); color: var(--ink); }
.primary-menu .menu-item-has-children > a { gap: 6px; }
.primary-menu > .menu-item-has-children > a::before {
	content: "";
}

.header-cta { margin-left: 8px; flex-shrink: 0; }

.menu-toggle {
	display: none;
	margin-left: auto;
	align-items: center;
	gap: 8px;
	background: var(--bg-alt);
	border: 1px solid var(--line);
	color: var(--ink);
	border-radius: 100px;
	padding: 9px 16px;
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
}
.menu-toggle__bars {
	position: relative;
	display: block;
	width: 16px;
	height: 2px;
	background: currentColor;
}
.menu-toggle__bars::before,
.menu-toggle__bars::after {
	content: "";
	position: absolute;
	left: 0;
	width: 16px;
	height: 2px;
	background: currentColor;
}
.menu-toggle__bars::before { top: -5px; }
.menu-toggle__bars::after { top: 5px; }

/* Home: transparent header floating over the hero */
body.home .site-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	background: transparent;
	backdrop-filter: none;
	border-bottom-color: transparent;
	transition: background .35s var(--ease), box-shadow .35s, color .35s, top .35s var(--ease);
}
body.home .site-header .brand-text b { color: #fff; }
body.home .site-header .brand-text span { color: rgba(255, 255, 255, .72); }
body.home .site-header .brand-logo .logo--dark { display: none; }
body.home .site-header .brand-logo .logo--light { display: inline-flex; }
body.home .site-header .primary-menu > li > a { color: rgba(255, 255, 255, .92); }
body.home .site-header .primary-menu > li > a:hover { color: #fff; }
body.home .site-header .menu-toggle {
	background: rgba(255, 255, 255, .14);
	border-color: rgba(255, 255, 255, .4);
	color: #fff;
}

/* Home scrolled: solidify */
body.home .site-header.scrolled {
	position: fixed;
	top: 0;
	background: rgba(248, 244, 236, .92);
	backdrop-filter: blur(12px);
	box-shadow: 0 1px 0 var(--line), var(--shadow-sm);
}
body.home .site-header.scrolled .brand-text b { color: var(--ink); }
body.home .site-header.scrolled .brand-text span { color: var(--muted); }
body.home .site-header.scrolled .brand-logo .logo--dark { display: inline-flex; }
body.home .site-header.scrolled .brand-logo .logo--light { display: none; }
body.home .site-header.scrolled .primary-menu > li > a { color: var(--ink-2); }
body.home .site-header.scrolled .primary-menu > li > a:hover { color: var(--ink); }
body.home .site-header.scrolled .menu-toggle {
	background: var(--bg-alt);
	border-color: var(--line);
	color: var(--ink);
}
body.home .site-header.scrolled .btn--outline-light {
	--btn-fg: var(--marine);
	border-color: var(--line);
}
body.home .site-header.scrolled .btn--outline-light:hover { background: var(--marine); --btn-fg: #fff; }

/* =========================================================
   Site main / inner pages
   ========================================================= */
.site-main { display: block; }
.content-area { padding-block: clamp(48px, 7vw, 96px); }
.entry { max-width: 820px; margin-inline: auto; }
.entry-header { margin-bottom: 1.5rem; }
.entry-title { font-size: clamp(32px, 5vw, 52px); }
.entry-thumbnail { margin-block: 2rem; border-radius: var(--radius-lg); overflow: hidden; }
.entry-content > * { margin-block: 0 1.1em; }
.entry-content .alignwide { width: min(100% + 12vw, var(--maxw)); margin-inline: auto; }
.entry-content .alignfull { width: 100vw; max-width: 100vw; margin-inline: calc(50% - 50vw); }
.wp-block-image img { border-radius: var(--radius); }
.page-links, .nav-links { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2rem; }
.nav-links a, .page-numbers { display: inline-flex; align-items: center; min-height: 44px; }

/* =========================================================
   Footer
   ========================================================= */
.site-footer { background: var(--marine-deep); color: rgba(255, 255, 255, .74); padding-top: 72px; }
.site-footer a { color: rgba(255, 255, 255, .82); }
.footer__top {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 1fr;
	gap: 40px;
	padding-bottom: 52px;
}
.footer__brand .footer-logo { display: flex; align-items: center; gap: 13px; margin-bottom: 18px; }
.footer__brand .footer-logo img { width: 50px; height: 50px; object-fit: contain; }
.footer__brand .footer-logo b { font-family: var(--serif); font-size: 20px; color: #fff; }
.footer__brand .footer-logo span {
	font-family: var(--mono);
	font-size: 9.5px;
	letter-spacing: .24em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .6);
	display: block;
}
.footer__brand p { font-size: 14.5px; max-width: 34ch; }
.footer__col h2 {
	font-family: var(--mono);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--sun-soft);
	margin-bottom: 18px;
}
.footer__col ul, .footer-menu { list-style: none; margin: 0; padding: 0; display: grid; gap: 11px; }
.footer__col a, .footer-menu a { font-size: 14.5px; transition: color .2s, padding-left .2s; }
.footer__col a:hover, .footer-menu a:hover { color: #fff; padding-left: 4px; }
.footer__contact { font-style: normal; display: grid; gap: 11px; font-size: 14.5px; }
.footer__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	align-items: center;
	padding: 26px 0;
	border-top: 1px solid rgba(255, 255, 255, .12);
}
.badge {
	display: flex;
	align-items: center;
	gap: 9px;
	border: 1px solid rgba(255, 255, 255, .18);
	border-radius: 100px;
	padding: 8px 16px;
	font-size: 12.5px;
	font-family: var(--mono);
	letter-spacing: .06em;
	color: rgba(255, 255, 255, .82);
}
.badge .suns { color: var(--sun); }
.footer__bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	padding: 24px 0 36px;
	border-top: 1px solid rgba(255, 255, 255, .12);
	font-size: 13px;
	flex-wrap: wrap;
}
.footer__bottom .credit a { color: var(--sun-soft); font-weight: 600; border-bottom: 1px solid transparent; transition: border-color .2s; }
.footer__bottom .credit a:hover { border-color: var(--sun-soft); }

/* =========================================================
   Reveal on scroll (only when JS active)
   ========================================================= */
.js .reveal { opacity: 0; transform: translateY(26px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
.js .reveal.in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
	* { scroll-behavior: auto !important; }
	.js .reveal { opacity: 1; transform: none; transition: none; }
	[data-parallax] { transform: none !important; }
}

/* =========================================================
   Responsive — header / footer
   ========================================================= */
@media (max-width: 1080px) {
	.footer__top { grid-template-columns: 1fr 1fr; }
}
/* =========================================================
   Mobile navigation (≤ 860px)
   Hamburger opens a full-width drop panel. Each parent LI gets
   a per-item toggle button injected by mobile-menu.js;
   .submenu-open on the LI expands its submenu inline below.
   ========================================================= */
.primary-menu .submenu-toggle {
	display: none; /* desktop: dropdowns are hover-driven */
	background: transparent;
	border: 0;
	color: inherit;
	cursor: pointer;
	padding: 0;
}
.primary-menu .submenu-toggle__icon {
	display: inline-block;
	font-size: 14px;
	line-height: 1;
	transition: transform .25s var(--ease);
}
.primary-menu .menu-item-has-children.submenu-open > .submenu-toggle .submenu-toggle__icon {
	transform: rotate(180deg);
}

@media (max-width: 860px) {
	.primary-navigation { margin-left: auto; }
	.primary-menu { display: none; }
	.menu-toggle { display: inline-flex; }
	.header-cta { display: none; }

	/* When hamburger is open: full-width drop panel */
	.primary-navigation.is-open .primary-menu {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		position: fixed;
		top: 72px;
		left: 0;
		right: 0;
		max-height: calc(100vh - 72px);
		overflow-y: auto;
		overscroll-behavior: contain;
		background: var(--surface);
		padding: 0;
		box-shadow: var(--shadow);
		z-index: 80;
	}
	body:not(.home) .primary-navigation.is-open .primary-menu { top: 72px; }

	/* Link takes the full row */
	.primary-navigation.is-open .primary-menu a {
		display: block;
		color: var(--ink) !important;
		padding: 14px 24px;
		font-size: 15.5px;
		border-bottom: 1px solid var(--line-soft);
	}

	/* Parent LI is a flex row so the toggle aligns perfectly with the
	   anchor (same height via align-items: stretch), no separate border
	   line under the icon. Submenu wraps to its own row when expanded. */
	.primary-navigation.is-open .primary-menu .menu-item-has-children {
		display: flex;
		flex-wrap: wrap;
	}
	.primary-navigation.is-open .primary-menu .menu-item-has-children > a {
		flex: 1 1 auto;
		min-width: 0;
	}
	.primary-navigation.is-open .primary-menu .menu-item-has-children > .submenu-toggle {
		flex: 0 0 56px;
	}

	/* Toggle button: flex sibling of the anchor, stretches to row height. */
	.primary-menu .submenu-toggle {
		display: flex;
		align-items: center;
		justify-content: center;
		color: var(--ink-2);
		border-bottom: 1px solid var(--line-soft);
	}
	.primary-menu .submenu-toggle:focus-visible {
		outline: 2px solid var(--accent);
		outline-offset: -4px;
	}
	.primary-menu .submenu-toggle:active { background: var(--bg-alt); }

	/* Submenu: collapsed by default; expands on .submenu-open */
	.primary-navigation.is-open .primary-menu .sub-menu {
		display: none;
		position: static;
		opacity: 1;
		visibility: visible;
		transform: none;
		margin: 0;
		padding: 0;
		border: 0;
		border-radius: 0;
		box-shadow: none;
		background: var(--bg-alt);
		list-style: none;
	}
	.primary-navigation.is-open .primary-menu .menu-item-has-children.submenu-open > .sub-menu {
		display: block;
		flex-basis: 100%;
		width: 100%;
	}
	.primary-navigation.is-open .primary-menu .sub-menu a {
		padding-left: 40px;
		font-size: 14.5px;
		border-bottom: 1px solid var(--line);
	}
	.primary-navigation.is-open .primary-menu .sub-menu .sub-menu a {
		padding-left: 56px;
		font-size: 14px;
	}

	/* Brand title wraps to longest word and centers vertically vs logo */
	.brand-text {
		display: flex;
		flex-direction: column;
		justify-content: center;
		min-height: 46px;
	}
	.brand-text b {
		max-width: min-content;
	}
}
@media (max-width: 560px) {
	.footer__top { grid-template-columns: 1fr; gap: 28px; }
	.brand-text span { display: none; }
}

/* Subpage tweaks (Markup feedback round 1) */
@media (max-width: 860px) {
	/* Hide parent-breadcrumb eyebrow on inner-page hero (#5) */
	.page-hero .eyebrow { display: none; }
}

/* Subpage header CTA: make button visible against the light beige header (#7) */
body:not(.home) .site-header .btn--outline-light {
	--btn-bg: var(--marine);
	--btn-fg: #fff;
	border-color: var(--marine);
}
body:not(.home) .site-header .btn--outline-light:hover {
	background: var(--marine-deep);
	border-color: var(--marine-deep);
	color: #fff;
}

/* Contact: lift first page-section ("Find vej") into a card (#11) */
.page--contact .page-section:first-of-type {
	background: var(--bg-alt);
	border-radius: var(--radius-lg);
	padding: clamp(28px, 4vw, 40px) clamp(28px, 4vw, 44px);
	box-shadow: var(--shadow-sm);
}
.page--contact .page-section:first-of-type + .page-section,
.page--contact .page-section:first-of-type ~ .contact-page__grid {
	margin-top: clamp(38px, 5vw, 60px);
}

/* =========================================================
   INNER PAGES (standard + kontakt)
   ========================================================= */
.page-hero{background:var(--bg-alt);padding:clamp(48px,8vw,84px) 0 clamp(36px,6vw,60px);position:relative;}
.page-hero .eyebrow{margin-bottom:14px;}
.page-hero .eyebrow a{color:inherit;border-bottom:1px solid transparent;}
.page-hero .eyebrow a:hover{border-color:currentColor;}
.page-hero__title{font-size:clamp(34px,5.5vw,58px);max-width:18ch;}
.page-hero__lead{margin-top:18px;max-width:62ch;font-size:clamp(17px,1.7vw,20px);color:var(--ink-2);}
.page-hero--image{color:#fff;background:var(--marine-deep);overflow:hidden;}
.page-hero--image .page-hero__bg{position:absolute;inset:0;z-index:0;}
.page-hero--image .page-hero__bg .media-fill{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.page-hero--image::after{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(to bottom,rgba(18,26,42,.5),rgba(15,22,36,.78));}
.page-hero--image .container{position:relative;z-index:2;}
.page-hero--image .page-hero__title{color:#fff;}
.page-hero--image .page-hero__lead{color:rgba(255,255,255,.9);}
.page-hero--image .eyebrow{color:rgba(255,255,255,.85);}
.page-body{padding:clamp(48px,7vw,84px) 0;}
.page-section{max-width:820px;margin-inline:auto;}
.page-section + .page-section{margin-top:clamp(38px,5vw,60px);}
.page-section > h2{font-size:clamp(26px,3.4vw,38px);margin-bottom:18px;}
.prose{font-size:17px;color:var(--ink-2);}
.prose > * + *{margin-top:1em;}
.prose h3{font-size:21px;color:var(--ink);margin-top:1.4em;}
.prose a{color:var(--marine);border-bottom:1px solid var(--accent-line);}
.prose a:hover{color:var(--marine-deep);}
.prose ul{list-style:none;padding-left:0;display:grid;gap:.5em;}
.prose ul > li{position:relative;padding-left:26px;}
.prose ul > li::before{content:'';position:absolute;left:0;top:.6em;width:8px;height:8px;border-radius:50%;background:var(--sun);}
.prose ol{padding-left:1.3em;display:grid;gap:.5em;}
.prose table{width:100%;border-collapse:collapse;margin:.5em 0;background:var(--surface);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);font-size:15.5px;}
.prose th,.prose td{text-align:left;padding:12px 18px;border-bottom:1px solid var(--line-soft);}
.prose thead th{background:var(--bg-alt);font-family:var(--mono);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);}
.prose td:last-child,.prose th:last-child{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;}
.prose tbody tr:last-child td{border-bottom:0;}
.prose .amount{color:var(--marine);font-weight:600;}
.contact-page__grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(32px,5vw,56px);align-items:start;margin-top:8px;}
.contact-page__side{display:grid;gap:24px;}
.contact-page__map{position:relative;min-height:320px;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);background:var(--bg-alt);}
.contact-page__map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.contact-details{background:var(--bg-alt);border-radius:var(--radius-lg);padding:24px 26px;}
.contact-details h2{font-size:20px;margin-bottom:14px;}
.contact-details address{font-style:normal;display:grid;gap:8px;font-size:15.5px;color:var(--ink-2);}
.contact-details address a{color:var(--marine);}
.contact-note{font-size:14.5px;color:var(--muted);}
.contact-form label{display:block;margin-bottom:14px;font-weight:600;font-size:14.5px;color:var(--ink);}
.contact-form input[type=text],.contact-form input[type=email],.contact-form input[type=tel],.contact-form textarea{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);margin-top:5px;font-weight:400;color:var(--ink);}
.contact-form textarea{min-height:140px;}
.contact-form input:focus-visible,.contact-form textarea:focus-visible{outline:3px solid var(--accent);outline-offset:2px;}
.contact-form input[type=submit],.contact-form .wpcf7-submit{display:inline-flex;align-items:center;gap:10px;font-weight:600;font-size:14.5px;letter-spacing:.02em;padding:14px 28px;border-radius:100px;background:var(--marine);color:#fff;border:1.5px solid var(--marine);cursor:pointer;transition:transform .25s var(--ease),box-shadow .25s;}
.contact-form input[type=submit]:hover,.contact-form .wpcf7-submit:hover{transform:translateY(-2px);box-shadow:var(--shadow);}
.wpcf7-response-output{margin:14px 0 0!important;border-radius:var(--radius);font-size:14.5px;}
@media (max-width:860px){.contact-page__grid{grid-template-columns:1fr;}}

.prose .cal td:last-child,.prose .cal th:last-child{text-align:left;white-space:normal;font-variant-numeric:normal;}
.prose .cal td:first-child{white-space:nowrap;font-weight:600;color:var(--marine);}

.footer__social{display:inline-flex;align-items:center;gap:9px;margin-top:18px;padding:9px 16px;border:1px solid rgba(255,255,255,.18);border-radius:100px;font-size:13.5px;font-weight:600;color:rgba(255,255,255,.85);transition:border-color .2s,color .2s;}
.footer__social:hover{border-color:var(--sun-soft);color:#fff;}
.footer__social svg{color:var(--sun-soft);}
.prose .downloads{list-style:none;padding:0;display:grid;gap:10px;}
.prose .downloads li{padding-left:0;}
.prose .downloads li::before{content:none;}
.prose .downloads a{display:inline-flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:100px;padding:11px 22px;font-weight:600;color:var(--marine);box-shadow:var(--shadow-sm);}
.prose .downloads a::before{content:'↓';font-weight:700;color:var(--sun);}
.prose .downloads a:hover{border-color:var(--marine);color:var(--marine-deep);}

/* Inner-page cards + gallery */
.page-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:clamp(40px,6vw,64px);}
.page-card{position:relative;display:flex;flex-direction:column;background:var(--surface);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .3s var(--ease),box-shadow .3s;}
.page-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);}
.page-card__media{position:relative;aspect-ratio:4/3;background-color:var(--marine);background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.06) 0 2px,rgba(255,255,255,0) 2px 13px),linear-gradient(160deg,var(--marine-soft),var(--marine-deep));}
.page-card__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.page-card__body{padding:22px 24px 24px;display:flex;flex-direction:column;gap:8px;flex:1;}
.page-card__body h3{font-size:22px;}
.page-card__body h3 a{color:var(--ink);}
.page-card:hover .page-card__title-link{color:var(--marine);}
.page-card__title-link::after{content:'';position:absolute;inset:0;z-index:1;}
.page-card__body p{font-size:15px;color:var(--ink-2);}
.page-card__link{margin-top:auto;padding-top:6px;font-weight:600;font-size:14.5px;color:var(--marine);display:inline-flex;align-items:center;gap:8px;}
.page-card:hover .page-card__link .arr{transform:translateX(4px);}
.page-card__link .arr{transition:transform .25s var(--ease);}
.page-gallery-block{margin-top:clamp(38px,5vw,60px);}
.page-gallery-title{font-size:clamp(26px,3.4vw,38px);margin-bottom:18px;}
.page-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;}
.page-gallery a{display:block;border-radius:var(--radius);overflow:hidden;aspect-ratio:4/3;box-shadow:var(--shadow-sm);}
.page-gallery img{width:100%;height:100%;object-fit:cover;transition:transform .4s var(--ease);}
.page-gallery a:hover img{transform:scale(1.05);}
.table-scroll{overflow-x:auto;}
.table-scroll table{min-width:560px;}
@media(max-width:860px){.page-cards{grid-template-columns:1fr;}}

