/*
Theme Name: Kære Neya
Theme URI: https://xn--kreneya-mxa.dk/
Description: Child-tema til Astra for kæreneya.dk. Al sidens CSS ligger her; Astra styrer header og footer.
Author: Emil Brandt Rex
Template: astra
Version: 1.0.0
Text Domain: kaere-neya
*/

/* Skåret ned 17-08-2026, da alle ni sider blev bygget i Spectra.
   Formen kommer nu fra Astra (skal, palette, typografi) og Spectra (sektioner,
   kort, knapper, spørgsmål). Her står kun det, ingen af dem kan: print-udgaven af
   rådene, fødder-symbolet, skærmlæserhjælp, tilmeldingsformularen og de få
   tekstklasser, siden selv bruger. Reglerne er valgt ved måling: hver selektor er
   prøvet mod alle ni levende sider, og alt, der ikke ramte noget, er skåret væk.
   Porten kan køres igen med skaer-css.py. */

:root {
    --sky: #f3f8fc;
    --sky-deep: #e3eef7;
    --paper: #ffffff;
    --ink: #1f2a37;
    --ink-soft: #4a5666;
    --blue: #3f7bb0;
    --blue-deep: #2b5f8c;
    --rose: #b8527f;
    --rose-text: #9c3d68;
    --stone: #66707c;
    --line: #d9e4ee;
    --font-display: "Avenir Next", "Avenir", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
    --font-text: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Palatino, Georgia, "Times New Roman", serif;
    --measure: 36rem;
    --radius: 14px;
  }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 5rem; }
