/* MitLivMed type scale (Wiith 2026 design system, web scale): one file for every
   page, linked right after the page's own \3c style>. "#main" scopes it to the page
   content (header, footer and the share panel keep their own styles) and outranks
   the pages' class rules; !important only where a page forces a size with it.

   display 56 · title-1 40 · title-2 32 · title-3 24 · lead 20 · text 17 ·
   small 15 · label 15 Black · button 19 Black. Crimson Pro for titles (line height
   95 %), DM Sans for everything else (130 %; 150 % for long reading). Families and
   weights are tokens from fonts.css (--font-display, --font-sans, --weight-*):
   400 and 900 from the design system, plus 500 and 600 where approved designs use
   them. Never write a font family or numeric weight in a page. On phones the heading levels step down together and stay in order:
   h1 40 > h2 30 > h3 24. */

/* ── spacing: one place for every page (scale 4 8 12 16 24 32 48 64 96) ──
   Section padding 64px, 96px from 600px; section title to content 48px. Not scoped
   to "#main", so a page's own class rule (.hero, .share, .legal section) still wins. */
section { padding-block: 64px; }
@media (min-width: 600px) { section { padding-block: 96px; } }
.sec-head { margin-bottom: 48px; }

/* ── strong text: the design system has one bold, Black (900). Browser defaults ask
   for 700 (b, strong, th); this keeps them on the scale. Zero specificity, so any
   page rule still wins. ── */
:where(b, strong, th) { font-weight: var(--weight-strong); }

/* ── text: body and card text (the default for every paragraph and list item) ── */
#main :is(p, li, dd, figcaption) { font-family: var(--font-sans); font-size: 17px; line-height: 1.3; }
#main :is(.tier .txt, .need-btn .desc, .help, .linkbtn) { font-family: var(--font-sans); font-size: 17px; line-height: 1.3; }
#main .mc .bd p { font-size: 17px !important; }

/* text-long: policies and other long reading */

/* ── headings ── */
#main :is(h1, h2, h3) { font-family: var(--font-display); font-weight: var(--weight-strong); line-height: .95; overflow-wrap: break-word; }
#main h1 { font-size: 56px; }                                   /* display: the page title */
#main h2 { font-size: 40px; }                                   /* title-1: section titles */
#main h3 { font-size: 24px; font-weight: var(--weight-semibold); }                 /* title-3: card and group titles, semibold */

/* Title colours: a page title with an italic accent word is black, with only the
   accent word in Mountain Red; section titles on white are Mountain Red (titles on
   the green and red bands keep their own colour). */
#main :is(.hero, .nl-hero) h1:has(.accent) { color: var(--text); }
#main section:not(.green, .red) .sec-head h2 { color: var(--orange); }

/* Titles of boxes and cards that are h2 in the markup read as card titles. */
#main :is(.side, .presskit, .nlcard, .short) h2 { font-size: 24px; font-weight: var(--weight-semibold); }

/* Other card and group titles that are not headings in the markup (semibold, like
   title-3); the titles of the Forside's two choice cards are medium, with room between their lines. */
#main :is(.need-btn strong, .need-label, .lockbox p, .faq summary, .tak li > strong) {
  font-family: var(--font-display); font-weight: var(--weight-semibold); font-size: 24px; line-height: .95;
}
#main .need .need-btn strong { font-weight: var(--weight-medium); line-height: 1.1; }  /* :is() above counts as its strongest selector; these titles often wrap to two lines */

/* Big numbers and amounts: never larger than a section title. */
#main :is(.n, .num, .big, .tier .amt) { font-family: var(--font-display); font-weight: var(--weight-strong); font-size: 40px; line-height: .95; }

/* ── title-2: the line over a page title (upright, as today) and quotes ── */
#main :is(.kicker, .nlband .kick) { font-family: var(--font-display); font-weight: var(--weight-regular); line-height: .95; }
#main .kicker { font-size: 24px; }  /* the line above a hero title: one size on every page (20px on phones) */
#main .nlband .kick { font-size: 32px; }
#main .cit-text :is(p, li) { font-family: var(--font-display); font-style: italic; font-weight: var(--weight-regular); font-size: 28px; line-height: .95; }

