/* Semsey-kastély – „Az elveszett birtoktérkép”
   Pergamen és elefántcsont felületek, sötét tinta szöveg, visszafogott olíva, bordó és sárgaréz jelzések.
   Betűk: EB Garamond (címek, idézetek, évszámok), Source Sans 3 (szöveg, menü, feliratok) – a fonts/ mappából,
   a latin készlet mellett csak az ő/ű betűk külön kis fájlban (*-hu.woff2).
   Felépítés: 1 tokenek · 2 alap · 3 fejléc, menü · 4 közös elemek · 5 főoldali szakaszok · 6 aloldalak
   · 7 lábléc · 8 asszisztens · 9 mozgás · 10 töréspontok */

/* ---------- 1. Tokenek ---------- */

@font-face { font-family: "EB Garamond"; font-style: normal; font-weight: 400 700; font-display: swap;
  src: url("/fonts/eb-garamond-roman-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "EB Garamond"; font-style: normal; font-weight: 400 700; font-display: swap;
  src: url("/fonts/eb-garamond-roman-hu.woff2") format("woff2"); unicode-range: U+0150-0151, U+0170-0171; }
@font-face { font-family: "EB Garamond"; font-style: italic; font-weight: 400 600; font-display: swap;
  src: url("/fonts/eb-garamond-italic-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "EB Garamond"; font-style: italic; font-weight: 400 600; font-display: swap;
  src: url("/fonts/eb-garamond-italic-hu.woff2") format("woff2"); unicode-range: U+0150-0151, U+0170-0171; }
@font-face { font-family: "Source Sans 3"; font-style: normal; font-weight: 300 700; font-display: swap;
  src: url("/fonts/source-sans-3-roman-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Source Sans 3"; font-style: normal; font-weight: 300 700; font-display: swap;
  src: url("/fonts/source-sans-3-roman-hu.woff2") format("woff2"); unicode-range: U+0150-0151, U+0170-0171; }
@font-face { font-family: "Source Sans 3"; font-style: italic; font-weight: 400 600; font-display: swap;
  src: url("/fonts/source-sans-3-italic-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Source Sans 3"; font-style: italic; font-weight: 400 600; font-display: swap;
  src: url("/fonts/source-sans-3-italic-hu.woff2") format("woff2"); unicode-range: U+0150-0151, U+0170-0171; }

:root {
  /* felületek */
  --paper: #f4eee2;        /* pergamen: alap */
  --paper-deep: #ebe2cf;   /* mélyebb pergamen: térkép, kiemelt sáv */
  --ivory: #fbf8f1;        /* elefántcsont: táblázat, panel */
  --ink: #2a241d;          /* sötét tinta: szöveg */
  --ink-soft: #4b4237;     /* másodlagos szöveg */
  --ink-mute: #6b6152;     /* feliratok, jegyzetek (4,5:1 felett a pergamenen) */
  --olive: #59603a;        /* olíva: térképvonalak, címkék */
  --archive: #34503f;      /* archívumzöld: sötét sáv */
  --archive-ink: #e9e4d4;  /* szöveg az archívumzöldön */
  --burgundy: #7b2d2b;     /* bordó: fő gomb, aktív menü */
  --burgundy-deep: #5f2120;
  --brass: #a4874f;        /* sárgaréz: csak vonal és jel, szövegnek nem */
  --line: rgba(42, 36, 29, .16);
  --line-mid: rgba(42, 36, 29, .32);
  --line-ink: rgba(42, 36, 29, .62);

  --serif: "EB Garamond", "Garamond", "Iowan Old Style", "Palatino Linotype", Georgia, serif;
  --sans: "Source Sans 3", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;

  --wrap: 1240px;
  --gutter: clamp(16px, 4vw, 48px);
  --measure: 62ch;
  --head-h: 76px;
  --space-1: .5rem;
  --space-2: 1rem;
  --space-3: 1.5rem;
  --space-4: 2.5rem;
  --space-5: clamp(3.5rem, 7vw, 6.5rem);
  --space-6: clamp(5rem, 10vw, 9rem);

  /* finom papírszemcse: SVG zaj, nagyon halványan */
  --grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .16 0 0 0 0 .13 0 0 0 0 .09 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------- 2. Alap ---------- */

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: calc(var(--head-h) + 16px); }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body {
  margin: 0;
  background: var(--paper) var(--grain);
  color: var(--ink);
  font: 400 1.0625rem/1.65 var(--sans);
  font-feature-settings: "kern", "liga";
  overflow-x: hidden;
}
body.nav-open { overflow: hidden; }
img, svg, video { display: block; max-width: 100%; }
img { height: auto; }
a { color: var(--burgundy); text-decoration-thickness: 1px; text-underline-offset: .18em; }
a:hover { color: var(--burgundy-deep); text-decoration-thickness: 2px; }
:focus-visible { outline: 2px solid var(--burgundy); outline-offset: 3px; border-radius: 1px; }
.site-foot :focus-visible, .namesake :focus-visible { outline-color: #f0e6cf; }
.chat-fab:focus-visible { outline: 2px solid #f0e6cf; outline-offset: 2px; box-shadow: 0 0 0 6px var(--ink); }
::selection { background: rgba(164, 135, 79, .32); }
h1, h2, h3, h4 { font-family: var(--serif); font-weight: 500; line-height: 1.08; letter-spacing: -.005em; margin: 0; color: var(--ink); text-wrap: balance; }
h2 { font-size: clamp(2.1rem, 4.4vw, 3.6rem); }
h3 { font-size: clamp(1.45rem, 2.2vw, 1.85rem); line-height: 1.15; }
p { margin: 0 0 1em; text-wrap: pretty; }
ul, ol { margin: 0; padding: 0; }
address { font-style: normal; }
table { border-collapse: collapse; width: 100%; }
.tel { white-space: nowrap; }
.sr-only { 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 { position: absolute; left: 16px; top: -60px; z-index: 100; padding: .6rem 1rem; background: var(--ink); color: var(--paper); text-decoration: none; }
.skip:focus { top: 12px; color: var(--paper); }

.wrap { width: 100%; max-width: var(--wrap); margin-inline: auto; padding-inline: var(--gutter); }
.section { padding-block: var(--space-5); }
.section + .section { padding-top: 0; }
.section.estate, .section.namesake, .section.visit,
.estate + .section, .namesake + .section, .visit + .section { padding-top: var(--space-5); }
.prose { max-width: var(--measure); }
.prose p, .prose li { color: var(--ink-soft); }
.prose h3 { margin: 2.2rem 0 .7rem; }
.prose ul { padding-left: 1.2em; margin-bottom: 1em; }
.prose li { margin-bottom: .35em; }
h1 + .lead, h2 + .lead { margin-top: 1rem; }
.new-exh { margin: 2.4rem 0 1rem; font-size: 1.45rem; }
.lead { font-family: var(--serif); font-size: clamp(1.25rem, 1.9vw, 1.5rem); line-height: 1.45; color: var(--ink-soft); }

/* ---------- 3. Fejléc, menü ---------- */

/* A homályosítás a ::before-on van, nem a fejlécen: a backdrop-filter a fejlécet a fix menü befoglaló
   dobozává tenné, és telefonon a menü összeesne (launch-checklist, „Known traps”). */
.site-head { position: sticky; top: 0; z-index: 50; border-bottom: 1px solid transparent; transition: border-color .3s; }
.site-head::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(244, 238, 226, .86); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.site-head.is-scrolled { border-bottom-color: var(--line-mid); }
.head-in { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; max-width: var(--wrap); margin-inline: auto; padding-inline: var(--gutter); min-height: var(--head-h); transition: min-height .3s; }
.brand { display: grid; gap: .1rem; text-decoration: none; color: var(--ink); }
.brand:hover { color: var(--ink); }
.brand-name { font: 500 1.6rem/1 var(--serif); letter-spacing: .005em; }
.brand-sub { font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-mute); }
.nav ul { list-style: none; display: flex; align-items: center; gap: clamp(1rem, 2.4vw, 2.2rem); }
.nav a { color: var(--ink); text-decoration: none; font-size: .98rem; letter-spacing: .01em; padding-block: .4rem; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .25s; }
.nav a:hover { background-size: 100% 1px; color: var(--ink); }
.nav a[aria-current="page"] { color: var(--burgundy); background-size: 100% 1px; }
.nav-visit a { padding: .55rem 1.1rem; border: 1px solid var(--burgundy); color: var(--burgundy); background: none; transition: background-color .2s, color .2s; }
.nav-visit a:hover, .nav-visit a[aria-current="page"] { background: var(--burgundy); color: var(--ivory); }
.nav-toggle { display: none; }

/* ---------- 4. Közös elemek ---------- */

/* archívumi címke: kis kapitális, mérsékelt betűköz */
.label { display: inline-flex; align-items: center; gap: .6rem; margin: 0 0 1.1rem; font: 600 .75rem/1.3 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--olive); }
.label::before { content: ""; width: 28px; height: 1px; background: currentColor; }
.label.plain::before { display: none; }

.btn { display: inline-flex; align-items: center; gap: .65rem; padding: .9rem 1.45rem; border: 1px solid var(--burgundy); background: var(--burgundy); color: var(--ivory); font: 600 .98rem/1.2 var(--sans); letter-spacing: .02em; text-decoration: none; transition: background-color .2s, color .2s, border-color .2s; }
.btn:hover { background: var(--burgundy-deep); border-color: var(--burgundy-deep); color: var(--ivory); text-decoration: none; }
.btn::after { content: ""; width: 18px; height: 1px; background: currentColor; transition: width .2s; }
.btn:hover::after { width: 26px; }
.btn.ghost { background: transparent; color: var(--ink); border-color: var(--line-ink); }
.btn.ghost:hover { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.btn-row { display: flex; flex-wrap: wrap; gap: .8rem; }

.more { display: inline-flex; align-items: center; gap: .55rem; font-weight: 600; text-decoration: none; color: var(--burgundy); }
.more::after { content: ""; width: 22px; height: 1px; background: currentColor; transition: width .2s; }
.more:hover::after { width: 34px; }

/* keretezett kép: vékony keret, sarokjelek (nyomdai illesztőjel), felirat alatta */
.plate { position: relative; margin: 0; }
.plate .frame { position: relative; padding: 10px; border: 1px solid var(--line-mid); background: var(--ivory); }
.plate .frame::before, .plate .frame::after { content: ""; position: absolute; width: 14px; height: 14px; pointer-events: none; }
.plate .frame::before { top: -8px; left: -8px; border-top: 1px solid var(--line-ink); border-left: 1px solid var(--line-ink); }
.plate .frame::after { bottom: -8px; right: -8px; border-bottom: 1px solid var(--line-ink); border-right: 1px solid var(--line-ink); }
.plate img { width: 100%; height: 100%; object-fit: cover; background: var(--paper-deep); }
.plate figcaption, .caption { display: flex; flex-wrap: wrap; gap: .3rem 1rem; justify-content: space-between; margin-top: .75rem; font-size: .86rem; line-height: 1.45; color: var(--ink-mute); }
.caption-no { font-variant-numeric: tabular-nums; letter-spacing: .12em; text-transform: uppercase; font-size: .75rem; color: var(--olive); font-weight: 600; }
.credit { font-size: .78rem; color: var(--ink-mute); }

/* helyőrző: ami még megerősítésre vár – a bemutatóban is jól látszik */
.todo { border: 1px dashed var(--brass); background: rgba(164, 135, 79, .08); padding: .9rem 1.1rem; color: var(--ink-soft); font-size: .95rem; }
.todo { margin: 1.2rem 0; }
.note { margin: 1.2rem 0; color: var(--ink-soft); font-size: .92rem; }
.todo strong { display: block; font: 600 .75rem/1.3 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: #5f4a1f; margin-bottom: .25rem; }

/* nyomtatott elválasztó: vékony vonal, közepén rombusz */
.rule { display: flex; align-items: center; gap: 1rem; color: var(--line-ink); margin: 0; border: 0; }
.rule::before, .rule::after { content: ""; flex: 1; height: 1px; background: var(--line-mid); }
.rule span { width: 7px; height: 7px; border: 1px solid currentColor; transform: rotate(45deg); }

/* ---------- 5. Főoldali szakaszok ---------- */

/* Hero */
.hero { padding-top: clamp(2rem, 5vw, 4.5rem); padding-bottom: var(--space-5); }
.hero-top { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 2rem; padding-bottom: 1rem; margin-bottom: clamp(1.5rem, 3vw, 2.5rem); border-bottom: 1px solid var(--line-mid); }
.hero-top .label { margin: 0; }
.coord { font: 500 .8rem/1.3 var(--sans); letter-spacing: .12em; color: var(--ink-mute); font-variant-numeric: tabular-nums; }
.hero-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-template-rows: auto auto; gap: 1.6rem var(--gutter); }
.hero h1 { grid-column: 1 / span 5; grid-row: 1; align-self: end; font-size: clamp(2.7rem, 5.2vw, 4.7rem); line-height: 1; font-weight: 500; letter-spacing: -.015em; }
.hero h1 em { display: block; font-style: italic; font-weight: 400; color: var(--burgundy); }
.hero-figure { grid-column: 6 / span 7; grid-row: 1 / span 2; align-self: center; }
.hero-figure .frame { aspect-ratio: 4 / 3; }
.hero-figure img { object-position: 30% 50%; }
.hero-side { grid-column: 1 / span 5; grid-row: 2; align-self: start; }
.hero-side .lead { font-size: 1.15rem; margin-bottom: 1.6rem; }

/* Hero, rajzos változat: fent cím + bevezető, alatta a homlokzat vonalas rajza teljes szélességben */
.hero:has(.hero-grid--drawing) { padding-top: clamp(1.25rem, 3vw, 2.25rem); padding-bottom: var(--space-4); }
.hero:has(.hero-grid--drawing) .hero-top { margin-bottom: clamp(1rem, 2vw, 1.5rem); }
.hero-grid--drawing { align-items: end; }
.hero-grid--drawing .hero-side .lead { font-size: 1.08rem; margin-bottom: 1.2rem; }
.hero-grid--drawing h1 { grid-column: 1 / span 7; grid-row: 1; font-size: clamp(2.7rem, 5vw, 4.5rem); }
.hero-grid--drawing .hero-side { grid-column: 8 / span 5; grid-row: 1; align-self: end; }
.facade-sheet { margin: clamp(1.2rem, 2.4vw, 2rem) 0 0; }
.facade-sheet .frame { position: relative; padding: clamp(10px, 1.6vw, 22px); border: 1px solid var(--line-ink); background: var(--ivory) var(--grain); }
.facade-sheet .frame::before { content: ""; position: absolute; inset: 6px; border: 1px solid var(--line-mid); pointer-events: none; }
.facade-sheet figcaption { margin-top: .75rem; font-size: .86rem; line-height: 1.45; color: var(--ink-mute); }
.facade-photo { position: relative; aspect-ratio: 2200 / 1150; }
.facade-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 40% 55%; }
.facade-photo .credit { position: absolute; right: 8px; bottom: 8px; padding: .2rem .5rem; background: rgba(251, 248, 241, .9); }
.view-toggle { display: inline-flex; border: 1px solid var(--line-ink); }
.view-toggle[hidden] { display: none; }
.view-toggle button { padding: .35rem .9rem; border: 0; background: transparent; color: var(--ink); font: 600 .75rem/1.2 var(--sans); letter-spacing: .14em; text-transform: uppercase; cursor: pointer; }
.view-toggle button + button { border-left: 1px solid var(--line-ink); }
.view-toggle button[aria-pressed="true"] { background: var(--ink); color: var(--paper); }
.facade-svg { width: 100%; height: auto; }
.facade-svg .f-roof { fill: rgba(123, 45, 43, .05); stroke: var(--ink); stroke-width: 1.4; }
.facade-svg .f-hatch { stroke: var(--ink); stroke-width: .7; opacity: .45; }
.facade-svg .f-wall { fill: #f8f1e1; stroke: var(--ink); stroke-width: 1.2; }
.facade-svg .f-proj { fill: #f2e7cf; }
.facade-svg .f-plinth { fill: #e6dece; stroke: var(--ink); stroke-width: 1.2; }
.facade-svg .f-joint { stroke: var(--ink); stroke-width: .6; opacity: .4; }
.facade-svg .f-band, .facade-svg .f-pil, .facade-svg .f-ped, .facade-svg .f-arch { fill: var(--ivory); stroke: var(--ink); stroke-width: 1.1; }
.facade-svg .f-dent { fill: var(--ink); opacity: .55; }
.facade-svg .f-letter { font: 500 30px var(--serif); letter-spacing: .22em; fill: var(--ink); }
.facade-svg .f-line { fill: none; stroke: var(--ink); stroke-width: 1; }
.facade-svg .f-cart { fill: var(--ivory); stroke: var(--burgundy); stroke-width: 1.6; }
.facade-svg .f-glass { fill: var(--ink); opacity: .88; }
.facade-svg .f-bar { stroke: #efe6d3; stroke-width: 1.6; fill: none; }
.facade-svg .f-frame { fill: none; stroke: var(--ink); stroke-width: 1.4; }
.facade-svg .f-ground { stroke: var(--ink); stroke-width: 2.2; }
.facade-svg .f-dim { stroke: var(--olive); stroke-width: 1; fill: none; }
.facade-svg .f-dimtext { font: 600 21px var(--sans); fill: var(--olive); letter-spacing: .12em; text-transform: uppercase; }
.facade-svg .f-mark circle { fill: var(--burgundy); stroke: var(--ivory); stroke-width: 4; transition: fill .2s; }
.facade-svg .f-mark text { font: 600 26px var(--sans); fill: var(--ivory); pointer-events: none; }
.facade-svg .f-mark:hover circle, .facade-svg .f-mark:focus-visible circle, .facade-svg .f-mark.is-hot circle { fill: var(--ink); }
.facade-svg .f-mark:focus-visible circle { stroke: var(--burgundy); stroke-width: 6; }
.facade-legend { list-style: none; display: flex; flex-wrap: wrap; gap: .4rem 1.6rem; margin: 1rem 0 0; padding: .9rem 0 0; border-top: 1px solid var(--line-mid); }
.facade-legend a { display: inline-flex; align-items: center; gap: .55rem; color: var(--ink); text-decoration: none; font-size: .95rem; }
.facade-legend a:hover, .facade-legend li.is-hot a { color: var(--burgundy); }
.facade-legend li.is-active a { color: var(--burgundy); text-decoration: underline; text-underline-offset: .2em; }
.facade-svg .f-mark.is-active circle { fill: var(--ink); }
.facade-note { margin-top: 1rem; padding: 1rem 1.2rem; border-left: 3px solid var(--burgundy); background: var(--paper); max-width: 70ch; }
.facade-note[hidden] { display: none; }
.facade-note .fn-title { display: flex; align-items: center; gap: .6rem; margin: 0 0 .4rem; font: 500 1.25rem/1.2 var(--serif); }
.facade-note .fn-text { margin: 0 0 .6rem; color: var(--ink-soft); }
.fl-n, .facade-legend .fl-n { display: inline-grid; place-items: center; width: 1.6rem; height: 1.6rem; border-radius: 50%; background: var(--burgundy); color: var(--ivory); font: 600 .8rem/1 var(--sans); }
/* Családfa: a festmény rajzos átirata (tools/csaladfa.py), kattintható medalionok, nagyítás */
.cf-intro { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 2rem var(--gutter); align-items: start; margin-top: 1.6rem; }
.cf-intro .prose { grid-column: 1 / span 7; }
.cf-photo { grid-column: 9 / span 4; }
.cf-photo .frame { aspect-ratio: 800 / 1006; }
.cf-sheet { position: relative; margin-top: clamp(1.6rem, 3vw, 2.6rem); padding: clamp(10px, 1.6vw, 22px); border: 1px solid var(--line-ink); background: var(--ivory) var(--grain); }
.cf-tools { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .6rem 1.2rem; margin-bottom: .8rem; }
.cf-tools p { margin: 0; font-size: .86rem; color: var(--ink-mute); }
.cf-zoom { padding: .45rem 1rem; border: 1px solid var(--line-ink); background: transparent; color: var(--ink); font: 600 .75rem/1.2 var(--sans); letter-spacing: .14em; text-transform: uppercase; cursor: pointer; }
.cf-zoom:hover, .cf-zoom[aria-pressed="true"] { background: var(--ink); color: var(--paper); }
.cf-zoom[hidden] { display: none; }
.cf-scrollbox { overflow: hidden; }
.cf-svg { display: block; width: 100%; height: auto; }
.cf-sheet.is-zoomed .cf-scrollbox { overflow: auto; max-height: min(80vh, 900px); overscroll-behavior: contain; }
.cf-sheet.is-zoomed .cf-svg { width: 2800px; max-width: none; }
.cf-svg .cf-leaves { fill: var(--olive); opacity: .28; }
.cf-svg .cf-trunk { fill: #8a6d4b; stroke: var(--ink); stroke-width: 3; }
.cf-svg .cf-branch { fill: none; stroke: #8a6d4b; stroke-width: 12; stroke-linecap: round; }
.cf-svg .cf-stem { stroke-width: 26; }
.cf-svg .cf-ribbon { fill: #f6ecd2; stroke: var(--burgundy); stroke-width: 3; }
.cf-svg .cf-banner { font: italic 500 46px var(--serif); fill: var(--ink); text-anchor: middle; }
.cf-svg .cf-ground { stroke: var(--ink); stroke-width: 3; }
.cf-svg .cf-scroll rect { fill: #f6ecd2; stroke: var(--ink); stroke-width: 2; }
.cf-svg .cf-scroll text { font: italic 500 40px var(--serif); fill: var(--ink); text-anchor: middle; }
.cf-svg .cf-m { cursor: pointer; }
.cf-svg .cf-m circle { fill: #f8edc4; stroke: var(--ink); stroke-width: 3; transition: fill .2s, stroke .2s; }
.cf-svg .cf-m.cf-low circle { stroke-dasharray: 10 7; }
.cf-svg .cf-m text { font-family: var(--serif); fill: var(--ink); text-anchor: middle; pointer-events: none; }
.cf-svg .cf-m .cf-n { font-weight: 600; fill: var(--burgundy); }
.cf-svg .cf-m:hover circle { fill: #fffaf0; stroke: var(--burgundy); stroke-width: 6; }
.cf-svg .cf-m.is-active circle { fill: #fffaf0; stroke: var(--burgundy); stroke-width: 10; }
.cf-live { position: sticky; bottom: 1rem; z-index: 2; }
.cf-note { position: relative; margin-top: 1rem; padding: 1rem 3rem 1rem 1.2rem; border-left: 3px solid var(--burgundy); background: var(--paper); box-shadow: 0 6px 24px rgba(42, 36, 29, .16); max-width: 70ch; }
.cf-note[hidden], .cf-note-flag[hidden] { display: none; }
.cf-note-name { margin: 0 0 .3rem; font: 500 1.3rem/1.2 var(--serif); color: var(--burgundy); }
.cf-note-text { margin: 0; font: italic 1.08rem/1.5 var(--serif); color: var(--ink-soft); }
.cf-note-flag { margin: .5rem 0 0; font: 600 .72rem/1.3 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: #5f4a1f; }
.cf-note-close { position: absolute; top: .4rem; right: .5rem; width: 2.2rem; height: 2.2rem; border: 0; background: transparent; color: var(--ink); font-size: 1.5rem; line-height: 1; cursor: pointer; }
.cf-index { margin-top: 1.2rem; border-top: 1px solid var(--line-mid); padding-top: .9rem; }
.cf-index summary { cursor: pointer; font: 600 .82rem/1.3 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--ink); }
.cf-index ol { list-style: none; margin: 1rem 0 0; padding: 0; columns: 3 16rem; column-gap: 2rem; font-size: .92rem; }
.cf-index li { break-inside: avoid; margin-bottom: .35rem; color: var(--ink-mute); }
.cf-index a { font-family: var(--serif); font-size: 1.05rem; font-weight: 600; color: var(--burgundy); }
@media (max-width: 900px) {
  .cf-intro .prose, .cf-photo { grid-column: 1 / -1; }
  .cf-photo { max-width: 420px; }
  .cf-sheet.is-zoomed .cf-svg { width: 2000px; }
}

@media (prefers-reduced-motion: no-preference) {
  .js .facade-svg .f-draw { opacity: 0; transition: opacity 1.2s ease; }
  .js .facade-sheet.is-in .f-draw { opacity: 1; }
}

/* Kárhozott-halom: 360°-os forgatás (script.js 3d) */
.figure-wide.halom-3d .frame { aspect-ratio: 1339 / 794; }
.halom-3d .frame img { object-fit: contain; }
.spin-stage { position: relative; }
.spin-view { position: relative; width: 100%; height: 100%; overflow: hidden; }
.spin-view img { transform-origin: 0 0; }
.spin-stage.is-spin .spin-view { cursor: grab; touch-action: pan-y; user-select: none; }
.spin-stage.is-zoomed .spin-view { cursor: move; touch-action: none; }
.spin-stage.is-drag .spin-view { cursor: grabbing; }
.spin-stage.is-spin img { -webkit-user-drag: none; }
.spin-view:focus-visible { outline: 2px solid var(--burgundy); outline-offset: 2px; }
.spin-ctrl { position: absolute; top: .9rem; right: .9rem; display: flex; gap: .3rem; }
.spin-ctrl[hidden] { display: none; }
.spin-ctrl button { display: grid; place-items: center; width: 2.4rem; height: 2.4rem; padding: 0; border: 1px solid var(--ink); background: rgba(251, 248, 241, .94); color: var(--ink); cursor: pointer; }
.spin-ctrl button:hover:not(:disabled) { background: var(--ink); color: var(--paper); }
.spin-ctrl button:disabled { opacity: .4; cursor: default; }
.spin-ctrl svg { width: 1.1rem; height: 1.1rem; }
.spin-btn { position: absolute; left: 50%; bottom: 1rem; transform: translateX(-50%); display: inline-flex; align-items: center; gap: .55rem; padding: .6rem 1.1rem; border: 1px solid var(--ink); background: rgba(251, 248, 241, .94); color: var(--ink); font: 600 .78rem/1.2 var(--sans); letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; cursor: pointer; }
.spin-btn:hover { background: var(--ink); color: var(--paper); }
.spin-btn:disabled { cursor: progress; }
.spin-btn svg { width: 1.15rem; height: 1.15rem; }
.spin-btn[hidden], .spin-stage .spin-hint[hidden] { display: none; }
.spin-stage .spin-hint { position: absolute; left: 50%; bottom: .9rem; transform: translateX(-50%); margin: 0; padding: .35rem .8rem; background: rgba(42, 36, 29, .8); color: var(--ivory); font-size: .82rem; line-height: 1.35; text-align: center; width: max-content; max-width: calc(100% - 2rem); pointer-events: none; }

/* Képnézegető (script.js 3e) */
img.lb-item { cursor: zoom-in; }
img.lb-item:focus-visible { outline: 2px solid var(--burgundy); outline-offset: 3px; }
html.lb-open { overflow: hidden; scrollbar-gutter: stable; }
.lb { inset: 0; width: auto; height: auto; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: transparent; color: var(--ivory); overflow: hidden; touch-action: pan-y pinch-zoom; }
.lb::backdrop { background: rgba(20, 16, 12, .96); }
.lb[open] { display: grid; place-items: center; }
.lb-fig { --lb-h: calc(100dvh - 9rem); display: grid; justify-items: center; gap: .9rem; width: 100%; height: 100%; margin: 0; padding: 4rem 5rem 1.4rem; align-content: center; }
/* A méret a kép arányából jön (--r, script.js), így a kis és a nagy változat ugyanakkorán látszik: nem ugrik. */
.lb-fig img { display: block; width: min(100%, calc(var(--lb-h) * var(--r, 1.5))); height: auto; max-height: var(--lb-h); object-fit: contain; background: var(--ivory); box-shadow: 0 12px 48px rgba(0, 0, 0, .55); }
.lb-fig figcaption { max-width: 72ch; max-height: 30vh; overflow-y: auto; text-align: center; font-size: .92rem; line-height: 1.45; color: #e9e2d2; }
.lb-count { margin-right: .4rem; font: 600 .75rem/1 var(--sans); letter-spacing: .14em; color: #bdb3a0; }
.lb button { position: fixed; display: grid; place-items: center; width: 3rem; height: 3rem; padding: 0; border: 1px solid rgba(251, 248, 241, .45); background: rgba(20, 16, 12, .6); color: var(--ivory); font: 400 1.9rem/1 var(--serif); cursor: pointer; }
.lb button:hover, .lb button:focus-visible { background: var(--ivory); color: var(--ink); }
.lb button[hidden] { display: none; }
.lb-close { top: 1rem; right: 1rem; }
.lb-prev, .lb-next { top: 50%; transform: translateY(-50%); }
.lb-prev { left: 1rem; }
.lb-next { right: 1rem; }
@media (max-width: 640px) {
  .lb-fig { --lb-h: calc(100dvh - 12rem); padding: 4rem .8rem 5rem; }
  .lb-prev, .lb-next { top: auto; bottom: 1rem; transform: none; }
}
/* Fektetett telefon: a nyilak oldalt, keskeny margó, hogy a kép ne zsugorodjon apróra. */
@media (max-height: 500px) and (orientation: landscape) {
  .lb-fig { padding: .6rem 4.2rem; gap: .4rem; }
  .lb-fig figcaption { font-size: .8rem; max-height: 3em; }
  .lb-close { top: .6rem; right: .6rem; }
  .lb-prev, .lb-next { top: 50%; bottom: auto; transform: translateY(-50%); }
  .lb-prev { left: .6rem; }
  .lb-next { right: .6rem; }
}

/* Bevezető: aszimmetrikus szöveg + kép */
.intro-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 2.5rem var(--gutter); align-items: start; }
.intro-text { grid-column: 1 / span 5; padding-top: 1rem; }
.intro-text h2 { margin-bottom: 1.4rem; }
.intro-figure { grid-column: 7 / span 6; }
.intro-figure .frame { aspect-ratio: 4 / 5; }
.facts { list-style: none; margin: 2rem 0 0; border-top: 1px solid var(--line-mid); }
.facts li { display: grid; grid-template-columns: 6.5rem 1fr; gap: 1rem; padding: .85rem 0; border-bottom: 1px solid var(--line); }
.facts .yr { font: 500 1.35rem/1.2 var(--serif); color: var(--burgundy); font-variant-numeric: oldstyle-nums; }
.facts p { margin: 0; color: var(--ink-soft); font-size: .98rem; }

/* Birtoktérkép */
.estate { background: var(--paper-deep) var(--grain); border-block: 1px solid var(--line-mid); }
.estate-head { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 1rem var(--gutter); margin-bottom: 2.5rem; align-items: end; }
.estate-head > div { grid-column: 1 / span 7; }
.estate-head p.lead { grid-column: 8 / span 5; margin: 0; font-size: 1.15rem; }
.estate-body { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 2rem var(--gutter); align-items: start; }
.map-sheet { grid-column: 1 / span 8; margin: 0; }
.map-sheet.hist { grid-column: 1 / -1; margin-bottom: clamp(1.5rem, 3vw, 2.5rem); }
.map-sheet.hist img { width: 100%; height: auto; }
.sheet-no { display: flex; justify-content: space-between; gap: 1rem; margin: 0 0 .6rem; font: 600 .75rem/1.3 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--ink-mute); }
.sheet-no span:first-child { color: var(--burgundy); }
.map-sheet .sheet { position: relative; padding: 14px; border: 1px solid var(--line-ink); background: var(--ivory) var(--grain); }
.map-sheet .sheet::before { content: ""; position: absolute; inset: 6px; border: 1px solid var(--line-mid); pointer-events: none; }
.map-svg { width: 100%; height: auto; color: var(--ink); }
.map-svg .contour { fill: none; stroke: var(--olive); stroke-width: .8; opacity: .38; }
.map-svg .contour.major { stroke-width: 1.1; opacity: .5; }
.map-svg .grid { stroke: var(--line-ink); stroke-width: .6; stroke-dasharray: 2 5; }
.map-svg .tick { font: 500 11px var(--sans); fill: var(--ink-mute); letter-spacing: .06em; }
.map-svg .dir { stroke: var(--burgundy); stroke-width: 1; fill: none; }
.map-svg .dir-label { font: 600 12px var(--sans); fill: var(--burgundy); letter-spacing: .1em; text-transform: uppercase; }
.map-svg .dir-km { font-family: var(--serif); font-style: italic; font-weight: 500; letter-spacing: 0; text-transform: none; fill: var(--ink-soft); }
.map-dirs { display: none; margin: .8rem 0 0; font-size: .95rem; color: var(--ink-soft); }
@media (min-width: 641px) and (max-width: 1024px) {
  .map-svg .dir-label { font-size: 18px; }
  .map-svg .tick { font-size: 15px; }
  .map-svg .site-name { font-size: 34px; }
  .map-svg .site-sub, .map-svg .cartouche-sub { font-size: 14px; }
  .map-svg .cartouche-title { font-size: 28px; }
  .map-svg .scale-text { font-size: 15px; }
}
.map-svg .site-mark { fill: var(--burgundy); }
.map-svg .site-ring { fill: none; stroke: var(--burgundy); stroke-width: 1; }
.map-svg .site-name { font: 500 26px var(--serif); fill: var(--ink); }
.map-svg .site-sub { font: 600 11px var(--sans); fill: var(--ink-mute); letter-spacing: .14em; }
.map-svg .cartouche-title { font: 500 22px var(--serif); fill: var(--ink); }
.map-svg .cartouche-sub { font: 600 10px var(--sans); fill: var(--ink-mute); letter-spacing: .16em; }
.map-svg .scale-text { font: 500 11px var(--sans); fill: var(--ink-soft); }
.map-sheet figcaption { margin-top: .8rem; font-size: .84rem; color: var(--ink-mute); }
.legend { grid-column: 9 / span 4; padding-top: 1.9rem; }
.legend h3 { font-size: 1.5rem; margin-bottom: 1rem; }
.legend ol { list-style: none; counter-reset: lg; border-top: 1px solid var(--line-mid); }
.legend li { counter-increment: lg; display: grid; grid-template-columns: 2.2rem 1fr; gap: .4rem; padding: 1rem 0; border-bottom: 1px solid var(--line); }
.legend li::before { content: counter(lg, upper-roman) "."; font: 500 1.1rem/1.3 var(--serif); color: var(--burgundy); }
.legend b { display: block; font: 500 1.2rem/1.25 var(--serif); margin-bottom: .2rem; }
.legend p { margin: 0; font-size: .95rem; color: var(--ink-soft); }

/* Idővonal (főoldal: rövid; Történet oldal: teljes) */
.chrono { position: relative; list-style: none; margin-top: 2.5rem; }
.chrono::before { content: ""; position: absolute; top: 0; bottom: 0; left: calc(9.5rem + 11px); width: 1px; background: var(--line-ink); transform-origin: top; }
.chrono li { position: relative; display: grid; grid-template-columns: 9.5rem 22px minmax(0, 1fr); gap: 0 1.6rem; padding-bottom: 2.4rem; }
.chrono li:last-child { padding-bottom: 0; }
.chrono .when { font: 500 clamp(1.7rem, 2.6vw, 2.3rem)/1 var(--serif); color: var(--ink); text-align: right; font-variant-numeric: oldstyle-nums; }
.chrono .when small { display: block; margin-top: .35rem; font: 600 .75rem/1.3 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-mute); font-variant-numeric: normal; }
.chrono .dot { position: relative; top: .55rem; width: 11px; height: 11px; margin-left: 5.5px; transform: rotate(45deg); border: 1px solid var(--ink); background: var(--paper); }
.chrono li.key .dot { background: var(--burgundy); border-color: var(--burgundy); }
.chrono .what { max-width: 60ch; padding-top: .15rem; }
.chrono .what h3 { font-size: 1.3rem; margin-bottom: .35rem; }
.chrono .what p { margin: 0; color: var(--ink-soft); font-size: 1rem; }
.chrono .tag { display: inline-block; margin-bottom: .5rem; font: 600 .75rem/1.2 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--olive); }
.chrono .tag[data-t="csalad"] { color: #7a6233; }
.chrono .tag[data-t="muzeum"] { color: var(--archive); }
.chrono .tag[data-t="felujitas"] { color: var(--burgundy); }
.chrono .src { display: block; margin-top: .35rem; font-size: .8rem; color: var(--ink-mute); }
.chrono-fig { max-width: 260px; margin: .8rem 0 .2rem; }
.chrono-fig.t { max-width: 170px; }
.chrono-fig a { display: block; }
.chrono-fig img { display: block; width: 100%; height: auto; padding: 4px; border: 1px solid var(--line-mid); background: var(--ivory); }
.chrono-fig a:hover img { border-color: var(--burgundy); }
.chrono-fig figcaption { margin-top: .35rem; font-size: .8rem; line-height: 1.35; color: var(--ink-mute); }
.chrono-intro { margin: 1rem 0 0; color: var(--ink-soft); }
/* Kétoldalas krónika (széles képernyőn): évszám középen a tengelyen, a bejegyzés a data-side szerint balra
   vagy jobbra. A Történet oldalon bal = Balmazújváros, jobb = a család és a kastély; máshol váltakozva.
   Keskenyebb képernyőn a fenti egyhasábos elrendezés marad. */
.chrono-sides, .chrono-intro .on-wide { display: none; }
@media (min-width: 901px) {
  .chrono-intro .on-narrow { display: none; }
  .chrono-intro .on-wide { display: inline; }
  .chrono-sides { display: grid; grid-template-columns: minmax(0, 1fr) 11rem minmax(0, 1fr); gap: 0 1.6rem; margin: 2rem 0 0; padding-bottom: .7rem; border-bottom: 1px solid var(--line-mid); }
  .chrono-sides span { font: 600 .75rem/1.3 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--olive); }
  .chrono-sides span:first-child { text-align: right; }
  .chrono-sides span:last-child { grid-column: 3; }
  .chrono.two::before { left: 50%; }
  .chrono.two li { grid-template-columns: minmax(0, 1fr) 11rem minmax(0, 1fr); gap: 0 1.6rem; }
  .chrono.two .dot { display: none; }
  .chrono.two .when { grid-column: 2; grid-row: 1; align-self: start; justify-self: center; position: relative; z-index: 1; padding: .35rem .6rem; text-align: center; white-space: nowrap; font-size: clamp(1.4rem, 2vw, 1.85rem); background: var(--chrono-bg, var(--paper)); border: 1px solid var(--line-mid); }
  .chrono.two li.key .when { border-color: var(--burgundy); color: var(--burgundy); }
  .chrono.two .when small { display: block; }
  .chrono.two li .what { grid-row: 1; position: relative; max-width: 46ch; padding-top: .4rem; }
  .chrono.two li[data-side="l"] .what { grid-column: 1; justify-self: end; text-align: right; }
  .chrono.two li[data-side="r"] .what { grid-column: 3; justify-self: start; }
  .chrono.two li[data-side="l"] .chrono-fig { margin-left: auto; }
  .chrono.two li .what::after { content: ""; position: absolute; top: 1.35rem; width: 1.1rem; height: 1px; background: var(--line-ink); }
  .chrono.two li[data-side="l"] .what::after { right: -1.6rem; }
  .chrono.two li[data-side="r"] .what::after { left: -1.6rem; }
  .estate .chrono.two { --chrono-bg: var(--paper-deep); }
}
.chrono-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 1rem 2rem; }

/* Az épület: szerkesztett galéria, eltérő méretek */
.gallery { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(1.2rem, 2.4vw, 2.2rem) var(--gutter); margin-top: 2.5rem; }
.gallery .plate:nth-child(1) { grid-column: 1 / span 7; }
.gallery .plate:nth-child(1) .frame { aspect-ratio: 4 / 3; }
.gallery .plate:nth-child(2) { grid-column: 8 / span 5; align-self: end; }
.gallery .plate:nth-child(2) .frame { aspect-ratio: 4 / 5; }
.gallery .plate:nth-child(3) { grid-column: 2 / span 4; }
.gallery .plate:nth-child(3) .frame { aspect-ratio: 3 / 4; }
.gallery .plate:nth-child(4) { grid-column: 6 / span 7; margin-top: 4rem; }
.gallery .plate:nth-child(4) .frame { aspect-ratio: 16 / 10; }
.gallery .plate:nth-child(5) { grid-column: 1 / span 5; }
.gallery .plate:nth-child(5) .frame { aspect-ratio: 4 / 3; }
.gallery .plate:nth-child(6) { grid-column: 6 / span 4; }
.gallery .plate:nth-child(6) .frame { aspect-ratio: 4 / 3; }
.gallery .plate:nth-child(7) { grid-column: 10 / span 3; align-self: center; }
.gallery .plate:nth-child(7) .frame { aspect-ratio: 3 / 4; }
.arch-notes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 var(--gutter); margin-top: 3rem; border-top: 1px solid var(--line-mid); }
.arch-notes div { padding: 1.3rem 0 0; }
.arch-notes h3 { font-size: 1.3rem; margin-bottom: .4rem; }
.arch-notes p { margin: 0; font-size: .97rem; color: var(--ink-soft); }

/* Semsey Andor: archívumzöld sáv */
.namesake { background: var(--archive); color: var(--archive-ink); }
.namesake h2, .namesake h3 { color: #f6f1e4; }
.namesake .label { color: #c9bf98; }
.namesake a { color: #f1d9b5; }
.namesake a:hover { color: #fff; }
.namesake-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 2rem var(--gutter); align-items: start; }
.namesake-years { grid-column: 1 / span 5; }
.namesake-years .years { font: 400 clamp(3.6rem, 9vw, 7.5rem)/.9 var(--serif); letter-spacing: -.02em; color: #f6f1e4; font-variant-numeric: lining-nums; }
.namesake-years .years span { display: block; color: #c9bf98; font-size: .45em; letter-spacing: .02em; margin: .35em 0; }
.namesake-text { grid-column: 7 / span 6; }
.namesake-text .lead { color: #e9e4d4; }
.namesake-text p { color: #ddd6c2; }
.notes { list-style: none; counter-reset: n; margin: 1.8rem 0 2rem; border-top: 1px solid rgba(233, 228, 212, .25); }
.notes li { counter-increment: n; display: grid; grid-template-columns: 2.4rem 1fr; padding: .85rem 0; border-bottom: 1px solid rgba(233, 228, 212, .14); font-size: .98rem; color: #ddd6c2; }
.notes li::before { content: counter(n, decimal-leading-zero); font: 600 .75rem/1.9 var(--sans); letter-spacing: .1em; color: #c9bf98; }
.namesake .plate.portrait { max-width: 420px; margin-top: 2.5rem; }
.namesake .plate .frame { border-color: rgba(233, 228, 212, .35); }
.namesake .plate .frame::before, .namesake .plate .frame::after { border-color: rgba(233, 228, 212, .6); }
.namesake .plate .frame { aspect-ratio: 1000 / 1308; }
.namesake .plate figcaption { color: #c9c1aa; }
.namesake .caption-no { color: #c9bf98; }
.namesake .credit { color: #c9c1aa; }
.namesake .btn.ghost { color: #f6f1e4; border-color: rgba(246, 241, 228, .6); }
.namesake .btn.ghost:hover { background: #f6f1e4; color: var(--archive); }

/* Múzeum: tartalomjegyzék-szerű lista pontozott vezetővel */
.museum-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 2.5rem var(--gutter); align-items: start; }
.museum-intro { grid-column: 1 / span 5; }
.museum-index { grid-column: 7 / span 6; }
.toc { list-style: none; border-top: 1px solid var(--line-ink); }
.toc li { display: flex; align-items: baseline; gap: .8rem; padding: .95rem 0; border-bottom: 1px solid var(--line); }
.toc .t { font: 500 1.25rem/1.25 var(--serif); }
.toc .lead-dots { flex: 1; min-width: 1.5rem; border-bottom: 1px dotted var(--line-ink); transform: translateY(-.3em); }
.toc .k { font: 600 .75rem/1.2 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--olive); white-space: nowrap; }
.inventory { margin-top: 2.5rem; padding: 1.5rem 1.6rem; border: 1px solid var(--line-mid); background: var(--ivory); }
.inventory h3 { font-size: 1.4rem; margin-bottom: .3rem; }
.inventory > p { color: var(--ink-soft); font-size: .97rem; }
.inventory ol { list-style: none; counter-reset: inv; margin-top: 1rem; }
.inventory li { counter-increment: inv; display: grid; grid-template-columns: 3.2rem 1fr; padding: .55rem 0; border-top: 1px dotted var(--line-mid); }
.inventory li::before { content: "Ltsz. " counter(inv); font: 600 .75rem/2 var(--sans); letter-spacing: .08em; color: var(--ink-mute); text-transform: uppercase; }

/* A kastély ma: kortárs, három hasáb hajszálvonallal */
.today-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 2.5rem; border-top: 1px solid var(--line-ink); }
.today-grid > div { padding: 1.6rem var(--gutter) 0 0; }
.today-grid > div + div { padding-left: var(--gutter); border-left: 1px solid var(--line); }
.today-grid .num { font: 500 2.6rem/1 var(--serif); color: var(--olive); font-variant-numeric: oldstyle-nums; }
.today-grid h3 { margin: .7rem 0 .5rem; font-size: 1.45rem; }
.today-grid p { color: var(--ink-soft); font-size: .98rem; }

/* Látogatás (főoldali sáv és a Látogatás oldal) */
.visit { background: var(--ivory); border-top: 1px solid var(--line-mid); }
.visit-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 2.5rem var(--gutter); }
.visit-grid > .visit-title { grid-column: 1 / span 4; }
.visit-grid > .visit-hours { grid-column: 5 / span 4; }
.visit-grid > .visit-tickets { grid-column: 9 / span 4; }
.visit h3 { font-size: 1.35rem; margin-bottom: .9rem; }
.hours th, .hours td, .tickets th, .tickets td { padding: .7rem 0; border-bottom: 1px solid var(--line); text-align: left; font-weight: 400; vertical-align: top; }
.hours td, .tickets td { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; padding-left: 1rem; }
.hours tr:first-child th, .hours tr:first-child td, .tickets tr:first-child th, .tickets tr:first-child td { border-top: 1px solid var(--line-ink); }
.table-note { margin-top: .7rem; font-size: .88rem; color: var(--ink-mute); }
.visit-contact { margin-top: 1.6rem; font-size: 1rem; line-height: 1.75; }

/* ---------- 6. Aloldalak ---------- */

.page-head { padding-top: clamp(2.5rem, 6vw, 5rem); padding-bottom: clamp(2rem, 4vw, 3.5rem); border-bottom: 1px solid var(--line-mid); }
.page-head h1 { font-size: clamp(2.6rem, 6vw, 5rem); line-height: 1; max-width: 16ch; }
.page-head .lead { margin-top: 1.4rem; max-width: 56ch; }
.page-head-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 2rem var(--gutter); align-items: end; }
.page-head-grid > div { grid-column: 1 / span 7; }
.page-head-grid > .plate { grid-column: 8 / span 5; }
.page-head-grid > .plate .frame { aspect-ratio: 4 / 3; }
.page-head-grid > .plate.portrait-head { grid-column: 9 / span 4; }
.page-head-grid > .plate.portrait-head .frame { aspect-ratio: 1000 / 1308; }
.plate.statue { max-width: 340px; margin: 2rem 0; }
.plate.statue .frame { aspect-ratio: 774 / 1091; }
.figure-row .plate.tall .frame { aspect-ratio: 3 / 4; }
.figure-row .plate.fit .frame, .figure-wide.fit .frame { aspect-ratio: auto; }
.plate.fit img { height: auto; object-fit: contain; }
.plate.narrow { max-width: 420px; margin: 2rem 0; }
.plate.narrow .frame { aspect-ratio: 3 / 4; }
.figure-row { align-items: start; }
/* A homlokzati rajz jelölőinek célbekezdései: számjel a margón, a megnyitott bekezdés röviden kiemelve */
.anchor-para { position: relative; scroll-margin-top: calc(var(--head-h) + 24px); }
.para-no { position: absolute; left: -2.3rem; top: .1rem; display: inline-grid; place-items: center; width: 1.5rem; height: 1.5rem; border-radius: 50%; background: var(--burgundy); color: var(--ivory); font: 600 .75rem/1 var(--sans); }
.anchor-para:target { background: rgba(164, 135, 79, .14); box-shadow: 0 0 0 .6rem rgba(164, 135, 79, .14); }
@media (max-width: 900px) { .para-no { position: static; margin-right: .5rem; vertical-align: .1em; } }
.split { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 2.5rem var(--gutter); align-items: start; }
.split > .side { grid-column: 1 / span 4; position: sticky; top: calc(var(--head-h) + 1.5rem); }
.split > .main { grid-column: 6 / span 7; }
.split > .side h2 { font-size: clamp(1.9rem, 3.4vw, 2.8rem); }
.split > .side p { color: var(--ink-mute); font-size: .95rem; margin-top: 1rem; }
.toc-nav { margin-top: 1.4rem; }
.toc-nav ol { list-style: none; border-top: 1px solid var(--line-mid); }
.toc-nav a { display: block; padding: .55rem 0; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; font-size: .95rem; }
.toc-nav a:hover { color: var(--burgundy); }
.figure-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.6rem; margin: 2rem 0; }
/* A kastély régi képeken (tortenet.html): időrendes képsor, a képek saját arányukban */
.old-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.2rem var(--gutter); margin-top: 2rem; align-items: start; }
.old-gallery .plate.fit .frame { aspect-ratio: auto; }
@media (max-width: 640px) { .old-gallery { grid-template-columns: 1fr; } }
.figure-row .frame { aspect-ratio: 4 / 3; }
.figure-wide { margin: 2rem 0; }
.figure-wide .frame { aspect-ratio: 16 / 9; }
.sources { margin-top: 1rem; font-size: .9rem; color: var(--ink-mute); }
.sources ol { padding-left: 1.3em; }
.sources li { margin-bottom: .45rem; overflow-wrap: anywhere; }
.doc > * { max-width: 72ch; }
.doc h2 { font-size: clamp(1.6rem, 3vw, 2.1rem); margin: 2.6rem 0 .8rem; }
.doc h3 { margin: 1.8rem 0 .5rem; font-size: 1.3rem; }
.doc p, .doc li { color: var(--ink-soft); }
.doc ul { padding-left: 1.2em; margin-bottom: 1em; }
.doc dl { display: grid; grid-template-columns: minmax(9rem, max-content) 1fr; gap: .5rem 1.5rem; margin: 1rem 0; }
.doc dt { font-weight: 600; color: var(--ink); }
.doc dd { margin: 0; color: var(--ink-soft); }
.map-box { position: relative; aspect-ratio: 16 / 10; border: 1px solid var(--line-mid); background: var(--paper-deep) var(--grain); display: grid; place-items: center; text-align: center; padding: 1.5rem; }
.map-box iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.map-box p { max-width: 40ch; color: var(--ink-soft); font-size: .92rem; }
.notfound { min-height: 55vh; display: grid; align-content: center; }
.notfound h1 { font-size: clamp(2.2rem, 5vw, 3.6rem); max-width: 18ch; }

/* ---------- 7. Lábléc ---------- */

.site-foot { background: var(--ink); color: #d9d0bd; padding-top: var(--space-5); }
.site-foot a { color: #f0e6cf; text-decoration-color: rgba(240, 230, 207, .4); }
.site-foot a:hover { color: #fff; }
.foot-in { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 2rem var(--gutter); max-width: var(--wrap); margin-inline: auto; padding-inline: var(--gutter); padding-bottom: 3rem; }
.foot-brand { grid-column: 1 / span 5; }
.foot-compass { width: 56px; height: 56px; color: var(--brass); margin-bottom: 1.2rem; }
.foot-compass text { font-family: var(--sans); font-weight: 600; }
.foot-name { font: 500 2rem/1 var(--serif); color: #f6f1e4; margin: 0 0 .3rem; }
.foot-museum { font-size: .76rem; letter-spacing: .16em; text-transform: uppercase; color: #b5aa90; margin-bottom: 1.4rem; }
.foot-brand address { line-height: 1.8; }
.foot-nav { grid-column: 7 / span 3; }
.foot-nav ul { list-style: none; }
.foot-nav li { padding: .35rem 0; }
.foot-nav a { text-decoration: none; }
.foot-nav a:hover { text-decoration: underline; }
.foot-coord { grid-column: 10 / span 3; justify-self: end; text-align: right; font: 500 .82rem/1.8 var(--sans); letter-spacing: .14em; color: #b5aa90; font-variant-numeric: tabular-nums; }
.foot-bottom { display: flex; flex-wrap: wrap; gap: .4rem 1.6rem; max-width: var(--wrap); margin: 0 auto; padding: 1.3rem var(--gutter) 1.6rem; border-top: 1px solid rgba(217, 208, 189, .18); font-size: .86rem; color: #b5aa90; }
.foot-bottom > span:first-child { margin-right: auto; }
/* a lebegő chatgomb ne takarja az utolsó sort */
.foot-bottom { padding-bottom: 5.5rem; }

/* ---------- 8. Asszisztens ---------- */

.chat-fab { position: fixed; right: 20px; bottom: 20px; z-index: 60; display: inline-flex; align-items: center; gap: .55rem; padding: .8rem 1.15rem; border: 1px solid var(--ink); background: var(--ink); color: var(--paper); font: 600 .95rem/1 var(--sans); letter-spacing: .02em; cursor: pointer; box-shadow: 0 6px 22px rgba(42, 36, 29, .18); transition: background-color .2s; }
.chat-fab:hover { background: var(--burgundy); border-color: var(--burgundy); }
.chat-fab svg { width: 20px; height: 20px; }
.chat { position: fixed; right: 20px; bottom: 84px; z-index: 61; width: min(400px, calc(100vw - 32px)); max-height: min(620px, calc(100vh - 120px)); max-height: min(620px, calc(100dvh - 120px)); display: flex; flex-direction: column; background: var(--ivory); border: 1px solid var(--line-ink); box-shadow: 0 18px 50px rgba(42, 36, 29, .22); }
.chat[hidden] { display: none; }
.chat { overflow: hidden; }
.chat-hints { flex: 0 1 auto; max-height: 30%; overflow-y: auto; }
.chat-head { position: relative; padding: 1rem 3.4rem .9rem 1.2rem; border-bottom: 1px solid var(--line-mid); background: var(--paper); }
.chat-head .label { margin-bottom: .3rem; font-size: .75rem; }
.chat-head h2 { font-size: 1.45rem; }
.chat-close { position: absolute; top: .7rem; right: .7rem; width: 44px; height: 44px; display: grid; place-items: center; border: 0; background: none; color: var(--ink); cursor: pointer; }
.chat-close svg { width: 22px; height: 22px; }
.chat-log { flex: 1 1 auto; overflow-y: auto; padding: 1rem 1.2rem; display: flex; flex-direction: column; gap: .7rem; min-height: 0; }
.msg { max-width: 88%; padding: .65rem .85rem; font-size: .97rem; line-height: 1.5; white-space: pre-wrap; overflow-wrap: anywhere; }
.msg-bot { align-self: flex-start; background: var(--paper); border-left: 2px solid var(--olive); }
.msg-user { align-self: flex-end; background: var(--ink); color: var(--paper); }
.msg-wait { align-self: flex-start; color: var(--ink-mute); }
.chat-hints { display: flex; flex-wrap: wrap; gap: .4rem; padding: 0 1.2rem .8rem; }
.chat-hints button { padding: .45rem .7rem; border: 1px solid var(--line-mid); background: transparent; color: var(--ink); font: 500 .85rem/1.2 var(--sans); cursor: pointer; text-align: left; }
.chat-hints button:hover { border-color: var(--burgundy); color: var(--burgundy); }
.chat-form { display: flex; border-top: 1px solid var(--line-mid); }
.chat-form input { flex: 1; min-width: 0; padding: .9rem 1rem; border: 0; background: #fff; color: var(--ink); font: 400 1rem var(--sans); }
.chat-form input:focus-visible { outline-offset: -2px; }
.chat-form button { padding: 0 1.1rem; border: 0; background: var(--burgundy); color: var(--ivory); font: 600 .95rem var(--sans); cursor: pointer; }
.chat-form button:disabled { opacity: .55; cursor: wait; }
.chat-note { margin: 0; padding: .6rem 1.2rem .8rem; font-size: .76rem; color: var(--ink-mute); background: var(--paper); }

/* ---------- 9. Mozgás (csak ha a látogató nem kért kevesebb mozgást) ---------- */

@media (prefers-reduced-motion: no-preference) {
  .js .reveal { opacity: 0; transform: translateY(14px); transition: opacity .8s ease, transform .8s ease; }
  .js .reveal.is-in { opacity: 1; transform: none; }
  .js .chrono.reveal-line::before { transform: scaleY(0); transition: transform 1.6s ease; }
  .js .chrono.reveal-line.is-in::before { transform: scaleY(1); }
  .js .map-svg .contour { stroke-dasharray: 1600; stroke-dashoffset: 1600; transition: stroke-dashoffset 2.6s ease; }
  .js .map-sheet.is-in .map-svg .contour { stroke-dashoffset: 0; }
  .plate img { transition: transform 1.2s ease; }
  .plate:hover img { transform: scale(1.015); }
  .plate .spin-view img { transition: none; }   /* a 360°-os nézet nagyítása és húzása azonnal kövesse az ujjat */
  .plate:hover .spin-view img { transform: none; }
}

/* ---------- 10. Töréspontok ---------- */

@media (max-width: 1080px) {
  .hero h1 { grid-column: 1 / span 6; }
  .hero-side { grid-column: 1 / span 6; }
  .hero-figure { grid-column: 7 / span 6; }
  .estate-head > div, .estate-head p.lead { grid-column: 1 / -1; }
  .map-sheet { grid-column: 1 / -1; }
  .legend { grid-column: 1 / -1; }
  .legend ol { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 var(--gutter); }
  .visit-grid > .visit-title { grid-column: 1 / -1; }
  .visit-grid > .visit-hours { grid-column: 1 / span 6; }
  .visit-grid > .visit-tickets { grid-column: 7 / span 6; }
}

@media (max-width: 900px) {
  :root { --head-h: 64px; }
  .nav-toggle { display: inline-flex; align-items: center; gap: .6rem; min-height: 44px; padding: 0 .2rem 0 .8rem; border: 0; background: none; color: var(--ink); font: 600 .95rem var(--sans); cursor: pointer; }
  .nav-toggle-lines { position: relative; width: 22px; height: 1px; background: currentColor; transition: background-color .2s; }
  .nav-toggle-lines::before, .nav-toggle-lines::after { content: ""; position: absolute; left: 0; width: 22px; height: 1px; background: currentColor; transition: transform .25s; }
  .nav-toggle-lines::before { top: -7px; }
  .nav-toggle-lines::after { top: 7px; }
  .nav-toggle[aria-expanded="true"] .nav-toggle-lines { background: transparent; }
  .nav-toggle[aria-expanded="true"] .nav-toggle-lines::before { transform: translateY(7px) rotate(45deg); }
  .nav-toggle[aria-expanded="true"] .nav-toggle-lines::after { transform: translateY(-7px) rotate(-45deg); }
  .nav { position: fixed; top: var(--head-h); left: 0; right: 0; bottom: 0; z-index: 49; display: none; overflow-y: auto; background: var(--paper) var(--grain); border-top: 1px solid var(--line-mid); }
  .nav.is-open { display: block; }
  .nav ul { flex-direction: column; align-items: stretch; gap: 0; padding: 1rem var(--gutter) 2rem; }
  .nav li { border-bottom: 1px solid var(--line); }
  .nav a { display: block; padding: 1.05rem 0; font: 500 1.6rem/1.2 var(--serif); background: none; }
  .nav a[aria-current="page"] { background: none; }
  .nav-visit a[aria-current="page"] { background: var(--burgundy); color: var(--ivory); }
  .nav-visit { border-bottom: 0 !important; margin-top: 1.5rem; }
  .nav-visit a { text-align: center; font: 600 1.05rem/1.2 var(--sans); padding: 1rem; }
  .brand-name { font-size: 1.4rem; }
  .brand-sub { font-size: .75rem; }

  .hero h1, .hero-side, .hero-figure { grid-column: 1 / -1; grid-row: auto; }
  .hero-grid--drawing h1, .hero-grid--drawing .hero-side { grid-column: 1 / -1; grid-row: auto; }
  .intro-text, .intro-figure { grid-column: 1 / -1; }
  .intro-figure .frame { aspect-ratio: 4 / 3; }
  .gallery .plate:nth-child(n) { grid-column: span 6; margin-top: 0; align-self: start; }
  .gallery .plate:nth-child(1), .gallery .plate:nth-child(4) { grid-column: 1 / -1; }
  .gallery .plate:nth-child(n) .frame { aspect-ratio: 4 / 3; }
  .arch-notes { grid-template-columns: 1fr; }
  .namesake-years, .namesake-text { grid-column: 1 / -1; }
  .museum-intro, .museum-index { grid-column: 1 / -1; }
  .today-grid { grid-template-columns: 1fr; }
  .today-grid > div, .today-grid > div + div { padding: 1.4rem 0 1.2rem; border-left: 0; border-bottom: 1px solid var(--line); }
  .page-head-grid > div, .page-head-grid > .plate, .page-head-grid > .plate.portrait-head { grid-column: 1 / -1; }
  .page-head-grid > .plate.portrait-head { max-width: 380px; }
  .split > .side { grid-column: 1 / -1; position: static; }
  .split > .main { grid-column: 1 / -1; }
  .foot-brand { grid-column: 1 / -1; }
  .foot-nav { grid-column: 1 / span 7; }
  .foot-coord { grid-column: 8 / span 5; align-self: end; }
}

@media (max-width: 640px) {
  body { font-size: 1rem; }
  h2 { font-size: clamp(1.9rem, 8vw, 2.4rem); overflow-wrap: break-word; hyphens: manual; }
  .hero h1 { font-size: clamp(2.5rem, 11.5vw, 3.4rem); }
  .plate .frame { padding: 6px; }
  .hero-top .coord, .brand-city { display: none; }
  /* telefonon a rajzon a jelölők túl kicsik lennének: a számozott lista alatta ugyanoda vezet */
  .facade-svg .f-marks { display: none; }
  .facade-legend { flex-direction: column; gap: .5rem; }
  .sheet-no { flex-wrap: wrap; align-items: center; }
  .hero { padding-top: 1.25rem; }
  .hero-top { margin-bottom: 1.25rem; padding-bottom: .75rem; }
  .hero-figure .frame { aspect-ratio: 3 / 2; }
  .hero-grid { gap: 1.1rem; }
  .facts li { grid-template-columns: 4.8rem 1fr; }
  .legend ol { grid-template-columns: 1fr; }
  .map-svg .site-name { font-size: 46px; }
  .map-svg .dir, .map-svg .dir-label, .map-svg .cartouche, .map-svg .scale, .map-svg .tick, .map-svg .site-sub { display: none; }
  .map-dirs { display: block; }
  .facade-svg .f-dimtext { display: none; }
  .chrono::before { left: 5px; }
  .chrono li { grid-template-columns: 11px minmax(0, 1fr); gap: .2rem 1.1rem; padding-bottom: 2rem; }
  .chrono .when { grid-column: 2; grid-row: 1; text-align: left; font-size: 1.7rem; }
  .chrono .when small { display: inline; margin-left: .5rem; }
  .chrono .dot { grid-column: 1; grid-row: 1; margin-left: 0; top: .5rem; }
  .chrono .what { grid-column: 2; }
  .gallery .plate:nth-child(n) { grid-column: 1 / -1; }
  .figure-row { grid-template-columns: 1fr; }
  .visit-grid > .visit-hours, .visit-grid > .visit-tickets { grid-column: 1 / -1; }
  .toc .t { font-size: 1.12rem; }
  .doc dl { grid-template-columns: 1fr; gap: .1rem; }
  .doc dd { margin-bottom: .7rem; }
  .page-head h1 { font-size: clamp(2.3rem, 10vw, 3rem); }
  .foot-nav, .foot-coord { grid-column: 1 / -1; justify-self: start; text-align: left; }
  .foot-bottom > span:first-child { margin-right: 0; width: 100%; }
  .chat-fab span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .chat-fab { padding: .85rem; right: 16px; bottom: 16px; }
  .chat-fab svg { width: 24px; height: 24px; }
  .chat { right: 8px; left: 8px; bottom: 76px; width: auto; }
}

@media print {
  .site-head, .chat-fab, .chat, .nav-toggle { display: none !important; }
  body { background: #fff; }
}

/* ---------- 11. Nyitott menü, alacsony képernyő és nyomtatás (a JS nélküli szabályok: nojs.css) ---------- */

body.nav-open .chat-fab { display: none; }
/* alacsony vagy keskeny képernyőn nyitott chatnél a lebegő gomb ne takarja a mezőket */
@media (max-width: 640px), (max-height: 520px) {
  .chat-fab[aria-expanded="true"] { display: none; }
  .chat { top: 8px; bottom: 8px; max-height: none; }
}
@media (max-height: 480px) {
  .chat-hints, .chat-note { display: none; }
}

@media print {
  .js .reveal, .js .reveal-line { opacity: 1 !important; transform: none !important; }
  .js .chrono.reveal-line::before { transform: none !important; }
  .js .map-svg .contour { stroke-dashoffset: 0 !important; }
  .js .facade-svg .f-draw { opacity: 1 !important; }
  .chat-fab, .chat, .facade-note, .view-toggle { display: none !important; }
}

/* Hírek és Galéria: a Worker rajzolja (bot/cms-render.js), a képek a script.js nézegetőjében nyílnak */
.cms-empty { color: var(--ink-soft); }
.cms-draft { margin: 0 0 2rem; padding: .8rem 1rem; border-left: 3px solid var(--burgundy); background: var(--ivory); color: var(--ink); font-size: .95rem; }
.news-list { list-style: none; margin: 0; padding: 0; }
.news-item { position: relative; display: grid; grid-template-columns: minmax(0, 16rem) minmax(0, 1fr); gap: 1.2rem var(--gutter); padding-block: 2.2rem; border-bottom: 1px solid var(--line-mid); align-items: start; }
.news-item:first-child { padding-top: 0; }
.news-item.no-photo { grid-template-columns: minmax(0, 1fr); }
.news-thumb { display: block; padding: 6px; border: 1px solid var(--line-mid); background: var(--ivory); }
.news-thumb img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: var(--paper-deep); }
.news-date { margin: 0 0 .5rem; font: 600 .75rem/1.3 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--olive); }
.news-title { font-size: clamp(1.5rem, 2.6vw, 2.1rem); }
.news-title a { color: var(--ink); text-decoration: none; }
.news-title a::after { content: ""; position: absolute; inset: 0; }
.news-item:hover .news-title a { color: var(--burgundy); text-decoration: underline; text-underline-offset: .15em; }
.news-head h1 { max-width: 24ch; font-size: clamp(2.3rem, 5vw, 4rem); }
.news-excerpt { margin: .8rem 0 0; max-width: var(--measure); color: var(--ink-soft); }
.pager { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 2.4rem; }
.pager-at { font-size: .9rem; color: var(--ink-mute); }
.news-cover { max-width: 960px; margin: 0 0 2.6rem; }
.news-cover .frame { display: block; }
.news-cover img { height: auto; max-height: 75vh; object-fit: contain; }
.news-body p { overflow-wrap: anywhere; }
.photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); gap: clamp(1.2rem, 2.4vw, 2rem); margin-top: 2.6rem; align-items: start; }
.photo-grid .frame { display: block; aspect-ratio: 4 / 3; padding: 6px; }
.photo-grid figcaption { margin-top: .55rem; }
.album-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr)); gap: 2.4rem var(--gutter); }
.album-card { display: block; color: var(--ink); text-decoration: none; }
.album-cover { display: block; padding: 8px; border: 1px solid var(--line-mid); background: var(--ivory); }
.album-cover img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: var(--paper-deep); }
.album-title { display: block; margin-top: 1rem; font: 500 1.5rem/1.15 var(--serif); }
.album-card:hover .album-title { color: var(--burgundy); text-decoration: underline; text-underline-offset: .15em; }
.album-meta { display: block; margin-top: .35rem; font-size: .88rem; color: var(--ink-mute); }
.back { margin-top: 3rem; }
@media (max-width: 640px) {
  .news-item { grid-template-columns: minmax(0, 1fr); }
  .news-thumb { max-width: 26rem; }
}