@media (max-width: 40rem) {
html { scroll-padding-top: 6.5rem; }
}
@media (prefers-reduced-motion: reduce) {
html { scroll-behavior: auto; }
}
:focus-visible { outline: 3px solid var(--rose); outline-offset: 3px; border-radius: 4px; }
img { max-width: 100%; height: auto; display: block; }
p { margin: 0 0 1em; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
#om-bogen, #faa-bogen, #hjaelp { background: var(--paper); }
#om-bogen, #faa-bogen, #hjaelp, #laeserne, #pernille, #spoergsmaal { border-top: 0; }
.lead { font-size: 1.2rem; color: var(--ink-soft); }
.measure { max-width: var(--measure); }
.grid2 { display: grid; gap: 2rem; }
@media (min-width: 52rem) {
.grid2 { grid-template-columns: 1.15fr .85fr; align-items: center; gap: 3rem; }
}
.btn { display: inline-flex; align-items: center; justify-content: center; text-align: center; gap: .5rem; min-height: 48px; padding: .75rem 1.25rem; border-radius: 999px; font-family: var(--font-display); font-weight: 700; font-size: 1rem; text-decoration: none; border: 2px solid transparent; }
.btn-primary { background: var(--blue-deep); color: #fff; }
.btn-primary:hover { background: #2a5b86; color: #fff; text-decoration: underline; }
.btn-secondary { background: transparent; color: var(--blue-deep); border-color: var(--blue-deep); }
.btn-secondary:hover { background: var(--sky-deep); color: var(--blue-deep); }
.btn-row { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.4rem; }
.btn-row .btn { flex: 1 1 14rem; }
@media (min-width: 40rem) {
.btn-row .btn { flex: 0 1 auto; }
}
.eyebrow { font-family: var(--font-text); font-style: italic; font-size: 1.05rem; color: var(--ink-soft); margin-bottom: .8rem; }
.subtitle { font-family: var(--font-text); font-style: italic; font-size: clamp(1.25rem, 3.4vw, 1.6rem); color: var(--blue-deep); margin: -.2rem 0 1.2rem; }
.feet { width: 64px; height: 44px; color: var(--rose-text); margin-bottom: 1rem; }
.cover-wrap { display: flex; flex-direction: column; align-items: center; gap: .6rem; }
.cover-img { width: min(64vw, 260px); height: auto; border-radius: 6px; box-shadow: 0 8px 22px rgba(31,42,55,.14), 0 1px 3px rgba(31,42,55,.10); }
.cover-note { font-family: var(--font-display); font-size: .78rem; color: var(--stone); text-align: center; max-width: 16rem; }
.card { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.4rem 1.4rem 1.2rem; }
.card h3 { margin-bottom: .4rem; }
.card p:last-child { margin-bottom: 0; }
.facts { display: grid; grid-template-columns: 1fr; gap: .35rem 1.2rem; margin: 1.2rem 0 0; font-size: .98rem; }
@media (min-width: 40rem) {
.facts { grid-template-columns: max-content 1fr; }
}
.facts dt { font-family: var(--font-display); font-weight: 700; color: var(--ink-soft); }
.facts dd { margin: 0 0 .5rem; }
@media (min-width: 40rem) {
.facts dd { margin-bottom: .2rem; }
}
.praise { border-left: 4px solid var(--rose); padding: .3rem 0 .3rem 1rem; margin: 1.4rem 0 0; font-style: italic; }
.praise cite { display: block; font-style: normal; font-family: var(--font-display); font-size: .88rem; color: var(--stone); margin-top: .35rem; }
.note { font-size: .95rem; color: var(--ink-soft); background: var(--sky-deep); border-radius: 12px; padding: .9rem 1.1rem; margin-top: 1.2rem; }
form.signup { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1rem; max-width: 30rem; }
form.signup label { flex: 1 1 100%; font-family: var(--font-display); font-weight: 600; font-size: .95rem; }
form.signup input[type="email"] { flex: 1 1 14rem; min-height: 48px; padding: .6rem .9rem; font: inherit; border: 1px solid var(--stone); border-radius: 999px; background: #fff; }
form.signup button { flex: 0 0 auto; }
form.signup small { flex: 1 1 100%; color: var(--stone); font-family: var(--font-display); font-size: .82rem; }
.draft-flag { display: inline-block; font-family: var(--font-display); font-size: .74rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #7a4a11; background: #fdebc8; border-radius: 6px; padding: .2rem .5rem; vertical-align: middle; margin-left: .4rem; }
.trust { font-family: var(--font-display); font-size: .88rem; color: var(--ink-soft); margin: 1rem 0 0; }
.del-btns { margin-top: 0; }
.del-btns .btn { flex: 1 1 12rem; }
.btn[type="button"] { cursor: pointer; }
.signup-msg { flex: 1 1 100%; margin: .2rem 0 0; font-family: var(--font-display); font-size: .95rem; color: var(--blue-deep); min-height: 1.4em; }
@media print {
body { background: #fff; font-size: 12pt; }
section { padding: 1rem 0; }
}
.hjaelp-nu { font-family: var(--font-display); font-size: .88rem; color: var(--ink-soft); margin: .4rem 0 0; }
.del-btns { display: flex; flex-wrap: wrap; gap: .4rem 1.4rem; align-items: center; }
.del-btns .btn-secondary { border: 0; min-height: 44px; padding: .5rem .2rem; text-decoration: underline; text-underline-offset: 3px; flex: 0 0 auto; }
.kind-note { font-size: .95rem; color: var(--ink-soft); margin: .6rem 0 0; }
.linkknap { background: none; border: 0; padding: 0; color: var(--blue-deep); text-decoration: underline; text-underline-offset: 3px; font: inherit; cursor: pointer; }
.adresse { font-family: var(--font-display); }
.kilde { font-size: .92rem; color: var(--ink-soft); border-top: 1px solid var(--line); padding-top: 1rem; margin-top: 2.4rem; }
.print-knap { margin: 1.4rem 0 0; }
@media print {
body { background: #fff; font-size: 12pt; }
section { padding: 0; }
.artikel { max-width: none; }
a { color: inherit; text-decoration: none; }
}
.neya-fakta { font-family: var(--font-display); font-size: .95rem; color: var(--stone); margin-bottom: 1rem; }
@media (max-width: 52rem) {
.side-top-bog .feet { display: none; }
}
.hjaelp-nu a, footer a[href^="tel:"], footer a[href^="sms:"] { display: inline-block; padding: .35rem 0; min-height: 44px; line-height: 1.55; }
.hjaelp-nu { line-height: 1.7; }
.linkknap, .del-btns button, .del-btns a { min-height: 44px; display: flex; align-items: center; }
.del-btns a, .del-btns button { justify-content: center; }
.linkknap { padding: .4rem .7rem; }
.sidst-tjekket { font-family: var(--font-display); font-size: .85rem; color: var(--stone); margin-top: 1.6rem; }
.bog-fakta { font-family: var(--font-display); font-size: .82rem; color: var(--stone); margin-bottom: .6rem; line-height: 1.5; }
.trust { font-style: italic; }
.bogen-link { font-family: var(--font-display); font-size: .92rem; color: var(--ink-soft); margin-top: .9rem; }
#hvorfor h2 { text-align: center; margin-bottom: 1.6rem; font-size: clamp(1.35rem, 3vw, 1.7rem); }
#hvorfor { border-top: 0; }
.klar-saetning { background: var(--paper); border-left: 4px solid var(--rose); padding: .8rem 1rem; margin: 1.4rem 0 0; font-size: 1.02rem; }
.card p, .card h3 { max-width: 34rem; }
.measure p a, .kilde a, .sidst-tjekket a { text-decoration: underline; text-underline-offset: 3px; }
.del-btns .btn, .del-btns button { min-height: 48px; font-size: 1rem; }
.del-btns .btn-secondary { border: 2px solid var(--line); padding: .5rem 1rem; text-decoration: none; }
.del-btns .btn-secondary:hover { border-color: var(--blue-deep); }
.neya-fakta { font-family: var(--font-display); font-size: 1.15rem; color: var(--blue-deep); text-align: center;
    border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: .9rem 0; margin: 0 0 1.6rem; max-width: 34rem; }
@media print {
.faq, .laes-ogsaa, .side-top .btn-row, .print-knap, .klar-saetning, .sidst-tjekket, nav, .top, footer { display: none !important; }
.artikel, .res, .measure, .card p, .card h3 { max-width: none !important; }
.artikel h2 { margin-top: 1.1rem; page-break-after: avoid; }
.artikel p { orphans: 3; widows: 3; }
.eyebrow { color: #444; }
.print-fod { display: block !important; margin-top: 1.2rem; padding-top: .6rem; border-top: 1px solid #999; font-size: 10pt; color: #333; }
}
.print-fod { display: none; }
.neya-tal { display: flex; flex-wrap: wrap; gap: .4rem 2.2rem; justify-content: center; text-align: center;
    font-family: var(--font-display); font-size: 1.05rem; color: var(--blue-deep);
    border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
    padding: 1rem 0; margin: 0 0 2rem; max-width: 34rem; }
.neya-tal span { white-space: nowrap; }
.cover-note, .kilde, .bog-fakta, .sidst-tjekket, .note, .signup small { font-size: .82rem; }
.bogen-link, .hjaelp-nu, .trust, .kind-note, .neya-fakta, .card p { font-size: .92rem; }
.neya-tal, .lead { font-size: 1.08rem; }
.hjaelp-fuld { margin-top: 1rem; }
@media print {
.artikel-rytme h2 { border-top: 0; padding-top: 0; margin-top: 1.1rem; }
}
.site-content .ast-container { max-width: none; padding-left: 0; padding-right: 0; }
.site-header .ast-container { max-width: 68rem; padding-left: 1.1rem; padding-right: 1.1rem; }
.site-main, .ast-article-single, .entry-content, .ast-page-builder-template .site-content .ast-container { padding-top: 0 !important; margin-top: 0 !important; }
.ast-page-builder-template .entry-header { display: none; }
.entry-content a.btn, .entry-content a.btn:hover, .entry-content a.btn:focus, .entry-content .btn { text-decoration: none !important; }
.entry-content .del-btns a.btn-secondary { text-decoration: underline !important; }
.site-footer .ast-footer-copyright { font-family: var(--font-text); }
.entry-content .btn-primary, .entry-content .btn-primary:hover { color: #fff; }
.entry-content .btn-secondary, .entry-content .btn-secondary:hover { color: var(--blue-deep); }
.entry-content p:last-child { margin-bottom: 0; }
.entry-content .card p, .entry-content .measure p { margin-bottom: 1em; }
.site-title a { letter-spacing: .06em; text-transform: uppercase; }
.home .main-header-menu > .menu-item-type-custom.current-menu-item > .menu-link { color: var(--ast-global-color-3); }
.home #ast-mobile-header .menu-item-type-custom.current-menu-item > .menu-link { color: var(--ast-global-color-3); }
.entry-content .shops li a:hover .name, .entry-content .shops li a:focus-visible .name { text-decoration: underline; text-underline-offset: 3px; }

/* ---- Liv i siden (17-08-2026) ------------------------------------------------
   Emils ordre: gør siden mere dynamisk og levende. Alt herunder er valgt, så det
   ALDRIG kan skjule tekst. Spectras egen scroll-animation (AOS) sætter opacity: 0
   og venter på JavaScript; fejler scriptet, forsvinder indholdet. Målt: AOS-filen
   har heller ingen regel for prefers-reduced-motion. Derfor bygges bevægelsen her
   i CSS, hvor den er væk, hvis browseren ikke kan den, og hvor teksten står, hvis
   alt andet svigter. Læseren kan være en mor klokken tre om natten. */

/* Kortene svarer, når man peger eller rører: kanten bliver rosa, kortet løftes lidt.
   Farveskiftet gælder altid, fordi det er svar og ikke bevægelse. Selve løftet ligger
   bag prefers-reduced-motion, så den, der har bedt om mindre bevægelse, får farven uden
   flytningen. */
.kn-kort { transition: border-color .22s ease, box-shadow .22s ease; }
.kn-kort:focus-within { border-color: var(--rose) !important; box-shadow: 0 10px 24px rgba(31,42,55,.09); }
@media (prefers-reduced-motion: no-preference) {
  .kn-kort { transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
  @media (hover: hover) {
    .kn-kort:hover { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(31,42,55,.09); }
  }
  .kn-kort:active { transform: translateY(-1px); }
}

/* Links og knapper svarer med det samme, også under fingeren. Farven skifter altid;
   det lille tryk-nik er bevægelse og følger derfor samme hensyn. */
.entry-content a { transition: color .16s ease, text-decoration-color .16s ease; }
.entry-content .btn, .wp-block-uagb-buttons-child a { transition: background-color .16s ease; }
@media (prefers-reduced-motion: no-preference) {
  .entry-content .btn, .wp-block-uagb-buttons-child a { transition: transform .16s ease, background-color .16s ease; }
  .entry-content .btn:active, .wp-block-uagb-buttons-child a:active { transform: translateY(1px); }
}

/* Spørgsmålene folder ud i stedet for at springe. */
.uagb-faq-child__outer-wrap { transition: border-color .22s ease; }
.uagb-faq-questions { transition: color .16s ease; }

/* Fødderne kommer stille frem, når siden åbner. Starter synlige, så intet kan blive væk. */
@media (prefers-reduced-motion: no-preference) {
  .feet { animation: kn-foedder 1.1s ease-out both; }
  @keyframes kn-foedder { from { opacity: .45; transform: translateY(6px); } to { opacity: 1; transform: none; } }
}

/* Kortene GLIDER frem, når de kommer i syne. De tonede før op fra opacity .4, og det
   var en fejl (målt 18-08-2026).

   Gennemsigtighed på en beholder ganges ned i alt indeni. Målt kontrast mod det hvide
   kort, hvor kravet er 4,5:

     opacity          0.4    0.6    0.8    0.9    1.0
     brødtekst       2.34   4.04   7.58  10.69  14.54
     link #2b5f8c    1.89   2.77   4.24   5.32   6.73
     kildelinje      1.72   2.37   3.36   4.12   5.03

   Først ved 0.95 består alle fire. Der findes altså ikke et gulv, der virker; formen var
   forkert, ikke tallet. Og »both« på en view()-tidslinje betyder, at et element uden
   rulleplads nok bliver stående i mellemtilstanden. Målt på 1512x1400: et kort stod på
   0.6 og blev der, fordi læseren ikke havde grund til at rulle.

   Nu flytter de sig kun. Teksten står i fuld styrke i enhver rulleposition, og en glidning
   ved fuld kontrast aflæses tydeligere end en optoning, der starter halvvejs. */
@media screen and (prefers-reduced-motion: no-preference) {
  @supports (animation-timeline: view()) {
    .kn-kort, .wp-block-uagb-blockquote {
      animation: kn-glider-frem linear both;
      animation-timeline: view();
      animation-range: entry 0% entry 28%;
    }
    /* Optoningen flytter med translate, ikke med transform. En animation slår en
       almindelig hover-regel i kaskaden, så to regler om samme transform ville betyde,
       at kortet aldrig kunne løfte sig, når man peger på det. Målt 17-08-2026. */
    @keyframes kn-glider-frem { from { translate: 0 12px; } to { translate: 0 0; } }
  }
}

/* Alt med et nødnummer står helt stille. Notitsen med Livslinien var med i optoningen
   ovenfor; den lå over kanten på alle 19 flader, så den blev aldrig målt dæmpet, men
   reglen skal ikke hvile på, hvor et element tilfældigvis lander. Den hænger på trækket
   »indeholder et telefonlink«, ikke på Spectras blokklasse, så en ny side arver den. */
.wp-block-uagb-inline-notice,
.kn-kort:has(a[href^="tel:"]),
.wp-block-uagb-blockquote:has(a[href^="tel:"]) {
  animation: none !important; opacity: 1 !important; translate: none !important;
}
@media (forced-colors: active) {
  .kn-kort, .wp-block-uagb-blockquote {
    animation: none !important; opacity: 1 !important; translate: none !important; }
}

/* Den levende linje om, hvornår der næste gang tændes lys. Tom, indtil scriptet
   har regnet den ud, så der aldrig står noget forkert. */
.naeste-lys:empty { display: none; }
.naeste-lys { font-family: var(--font-display); font-size: .95rem; color: var(--rose-text);
  border-left: 4px solid var(--rose); padding: .55rem 0 .55rem .9rem; margin: 1.2rem 0 0; }

/* Dørene på forsiden stakker på telefonen (17-08-2026).
   Spectras egen stack:'mobile' kan ikke virke her: dens regel hedder
   #uagb-buttons-<block_id>, og Spectra skriver ikke det id ud på fronten. Samme fælde
   som indholdsfortegnelsen. Kun klasseselektoren .uagb-block-<id> virker, og den
   sætter blokken ikke layout med. Derfor står reglen her, på vores egen klasse. */
@media (max-width: 600px) {
  .kn-doere .uagb-buttons__wrap { flex-direction: column; align-items: stretch; }
  .kn-doere .uagb-buttons__wrap .wp-block-button { width: 100%; }
  .kn-doere .uagb-buttons__wrap .wp-block-button__link { display: block; text-align: center; }
}

/* Dørene på forsiden (17-08-2026). Hele kortet er klikbart, ikke kun overskriften:
   læseren kan være en mor klokken tre om natten med telefonen i den ene hånd. Grebet er
   det stærke link, som holder ét ærligt <a> i markuppen og lader det dække kortet.
   Spectras egen container-link findes ikke i 2.20.1, og dens id-CSS skrives alligevel
   ikke ud på fronten. */
.kn-doer { position: relative; }
.kn-doer .kn-doer-link { text-decoration: none; }
/* Astra og Spectra saetter selv position: relative paa .wp-block-heading. Uden denne linje
   maaler overlayet overskriften (316x29) i stedet for kortet (354x177), og kortet er doedt
   uden for ordene. Maalt 18-08-2026 med et rigtigt museklik, ikke med et CSS-opslag:
   foer rettelsen aendrede url'en sig ikke ved klik i kortets nederste tredjedel. */
.kn-doer .wp-block-heading, .kn-doer p { position: static !important; }
.kn-doer .kn-doer-link::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.kn-doer:hover .kn-doer-link, .kn-doer:focus-within .kn-doer-link { text-decoration: underline; }
.kn-doer-citat { font-family: var(--font-display); color: var(--rose-text);
  border-left: 3px solid var(--rose); padding-left: .8rem; margin: .2rem 0; }
/* Sidens bundlinje: den ene saetning, der skal huskes, sat lidt stoerre end broedtekst. */
.kn-bundlinje { font-family: var(--font-display); font-size: 1.05rem; color: var(--ink); margin: .2rem 0 0; }

/* Scenen: sidens første ord, sat større end brødtekst, men mindre end overskriften. */
.kn-scene { font-size: 1.18rem; line-height: 1.6; }
@media (min-width: 52rem) { .kn-scene { font-size: 1.3rem; } }

/* De små tekstklasser får deres egen læsebredde (17-08-2026). Målt: i samme spalte som
   brødteksten gav den mindre skrift 109 tegn pr. linje, hvor brødteksten lå på 70. Loftet
   er 80. Reglen hænger på klasserne og gælder derfor hele sitet, ikke én side. */
.kilde, .sidst-tjekket, .note, .kind-note, .bog-fakta, .cover-note { max-width: 58ch; }

/* Billedtekster og korttekst er de sidste to steder, hvor lille skrift i en bred flade
   giver for lange linjer. Målt 17-08-2026: billedteksten på /neya/ og /sorgorlov/ lå på
   95-99 tegn, korttekst på 82-88. Loftet er 80. */
.kn-billedtekst { max-width: 58ch; margin-inline: auto; }
.kn-kort p, .kn-kort li { max-width: 58ch; }

/* Telefonnumre maa ikke braekke midt i tallet, og de skal kunne rammes med en tommelfinger.
   Maalt 18-08-2026: paa /hjaelp/ stod »Telefon 39« sidst paa en linje og »61 24 51« paa den
   naeste, og numrene var 22-24 px hoeje. Reglen haenger paa href-praefikset, saa den gaelder
   hvert nummer paa sitet, ogsaa dem der kommer til senere. */
a[href^="tel:"], a[href^="sms:"] { white-space: nowrap; display: inline-block;
  padding-block: .32rem; min-height: 44px; line-height: 1.5; }

/* Spectras notits har en usynlig lukkeknap paa 0x0 px, som stadig kan faa fokus, laeses op
   som »Close« paa engelsk og ikke goer noget. Maalt 18-08-2026: den er fjerde tabstop paa de
   seks sider med en krisen-linje, altsaa FOER telefonnummeret. En kvinde, der taber sig frem
   klokken tre om natten, moeder et doedt engelsk stop foer hjaelpen. */
.uagb-notice-close-button, .uagb-inline_notice-block .uagb-notice-close-button { display: none !important; }

/* Print (18-08-2026). Rådene er sidens gave, og de skal kunne ligge på et køkkenbord.
   Hvad der KOMMER MED i arket, bestemmes af generatoren scripts/lav-raad-pdf.mjs, ikke af
   CSS: Spectras containere ligger i hinanden, så en :has()-regel enten ramte hele siden
   eller kun den indre boks. Målt 18-08-2026 begge veje. Her står kun det, printet skal
   se anderledes ud som. */
@media print {
  .klar-saetning { display: block !important; }
  .wp-block-uagb-container { padding-block: .4rem !important; }
  a { color: inherit; }
  .wp-block-uagb-container, .uagb-container-inner-blocks-wrap { max-width: none !important; width: 100% !important; }
}

/* Indholdsfortegnelsen paa /sorgorlov/ (18-08-2026). Maalt: hvert link var 24 px hoejt med
   28 px raekkeafstand, altsaa 4 px mellem to nabomaal. Det er inden for WCAG AA (24 px),
   men en tommelfinger paa en telefon rammer forkert. Nu er hver raekke mindst 40 px med
   16 px imellem, og blokken vokser cirka 70 px i stedet for 180. */
.kn-toc li a, .toc-liste a { display: block; padding-block: 8px; }

/* »en bog af Pernille Dam Nielsen« under sitets navn (18-08-2026).
   Maalt: headeren sagde praecis to ord paa telefon, og ordet »bog« fandtes ikke over folden
   paa fem af de ni sider, fordi menupunktet Bogen ligger bag hamburgeren. En fremmed, der
   lander midt inde paa sitet, skal kunne se, hvad stedet er, uden at aabne en menu. */
.kn-hvad-er-det { display: block; font-family: var(--font-text); font-style: italic;
  font-weight: 400; font-size: .78rem; line-height: 1.3; letter-spacing: 0;
  color: var(--ink-soft); text-transform: none; margin-top: 1px; }

/* Dokumentfoto i en note (18-08-2026).
   Noterne er almindelige indlaeg i html, ikke Spectra-blokke, saa et billede dér arver
   .cover-img, som er sat til bogomslagets bredde: min(64vw, 260px). Maalt paa /skaalen/:
   indbydelsen blev vist i 250 px, hvor teksten er ulaeselig. Et fotograferet dokument skal
   have hele laesespalten, som fodselskortet og Christiansborg-fotoet har paa deres sider. */
.note-billede { width: 100%; max-width: 42rem; height: auto; border-radius: 6px;
  box-shadow: 0 8px 22px rgba(31,42,55,.14), 0 1px 3px rgba(31,42,55,.10);
  display: block; margin-inline: auto; }

/* Læsespalten må ikke vokse med skærmen (18-08-2026).

   Maalt paa otte skaermbredder: broedteksten var 109 tegn bred paa siderne og 121 i noterne
   ved 1920 px, hvor loftet for laesbarhed er cirka 80. Aarsagen er, at Spectras spalter er
   sat i PROCENT af sektionen, og sektionen er hele skaermen. Spectras eget
   innerContentCustomWidthDesktop skriver ingen max-width ud paa fronten, saa den skal saettes
   her. Sektionen beholder sin fulde bredde, saa baggrundsfarven staar helt ud til kanten;
   det er kun indholdet, der bliver holdt inde.

   Gaelder alle sider OG alle noter, fordi den haenger paa rod-containerens struktur og ikke
   paa et sidenavn.

   Spectra stabler spalterne til og med 976 px og bruger foerst sine procenter fra 1000 px
   (maalt paa elleve bredder). Derfor to loft: et for det stablede omraade, hvor teksten
   ellers fylder hele skaermen, og et for det brede, hvor procenten ellers vokser frit.
   Under 640 px roeres intet; dér er telefonens margen allerede rigtig. */
@media (min-width: 640px) and (max-width: 976px) {
  .uagb-is-root-container > .wp-block-uagb-container {
    padding-left: max(24px, calc((100% - 600px) / 2));
    padding-right: max(24px, calc((100% - 600px) / 2));
  }
}
@media (min-width: 1180px) {
  .uagb-is-root-container > .wp-block-uagb-container {
    padding-left: max(24px, calc((100% - 1140px) / 2));
    padding-right: max(24px, calc((100% - 1140px) / 2));
  }
}

/* En note er én spalte tekst uden noget ved siden af (18-08-2026).

   Siderne saetter deres tekst i 48-58 % af sektionen, fordi der ofte staar et billede eller
   et kort i den anden halvdel. En note har ingen anden halvdel, saa den samme opskrift lagde
   hele noten i venstre side med 660 px tomt til hoejre paa en 1512 px skaerm. Her faar
   spalten hele sektionen, og sektionen selv holdes smal og midt paa skaermen. */
@media (min-width: 640px) {
  .kn-note > .wp-block-uagb-container {
    padding-left: max(24px, calc((100% - 660px) / 2)) !important;
    padding-right: max(24px, calc((100% - 660px) / 2)) !important;
  }
}

/* Citatblokken styles nu af Spectra selv (19-08-2026).

   Her stod foer en haandskrevet regel for kant, farve, luft og kildelinje, fordi Spectras
   egen styling ikke virkede. Aarsagen var ikke Spectra, men en manglende attribut:

       $base_selector = ( $attr['classMigrate'] ) ? '.uagb-block-' : '#uagb-blockquote-';

   Uden classMigrate skrev Spectra sin CSS mod et id, der aldrig staar i den udsendte html,
   og hele blokkens styling var doed: farver, stoerrelser, luft og de responsive vaerdier.
   Det gjaldt ogsaa sider bygget gennem den rigtige editor, saa det var Spectras standard og
   ikke vores markup. Attributten er nu sat paa alt indhold med scripts/saet-classmigrate.py
   og paa nye blokke i serialiser-side.py.

   Skriv ikke CSS-lapper for blockquote eller buttons her igen. Virker en Spectra-indstilling
   ikke, saa tjek FOERST, om blokken har classMigrate: true. Samme rod tog ogsaa
   indholdsfortegnelsen, knappernes stack og doerene paa forsiden. */


/* En note skal begynde samme sted som en side (18-08-2026).

   Maalt paa 1512 px: sidernes indhold begynder ved 81 px, lige under menuen, mens en note
   begyndte ved 141 px. Astra giver indlaeg 60 px topmargen, som sider ikke faar, og det gav
   en tom blaa stribe over hver note. */
.single-post .content-area { margin-top: 0 !important; }

/* Enlige sidsteord i brødteksten (18-08-2026).

   text-wrap: pretty lader browseren rette den sidste linje, så et enkelt ord ikke står
   alene. Målt over tre bredder: afsnit med et enligt sidsteord faldt fra 45 til 10 ved
   390 px, fra 37 til 6 ved 768 og fra 27 til 6 ved 1512, uden at ét element skiftede
   højde. Overskrifterne får den IKKE: balance flytter brud i navne og datoer til et
   dårligere sted, og »mistede Neya« må ikke skilles. Det bindes med hårde mellemrum
   i stedet. */
.entry-content p, .entry-content li { text-wrap: pretty; }
.kn-kort h3 { text-wrap: balance; }

/* Siden har en farve bag sig, også uden for indholdet. Uden denne linje er der et hvidt
   glimt mellem to sider og en hvid stribe ved overrul på iPhone. */
html { background: var(--sky); }

/* Tidslinjen paa /noter/ (18-08-2026).

   Ti daterede noter over seks aar stod som ti ens kasser i et gitter: raekkefoelgen fandtes,
   men kunne ikke ses, og paa telefon blev det 5.635 px mur. Nu er aarstallet ankeret og
   datoen rygraden. Ingen prikker og ingen lodret streg: de tegner en kronologi, indholdet
   allerede fortaeller, og en sorgside skal ikke pynte paa aarene. Lige stor luft mellem alle
   noter, uanset om der gik to maaneder eller to aar; afstanden i tid er ikke vores at vurdere.
   Kun aar, der HAR en note, faar en overskrift, saa strukturen ikke annoncerer et fravaer. */
/* !important tre gange herunder er ikke sjusk, men Spectras kaskade. Blokken saetter
   »body .wp-block-uagb-container > :not(...)« med tolv :not-led paa hvert barn og vinder
   over enhver almindelig klasseregel: den tvinger position: relative og fuld bredde.
   Maalt her: datoen fik position relative, width 1140 px og left -100 px, saa den landede
   i hoejre kant. Det er TREDJE gang samme faelde rammer, efter indholdsfortegnelsen og
   doerene paa forsiden. */
.kn-tidslinje { position: relative; padding-left: 5.6rem !important; }
.kn-tidslinje > .wp-block-heading {
  margin: 2.2rem 0 .9rem -5.6rem;
  font-family: var(--font-display); font-size: .8rem; font-weight: 600;
  letter-spacing: .17em; color: var(--stone);
}
.kn-tidslinje > .wp-block-heading:first-child { margin-top: 0; }
.kn-tid-post { position: relative; margin-bottom: 1.9rem; }
.kn-tid-post .tid-dato {
  position: absolute !important; left: -5.6rem; top: .18rem; width: 4.5rem !important;
  text-align: right;
  font-family: var(--font-display); font-size: .8rem; color: var(--stone);
  margin: 0; white-space: nowrap;
}
.kn-tid-post h3 { margin: 0 0 .1rem; font-size: 1.12rem; }
/* Titlen faar lov at ligne et link. Jeg proevede foerst at saette den i blaeksort uden
   streg, men sitets egen linkregel vandt, og den har ret: en overskrift, der er et link,
   skal kunne ses som et link. Kun hover-farven er vores. */
.kn-tid-post:hover h3 a, .kn-tid-post:focus-within h3 a { color: var(--rose-text); }
.kn-tid-post .tid-sorgtid {
  margin: 0 0 .3rem; font-family: var(--font-display); font-size: .82rem; color: var(--stone);
}
.kn-tid-post p:last-child { margin: 0; color: var(--ink-soft); }
.tid-hul { color: var(--stone); font-size: .95rem; }

/* Paa telefon er der ikke plads til en margin: datoen staar over overskriften. */
@media (max-width: 640px) {
  .kn-tidslinje { padding-left: 0 !important; }
  .kn-tidslinje > .wp-block-heading { margin-left: 0; }
  .kn-tid-post .tid-dato { position: static !important; width: auto !important; text-align: left; }
}

/* Indskriften: det citat, der lukker forsiden (24-08-2026).

   Stoerrelsen, den fjernede kant og padding 0 ligger i blokkens egne felter (descFontSize 26,
   borderStyle none, borderGap 0). Centreringen KAN ikke ligge der: Spectras blockquote
   tvinger text-align: left, naar skindet er border - maalt i
   includes/blocks/blockquote/frontend.css.php linje 27: »if ('border' === $attr['skinStyle'])
   $text_align = 'left';«. Blokkens align-felt staar paa center og ignoreres. Derfor er
   centreringen den ene ting, der bor her, paa vores egen klasse. */
.kn-indskrift .uagb-blockquote__content,
.kn-indskrift .uagb-blockquote__author { text-align: center !important; }
/* Kildelinjen ligger i Spectras author-wrap, en flex-raekke der holder til venstre uanset
   text-align. Maalt: kilden stod ved x=186, mens citatet stod om midten. */
.kn-indskrift .uagb-blockquote__author-wrap { justify-content: center !important; }

/* De to doerkort rimer (24-08-2026): begge slutter paa en indrykket blok med samme kant.
   Maerket »Sig for eksempel:« indleder saetningen og deler streg med den, saa de laeses
   som én blok. Margenerne herunder holder stregen ubrudt mellem de to afsnit. */
/* Maerket staar UDEN streg lige over citatet. En faelles streg blev proevet foerst, men
   kortets flex-afstand (rowGap) bryder den med 10 px mellem de to afsnit, og en brudt
   streg er vaerre end ingen. .entry-content-forleddet er noedvendigt: .entry-content p
   slaar en enkelt klasse, og margenerne stod ellers med 34 px hul. */
.entry-content .kn-sig-eksempel { margin: .9rem 0 0; }
.entry-content .kn-kort .kn-doer-citat { margin: 0; }