/* ── lead: the sentence or two under a title ── */
#main :is(.lede, .sec-head p, .intro, .why) { font-family: var(--font-sans); font-size: 20px !important; line-height: 1.3; }
/* White on Mountain Red reaches contrast only as large text (24px, or 19px bold),
   so text on the red bands and the final box keeps those sizes at every width. */
#main :is(.band.red p, .nlband .intro, .final p:not(.micro)) { font-size: 24px !important; line-height: 1.3; }
#main .final p.text-strong { font-size: 20px !important; font-weight: var(--weight-strong); }  /* smaller, so bold (Forside) */
#main :is(.band.red, .nlband, .final) .micro { font-size: 19px !important; font-weight: var(--weight-strong); }

/* ── reading width: two measures ──
   Intros and the short text that goes with them stop at 640px (about 65
   characters), longer running text at 720px. This only replaces widths the pages
   already set: text without a width keeps the width of its column, and designed
   blocks (the founder quote and the wide "Vi bygger sammen" section on Om os)
   keep theirs. Section intros already stop at 640px through .sec-head. Where a
   hero turns into one column (below 880px), its intro uses the full width, like
   the heading above it. Intros fill their lines; only headings keep balanced
   lines. */
#main :is(.hero .lede, .nl-hero .lede, .sharecopy .lede, .tak .lede, .tak .fine, .screen .why, .nlband .intro, .notmember, .nl-hero .body2, .nlend p) { max-width: 640px; }
#main details.faq p { max-width: 720px; }
#main .legal, #main details.faq summary { overflow-wrap: anywhere; }
#main :is(.lede, .sec-head p, .intro, .why) { text-wrap: pretty; }
@media (max-width: 880px) { #main :is(.hero, .nl-hero) .lede { max-width: none; } }

/* ── text-strong: short bold calls to action in running text ── */
#main :is(.enter, a.go) { font-family: var(--font-sans); font-size: 17px; font-weight: var(--weight-strong); }

/* ── small: meta, fine print, table text ── */
#main :is(.micro, .fine, .meta, .tm, .small, .disc, .where, .hint, .dx, .muted, .by, .tx p, .consent span, td, th) {
  font-family: var(--font-sans); font-size: 15px !important; line-height: 1.3;
}

/* ── label: tags, dates, form labels and small bold labels ── */
#main :is(.tag, .badge, .lock, .eyebrow2, .date, .lab, .signup label, .payfields label, legend, .need .or, .tier .flag, .backbtn, .pw button, span.t) {
  font-family: var(--font-sans); font-style: normal; font-size: 15px !important; font-weight: var(--weight-strong); line-height: 1.3;
}

/* ── button-label ── */
#main :is(.btn, .seg button, .pill, .mplay) { font-size: 19px !important; font-weight: var(--weight-strong) !important; }

/* The arrow on the sign-up buttons slides gently on hover and keyboard focus. */
.btn .arr { display: inline-block; transition: transform .3s ease; }
.btn:is(:hover, :focus-visible) .arr { transform: translateX(5px); }
@media (prefers-reduced-motion: reduce) { .btn .arr { transition: none; } }

/* ── button hover (Wiith 2026) ── Not scoped to #main, so the header's "Opret profil"
   gets it too. Filled buttons darken to Mountain Red dark; outlined buttons take the
   soft tint and a Mountain Red edge (so the tint is clearly seen on white), white
   buttons on the red box take the soft tint; link-like buttons thicken their
   underline; unselected choices edge in Mountain Red, like .need-btn, and the
   unselected choice on the red box darkens a little (keeps its contrast). Action buttons
   also show it on keyboard focus. Disabled buttons do not change. Colours change in
   120 ms (duration-fast, ease-standard), at once under reduced motion. The share
   sheet's buttons are in share.css. */
