/* The supplied landing artwork and its forest / olive / clay palette.
   Keep this layer local to Vikings; shared country headers are unaffected. */
:root {
  --bg: #14231b; --bg-glow: #263528; --surface: #243326; --surface-2: #35432e;
  --gold: #cf9470; --gold-hi: #e1b28e; --gold-dim: #b77a55;
  --gold-glow: rgba(207,148,112,.16); --line: rgba(238,230,206,.2);
  --border: rgba(238,230,206,.14); --white: #eee6ce; --text: #eee6ce;
  --soft: #d2ceb6; --muted: #b3b495; --dim: #999e80; --dark: #14231b; --brown: #a36645; --brown-hi: #c18b60;
  --f-heading: var(--f-display);
  --f-display: 'Caesar Dressing', 'Cinzel', Georgia, serif;
  --f-body: 'Segoe UI', system-ui, -apple-system, Roboto, 'Helvetica Neue', sans-serif;
  --f-ui: 'Segoe UI', system-ui, -apple-system, Roboto, 'Helvetica Neue', sans-serif;
}
body { background: var(--bg); line-height: 1.6; }
/* Reference swatches: deep olive, sage, fired clay, sand and warm ivory. */
:root { --olive: #454a2c; --sage: #a0a17b; --clay: #b46d49; --sand: #b6a17a; --cream: #eee6ce; }
.vkmap .trade { stroke: #a7b78c; }
.vkmap .settle { stroke: #d9c5a0; }
.vkmap .nd circle.dot { fill: var(--cream); }
.vkmap .nd circle.ring { stroke: var(--cream); }
.vkmap .nd text { fill: var(--cream); stroke: #14231b; }
.vkmap .nd text.yr { fill: #b3b495; }
.vkh-route-modes .vkh-mode-raid { background: var(--clay); }
.vkh-route-modes button[aria-pressed=true] { background: var(--sage); color: #14231b; }
.vkh-route-eras button[aria-pressed=true] { background: rgba(160,161,123,.12); }
.vk-card h3, .vkway-head strong { color: var(--cream); }
.vkh-people-art, .vkway-img img { filter: saturate(.78) sepia(.12); }
.vk-mini-sea { fill: #14231b; }
h1, h2, h3, h4 { color: var(--text); font-weight: 400; }
h1, h2 { font-family: var(--f-display); text-transform: uppercase; letter-spacing: .015em; }
h1 { font-size: clamp(42px, 5.8vw, 82px); line-height: 1.05; }
h2 { font-size: clamp(34px, 4.5vw, 62px); line-height: 1.06; }
h3 { font-size: 25px; }
.vk-wrap { max-width: 1440px; padding-inline: clamp(20px, 5vw, 72px); }
.vk-eyebrow, .vk-meta, .vk-footer-h, .vkh-stats dd {
  font-family: var(--f-ui);
  font-weight: 400; font-size: 12px; letter-spacing: .13em;
}
.vk-eyebrow { color: var(--gold); }
.vk-lead { color: var(--soft); }
#main-nav { left: 0; right: 0; padding-inline: clamp(20px, 5vw, 72px); background: rgba(20,35,27,.96); border-color: var(--border); }
.nav-link { font-family: var(--f-ui); }
.nav-link.vk-nav-map { border-radius: 2px; }
.nav-menu, .country-menu { background-color: var(--surface); }
.vk-btn { min-height: 52px; display: inline-flex; align-items: center; justify-content: center; border-radius: 2px; font-size: 16px; }
.vk-btn-primary, .nav-link.vk-nav-map { color: #0b0705; }
.vk-btn-ghost { color: var(--text); border-color: rgba(238,230,206,.5); background: transparent; }
.vk-btn-ghost:hover { background: rgba(238,230,206,.08); border-color: var(--text); color: var(--text); }
.vk-btn-sm { min-height: 40px; }
.vk-band-alt { background: #1c2c21; border-block-color: var(--border); }
.vk-pagehead { background: linear-gradient(135deg, #3d472e, var(--bg) 75%); border-bottom: 1px solid var(--border); }
.vk-card, .vk-flip-front, .vk-flip-back, .vk-acc, .vk-dyk, .vk-quiz, .vkh-chapter, .vkh-way a {
  background: var(--surface); border-color: var(--border); border-radius: 2px;
}
.vk-card:hover, .vkh-chapter:hover, .vkh-way a:hover { background: var(--surface-2); border-color: var(--gold); }
.vk-card-accent { border-top-color: var(--c, var(--gold)); }
.vk-tip { background: #243326; border-color: var(--border); }
.vk-footer { background: #101c15; border-color: var(--border); }
.vk-footer-note, .vk-note { color: var(--muted); }
.vk-mini-sea { fill: #17271e; }

/* Full-bleed painted hero, with quiet space behind the words. */
.vkh-hero { min-height: 850px; align-items: flex-end; background: var(--bg); }
.vkh-art { object-fit: cover; object-position: 30% 35%; }
.vkh-hero::after {
  background: linear-gradient(90deg, rgba(20,35,27,.94), rgba(20,35,27,.77) 35%, rgba(20,35,27,.2) 72%, rgba(20,35,27,.4)), linear-gradient(0deg, #14231b, transparent 40%);
}
.vkh-hero-in { padding-top: 76px; padding-bottom: 64px; }
.vkh-kicker { display: flex; align-items: center; gap: 14px; color: #d2ceb6; }
.vkh-kicker::before { content: ''; width: 44px; height: 2px; flex: none; background: var(--gold); }
.vkh-hero h1 { max-width: 1000px; font-size: clamp(52px, 7.2vw, 104px); line-height: 1; margin-block: 26px; text-wrap: initial; }
.vkh-hero h1 span { color: var(--gold); display: block; }
.vkh-sub { max-width: 650px; font-size: clamp(17px, 1.5vw, 21px); }
.vkh-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px 32px; max-width: 880px; border-color: rgba(238,230,206,.22); margin-top: 40px; }
.vkh-stats dt { font-family: var(--f-ui); font-size: 44px; font-weight: 600; color: var(--text); }
.vkh-stats dd { font-size: 11px; color: #b3b495; }
.vkh-scroll { display: none; }
.vkh-band, .vkh-band.vk-band-alt { padding-block: clamp(56px, 7vw, 100px); }
.vkh-ways-row { padding-inline: max(5vw, calc((100vw - 1296px) / 2)); }
.vkh-way strong { font-weight: 400; font-size: 26px; }
.vkh-way-n { color: rgba(207,148,112,.12); }
.vkh-chapter h3 { font-size: 25px; }
.vkh-tile { border-radius: 2px; border-color: var(--border); background: #29392b; }
.vkh-tile::after { background: linear-gradient(0deg, #14231b 2%, rgba(20,35,27,.8) 50%, rgba(20,35,27,.1)); }
.vkh-tile-body h3 { font-size: clamp(30px, 3vw, 42px); }
.vkh-tiles { grid-template-columns: 1fr; }
.vkh-tiles .vkh-tile:first-child { min-height: 540px; }
.vkh-tiles .vkh-tile:first-child .vkh-tile-map { opacity: 1; }
.vkh-tiles .vkh-tile:first-child::after { background: linear-gradient(0deg, #14231b, rgba(20,35,27,.8) 25%, transparent 70%); }
.vkh-tile-tl { min-height: 310px; }
.vkh-people-art { width: calc(100% + 48px); max-width: none; height: 230px; object-fit: cover; margin: -22px -24px 22px; }
.vkh-people .vk-card { overflow: hidden; }
.vkh-people .vk-card:has(.vkh-people-art) { grid-row: span 1; }
.vkh-node { background: var(--surface-2); border-radius: 2px; }
a.vkh-node:hover { background: #424c32; }
.vkh-tree li::before, .vkh-tree li::after { background: rgba(238,230,206,.25); }
#voyages { background: linear-gradient(90deg, rgba(20,35,27,.97), rgba(20,35,27,.82)), url('../img/landing/stamford-bridge.jpg') center / cover; }
#life { background: linear-gradient(90deg, rgba(20,35,27,.98), rgba(20,35,27,.66)), url('../img/landing/oseberg.jpg') center / cover; }
.vkh-life .vk-card { background: rgba(36,51,38,.9); }
.vkh-end { background: radial-gradient(ellipse at bottom, rgba(207,148,112,.1), transparent 65%); }
/* Small data labels use the text face, keeping maps and filters legible. */
.vkt .periods button span, .vkt .lane-name b, .vkt .band-label,
.vkt .hover-tip b, .vk-tip b, .vkh-wi-yr, .vkh-site-y { font-family: var(--f-ui); }
.vkt .controls { background: rgba(20,35,27,.97); }
.vkt .filters input[type=search], .vkt .drawer, .vkt .hover-tip { background: var(--surface); }
.page-modal-panel { background: #14231b; }
@media (max-width: 760px) {
  .vkh-hero { min-height: 780px; }
  .vkh-hero-in { padding-top: 52px; padding-bottom: 48px; }
  .vkh-hero h1 { font-size: clamp(46px, 9vw, 64px); }
  .vkh-art { object-position: 58% 35%; }
  .vkh-hero::after { background: linear-gradient(90deg, rgba(20,35,27,.86), rgba(20,35,27,.5)), linear-gradient(0deg, #14231b, transparent 70%); }
  .vkh-stats { grid-template-columns: repeat(2, 1fr); gap: 24px; }
  .vkh-stats dt { font-size: 36px; }
  .vkh-people-art { height: 240px; }
  .vkh-tiles .vkh-tile:first-child { min-height: 440px; }
  .vkh-ways-row { padding-inline: 20px; }
}

/* Landing explorer and the revised type hierarchy. */
.vkh-harald {
  padding-block: clamp(64px, 8vw, 112px);
  background: linear-gradient(180deg, #14231b, rgba(20,35,27,.8) 30%, rgba(20,35,27,.9) 75%, #14231b), url('../img/landing/stamford-bridge.jpg') center 60% / cover;
}
.vkh-harald h2 { max-width: 920px; margin-top: 16px; }
.vkh-harald .vk-lead { max-width: 680px; }
.vkh-harald-stops { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); margin-block: 38px; }
.vkh-harald-stops li { padding: 18px 18px 12px 0; border-top: 2px solid rgba(238,230,206,.35); }
.vkh-harald-stops li:first-child, .vkh-harald-stops li:last-child { border-color: var(--gold); }
.vkh-harald-year { font-family: var(--f-heading); font-size: 32px; font-weight: 600; line-height: 1.2; }
.vkh-harald-stops h3 { font-size: 17px; margin-block: 6px; }
.vkh-harald-stops p { font-size: 15px; color: var(--soft); }
.vkh-harald-cta { background: #eee6ce; color: #14231b; border-color: #eee6ce; }
.vkh-harald-cta:hover { background: #fff; color: #14231b; }
@media (max-width: 1100px) { .vkh-harald-stops { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px 0; } }
@media (max-width: 600px) { .vkh-harald-stops { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
h3, h4, .vk-q, .vk-short, .vkh-way strong, .vkh-chapter h3,
.vkh-tile-body h3, .vk-card h3, .vk-acc summary h3 {
  font-family: var(--f-heading); font-weight: 400; letter-spacing: .01em;
}
.vk-eyebrow { font-size: clamp(14px, 1.15vw, 17px); font-weight: 500; letter-spacing: .12em; }
.vkh-kicker { font-size: clamp(16px, 1.4vw, 20px); }
.vkh-hero { min-height: 720px; }
.vkh-hero h1 { font-size: clamp(32px, 3.6vw, 52px); max-width: 800px; line-height: 1.13; }
.vkh-people { gap: 20px; align-items: stretch; }
.vkh-people .vk-card {
  display: flex; align-items: flex-end; min-height: 470px; padding: 26px 22px;
  border: 0; border-bottom: 3px solid var(--c); isolation: isolate;
}
.vkh-people .vk-card::after {
  content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: linear-gradient(0deg, rgba(20,35,27,.98), rgba(20,35,27,.7) 40%, rgba(20,35,27,.06) 95%);
}
.vkh-people-art { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; margin: 0; object-fit: cover; transition: transform .6s; }
.vkh-people .vk-card:hover .vkh-people-art { transform: scale(1.045); }
.vkh-people-copy { width: 100%; }
.vkh-people .vk-card h3 { font-size: clamp(24px, 2.1vw, 31px); line-height: 1.12; margin-top: 8px; text-transform: uppercase; }
.vkh-people .vk-card p { font-size: 15px; color: #d5dbe1; line-height: 1.55; }
.vkh-people .vk-more { color: #eee6ce; text-decoration: underline; text-underline-offset: 4px; }
.vkh-route-explorer { --accent: var(--gold); min-width: 0; }
.vkh-route-modes { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 26px; }
.vkh-route-modes button { display: inline-flex; align-items: center; gap: 9px; min-height: 44px; padding: 8px 18px; border: 1px solid var(--border); border-radius: 40px; font-size: 15px; }
.vkh-route-modes button[aria-pressed=true] { background: #eee6ce; color: #14231b; }
.vkh-route-modes i { width: 10px; height: 10px; border-radius: 50%; background: #9aa7b4; }
.vkh-route-modes .vkh-mode-raid { background: #cf9470; }
.vkh-route-modes .vkh-mode-trade { background: #a7b78c; }
.vkh-route-modes .vkh-mode-settle { background: #c4ad82; }
.vkh-route-eras { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; margin-bottom: 18px; }
.vkh-route-eras button { text-align: left; padding: 14px 6px; border-top: 2px solid var(--border); color: var(--muted); }
.vkh-route-eras button[aria-pressed=true] { border-color: var(--gold); color: var(--text); background: rgba(207,148,112,.06); }
.vkh-route-eras strong { display: block; font-family: var(--f-heading); font-size: clamp(22px, 2.4vw, 32px); line-height: 1.1; font-weight: 600; }
.vkh-route-eras span { display: block; font-size: 13px; margin-top: 5px; }
.vkh-route-scroll { overflow-x: auto; border: 1px solid var(--border); background: #14231b; }
.vkh-route-scroll .vkmap { position: relative; min-width: 900px; aspect-ratio: 2000 / 1040; }
.vkmap > img { width: 100%; height: 100%; position: absolute; inset: 0; }
.vkh-route-story { display: grid; grid-template-columns: 1fr 1fr; gap: 28px 48px; margin: 30px 0 56px; padding-bottom: 30px; border-bottom: 1px solid var(--border); }
.vkh-route-story h3 { margin-top: 12px; font-size: clamp(28px, 3vw, 40px); line-height: 1.1; }
.vkh-route-story p { color: var(--soft); }
.vkh-route-story .vk-eyebrow { color: var(--muted); font-size: 13px; }
.vkh-route-story .vkh-route-stat { font-family: var(--f-ui); color: var(--gold); font-size: 13px; margin-top: 20px; }
@keyframes vkflow { from { stroke-dashoffset: 34.1; } to { stroke-dashoffset: 0; } }
@keyframes vkpulse { 0% { r: 5; opacity: .9; } 100% { r: 22; opacity: 0; } }
@media (max-width: 760px) {
  .vkh-hero { min-height: 680px; }
  .vkh-hero h1 { font-size: clamp(30px, 4.5vw, 36px); }
  .vkh-route-eras { grid-template-columns: repeat(3, 1fr); }
  .vkh-route-story { grid-template-columns: 1fr; gap: 20px; }
  .vkh-people .vk-card { min-height: 440px; }
}
@media (prefers-reduced-motion: reduce) {
  .vkmap .rt-flow, .vkmap .nd circle.ring { animation: none; }
  .vkmap .rt, .vkmap .nd, .vkh-people-art { transition: none; }
}

/* ── Hero: words on the left, the painting pushed to the right; key facts in a band below ── */
.vkh-hero { min-height: clamp(600px, 78vh, 760px); align-items: center; overflow: hidden; }
.vkh-art-wrap { position: absolute; inset: 0 0 0 auto; width: min(66%, 1120px); }
.vkh-art-wrap .vkh-art { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: var(--pos, 40% 40%); }
.vkh-hero::after {
  background: linear-gradient(90deg, #14231b 0%, #14231b 26%, rgba(20,35,27,.8) 40%, rgba(20,35,27,.15) 62%, rgba(20,35,27,0) 80%), linear-gradient(0deg, rgba(20,35,27,.9) 0%, rgba(20,35,27,0) 20%);
}
.vkh-hero-in { padding-top: 56px; padding-bottom: 56px; }
.vkh-hero-in > * { max-width: 680px; }
.vkh-years { position: relative; margin: 0 0 6px; padding-left: 104px; font-family: var(--f-ui); font-size: clamp(14px, 1.2vw, 18px); letter-spacing: .16em; text-transform: uppercase; line-height: 1.25; color: var(--text); }
.vkh-years::before { content: ''; position: absolute; left: 0; top: .7em; width: 62px; height: 2px; background: var(--gold); }
.vkh-years span, .vkh-years b { display: block; font-weight: 400; }
.vkh-title { margin: 0; font-size: inherit; text-transform: none; }
.vkh-name-img { display: block; width: min(100%, 640px); height: auto; margin: 0 0 16px -4px; filter: drop-shadow(0 4px 18px rgba(0,0,0,.55)); }
.vkh-tag { display: block; font-family: var(--f-display); font-weight: 400; font-size: clamp(22px, 2.6vw, 40px); line-height: 1.1; letter-spacing: .01em; text-transform: uppercase; color: var(--text); text-shadow: 0 2px 14px rgba(0,0,0,.6); }
.vkh-hero .vkh-title .vkh-tag { display: block; color: var(--text); }
.vkh-tag em { display: block; font-style: normal; color: var(--gold); }
.vkh-hero .vkh-title .vkh-tag em { color: var(--gold); }
.vkh-sub { max-width: 600px; margin-top: 22px; }
.vkh-facts { background: #040a07; border-bottom: 1px solid var(--border); }
.vkh-facts-in { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 1200px; padding-block: 38px; }
.vkh-facts-in > div { display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "i n" "i l"; column-gap: 24px; align-items: center; justify-content: center; padding: 6px 28px; border-left: 1px solid rgba(238,230,206,.22); }
.vkh-facts-in > div:last-child { border-right: 0; }
.vkh-fact-icon { grid-area: i; width: 84px; height: 84px; object-fit: contain; opacity: .9; }
.vkh-facts-in dt { grid-area: n; align-self: end; font-family: var(--f-display); font-size: clamp(36px, 3.4vw, 50px); font-weight: 400; line-height: 1; color: #eee6ce; font-variant-numeric: lining-nums; }
.vkh-facts-in dd { grid-area: l; align-self: start; margin-top: 8px; font-family: var(--f-ui); font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: #b3b495; }
@media (max-width: 1000px) {
  .vkh-art-wrap { width: 100%; }
  .vkh-hero::after { background: linear-gradient(90deg, rgba(20,35,27,.92), rgba(20,35,27,.55) 60%, rgba(20,35,27,.3)), linear-gradient(0deg, #14231b 0%, rgba(20,35,27,0) 30%); }
  .vkh-facts-in > div { padding: 6px 14px; column-gap: 14px; }
  .vkh-fact-icon { width: 56px; height: 56px; }
  .vkh-facts-in dd { font-size: 11px; }
}
@media (max-width: 760px) {
  .vkh-hero { min-height: 700px; align-items: flex-end; }
  .vkh-art-wrap .vkh-art { object-position: 62% 30%; }
  .vkh-hero::after { background: linear-gradient(0deg, #14231b 8%, rgba(20,35,27,.82) 48%, rgba(20,35,27,.25)); }
  .vkh-facts-in { grid-template-columns: 1fr; gap: 6px; padding-block: 22px; }
  .vkh-facts-in > div { justify-content: start; border-left: 0; padding-inline: 0; }
  .vkh-fact-icon { width: 52px; height: 52px; }
}

/* hero refinements: smaller title, one-line years, image melting into the page */
.vkh-name-img { width: min(100%, 512px); }
.vkh-years { padding-left: 84px; white-space: nowrap; }
.vkh-years::before { width: 62px; top: 50%; margin-top: -1px; }
.vkh-art-wrap { width: min(74%, 1200px); -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.18) 14%, rgba(0,0,0,.6) 30%, #000 52%), linear-gradient(0deg, transparent 0%, #000 22%); -webkit-mask-composite: source-in; mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.18) 14%, rgba(0,0,0,.6) 30%, #000 52%), linear-gradient(0deg, transparent 0%, #000 22%); mask-composite: intersect; }
.vkh-hero::after { background: linear-gradient(90deg, rgba(20,35,27,.55) 0%, rgba(20,35,27,.35) 30%, rgba(20,35,27,0) 60%); }
@media (max-width: 1000px) { .vkh-art-wrap { width: 100%; -webkit-mask-image: none; mask-image: none; } .vkh-hero::after { background: linear-gradient(90deg, rgba(20,35,27,.92), rgba(20,35,27,.55) 60%, rgba(20,35,27,.3)), linear-gradient(0deg, #14231b 0%, rgba(20,35,27,0) 30%); } }
.vkh-name-img { width: min(100%, 410px); }

/* hero: the picture reaches under the words and fades in smoothly */
.vkh-art-wrap { width: 100%; -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.14) 16%, rgba(0,0,0,.42) 32%, rgba(0,0,0,.8) 50%, #000 66%), linear-gradient(0deg, transparent 0%, #000 22%); -webkit-mask-composite: source-in; mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.14) 16%, rgba(0,0,0,.42) 32%, rgba(0,0,0,.8) 50%, #000 66%), linear-gradient(0deg, transparent 0%, #000 22%); mask-composite: intersect; }
.vkh-hero::after { background: linear-gradient(90deg, rgba(20,35,27,.5) 0%, rgba(20,35,27,.25) 38%, rgba(20,35,27,0) 62%); }
@media (max-width: 1000px) { .vkh-art-wrap { -webkit-mask-image: none; mask-image: none; } }
.vkh-sub { text-shadow: 0 1px 12px rgba(20,35,27,.9), 0 0 3px rgba(20,35,27,.8); }
.vkm-h1, .vkt h1 { font-family: var(--f-display); font-weight: 400; text-transform: uppercase; letter-spacing: .015em; }

/* key facts: number and label side by side, no divider before the first item */
.vkh-facts-in > div { grid-template-columns: auto auto auto; grid-template-areas: "i n l"; column-gap: 18px; justify-content: center; }
.vkh-facts-in > div:first-child { border-left: 0; }
.vkh-facts-in dt, .vkh-facts-in dd { align-self: center; margin: 0; }
.vkh-facts-in dd { line-height: 1.5; white-space: nowrap; }
@media (max-width: 1000px) { .vkh-facts-in > div { column-gap: 10px; padding-inline: 8px; } .vkh-facts-in dd { white-space: normal; } }
@media (max-width: 760px) { .vkh-facts-in > div { justify-content: start; } }

/* Shared site chrome keeps the sitewide look: the Explore menu and the footer information
   dialog use the standard gold and typefaces, whatever this microsite's own palette is. */
#country-menu, .nav-right, .ah-footer, .ah-info-dialog {
  --gold: #c9a844; --gold-hi: #e3c870; --gold-dim: rgba(201, 168, 68, 0.75); --gold-glow: rgba(201, 168, 68, 0.18);
  --white: rgba(255, 255, 255, 0.85); --white-mid: rgba(255, 255, 255, 0.70); --white-dim: rgba(255, 255, 255, 0.5); --dark: #101c15;
  --f-heading: 'Inria Serif', Georgia, serif; --f-body: 'Fira Sans', system-ui, sans-serif; --f-ui: 'Fira Sans', system-ui, sans-serif;
}
.ah-info-dialog h1, .ah-info-dialog h2 { font-family: Georgia, serif; text-transform: none; letter-spacing: normal; font-weight: 400; }
.ah-info-dialog h2 { color: #e7bd63; }

/* Caesar Dressing has a single weight: no synthetic bold on headings */
h1, h2, h3, h4, .vk-q, .vk-short, .vkh-way strong, .vk-card h3, .vk-acc summary h3, .vkh-facts-in dt, .vkh-harald-year, .vkh-route-eras strong { font-weight: 400; }

/* people cards: white dates, a taller, softer dark overlay for readability */
.vkh-people .vk-card .vk-meta { color: #fff; }
.vkh-people .vk-card::after { background: linear-gradient(0deg, rgba(20,35,27,.98) 0%, rgba(20,35,27,.93) 30%, rgba(20,35,27,.72) 56%, rgba(20,35,27,.28) 80%, rgba(20,35,27,0) 100%); }

/* landing route map: green sea, yellowish coasts and frame, shorter, story text laid over the map */
.vkh-route-stage { position: relative; }
.vkh-route-scroll { border-color: rgba(216,200,96,.45); background: #1b2c22; }
.vkh-route-scroll .vkmap { aspect-ratio: 2000 / 880; }
.vkmap > img { object-fit: cover; }
.vkh-route-story { position: absolute; left: 24px; bottom: 24px; z-index: 3; display: block; width: min(560px, calc(100% - 48px)); margin: 0; padding: 22px 26px; border: 1px solid rgba(216,200,96,.28); border-radius: 3px; background: linear-gradient(0deg, rgba(20,35,27,.94), rgba(20,35,27,.78)); backdrop-filter: blur(4px); pointer-events: none; }
.vkh-route-story > div + div { margin-top: 12px; }
.vkh-route-story a { pointer-events: auto; }
.vkh-route-story h3 { margin-top: 8px; font-size: clamp(24px, 2.4vw, 34px); }
.vkh-route-story p { font-size: 15px; line-height: 1.55; }
.vkh-route-story .vkh-route-stat { margin-top: 12px; }
.vkh-route-scroll:focus-visible { outline-offset: 3px; }
@media (max-width: 900px) { .vkh-route-story { position: static; width: auto; margin: 18px 0 40px; pointer-events: auto; } }
.vkh-route-story { width: min(450px, calc(100% - 48px)); padding: 18px 22px; } .vkh-route-story h3 { font-size: clamp(22px, 2vw, 30px); }

/* new title artwork (stone lettering with compass) and the hero text as in the design */
.vkh-name-img { width: min(100%, 440px); margin: 6px 0 14px -6px; }
.vkh-years { font-size: clamp(15px, 1.4vw, 20px); letter-spacing: .22em; font-weight: 300; }
.vkh-tag { font-size: clamp(24px, 2.8vw, 42px); }
/* hero picture a little further right (boat and crew toward the centre), dark overlay reaching further across */
.vkh-art-wrap { inset: 0 0 0 10%; width: auto; }
.vkh-hero::after { background: linear-gradient(90deg, rgba(20,35,27,.72) 0%, rgba(20,35,27,.5) 34%, rgba(20,35,27,.26) 52%, rgba(20,35,27,.08) 70%, rgba(20,35,27,0) 84%); }
@media (max-width: 1000px) { .vkh-art-wrap { inset: 0; } }
.vkh-art-wrap { inset: 0 0 0 16%; } @media (max-width: 1000px) { .vkh-art-wrap { inset: 0; } }

/* small titles (family-tree nodes) use the paragraph typeface: the display face is hard to read at this size */
.vkh-node b, .vkp-n, .vkp-n b, .vkp-n strong, .vkp-n h3, .vkp-n h4 { font-family: var(--f-ui); font-weight: 600; text-transform: none; letter-spacing: 0; }
.vkh-tree .vkh-node b, .vkp-tree .vkp-n b, .vkp-tree .vkp-n strong { font-family: var(--f-ui); font-weight: 600; text-transform: none; letter-spacing: 0; }

/* people pictures are square, not round, and a little larger */
.vk-avatar.vk-avatar-img { width: 84px; height: 84px; border-radius: 3px; }
.vk-avatar.vk-avatar-img img { border-radius: 0; }
.vkf-bigav.vk-avatar-img { width: 112px; height: 112px; }
.vkv-personcard .vk-avatar.vk-avatar-img { width: 96px; height: 96px; }
.vkf-strip .vk-avatar.vk-avatar-img { width: 52px; height: 52px; }

/* map: city names, tooltips, legend and chapter-list headings use the paragraph typeface */
main.vkm .cm-place text, main.vkm .cm-tip b, main.vkm .cm-era-name, main.vkm .cm-legend-heading, main.vkm .vkm-key b,
main.vkm .ag-events-heading span, main.vkm .cm-events .ag-event-year, main.vkm .cm-year, main.vkm .cm-chapter-title { font-family: var(--f-ui); }
main.vkm .cm-place text { font-weight: 600; }
main.vkm .cm-chapter-title, main.vkm .cm-year { font-weight: 700; }

/* ── Ten ways in: five cards a row, picture on top ── */
.vkway-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 18px; }
.vkway-grid > li { display: flex; }
.vkway-card {
  display: flex; flex-direction: column; width: 100%; padding: 8px 8px 22px; border: 1px solid var(--border); border-radius: 4px;
  background: linear-gradient(180deg, rgba(36,51,38,.96), rgba(20,35,27,.98)); color: var(--soft);
  transition: border-color .25s, transform .25s, box-shadow .25s;
}
.vkway-card:hover, .vkway-card.is-first { border-color: var(--gold); }
.vkway-card:hover { transform: translateY(-4px); box-shadow: 0 14px 34px rgba(0,0,0,.45); color: var(--soft); }
.vkway-card.is-first { box-shadow: 0 0 0 1px var(--gold) inset; }
.vkway-img { display: block; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 2px; background: #1b2c22; }
.vkway-img img, .vkway-img .vk-mini { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .8s ease; }
.vkway-card:hover .vkway-img img, .vkway-card:hover .vkway-img .vk-mini { transform: scale(1.06); }
.vkway-body { display: flex; flex: 1; flex-direction: column; gap: 12px; padding: 16px 12px 0; }
.vkway-head { display: flex; align-items: flex-start; gap: 12px; }
.vkway-n { flex: none; font-family: var(--f-display); font-size: 40px; line-height: .95; color: var(--gold); }
.vkway-head strong { font-family: var(--f-display); font-weight: 400; font-size: clamp(18px, 1.5vw, 23px); line-height: 1.12; letter-spacing: .01em; text-transform: uppercase; color: #fff; text-wrap: balance; }
.vkway-text { font-size: 14.5px; line-height: 1.55; color: var(--soft); }
.vkway-cta { margin-top: auto; padding-top: 4px; font-size: 14.5px; font-weight: 600; color: var(--gold); }
.vkway-credit { margin-top: 22px; }
@media (max-width: 1280px) { .vkway-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 820px) { .vkway-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; } .vkway-n { font-size: 32px; } }
@media (max-width: 520px) { .vkway-grid { grid-template-columns: 1fr; } }
.vkway-img .vk-mini image { opacity: 1; }

/* landing page: content container 15% wider */
.vkh .vk-wrap { max-width: 1656px; }
.vkh-facts-in { max-width: 1380px; }

/* ten ways: number above the title */
.vkway-head { display: block; }
.vkway-n { display: block; margin-bottom: 8px; font-size: 34px; line-height: 1; }
.vkway-head strong { display: block; }

/* faint Norse marks behind sections (watermarks): rings, knots, valknut, ship, raven, helmet, axes, triskele */
.vkh-band { position: relative; overflow: hidden; isolation: isolate; }
.vkh-band::before {
  content: ''; position: absolute; z-index: -1; pointer-events: none; width: var(--s, 460px); aspect-ratio: 1; opacity: var(--o, .06); background: #cf9470;
  -webkit-mask: var(--m) center / contain no-repeat; mask: var(--m) center / contain no-repeat;
}
#ways::before { --m: url('../img/marks/rune-ring.svg'); --s: 620px; right: -120px; top: -150px; }
#story::before { --m: url('../img/marks/valknut.svg'); --s: 440px; left: -90px; bottom: -120px; }
#peoples::before { --m: url('../img/tree/raven.png'); --s: 420px; right: 2%; top: -60px; --o: .05; }
#voyages::before { --m: url('../img/tree/longship.png'); --s: 520px; left: -60px; top: -40px; --o: .07; }
#myths::before { --m: url('../img/tree/helmet.png'); --s: 400px; right: 3%; bottom: -80px; --o: .05; }
#what-if::before { --m: url('../img/marks/vegvisir.svg'); --s: 560px; left: -140px; top: -100px; }
#did-you-know::before { --m: url('../img/marks/knot.svg'); --s: 480px; right: -100px; bottom: -150px; }
#life::before { --m: url('../img/tree/axes.png'); --s: 420px; right: 4%; top: -70px; --o: .06; }
#legacy::before { --m: url('../img/tree/triskele.png'); --s: 440px; left: -80px; bottom: -120px; --o: .06; }
.vkh-end::before { --m: url('../img/marks/rune-ring.svg'); --s: 700px; left: 50%; top: 50%; margin: -350px 0 0 -350px; --o: .05; }
@media (max-width: 760px) { .vkh-band::before { --s: 300px; } }

/* Palette finishes after component rules so controls share the reference swatches. */
.vkh-route-modes .vkh-mode-raid { background: var(--clay); }
.vkh-route-modes button[aria-pressed=true] { background: var(--sage); color: #14231b; }
.vkh-route-eras button[aria-pressed=true] { background: rgba(160,161,123,.12); }
.vk-card h3, .vkway-head strong { color: var(--cream); }
.vkh-harald-cta { background: var(--sand); border-color: var(--sand); color: #14231b; }
.vkh-harald-cta:hover { background: var(--cream); color: #14231b; }
.vkh-kicker, .vkh-stats dd { color: #d2ceb6; }
.vk-band-alt { background: #1c2c21; }

.vk-btn-primary, .nav-link.vk-nav-map { background: #995c3b; border-color: #b47a51; color: var(--cream); }
.vk-btn-primary:hover, .nav-link.vk-nav-map:hover, .nav-link.vk-nav-map.active { background: #ad6d46; color: var(--cream); }
