:root {
	--hsw-petrol: #0d565c;
	--hsw-petrol-dark: #073f44;
	--hsw-petrol-soft: #e9f1f0;
	--hsw-gold: #caa46a;
	--hsw-sand: #f3eee5;
	--hsw-ink: #183033;
	--hsw-muted: #637375;
	--hsw-white: #fff;
	--hsw-content: 1440px;
	--hsw-line: rgba(24,48,51,.14);
	--hsw-shadow: 0 28px 70px rgba(7,63,68,.14);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	background: #fbfaf7;
	color: var(--hsw-ink);
	font-family: Arial, Helvetica, sans-serif;
	-webkit-font-smoothing: antialiased;
}
body.hsw-menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; }
.hsw-skip-link {
	position: fixed; left: 20px; top: -100px; z-index: 1000;
	padding: 12px 18px; background: var(--hsw-petrol-dark); color: white;
}
.hsw-skip-link:focus { top: 15px; }

.hsw-service-bar {
	min-height: 34px; padding: 0 4.5vw; display: flex; align-items: center;
	justify-content: space-between; gap: 28px; background: var(--hsw-petrol-dark);
	color: rgba(255,255,255,.78); font-size: 10px; font-weight: 700;
	letter-spacing: .1em; text-transform: uppercase;
}
.hsw-service-bar p { margin: 0; }
.hsw-service-bar nav { display: flex; align-items: center; gap: 24px; }
.hsw-service-bar a { transition: color .2s ease; }
.hsw-service-bar a:hover, .hsw-service-bar a:focus-visible { color: #e4c895; }

.hsw-site-header {
	height: 86px; padding: 0 4.5vw; display: flex; align-items: center; gap: 42px;
	background: rgba(255,255,255,.94); border-bottom: 1px solid rgba(24,48,51,.08);
	position: sticky; top: 0; z-index: 100; backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
}
.hsw-site-header.is-scrolled { box-shadow: 0 12px 34px rgba(7,63,68,.1); }
.hsw-brand, .hsw-footer-brand { display: flex; align-items: center; gap: 13px; margin-right: auto; }
.hsw-brand-mark {
	width: 48px; height: 48px; border: 1px solid var(--hsw-gold); border-radius: 50%;
	color: var(--hsw-gold); display: grid; place-items: center; flex: 0 0 auto;
	font: 600 25px Georgia, serif;
}
.hsw-logo, .hsw-logo .custom-logo-link { display: block; line-height: 0; }
.hsw-logo img { width: 56px; height: 56px; object-fit: contain; }
.hsw-logo-fallback img { width: 58px; height: 58px; }
.hsw-brand-copy strong, .hsw-footer-brand strong {
	display: block; color: var(--hsw-petrol); font: 600 20px Georgia, serif;
}
.hsw-brand-copy small, .hsw-footer-brand small {
	display: block; margin-top: 2px; color: var(--hsw-muted); font-size: 10px;
	letter-spacing: .08em; text-transform: uppercase;
}
.hsw-main-navigation { margin-left: auto; }
.hsw-nav-list, .hsw-main-navigation ul { display: flex; gap: 32px; margin: 0; padding: 0; list-style: none; font-size: 13px; font-weight: 700; }
.hsw-main-navigation li { position: relative; }
.hsw-main-navigation a { display: block; padding: 14px 0; transition: color .2s; }
.hsw-main-navigation a:hover, .hsw-main-navigation a:focus-visible { color: var(--hsw-gold); }
.hsw-main-navigation .sub-menu {
	display: none; position: absolute; top: 100%; left: -22px; min-width: 230px;
	padding: 12px 22px; background: white; box-shadow: 0 18px 35px rgba(0,0,0,.15);
}
.hsw-main-navigation li:hover > .sub-menu,
.hsw-main-navigation li:focus-within > .sub-menu { display: block; }
.hsw-main-navigation .sub-menu li { width: 100%; }
.hsw-main-navigation .sub-menu a { padding: 9px 0; }
.hsw-menu-toggle { display: none; }

.hsw-button {
	display: inline-flex; align-items: center; justify-content: center; gap: 18px;
	min-height: 54px; padding: 0 25px; border: 1px solid var(--hsw-petrol);
	background: var(--hsw-petrol); color: #fff; font-size: 13px; font-weight: 700;
	letter-spacing: .02em; cursor: pointer; transition: transform .2s, background .2s;
}
.hsw-button:hover, .hsw-button:focus-visible { transform: translateY(-2px); background: var(--hsw-petrol-dark); }
.hsw-button-small { min-height: 43px; padding: 0 18px; }
.hsw-button-gold { background: var(--hsw-gold); border-color: var(--hsw-gold); color: #172f31; }
.hsw-button-gold:hover, .hsw-button-gold:focus-visible { background: #d8b77e; }
.hsw-button-outline { background: transparent; border-color: rgba(255,255,255,.45); }
.hsw-text-link {
	display: inline-flex; gap: 12px; align-items: center; font-size: 13px;
	font-weight: 700; border-bottom: 1px solid currentColor; padding-bottom: 6px;
}
.hsw-light { color: #fff !important; }
.hsw-eyebrow {
	color: var(--hsw-petrol); font-size: 11px; font-weight: 800;
	letter-spacing: .18em; text-transform: uppercase; margin: 0 0 21px;
}

.hsw-hero {
	min-height: min(850px, calc(100vh - 34px)); position: relative; display: flex;
	align-items: center; overflow: hidden; isolation: isolate; background: #062f33;
}
.hsw-hero::before {
	content: ""; position: absolute; inset: 0; z-index: -1; opacity: .22;
	background:
		linear-gradient(115deg, transparent 0 46%, rgba(255,255,255,.12) 46.1% 46.25%, transparent 46.35%),
		radial-gradient(circle at 18% 20%, rgba(202,164,106,.24), transparent 30%);
}
.hsw-hero-media {
	position: absolute; inset: 0 0 0 38%; z-index: -2;
	background: #24484c var(--hsw-hero-image) 52% center / cover no-repeat;
}
.hsw-hero-media::after {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(90deg,rgba(6,47,51,.98) 0%,rgba(6,47,51,.62) 23%,rgba(6,47,51,.05) 62%);
}
.hsw-hero-media span {
	position: absolute; z-index: 2; right: 34px; top: 33px; padding: 10px 13px;
	border: 1px solid rgba(255,255,255,.45); color: white; background: rgba(6,47,51,.35);
	font-size: 9px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase;
	backdrop-filter: blur(8px);
}
.hsw-hero-shade {
	position: absolute; inset: 0; z-index: -1;
	background: linear-gradient(90deg,rgba(3,38,41,.98) 0%,rgba(4,48,51,.88) 37%,rgba(4,48,51,.24) 68%,rgba(4,34,36,.04) 100%);
}
.hsw-hero-content { position: relative; z-index: 2; width: min(715px,88vw); margin-left: 7vw; padding: 100px 0 150px; color: #fff; }
.hsw-hero h1 {
	font: 500 clamp(52px,6.35vw,94px)/.94 Georgia,serif; letter-spacing: -.05em; margin: 0;
}
.hsw-hero h1 em { color: #dfc18f; font-weight: 400; }
.hsw-hero-copy { max-width: 570px; margin: 32px 0 34px; font-size: 17px; line-height: 1.72; color: rgba(255,255,255,.88); }
.hsw-hero-actions { display: flex; align-items: center; gap: 32px; }
.hsw-hero-year {
	position: absolute; right: 5vw; bottom: 122px; z-index: 2; color: white; text-align: right;
	text-shadow: 0 3px 24px rgba(0,0,0,.28);
}
.hsw-hero-year small {
	display: block; margin-bottom: 5px; font-size: 9px; font-weight: 800;
	letter-spacing: .18em; text-transform: uppercase;
}
.hsw-hero-year strong { font: 500 58px/.9 Georgia,serif; color: #e1c18d; }
.hsw-hero-facts {
	position: absolute; bottom: 0; right: 0; z-index: 3; min-width: 58%;
	display: grid; grid-template-columns: repeat(3,1fr); background: rgba(255,255,255,.95);
	color: var(--hsw-ink); padding: 27px 4vw; font: 14px Georgia,serif;
	box-shadow: 0 -20px 50px rgba(7,63,68,.12); backdrop-filter: blur(14px);
}
.hsw-hero-facts span { padding: 2px 28px; border-left: 1px solid #d6dcda; }
.hsw-hero-facts span:first-child { border: 0; }
.hsw-hero-facts b {
	color: var(--hsw-gold); display: block; text-transform: uppercase;
	letter-spacing: .12em; font: 700 9px Arial,sans-serif; margin-bottom: 5px;
}

.hsw-section { padding: 112px max(8vw, calc((100vw - var(--hsw-content)) / 2)); }
.hsw-intro { display: grid; grid-template-columns: 1.1fr .9fr; gap: 12vw; align-items: end; }
.hsw-section h2, .hsw-cta h2, .hsw-day-content h2 {
	font: 500 clamp(39px,4.4vw,67px)/1.05 Georgia,serif; letter-spacing: -.035em; margin: 0;
}
.hsw-intro-copy p { font: 20px/1.65 Georgia,serif; margin: 0 0 28px; color: #44595b; }
.hsw-pillars { padding-top: 0; display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; }
.hsw-pillars article {
	position: relative; min-height: 315px; padding: 42px; border: 1px solid #dde3df;
	background: white; overflow: hidden; transition: transform .3s ease, box-shadow .3s ease;
}
.hsw-pillars article::after {
	content: ""; position: absolute; left: 0; right: 100%; bottom: 0; height: 4px;
	background: var(--hsw-gold); transition: right .35s ease;
}
.hsw-pillars article:hover { z-index: 2; transform: translateY(-6px); box-shadow: var(--hsw-shadow); }
.hsw-pillars article:hover::after { right: 0; }
.hsw-pillar-number { position: absolute; top: 28px; right: 30px; color: #a7b2af; font-size: 11px; }
.hsw-pillar-icon { font: 36px Georgia,serif; color: var(--hsw-gold); margin-bottom: 55px; }
.hsw-pillars h3 { font: 28px Georgia,serif; margin: 0 0 16px; }
.hsw-pillars p { color: var(--hsw-muted); font-size: 15px; line-height: 1.7; margin: 0; }

.hsw-photo-story {
	padding: 118px max(6vw, calc((100vw - 1540px) / 2));
	display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(54px,7vw,120px);
	align-items: center; background: #f3eee5;
}
.hsw-photo-story-copy { max-width: 520px; }
.hsw-photo-story-copy h2 {
	margin: 0; font: 500 clamp(42px,4.6vw,70px)/1.01 Georgia,serif; letter-spacing: -.045em;
}
.hsw-photo-story-copy h2 em { color: var(--hsw-petrol); font-weight: 400; }
.hsw-photo-story-copy > p:not(.hsw-eyebrow) {
	margin: 30px 0 28px; color: var(--hsw-muted); font-size: 16px; line-height: 1.8;
}
.hsw-photo-story-grid {
	display: grid; grid-template-columns: 1.35fr .85fr; grid-template-rows: 255px 255px;
	gap: 16px; min-width: 0;
}
.hsw-photo-story-grid figure {
	position: relative; margin: 0; overflow: hidden; background: var(--hsw-petrol-soft);
	box-shadow: 0 18px 46px rgba(7,63,68,.11);
}
.hsw-photo-story-grid figure::after {
	content: ""; position: absolute; inset: 45% 0 0;
	background: linear-gradient(0deg,rgba(3,38,41,.72),transparent);
	pointer-events: none;
}
.hsw-photo-story-main { grid-row: 1 / 3; }
.hsw-photo-story-grid img {
	width: 100%; height: 100%; object-fit: cover; display: block;
	transition: transform .8s cubic-bezier(.2,.75,.25,1);
}
.hsw-photo-story-grid figure:hover img { transform: scale(1.035); }
.hsw-photo-story-grid figcaption {
	position: absolute; left: 24px; bottom: 20px; z-index: 2; color: white;
	font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase;
}

.hsw-values {
	display: grid; grid-template-columns: .7fr 2fr .7fr; gap: 6vw; align-items: center;
	padding: 88px 8vw; background: var(--hsw-petrol-dark); color: white;
	border-top: 1px solid rgba(255,255,255,.13); border-bottom: 1px solid rgba(255,255,255,.13);
}
.hsw-values-label { display: flex; align-items: center; gap: 17px; }
.hsw-values-label span {
	display: grid; place-items: center; width: 52px; height: 52px; flex: 0 0 auto;
	border: 1px solid var(--hsw-gold); border-radius: 50%; color: var(--hsw-gold);
	font: 26px Georgia,serif;
}
.hsw-values-label p, .hsw-values-motto small {
	margin: 0; color: rgba(255,255,255,.62); font-size: 9px; font-weight: 800;
	letter-spacing: .15em; line-height: 1.5; text-transform: uppercase;
}
.hsw-values-content .hsw-values-line {
	margin: 0 0 22px; max-width: 820px; color: white;
	font: 500 clamp(30px,3.5vw,54px)/1.08 Georgia,serif; letter-spacing: -.03em;
}
.hsw-values-line em { color: #dfc18f; font-weight: 400; }
.hsw-values-content > p:last-child {
	max-width: 800px; margin: 0; color: rgba(255,255,255,.66); font-size: 14px; line-height: 1.75;
}
.hsw-values-motto { text-align: right; }
.hsw-values-motto small { display: block; margin-bottom: 8px; }
.hsw-values-motto strong { color: var(--hsw-gold); font: italic 25px Georgia,serif; }

.hsw-day-section { display: grid; grid-template-columns: 1.08fr .92fr; min-height: 720px; background: var(--hsw-petrol); color: white; }
.hsw-day-photo { position: relative; background: #315e61 var(--hsw-day-image) center / cover no-repeat; min-height: 600px; }
.hsw-day-photo::after {
	content: "Humboldt im Alltag"; position: absolute; left: 28px; bottom: 28px;
	padding: 11px 14px; border: 1px solid rgba(255,255,255,.45); background: rgba(7,63,68,.45);
	color: white; font-size: 9px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase;
	backdrop-filter: blur(8px);
}
.hsw-day-content { padding: 100px 8vw 90px 7vw; }
.hsw-day-content h2 { font-size: clamp(39px,4vw,61px); }
.hsw-timeline { margin: 55px 0 35px; border-left: 1px solid rgba(255,255,255,.3); }
.hsw-timeline div { position: relative; padding: 0 0 37px 34px; }
.hsw-timeline div::before { content: ""; width: 9px; height: 9px; background: var(--hsw-gold); border-radius: 50%; position: absolute; left: -5px; top: 3px; }
.hsw-timeline time { color: #e2c38e; font-weight: 800; font-size: 11px; letter-spacing: .13em; }
.hsw-timeline h3 { margin: 9px 0; font: 22px Georgia,serif; }
.hsw-timeline p { margin: 0; max-width: 430px; color: rgba(255,255,255,.72); font-size: 14px; line-height: 1.6; }

.hsw-results { display: grid; grid-template-columns: .85fr 1.15fr; gap: 9vw; align-items: center; background: #fbfaf7; }
.hsw-results-copy > p:last-child { max-width: 520px; color: var(--hsw-muted); line-height: 1.8; margin-top: 30px; }
.hsw-stat-grid { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid #d7dfdb; border-left: 1px solid #d7dfdb; }
.hsw-stat-grid article {
	min-height: 180px; padding: 32px; border-right: 1px solid #d7dfdb;
	border-bottom: 1px solid #d7dfdb; display: flex; flex-direction: column;
	justify-content: space-between; transition: background .25s ease, transform .25s ease;
}
.hsw-stat-grid article:hover { background: white; transform: translateY(-4px); }
.hsw-stat-grid strong { color: var(--hsw-petrol); font: 55px Georgia,serif; }
.hsw-stat-grid span { color: var(--hsw-muted); font-size: 13px; max-width: 190px; line-height: 1.45; }

.hsw-life { background: #e9efed; }
.hsw-section-heading { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 48px; }
.hsw-life-grid { display: grid; grid-template-columns: 1.2fr .8fr; grid-template-rows: 300px 300px; gap: 18px; }
.hsw-life-card {
	position: relative; overflow: hidden; padding: 35px; color: white; display: flex;
	flex-direction: column; justify-content: flex-end;
	background: #345f62 var(--hsw-card-image) center / cover no-repeat;
}
.hsw-life-card::before { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg,rgba(4,35,38,.78),rgba(4,35,38,.05)); transition: background .25s; }
.hsw-life-card:hover::before, .hsw-life-card:focus-visible::before { background: linear-gradient(0deg,rgba(4,64,67,.84),rgba(4,35,38,.05)); }
.hsw-life-card > * { position: relative; }
.hsw-life-card { transition: transform .35s ease, box-shadow .35s ease; }
.hsw-life-card:hover, .hsw-life-card:focus-visible { transform: translateY(-5px); box-shadow: var(--hsw-shadow); }
.hsw-life-card span { font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #e6c896; }
.hsw-life-card h3 { margin: 9px 0 0; font: 29px Georgia,serif; }
.hsw-life-card-large { grid-row: 1 / 3; }

.hsw-news { background: #fff; }
.hsw-news-grid { display: grid; grid-template-columns: 1fr 1fr .8fr; gap: 22px; }
.hsw-news-card, .hsw-news-placeholder {
	border-top: 3px solid var(--hsw-petrol); padding: 0 0 25px; overflow: hidden;
	transition: transform .3s ease, box-shadow .3s ease;
}
.hsw-news-card:hover { transform: translateY(-5px); box-shadow: 0 18px 46px rgba(7,63,68,.1); }
.hsw-news-placeholder { padding: 30px 10px 25px; }
.hsw-news-image { display: block; aspect-ratio: 16/9; margin-top: 18px; overflow: hidden; background: var(--hsw-petrol-soft); }
.hsw-news-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.hsw-news-card:hover .hsw-news-image img { transform: scale(1.035); }
.hsw-news-card-content { padding: 27px 10px 0; }
.hsw-news-meta { color: var(--hsw-gold) !important; font-size: 10px !important; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.hsw-news-grid h3 { font: 26px/1.2 Georgia,serif; margin: 28px 0 16px; }
.hsw-news-grid p { color: var(--hsw-muted); line-height: 1.7; font-size: 14px; }
.hsw-card-arrow { display: inline-block; margin-top: 20px; color: var(--hsw-petrol); font-size: 24px; }
.hsw-quick-links { background: var(--hsw-petrol-dark); color: white; border: 0; padding: 34px; }
.hsw-quick-links h3 { margin: 0 0 20px; }
.hsw-quick-links a { display: flex; justify-content: space-between; margin: 0; padding: 15px 0; border-bottom: 1px solid rgba(255,255,255,.18); font-size: 13px; font-weight: 700; }
.hsw-quick-links a:hover, .hsw-quick-links a:focus-visible { color: #e4c895; }

.hsw-events { background: #fbfaf7; }
.hsw-events-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; margin-bottom: 48px; }
.hsw-event-list { border-top: 1px solid #cfd8d4; }
.hsw-event-row {
	display: grid; grid-template-columns: 105px 1fr auto; gap: 32px; align-items: center;
	min-height: 130px; padding: 20px 6px; border-bottom: 1px solid #cfd8d4;
	transition: padding .2s, background .2s;
}
.hsw-event-row:hover, .hsw-event-row:focus-visible { padding-left: 20px; padding-right: 20px; background: white; }
.hsw-event-row time { display: flex; align-items: baseline; gap: 8px; color: var(--hsw-petrol); }
.hsw-event-row time strong { font: 48px Georgia,serif; }
.hsw-event-row time span { color: var(--hsw-gold); font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.hsw-event-row div p { margin: 0 0 8px; color: var(--hsw-gold); font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.hsw-event-row h3 { margin: 0; font: 25px Georgia,serif; }
.hsw-event-row > span { color: var(--hsw-petrol); font-size: 25px; }
.hsw-event-empty { padding: 38px 0; border-bottom: 1px solid #cfd8d4; color: var(--hsw-muted); }

.hsw-cta {
	position: relative; overflow: hidden; padding: 125px 8vw; text-align: center;
	background: var(--hsw-petrol-dark); color: #fff;
}
.hsw-cta::before, .hsw-cta::after {
	content: ""; position: absolute; width: 360px; height: 360px; border: 1px solid rgba(202,164,106,.22);
	border-radius: 50%; pointer-events: none;
}
.hsw-cta::before { left: -170px; top: -170px; }
.hsw-cta::after { right: -180px; bottom: -190px; }
.hsw-cta > * { position: relative; z-index: 1; }
.hsw-cta h2 { font-size: clamp(50px,6vw,82px); color: #fff; }
.hsw-cta > p:not(.hsw-eyebrow) { color: rgba(255,255,255,.7); margin: 28px 0 36px; }
.hsw-cta > div { display: flex; justify-content: center; gap: 14px; }

.hsw-site-footer {
	padding: 65px 6vw 40px; display: grid; grid-template-columns: 1.3fr 1fr 1fr .7fr;
	gap: 40px; background: #f8f6f1; border-top: 1px solid var(--hsw-line); font-size: 13px;
}
.hsw-site-footer strong { color: var(--hsw-petrol); }
.hsw-site-footer p { color: var(--hsw-muted); line-height: 1.7; }
.hsw-footer-links, .hsw-footer-links ul { display: flex; flex-direction: column; gap: 12px; list-style: none; padding: 0; margin: 0; }
.hsw-mobile-application { display: none; }

.hsw-reveal {
	opacity: 0; transform: translateY(24px);
	transition: opacity .7s ease, transform .7s ease;
}
.hsw-reveal.is-visible { opacity: 1; transform: none; }

.hsw-content-shell { width: min(1180px,88vw); margin: 0 auto; padding: 95px 0 120px; min-height: 60vh; }
.hsw-page-header { max-width: 900px; margin-bottom: 55px; }
.hsw-page-header h1 { font: 500 clamp(45px,6vw,78px)/1.02 Georgia,serif; letter-spacing: -.04em; margin: 0; }
.hsw-page-intro { max-width: 720px; margin: 26px 0 0; color: var(--hsw-muted); font-size: 18px; line-height: 1.7; }
.hsw-entry-hero { margin: 0 0 60px; }
.hsw-entry-hero img { width: 100%; max-height: 650px; object-fit: cover; }
.hsw-entry-content { max-width: 800px; margin: 0 auto; font-size: 18px; line-height: 1.8; }
.hsw-entry-content h2, .hsw-entry-content h3 { font-family: Georgia,serif; line-height: 1.2; margin-top: 2em; }
.hsw-entry-content h2 { font-size: 38px; }
.hsw-entry-content a:not(.hsw-button) { color: var(--hsw-petrol); text-decoration: underline; }
.hsw-entry-content blockquote { margin: 2em 0; padding: 0 0 0 24px; border-left: 3px solid var(--hsw-gold); font: 24px/1.5 Georgia,serif; }
.hsw-archive-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 32px; }
.hsw-archive-grid .hsw-news-card { background: white; padding: 30px; }
.navigation.pagination { grid-column: 1/-1; margin-top: 35px; }
.nav-links { display: flex; gap: 8px; }
.page-numbers { padding: 10px 14px; border: 1px solid #d7dfdb; }
.page-numbers.current { background: var(--hsw-petrol); color: white; }
.hsw-event-row h2 { margin: 0; font: 25px Georgia,serif; }
.hsw-error-page {
	min-height: 72vh; padding: 110px max(8vw,calc((100vw - 1180px)/2));
	background: var(--hsw-petrol-dark); color: white;
}
.hsw-error-page h1 { max-width: 940px; margin: 0; font: 500 clamp(46px,6vw,82px)/1.02 Georgia,serif; letter-spacing: -.04em; }
.hsw-error-page > p:not(.hsw-eyebrow) { color: rgba(255,255,255,.7); margin: 28px 0 38px; font-size: 17px; }
.hsw-error-page > div { display: flex; gap: 14px; }
.hsw-search-form { margin-top: 35px; }
.hsw-search-form > label { display: block; margin-bottom: 8px; font-size: 12px; font-weight: 700; }
.hsw-search-form > div { display: flex; max-width: 700px; }
.hsw-search-form input { flex: 1; min-width: 0; min-height: 54px; padding: 0 18px; border: 1px solid #bbc7c3; background: white; font-size: 16px; }
.hsw-search-results article { padding: 32px 0; border-top: 1px solid #d7dfdb; }
.hsw-search-results h2 { margin: 8px 0 14px; font: 31px Georgia,serif; }
.hsw-search-results p { color: var(--hsw-muted); line-height: 1.7; }

@media (max-width: 980px) {
	.hsw-service-bar { display: none; }
	.hsw-site-header { height: 72px; padding: 0 22px; }
	.hsw-header-cta { display: none; }
	.hsw-menu-toggle {
		display: inline-flex; align-items: center; gap: 10px; padding: 12px 0; border: 0;
		background: none; color: var(--hsw-ink); font-weight: 700; cursor: pointer;
	}
	.hsw-menu-toggle i, .hsw-menu-toggle i::before, .hsw-menu-toggle i::after {
		display: block; width: 20px; height: 2px; background: currentColor; content: "";
	}
	.hsw-menu-toggle i { position: relative; }
	.hsw-menu-toggle i::before { position: absolute; top: -6px; }
	.hsw-menu-toggle i::after { position: absolute; top: 6px; }
	.hsw-main-navigation {
		display: none; position: fixed; inset: 72px 0 0; margin: 0; padding: 28px 24px;
		background: white; overflow: auto;
	}
	.hsw-main-navigation.is-open { display: block; }
	.hsw-main-navigation .hsw-nav-list, .hsw-main-navigation ul { flex-direction: column; gap: 0; font: 26px Georgia,serif; }
	.hsw-main-navigation a { padding: 16px 0; border-bottom: 1px solid #e5e7e4; }
	.hsw-main-navigation .sub-menu { display: block; position: static; box-shadow: none; padding: 0 0 0 20px; font: 16px Arial,sans-serif; }
	.hsw-hero { min-height: 780px; align-items: flex-end; }
	.hsw-hero-media { inset: 0; background-position: 58% center; }
	.hsw-hero-media::after { background: linear-gradient(0deg,rgba(3,38,41,.98) 0%,rgba(4,48,51,.76) 40%,rgba(4,48,51,.08) 82%); }
	.hsw-hero-media span { top: 22px; right: 20px; }
	.hsw-hero-shade { background: linear-gradient(0deg,rgba(3,38,41,.94) 0%,rgba(4,48,51,.36) 58%,rgba(4,48,51,.08) 100%); }
	.hsw-hero-content { margin: 0; padding: 290px 24px 160px; width: 100%; }
	.hsw-hero h1 { font-size: 52px; }
	.hsw-hero-copy { font-size: 15px; }
	.hsw-hero-actions { align-items: flex-start; flex-direction: column; gap: 22px; }
	.hsw-hero-facts { left: 0; min-width: 100%; padding: 18px 12px; }
	.hsw-hero-facts span { padding: 2px 12px; font-size: 11px; }
	.hsw-hero-year { display: none; }
	.hsw-section { padding: 80px 24px; }
	.hsw-intro, .hsw-results { grid-template-columns: 1fr; gap: 42px; }
	.hsw-pillars { grid-template-columns: 1fr; padding-top: 0; }
	.hsw-pillars article { min-height: 240px; }
	.hsw-pillar-icon { margin-bottom: 28px; }
	.hsw-photo-story { grid-template-columns: 1fr; padding: 88px 24px; }
	.hsw-photo-story-copy { max-width: 680px; }
	.hsw-photo-story-grid { grid-template-rows: 350px 230px; }
	.hsw-values { grid-template-columns: 1fr; gap: 38px; padding: 70px 24px; }
	.hsw-values-label { justify-content: flex-start; }
	.hsw-values-motto { text-align: left; }
	.hsw-day-section { grid-template-columns: 1fr; }
	.hsw-day-photo { min-height: 420px; }
	.hsw-day-content { padding: 72px 24px; }
	.hsw-life-grid { grid-template-columns: 1fr; grid-template-rows: 410px 280px 280px; }
	.hsw-life-card-large { grid-row: auto; }
	.hsw-section-heading { align-items: flex-start; gap: 25px; flex-direction: column; }
	.hsw-events-heading { align-items: flex-start; flex-direction: column; }
	.hsw-news-grid, .hsw-archive-grid { grid-template-columns: 1fr; }
	.hsw-cta { padding: 85px 24px; }
	.hsw-cta > div { flex-direction: column; }
	.hsw-site-footer { grid-template-columns: 1fr 1fr; }
	.hsw-mobile-application {
		display: flex; position: fixed; left: 14px; right: 14px; bottom: 12px; z-index: 90;
		align-items: center; justify-content: space-between; min-height: 58px; padding: 10px 18px;
		background: var(--hsw-gold); color: var(--hsw-petrol-dark); box-shadow: 0 12px 35px rgba(0,0,0,.25);
	}
	.hsw-mobile-application span { font-size: 9px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
	.hsw-mobile-application strong { font-size: 13px; }
	body { padding-bottom: 82px; }
}

@media (max-width: 520px) {
	.hsw-brand-copy small { display: none; }
	.hsw-brand-copy strong { font-size: 17px; }
	.hsw-logo img, .hsw-logo-fallback img { width: 48px; height: 48px; }
	.hsw-hero h1 { font-size: 43px; }
	.hsw-hero-media { background-position: 57% center; }
	.hsw-hero-media span { display: none; }
	.hsw-hero-facts span { font-size: 9px; }
	.hsw-photo-story-grid { display: flex; flex-direction: column; }
	.hsw-photo-story-grid figure { min-height: 230px; }
	.hsw-photo-story-grid .hsw-photo-story-main { min-height: 330px; }
	.hsw-stat-grid { grid-template-columns: 1fr; }
	.hsw-event-row { grid-template-columns: 72px 1fr auto; gap: 16px; }
	.hsw-event-row time { align-items: flex-start; flex-direction: column; gap: 0; }
	.hsw-event-row time strong { font-size: 38px; }
	.hsw-event-row h3 { font-size: 20px; }
	.hsw-site-footer { grid-template-columns: 1fr; }
	.hsw-content-shell { width: calc(100% - 40px); padding-top: 70px; }
	.hsw-entry-content { font-size: 16px; }
	.hsw-error-page { padding: 80px 22px; }
	.hsw-error-page > div { flex-direction: column; }
	.hsw-search-form > div { flex-direction: column; gap: 8px; }
}

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