.btn, .seg button, .tier, .pw button, .need-btn {
  transition-property: background-color, color, border-color, box-shadow, opacity;
  transition-duration: 120ms; transition-timing-function: cubic-bezier(.2, 0, 0, 1);
}
.btn:not(:disabled):is(:hover, :focus-visible) { background-color: var(--orange-dark); }
.btn:is(.ghost, .sec):not(:disabled):is(:hover, :focus-visible),
.final .btn:not(:disabled):is(:hover, :focus-visible),
.seg button[aria-pressed="true"]:hover { background-color: var(--orange-tint); }
.seg button:not([aria-pressed="true"]):hover { background-color: rgba(51, 41, 38, .16); }
.btn:is(.ghost, .sec):not(:disabled):is(:hover, :focus-visible),
.tier:not([aria-checked="true"]):hover { border-color: var(--orange); }
.pw button:is(:hover, :focus-visible) { background-color: var(--orange-light); }
:is(.backbtn, .linkbtn, button.link):is(:hover, :focus-visible) { text-decoration-thickness: 2px; }
@media (prefers-reduced-motion: reduce) { .btn, .seg button, .tier, .pw button, .need-btn { transition: none; } }

/* ── shadows and lift (Wiith 2026) ── The brand is flat: shadows only lift what
   floats. shadow-sm for a picture resting just above the page; shadow-md for what
   floats over a photo or the page (play, share and flip buttons, the lock box,
   menus) and for every card or picture on hover. Cards that lift on hover all do
   it the same way: up 2px with shadow-md, in and out in 200 ms (duration-base,
   ease-standard), and at once under reduced motion. */
:root {
  --shadow-sm: 0 1px 2px rgba(51, 41, 38, .08), 0 2px 8px rgba(51, 41, 38, .06);
  --shadow-md: 0 4px 12px rgba(51, 41, 38, .1), 0 12px 32px rgba(51, 41, 38, .08);
}
:is(.lcard.go, .flip .front, .proof a.pt, .member, .art:has(.stretch), a.ev) { transition: box-shadow 200ms cubic-bezier(.2, 0, 0, 1), transform 200ms cubic-bezier(.2, 0, 0, 1); }
:is(.lcard.go:hover, .flip .front:hover, .proof a.pt:hover, .member:hover, .member[aria-expanded="true"]:hover:hover, .art:has(.stretch):hover, a.ev:hover) { box-shadow: var(--shadow-md); transform: translateY(-2px); }
@media (prefers-reduced-motion: reduce) { :is(.lcard.go, .flip .front, .proof a.pt, .member, .art:has(.stretch), a.ev) { transition: none; } }

/* ── choice cards (Forside and Artikler) ── Two cards with "ELLER" in a Lake Blue
   circle between them, overlapping each by 14px; the chosen card takes the
   Mountain Red tint. On phones the two cards become one panel split by a line,
   with "ELLER" on the line: the halves share the line (the second moves up by its
   border width) and the chosen half sits on top, so its Mountain Red edge runs all
   the way round, rounded corners included. */
.need { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; column-gap: 52px; margin-bottom: 26px; }
.need-btn { position: relative; text-align: left; text-decoration: none; font: inherit; color: var(--text); background: var(--surface); border: 2px solid var(--border); border-radius: 12px; padding: 20px 22px 18px; cursor: pointer; display: flex; flex-direction: column; gap: 6px; }
.need-btn strong { font-family: var(--font-display); font-size: 24px; line-height: .95; font-weight: var(--weight-strong); }
.need-btn span { font-size: 14px; color: var(--muted); }
.need-btn.on { border-color: var(--orange); background: var(--orange-tint); }
.need-btn.on span { color: var(--orange-dark); }
.need-btn:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
.need-btn .pick { font-size: 14px; font-weight: var(--weight-strong); color: var(--orange-t); margin-top: 4px; }
.need-btn .pick::after { content: "Tryk for at vælge"; }
.need-btn.on .pick::after { content: "✓ Valgt"; }
.need-btn:not(.on):hover { border-color: var(--orange); }
.need .or { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); z-index: 2; width: 80px; height: 80px; border-radius: 50%; display: grid; place-items: center; background: var(--blue-dark); color: #fff; border: 3px solid var(--bg); text-transform: uppercase; letter-spacing: .08em; text-indent: .08em; }
@media (max-width: 700px) {
  .need { grid-template-columns: 1fr; gap: 0; }
  .need-btn:first-child { border-radius: 15px 15px 0 0; padding-bottom: 54px; }
  .need-btn:last-child { border-radius: 0 0 15px 15px; margin-top: -2px; padding-top: 54px; }
  .need-btn.on { z-index: 1; }
  .need .or { position: relative; left: auto; top: auto; transform: none; justify-self: center; margin: -40px 0; }
}

/* ── topics (Artikler, Videoer) ── A button ("Emner: <active topic>") opens a dialog with the topic
   links under their first letters, each with its article count. They are plain links to
   /artikler?emne=…; the pills themselves are in topic-pills.css. Without JavaScript (no
   html.js, set by navigation.js before the content is drawn) the dialog is an ordinary list
   in the page, so the links work; with it, the compact button is there from the first paint. */
.topic-picker { margin: 0 0 18px; }
.topic-dlg nav { display: block; padding: 0; } /* the pages style a bare nav as the menu bar */
.topic-dlg .topic-all { margin: 0 0 18px; }
.topic-group h3 { margin: 0 0 8px; font-size: 20px; color: var(--orange-dark); }
.topic-group + .topic-group { margin-top: 18px; }
.topic-group ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
html:not(.js) .topic-picker .topic-dlg:not([open]) { display: block; position: static; width: auto; max-height: none; background: none; box-shadow: none; overflow: visible; }
html:not(.js) .topic-picker .topic-dlg .dlg-in { padding: 0; max-height: none; overflow: visible; }
html:not(.js) .topic-picker .topic-dlg .dlg-hd { display: none; }
/* The row above the article cards: the topic control and sorting (the same pills; the chosen one is
   tinted and underlined). */
.article-controls { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 12px 16px; margin: 0 0 18px; }
.article-controls .topic-picker { margin: 0; }
.article-sort { display: flex; flex-wrap: wrap; gap: 8px; }

/* ── article cards (Forside and Artikler) ── The synopsis is smaller than body
   text and shows at most three lines, ending in "…" (the full text stays in the
   page). */
#main .art .bd p { font-size: 15px; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; }
/* Articles of the "Jeg leder efter noget konkret" category (.sol) rest on Lake Blue tint, so they read apart from
   the others wherever a card shows (Forside, Artikler, the related cards of an article). Text keeps 5:1 or more. */
.art.sol { background: var(--blue-tint, #EDF4FA); }

/* ── whole-card button ── The card's title is a <button class="stretch"> whose
   ::after covers the card, so the whole card is one click target and the title is
   its name for screen readers. The card itself needs position: relative. */
.stretch { all: unset; cursor: pointer; }
.stretch::after { content: ""; position: absolute; inset: 0; }
:is(.tool, .art, .mc):has(.stretch:focus-visible) { outline: 2px solid var(--focus-ring); outline-offset: 2px; }

/* ── dialogs (Wiith 2026) ── A native <dialog class="dlg"> over the scrim, with
   shadow-lg; it comes in over 320 ms (duration-slow), at once under reduced
   motion, and becomes a bottom sheet on phones. .wide for content with a
   carousel or video. Opening and closing: the public dialog module. */
html:has(.dlg[open]) { overflow: hidden; }
.dlg { border: 0; padding: 0; width: min(560px, calc(100% - 32px)); max-width: none; max-height: min(760px, calc(100dvh - 32px)); border-radius: 20px; background: #fff; color: var(--text); overflow: hidden; box-shadow: 0 12px 24px rgba(51, 41, 38, .12), 0 32px 64px rgba(51, 41, 38, .14); }
.dlg.wide { width: min(1040px, calc(100% - 32px)); }
.dlg::backdrop { background: rgba(51, 41, 38, .55); }
.dlg[open] { animation: dlg-in 320ms cubic-bezier(.2, 0, 0, 1); }
.dlg[open]::backdrop { animation: dlg-fade 320ms cubic-bezier(.2, 0, 0, 1); }
@keyframes dlg-in { from { opacity: 0; transform: translateY(12px); } }
@keyframes dlg-fade { from { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .dlg[open], .dlg[open]::backdrop { animation: none; } }
.dlg-in { display: flex; flex-direction: column; gap: 18px; padding: 22px 28px 26px; max-height: min(760px, calc(100dvh - 32px)); overflow: auto; }
.dlg-hd { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
#main .dlg h2 { font-size: clamp(30px, 4vw, 40px); }
#main .dlg:not(.wide) h2 { font-size: clamp(26px, 3.4vw, 32px); font-weight: var(--weight-semibold); line-height: 1.05; }
.xbtn { flex: none; align-self: flex-start; width: 44px; height: 44px; border: 0; border-radius: 50%; background: transparent; color: var(--text); font-size: 30px; line-height: 1; cursor: pointer; transition: background-color 120ms cubic-bezier(.2, 0, 0, 1); }
.xbtn:hover { background: var(--orange-tint); }
.xbtn:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { .xbtn { transition: none; } }
.vframe { aspect-ratio: 16 / 9; border-radius: 15px; overflow: hidden; background: #332926; color: #FAF6F5; display: grid; place-items: center; }
.vframe iframe { width: 100%; height: 100%; border: 0; display: block; }
@media (max-width: 640px) {
  .dlg, .dlg.wide { margin: auto 0 0; width: 100%; max-height: 92dvh; border-radius: 20px 20px 0 0; }
  .dlg-in { max-height: 92dvh; padding: 18px 18px 22px; }
}

/* ── landscape cards (Forside, Trivselsgrupper, Nyhedsbrev) ── One card per
   landscape on Off-White: the picture on top (4:3, as drawn), then the title in
   the landscape's own colour (Desert Yellow Dark, Forest Green Dark, Mountain Red
   Dark; large text, so each passes contrast on Off-White), then the text. A
   clickable card (.go) is one link: it lifts like every card, its picture zooms a
   little (the page's .go rules) and "Gå ind i … →" sits at the bottom. */
.lcard { background: var(--surface); border: 1px solid var(--border); border-radius: 15px; overflow: hidden; display: flex; flex-direction: column; }
.lcard.oerken { --land: #A67A21; } .lcard.skov { --land: #4D8055; } .lcard.bjerg { --land: #663D29; }
.lcard .pic { position: relative; aspect-ratio: 4 / 3; overflow: hidden; }
.lcard .pic img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lcard .bd { flex: 1; display: flex; flex-direction: column; gap: 8px; }
#main .lcard h3 { color: var(--land); }
.lcard p { color: var(--muted); }
.lcard .fit { color: var(--text); } .lcard .fit :is(strong, b) { color: var(--orange-dark); }
.lcard .enter { margin-top: auto; padding-top: 8px; }
.lcard.go.dim { transition: opacity .4s ease; }  /* the other cards fade when one is chosen */

/* ── cards: one base per kind (radius 15px, spacing scale 4 8 12 16 24 32 48) ──
   Cards of the same kind look the same on every page, built from the classes the pages
   already use. The kinds stay different: only radius, padding and the type of title and
   text are shared; colours, borders and layout stay with the page. The research library
   card (.document-card, paper-cards.css) is its own. */

/* Cards with a picture: article (.art), video (.mc) and event (.ev, .ev.medie) cards keep
   their own layout; one radius. */
#main :is(.art, .mc, .ev) { border-radius: 15px; }

/* Stat and note cards (title 34px): the Forside's three cards and trust cards, the number
   cards (.fact), "Peer-støtte, ikke terapi", "Ledet med omtanke" and "Bygget på kendte
   metoder", "Godt at vide" and the landscape cards (.lcard, padding on the text under the
   picture). Padding 24px, 18px at the sides on phones; title Crimson Pro semibold 34px
   (30px on phones) next to its icon or number, text Crimson Pro 20px. Colours stay with
   the page. "Gruppen er / er ikke" on Trivselsgrupper (.is, .isnt) has these numbers in
   the page stylesheets. */
#main :is(.proof .pt, .trust > div, .fact, .peerbox, .opt.method, .good) { border-radius: 15px; padding: 24px; }
#main .lcard .bd { padding: 24px; }
#main :is(.pt .n, .trust h3, .fact .big, .fact h3, .peerbox h2, .opt.method h3, .good h2, .lcard h3) { font-family: var(--font-display); font-weight: var(--weight-semibold); font-size: 34px; line-height: 1; }
#main .pt .n { line-height: 1 !important; }  /* the pages' ".n { line-height: .95 !important }" */
#main :is(.pt .l, .trust p, .fact p:not(.disc), .peerbox li, .opt.method :is(p, li), .good li, .lcard p) { font-family: var(--font-display); font-weight: var(--weight-regular); font-size: 20px; line-height: 1.2; }
@media (max-width: 600px) {
  #main :is(.proof .pt, .trust > div, .fact, .peerbox, .opt.method, .good) { padding-inline: 18px; }
  #main .lcard .bd { padding-inline: 18px; }
  #main :is(.pt .n, .trust h3, .fact .big, .fact h3, .peerbox h2, .opt.method h3, .good h2, .lcard h3) { font-size: 30px; }
}

/* Info-card spacing: radius 15px and padding 24px. Page styles retain their own
   colours, heading sizes and layout. Team cards keep their pictures above the padded text. */
#main :is(.word, .give, .hc, .alarm .al, .tg, .opt:not(.method), .greb, .side, .side .help, form.signup, .presskit, .short, .note, .info, .notmember, .nlcard .opt2 .card) { border-radius: 15px; padding: 24px; }
#main .give, #main .give > div { min-width: 0; overflow-wrap: anywhere; }
#main .member { border-radius: 15px; }
#main .member .tx { padding: 24px; }
@media (min-width: 1024px) { #main .article-aside { border-radius: 15px; padding: 24px; } }

/* Selection cards: Støt's payment tiers (.tier) take the radius only; their borders, selected
   state and amounts stay as the page sets them. */
#main .tier { border-radius: 15px; }

/* ── responsive images (scripts/images.mjs) ── <picture> only picks the file, it
   takes no part in layout (nor does its <source>, which only lists files); width and height on <img> give the aspect ratio before
   the image arrives, and the height follows the width unless a page rule sets it. */
picture { display: contents; }
source { display: none; }
:where(img[width][height]) { height: auto; }

/* ── images fade in once loaded (/fade-in.js sets html.js and marks each image) ──
   Opt in with class="fade" on content images. Without JavaScript they just show; an image that was
   already there (cached) shows at once; one that arrives later fades for 350 ms. Opacity only, so
   nothing moves. Reduced motion: no animation. */
@keyframes img-fade { from { opacity: 0; } }
html.js img.fade:not(.is-loaded) { opacity: 0; }
html.js img.fade.is-fading { animation: img-fade .35s ease-out; }
@media (prefers-reduced-motion: reduce) { html.js img.fade.is-fading { animation: none; } }

/* ── footer: the logo link and the back-to-top arrow (site-footer.css has the same rules) ── */
.sitefoot .footer-brand > a:first-child { align-self: flex-start; }  /* the logo links home; only the logo is clickable */
.sitefoot .some .totop { margin-left: auto; }  /* back-to-top arrow: far right of the social icons */
@media (max-width: 600px) { .sitefoot ul.some.row { column-gap: 12px; } }  /* phones: the arrow fits on the icons' row */

/* ── footer logo on phones and tablets ── On desktop it is 90% of the header logo;
   below 1024px it is larger, so the footer ends with a clear sign-off (never wider
   than its column). */
@media (max-width: 600px) { .sitefoot .footer-logo { width: 220px; } }
@media (min-width: 601px) and (max-width: 1023px) { .sitefoot .footer-logo { width: min(240px, 100%); } }

/* ── phones: the levels step down together ── */
@media (max-width: 600px) {
  #main h1 { font-size: 40px; }
  #main h2, #main :is(.n, .num, .big, .tier .amt) { font-size: 30px; }
  #main :is(.side, .presskit, .nlcard, .short) h2 { font-size: 24px; }
  #main .kicker { font-size: 20px; }
  #main .nlband .kick { font-size: 24px; }
  #main .cit-text :is(p, li) { font-size: 22px; }
  #main :is(.lede, .sec-head p, .intro, .why) { font-size: 18px !important; }
}
@media (max-width: 360px) { #main .facts .fact :is(.big, h3) { font-size: 26px; } }  /* the narrowest phones: number-card titles stay on one line */

/* ── in-text links: a link inside running text (a paragraph or list item) is our blue,
   bold, and underlined only on hover. Buttons, cards, breadcrumbs and share/arrow
   actions keep their own style (the :not list). The blue falls back to the value of
   --blue-dark, which only the home page defines. */
#main :is(p, li) a:not(.btn, .go, .stretch, .share-btn, .topic, .video, .pt, .goodlink, .crumbs a, .vshare a, .sharehero a, .sharehero2 a, .document-card a) {
  color: var(--blue-dark, #46698C);
  font-weight: var(--weight-strong);
  text-decoration: none;
  cursor: pointer;
}
#main :is(p, li) a:not(.btn, .go, .stretch, .share-btn, .topic, .video, .pt, .goodlink, .crumbs a, .vshare a, .sharehero a, .sharehero2 a, .document-card a):hover {
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}
#main :is(p, li) a:not(.btn, .go, .stretch, .share-btn, .topic, .video, .pt, .goodlink, .crumbs a, .vshare a, .sharehero a, .sharehero2 a, .document-card a):focus-visible {
  outline: 2px solid var(--focus-ring); outline-offset: 2px;
}

/* The research banner (Forside): a <details> under the articles. Closed it is one card like .need-btn; open it takes
   the Mountain Red tint and edge, the chevron turns, and the intro, the 3 papers and the link to the library follow. */
.research { margin-top: 28px; }
.research summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 22px 18px; background: var(--surface); border: 2px solid var(--border); border-radius: 15px; cursor: pointer; list-style: none; transition: background-color 120ms cubic-bezier(.2, 0, 0, 1), border-color 120ms cubic-bezier(.2, 0, 0, 1); }
.research summary::-webkit-details-marker { display: none; }
.research summary:hover, .research[open] summary { border-color: var(--orange); }
.research[open] summary { background: var(--orange-tint); }
.research summary:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
.research .txt { display: flex; flex-direction: column; gap: 6px; }
#main .research strong { font-family: var(--font-display); font-size: 24px; line-height: 1.1; font-weight: var(--weight-medium); }
#main .research .desc { font-family: var(--font-sans); font-size: 17px; line-height: 1.3; color: var(--muted); }
#main .research[open] .desc { color: var(--orange-dark); }
.research .chev { flex: none; width: 12px; height: 12px; margin: -6px 6px 0 0; border: solid var(--orange-dark); border-width: 0 3px 3px 0; transform: rotate(45deg); transition: transform 200ms cubic-bezier(.2, 0, 0, 1); }
.research[open] .chev { margin-top: 6px; transform: rotate(225deg); }
@media (prefers-reduced-motion: reduce) { .research summary, .research .chev { transition: none; } }
.research .papers { padding-top: 24px; } /* the panel: intro, papers, link */
.papers-lead { margin-bottom:20px; color:var(--muted); }

/* ── Wiith 2026 components: Button, TextField and focus (components/bundle.css) ──
   One definition for every marketing page. Buttons are pills, at least 48px tall
   (control-md), with a 2px border so filled and outlined buttons match in height;
   outlined buttons use line-strong. Fields are 48px with a 1.5px line-strong border and
   8px corners. Every focus ring is 2px focus-ring (Lake Blue dark) at 2px. Pages keep only
   colours for special places (white buttons on the red box). */
:root { --focus-ring: #46698C; }
:where(.btn) { background: var(--orange); color: #fff; }
.btn { box-sizing: border-box; justify-content: center; min-height: 48px; padding: 10px 26px; border: 2px solid transparent; border-radius: 999px; font-family: var(--font-sans); font-weight: var(--weight-strong); line-height: 25px; text-decoration: none; }
.btn:is(.ghost, .sec) { background: transparent; color: var(--orange-dark); border: 2px solid var(--orange-dark); }
.btn:is(.ghost, .sec):not(:disabled):is(:hover, :focus-visible) { background-color: var(--surface); border-color: var(--orange-dark); }
.article-search .btn { background: var(--orange-dark); }
.article-search .btn:not(:disabled):is(:hover, :focus-visible) { background: var(--text); }
#main :is(form, .payfields) :is(input:not([type=checkbox], [type=radio], [type=submit], [type=button], [type=hidden], [type=range]), select, textarea) {
  box-sizing: border-box; padding: 12px 14px; border: 1.5px solid var(--orange-dark); border-radius: 8px;
  font: var(--weight-regular) 17px/22px var(--font-sans); color: var(--text); background: var(--bg);
}
#main :is(form, .payfields) :is(input:not([type=checkbox], [type=radio], [type=submit], [type=button], [type=hidden], [type=range]), select) { min-height: 48px; }
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
/* Text-style buttons keep their look; the invisible area makes them 44px to tap. */
:is(.backbtn, .linkbtn) { position: relative; }
:is(.backbtn, .linkbtn)::after { content: ""; position: absolute; inset: -11px -6px; }
