/* ═══════════════════════════════════════════════════════════════════════════
   THEME B — the "training house" look of the public pages (EB, 27.10.2026)
   Every rule hangs on body.theme-b, which the server adds when the admin has
   switched the public look to B (lib/App.php themed) or an admin previews it
   with ?theme=b. Without the class nothing here applies, so A is untouched.
   Decisions: docs/etusivu-b/suunnitelma.md; model: docs/etusivu-b/ehdotukset/b1.html.
   White ground, one colour (--primary), hairline cards, 4–6 px corners, no
   gradients, glass, shadows or motion; body 20 px (19 px on a phone), the
   smallest text 16 px. The signed-in app and the sign-in view take nothing
   from here: the public-landing view, the purchase and welcome views, the
   access view and /order are the only roots used.
   EB-2a: the base, the hero, the fact box, the campaign line, Who it is for.
   EB-2b: Content (the toolkit), the experts, How Vergent came to be.
   EB-2c: Practical information, Registration (the offer card as facts), the footer, the menu.
   EB-3: the purchase page (no menu, folded extras) and the welcome / access / order views on white.
   EB-4: the footer's language menu, the first-visit language picker, the consent bar, the dialogs on the public pages.
   ═══════════════════════════════════════════════════════════════════════════ */

body.theme-b {
  --b-line: #DDD8CF;
  --b-line-soft: #EEEAE3;
  --b-pale: #F3F7F4;
  --b-text-soft: #4C4C4C;
  --b-r: 4px;
  --b-r2: 6px;
}

/* ── Base: white, no motion ───────────────────────────────────────────── */
body.theme-b #view-public_landing { background: #fff; font-size: 20px; line-height: 1.6; }
body.theme-b #view-public_landing .pl-reveal,
body.theme-b #view-public_landing .pl-reveal-left,
body.theme-b #view-public_landing .pl-reveal-scale,
body.theme-b #view-public_landing .pl-reveal-stagger { opacity: 1; transform: none; transition: none; }
body.theme-b #view-public_landing .pl-hero-content,
body.theme-b #view-public_landing .pl-hero-image,
body.theme-b #view-public_landing .pl-hero-image img,
body.theme-b #view-public_landing .pl-btn-primary::after { animation: none; }
body.theme-b #view-public_landing .pl-btn-primary::after { display: none; }
body.theme-b #view-public_landing .pl-hero-image:hover img { transform: none; box-shadow: none; }

/* A's own elements that B does not show */
body.theme-b .pl-a,
body.theme-b #pl-campaign,
body.theme-b .pl-hero-title::after { display: none !important; }
/* B's own blocks are written hidden; js/app.js clears the attribute in B (a stylesheet alone would lose to the page's
   own .pl-offer [hidden] rule). These two are only a fallback for the moment before app.js runs. */
body.theme-b .pl-b[hidden] { display: block; }
body.theme-b a.pl-b[hidden] { display: inline-flex; }
/* In A the same blocks must stay hidden even where style.css gives the element a display of its own (the menu links
   are flex, the hero buttons block): an author display rule outranks the browser's own [hidden]. Found in the
   review pass (925): B's hero buttons and three menu links showed in A. Not scoped to body.theme-b on purpose. */
body:not(.theme-b) .pl-b[hidden] { display: none !important; }

/* ── Header: white, hairline, a bordered sign-in ──────────────────────── */
body.theme-b .pl-header { background: #fff; backdrop-filter: none; -webkit-backdrop-filter: none; box-shadow: none; border-bottom: 1px solid var(--b-line-soft); }
body.theme-b .pl-nav-link { font-size: 1rem; }
body.theme-b .pl-nav-cta { background: #fff; color: var(--primary); border: 1.5px solid var(--primary); border-radius: var(--b-r); font-size: 1rem; padding: 9px 18px; }
body.theme-b .pl-nav-cta:hover { background: var(--b-pale); transform: none; }

/* ── Buttons: one green, square-ish, no shimmer ───────────────────────── */
body.theme-b .pl-btn { border-radius: var(--b-r); font-size: 1.02rem; padding: 15px 28px; box-shadow: none; transform: none; }
body.theme-b .pl-btn-primary { background: var(--primary); }
body.theme-b .pl-btn-primary:hover { background: var(--primary); box-shadow: none; transform: none; opacity: .92; }
body.theme-b .pl-btn-outline { background: #fff; color: var(--primary); border: 1.5px solid var(--primary); }
body.theme-b .pl-btn-outline:hover { background: var(--b-pale); transform: none; }

/* ── Hero: two columns, one sentence, two buttons, the picture as it is ── */
body.theme-b .pl-hero { padding: 56px 24px 52px; gap: 48px; border-bottom: 1px solid var(--b-line-soft); overflow: visible; }
body.theme-b .pl-hero-title { font-size: 2.7rem; line-height: 1.15; letter-spacing: -0.01em; margin-bottom: 18px; }
body.theme-b .pl-hero-sub { font-size: 1.2rem; line-height: 1.6; color: #3a3a3a; max-width: 46ch; margin-bottom: 28px; }
body.theme-b .pl-hero-buttons { gap: 14px; }
body.theme-b .pl-hero-image img { border-radius: var(--b-r2); box-shadow: none; }

/* ── The fact box and the campaign line ───────────────────────────────── */
body.theme-b .pl-b-facts { max-width: 1120px; margin: 0 auto; padding: 36px 24px; border-bottom: 1px solid var(--b-line-soft); }
body.theme-b .pl-b-facts-grid { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0; border: 1px solid var(--b-line); border-radius: var(--b-r2); overflow: hidden; }
body.theme-b .pl-b-facts-grid > div { padding: 18px 22px; border-right: 1px solid var(--b-line); border-bottom: 1px solid var(--b-line); min-width: 0; }
body.theme-b .pl-b-facts-grid > div:nth-child(3n) { border-right: 0; }
body.theme-b .pl-b-facts-grid > div:nth-child(n+4) { border-bottom: 0; }
body.theme-b .pl-b-facts-grid dt { font-size: .8rem; text-transform: uppercase; letter-spacing: .05em; color: #5C5C5C; margin: 0 0 4px; }
body.theme-b .pl-b-facts-grid dd { margin: 0; font-size: 1.12rem; font-weight: 600; line-height: 1.35; overflow-wrap: anywhere; }
body.theme-b .pl-b-camp { margin: 16px 0 0; font-size: 1.15rem; color: var(--text); }
body.theme-b .pl-b-camp b { color: var(--primary); }

/* ── Who it is for + the cost of waiting as text ──────────────────────── */
body.theme-b .pl-b-inner { max-width: 1120px; margin: 0 auto; padding: 0 24px; }
body.theme-b .pl-b-who { padding: 52px 0; border-bottom: 1px solid var(--b-line-soft); }
body.theme-b .pl-b-h2 { font-size: 1.8rem; font-weight: 700; line-height: 1.2; margin: 0 0 22px; color: var(--text); }
body.theme-b .pl-b-who-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
body.theme-b .pl-b-who-grid > div { border-top: 3px solid var(--primary); padding-top: 14px; min-width: 0; }
/* an ad's page (926): one field only, one row across the width; js/landing_page.js hides the other two */
body.theme-b .pl-b-who-grid.is-one { grid-template-columns: 1fr; }
body.theme-b .pl-b-who-grid.is-one > div[hidden] { display: none; }
body.theme-b .pl-b-who-grid.is-one p { max-width: 760px; color: var(--text); }
body.theme-b .pl-b-who-grid h3 { font-size: 1.2rem; font-weight: 700; margin: 0 0 6px; }
body.theme-b .pl-b-who-grid p { margin: 0; color: var(--b-text-soft); line-height: 1.55; }
body.theme-b .pl-b-stakes { margin-top: 34px; padding: 22px 26px; background: var(--b-pale); border-radius: var(--b-r2); max-width: 72ch; }
body.theme-b .pl-b-stakes-lead { margin: 0; font-weight: 700; }
body.theme-b .pl-b-stakes ul { margin: 8px 0 0; padding-left: 22px; }
body.theme-b .pl-b-stakes li { margin-bottom: 4px; line-height: 1.55; }
body.theme-b .pl-b-stakes strong { font-weight: 600; }
body.theme-b .pl-b-source { color: var(--b-text-soft); text-decoration: underline; text-underline-offset: 3px; font-size: .95rem; }

/* ── Content: the four toolkit items as a plain two-column list with the old icons ── */
body.theme-b .pl-features { padding: 52px 24px; border-bottom: 1px solid var(--b-line-soft); }
body.theme-b .pl-features::before, body.theme-b .pl-features::after { display: none; }
body.theme-b .pl-b-kit-h2 { text-align: left; }
body.theme-b .pl-b-lead { max-width: 60ch; margin: 0 0 10px; color: var(--b-text-soft); line-height: 1.6; }
body.theme-b .pl-kit-panel { max-width: none; margin: 0; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; }
body.theme-b .pl-kit-grid { gap: 0 40px; }
body.theme-b .pl-kit-card { display: flex; gap: 16px; align-items: flex-start; padding: 20px 0; border: 0; border-bottom: 1px solid var(--b-line-soft); border-radius: 0; background: none; backdrop-filter: none; -webkit-backdrop-filter: none; box-shadow: none; min-width: 0; }
body.theme-b .pl-kit-disc { flex: 0 0 52px; width: 52px; height: 52px; margin: 0; border: 0; box-shadow: none; background: var(--b-pale); }
body.theme-b .pl-kit-disc img { width: 30px; height: 30px; }
body.theme-b .pl-kit-card > .pl-kit-disc + .pl-kit-title { margin-top: 0; }
body.theme-b .pl-kit-title { font-size: 1.2rem; margin: 0 0 6px; }
body.theme-b .pl-kit-text { font-size: 1rem; line-height: 1.6; color: #3a3a3a; max-width: none; }
/* the card's icon sits beside the two text blocks: the disc first, the title and text stacked after it */
body.theme-b .pl-kit-card { display: grid; grid-template-columns: 52px 1fr; grid-template-rows: auto 1fr; column-gap: 16px; row-gap: 0; align-items: start; }
body.theme-b .pl-kit-disc { grid-row: 1 / 3; }
/* the certificate and badge cards (OM-1): their facts are in the fact box and the registration in B */
body.theme-b .pl-cert-grid { display: none; }

/* ── The experts: six still cards, the title in bold, the name under it ── */
body.theme-b .pl-about { background: #fff; padding: 52px 0 0; }
body.theme-b .pl-about-inner { max-width: 1120px; }
body.theme-b .pl-about .pl-b-h2 { text-align: left; }
body.theme-b .pl-about-lead { max-width: 66ch; margin: 0 0 28px; text-align: left; color: var(--b-text-soft); line-height: 1.6; font-size: 1rem; }
body.theme-b .pl-b-experts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px 28px; padding-bottom: 52px; border-bottom: 1px solid var(--b-line-soft); }
body.theme-b .pl-b-experts > div { display: flex; gap: 16px; align-items: center; min-width: 0; }
body.theme-b .pl-b-experts img, body.theme-b .pl-b-avatar { flex: 0 0 84px; width: 84px; height: 84px; border-radius: 50%; object-fit: cover; display: block; }
body.theme-b .pl-b-avatar svg { display: block; }
body.theme-b .pl-b-experts b { display: block; font-size: 1.05rem; line-height: 1.3; margin-bottom: 4px; }
body.theme-b .pl-b-experts span { display: block; font-size: .95rem; color: #5C5C5C; line-height: 1.4; }
/* A's carousel, story rail, overlapping photos, dark numbers band, chart and marker sentence */
body.theme-b .pl-deck-wrap, body.theme-b .pl-story, body.theme-b .pl-story-end, body.theme-b .pl-photos-zone,
body.theme-b .pl-about-band, body.theme-b .pl-about-stakes, body.theme-b .pl-about-mission { display: none !important; }

/* ── How Vergent came to be: text left, the three photographs right ───── */
body.theme-b .pl-b-story { padding: 52px 0; border-bottom: 1px solid var(--b-line-soft); }
body.theme-b .pl-b-story-grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 44px; align-items: start; }
body.theme-b .pl-b-story p { margin: 0 0 14px; line-height: 1.6; }
body.theme-b .pl-b-story-goal { color: var(--b-text-soft); margin-top: 18px !important; }
body.theme-b .pl-b-nums { display: flex; flex-wrap: wrap; gap: 8px 28px; margin: 22px 0 0 !important; padding-top: 18px; border-top: 1px solid var(--b-line-soft); font-size: .98rem; color: var(--b-text-soft); }
body.theme-b .pl-b-nums b { color: var(--text); font-size: 1.3rem; margin-right: 6px; }
body.theme-b .pl-b-pics { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
body.theme-b .pl-b-pics figure { margin: 0; min-width: 0; }
body.theme-b .pl-b-pic-big { grid-column: 1 / -1; }
body.theme-b .pl-b-pics .pl-photo-shot { border-radius: var(--b-r2); aspect-ratio: 4 / 3; }
body.theme-b .pl-b-pic-big .pl-photo-shot { aspect-ratio: 16 / 10; }
body.theme-b .pl-b-pics figcaption { font-size: .88rem; line-height: 1.4; color: #5C5C5C; margin-top: 8px; }

/* ── Practical information: a definition list; A's ICF band hidden ──── */
body.theme-b .pl-b-practical { padding: 52px 0; border-bottom: 1px solid var(--b-line-soft); }
body.theme-b .pl-b-dl { display: grid; grid-template-columns: 200px 1fr; gap: 12px 20px; margin: 0; }
body.theme-b .pl-b-dl dt { font-weight: 600; color: #333; }
body.theme-b .pl-b-dl dd { margin: 0; color: #444; line-height: 1.55; }
body.theme-b .pl-b-dl dd a { color: var(--primary); }
body.theme-b .pl-b-dl-note { display: block; font-size: .9rem; color: #5C5C5C; margin-top: 4px; }
body.theme-b .pl-icf { display: none !important; }

/* ── Registration: the offer section as a white page with a facts card ── */
body.theme-b .pl-offer { background: #fff; color: var(--text); padding: 52px 24px; overflow: visible; }
body.theme-b .pl-offer .pl-wave { display: none; }
body.theme-b .pl-offer-inner { max-width: 1120px; grid-template-columns: 1.2fr 1fr; column-gap: 40px; grid-template-areas: "camp card" "head card" "checks card" "trust card"; grid-template-rows: auto auto 1fr auto; align-items: start; }
body.theme-b .pl-offer-checks, body.theme-b .pl-offer-trust, body.theme-b .pl-offer-tab, body.theme-b .pl-offer-seal,
body.theme-b .pl-mock, body.theme-b .pl-offer-list svg, body.theme-b .pl-offer-divider { display: none !important; }
/* the admin's campaign sentence: a plain paragraph above the heading, not a yellow banner */
body.theme-b .pl-offer-campaign { grid-area: camp; max-width: none; margin: 0 0 14px; padding: 14px 18px; border-radius: var(--b-r2); background: var(--b-pale); color: var(--text); font-size: 1.05rem; font-weight: 600; line-height: 1.5; text-align: left; text-wrap: initial; box-shadow: none; }
body.theme-b .pl-b-reg p { margin: 0 0 14px; line-height: 1.6; }
body.theme-b .pl-b-reg-badge { display: flex; gap: 18px; align-items: center; margin-top: 18px; color: var(--b-text-soft); line-height: 1.5; }
body.theme-b .pl-b-reg-badge img { flex: 0 0 64px; width: 64px; height: 64px; }
body.theme-b .pl-offer-card { margin: 0; padding: 26px; border: 1px solid var(--b-line); border-radius: var(--b-r2); background: #fff; box-shadow: none; }
body.theme-b .pl-offer-product { display: block; }
body.theme-b .pl-b-inc { font-weight: 700; margin: 0 0 8px; }
body.theme-b .pl-offer-list { gap: 0; padding-bottom: 10px; margin-bottom: 14px; border-bottom: 1px solid var(--b-line-soft); }
body.theme-b .pl-offer-list li { grid-template-columns: 1fr; gap: 0; padding: 6px 0; }
body.theme-b .pl-offer-list b { display: inline; font-size: 1rem; color: var(--text); font-weight: 600; }
body.theme-b .pl-offer-list small { display: inline; font-size: .95rem; color: var(--b-text-soft); margin: 0 0 0 6px; }
body.theme-b .pl-offer-price { justify-content: space-between; align-items: baseline; gap: 6px 12px; padding: 10px 0 12px; border-bottom: 1px solid var(--b-line-soft); margin-bottom: 10px; }
body.theme-b .pl-offer-price .now { order: 1; font-size: 2.2rem; font-weight: 700; color: var(--text); }
body.theme-b .pl-offer-price .vat { order: 2; font-size: .95rem; color: var(--b-text-soft); }
body.theme-b .pl-offer-price .was { order: 3; flex-basis: 100%; display: flex; justify-content: space-between; font-size: 1rem; color: var(--b-text-soft); text-decoration: none; }
body.theme-b .pl-offer-price .was::before { content: attr(data-label); }
body.theme-b .pl-offer-opts { display: grid; gap: 8px; }
body.theme-b .pl-offer-opt { padding: 10px 12px; border: 1px solid var(--b-line); border-radius: var(--b-r); background: #fff; color: var(--text); font-size: 1rem; }
body.theme-b .pl-offer-opt .dot { width: 20px; height: 20px; border-color: #9a9a9a; }
body.theme-b .pl-offer-opt.on { border-color: var(--primary); background: var(--b-pale); }
body.theme-b .pl-offer-opt.on .dot { border-color: var(--primary); }
body.theme-b .pl-offer-opt.on .dot::after { width: 10px; height: 10px; background: var(--primary); }
body.theme-b .pl-offer-opt .lbl { font-weight: 600; }
body.theme-b .pl-offer-opt .amt small { color: var(--b-text-soft); font-size: .9rem; }
body.theme-b .pl-offer-sched { background: var(--b-pale); border: 0; color: var(--text); border-radius: var(--b-r2); }
body.theme-b .pl-offer-sched > div { border-bottom-color: var(--b-line-soft); font-size: 1rem; }
body.theme-b .pl-offer-sched > div span, body.theme-b .pl-offer-sched p { color: var(--b-text-soft); }
body.theme-b .pl-offer-cta { min-height: 56px; border-radius: var(--b-r); background: var(--primary); color: #fff; font-size: 1.05rem; font-weight: 600; box-shadow: none; transition: none; }
body.theme-b .pl-offer-cta:hover { transform: none; filter: none; opacity: .92; box-shadow: none; }
body.theme-b .pl-offer-cta svg { display: none; }
body.theme-b .pl-offer-secure { color: var(--b-text-soft); font-size: .9rem; margin-top: 12px; }
body.theme-b .pl-b-secure { display: flex; width: 100%; justify-content: space-between; align-items: center; gap: 10px; text-align: left; }
body.theme-b .pl-b-secure img { opacity: .6; }
body.theme-b .pl-offer-price-error, body.theme-b .pl-offer-cancelled { color: var(--danger); }
body.theme-b .pl-offer-org { font-size: 1rem; padding-bottom: 0; }
body.theme-b .pl-offer-org a { color: var(--primary); }

/* ── Footer: white, left-aligned, the company line ────────────────────── */
body.theme-b .pl-footer { background: #fff; border-top: 1px solid var(--b-line-soft); padding: 36px 24px 48px; color: #5C5C5C; font-size: .95rem; }
body.theme-b .pl-footer-inner { text-align: left; }
body.theme-b .pl-footer-brand { justify-content: flex-start; color: var(--text); margin-bottom: 12px; }
body.theme-b .pl-footer-logo { filter: none; }
body.theme-b .pl-footer-links { justify-content: flex-start; gap: 12px 24px; margin-bottom: 14px; }
body.theme-b .pl-footer-links a { color: #5C5C5C; font-size: .95rem; }
body.theme-b .pl-footer-links a:hover { color: var(--text); }
body.theme-b .pl-footer-company { text-align: left; }
body.theme-b .pl-footer-company p { margin: 0 0 6px; color: #5C5C5C; }
body.theme-b .pl-footer-company a { color: #5C5C5C; }
body.theme-b .pl-footer-copy { color: #5C5C5C; margin-top: 10px; }

/* ── The purchase page: white, no menu, bordered blocks, the summary with a green frame ── */
body.theme-b .pl-buy-backdrop, body.theme-b .pl-buy { background: #fff; }
body.theme-b .pl-buy-page { max-width: 1000px; padding: 0 24px 56px; grid-template-columns: minmax(0, 1.25fr) 1fr; column-gap: 36px; row-gap: 16px;
  grid-template-areas: "top top" "title close" "main side"; }
body.theme-b .pl-b-buy-top { grid-area: top; display: flex; align-items: center; justify-content: space-between; height: 68px; margin: 0 -24px 8px; padding: 0 24px; border-bottom: 1px solid var(--b-line-soft); }
body.theme-b .pl-b-buy-brand { display: inline-flex; align-items: center; gap: 10px; font-weight: 700; font-size: 1.25rem; color: var(--primary); }
body.theme-b .pl-b-buy-brand img { width: 34px; height: auto; }
body.theme-b .pl-b-buy-cancel { font: inherit; font-size: .95rem; color: var(--b-text-soft); background: none; border: 0; padding: 8px 4px; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
body.theme-b .pl-buy-close { display: none !important; }
body.theme-b .pl-buy h3 { font-size: 2rem; }
body.theme-b .pl-buy-card { border: 1px solid var(--b-line); border-radius: var(--b-r2); box-shadow: none; padding: 20px 24px 22px; }
body.theme-b .pl-buy-plan-head, body.theme-b .pl-buy-extra-head { font-size: 1.1rem; }
body.theme-b .pl-buy-extra-head svg { display: none; }
body.theme-b .pl-buy-extra-head { float: none; width: auto; margin-bottom: 6px; }
body.theme-b .pl-b-extra-closed { clear: both; }
body.theme-b .pl-buy-fields label { font-size: 1rem; }
body.theme-b .pl-buy input[type=text], body.theme-b .pl-buy input[type=email] { border-radius: var(--b-r); border: 1px solid #CFCAC2; font-size: 1.05rem; padding: 12px 14px; }
body.theme-b .pl-buy input[readonly] { background: #FAF9F6; color: #5C5C5C; }
body.theme-b .pl-buy-hint, body.theme-b .pl-buy-why { font-size: .95rem; color: var(--b-text-soft); }
body.theme-b .pl-buy-opts { background: #fff; border: 1px solid var(--b-line); border-radius: var(--b-r2); }
body.theme-b .pl-buy-opt { background: #fff; color: var(--text); border-top-color: var(--b-line-soft); padding: 12px 14px; }
body.theme-b .pl-buy-opt.on { background: var(--b-pale); box-shadow: inset 0 0 0 1.5px var(--primary); }
body.theme-b .pl-buy-opt .dot { border-color: #9a9a9a; width: 20px; height: 20px; }
body.theme-b .pl-buy-opt.on .dot { border-color: var(--primary); }
body.theme-b .pl-buy-opt.on .dot::after { width: 10px; height: 10px; background: var(--primary); }
body.theme-b .pl-buy-opt-main { font-size: 1rem; font-weight: 600; }
body.theme-b .pl-buy-opt-sub { font-size: .92rem; color: var(--b-text-soft); }
body.theme-b .pl-buy-opt-price { font-size: 1rem; }
body.theme-b .pl-b-extra-closed { display: grid; gap: 2px; padding: 4px 0 0; }
body.theme-b .pl-b-extra-closed b { font-weight: 600; }
body.theme-b .pl-b-extra-closed span { color: var(--b-text-soft); font-size: .95rem; }
body.theme-b .pl-b-btn-ghost { justify-self: start; margin-top: 14px; font: inherit; font-size: .98rem; font-weight: 600; color: var(--primary); background: #fff; border: 1.5px solid var(--primary); border-radius: var(--b-r); padding: 10px 18px; cursor: pointer; }
body.theme-b .pl-b-btn-ghost:hover { background: var(--b-pale); }
body.theme-b .pl-buy-pay { color: var(--text); background: #fff; border: 1.5px solid var(--primary); border-radius: var(--b-r2); box-shadow: none; padding: 20px 22px 16px; }
body.theme-b .pl-buy-sum { color: var(--text); font-size: 1rem; }
body.theme-b .pl-buy-sum b { color: var(--text); }
body.theme-b .pl-buy-foot { border-top-color: var(--b-line-soft); }
body.theme-b .pl-buy-total { font-size: 1.1rem; }
body.theme-b .pl-buy-total b { font-size: 1.6rem; }
body.theme-b .pl-buy-sched div, body.theme-b .pl-buy-sched small, body.theme-b .pl-buy-sched p { color: var(--b-text-soft); }
body.theme-b .pl-buy-sched div { font-size: 1rem; }
body.theme-b .pl-buy-check, body.theme-b .pl-buy-check a { color: var(--text); font-size: .95rem; }
body.theme-b .pl-buy-status { color: var(--text); }
body.theme-b .pl-buy-err { color: var(--danger); }
body.theme-b .pl-buy-foot .pl-offer-cta { min-height: 56px; border-radius: var(--b-r); background: var(--primary); color: #fff; font-size: 1.05rem; font-weight: 600; box-shadow: none; }
body.theme-b .pl-buy-foot .pl-offer-cta svg { display: none; }
body.theme-b .pl-buy-badge { text-align: center; margin-top: 12px; }
body.theme-b .pl-buy-badge .pl-b img { opacity: .6; }

/* ── The welcome, access and organisation-order views: white instead of the green glass ── */
body.theme-b #view-welcome, body.theme-b #view-access, body.theme-b #view-org_order { background: #fff; --glass: #fff; --glass-border: #DDD8CF; --glass-shadow: none; --glass-blur: none; --ink: #1B1B1B; --ink-soft: #4C4C4C; --green-grad: #2D6A4F; }
body.theme-b #view-welcome .app-header, body.theme-b #view-access .app-header, body.theme-b #view-org_order .app-header { background: #fff; backdrop-filter: none; -webkit-backdrop-filter: none; border-bottom: 1px solid var(--b-line-soft); box-shadow: none; }
body.theme-b #view-welcome .access-card, body.theme-b #view-access .access-card, body.theme-b #view-org_order .access-card { border-radius: var(--b-r2); border: 1px solid var(--b-line); box-shadow: none; }
body.theme-b #view-access .app-roundbtn { background: #fff; color: var(--primary); border: 1.5px solid var(--primary); border-radius: var(--b-r); box-shadow: none; }
body.theme-b .access-icon.is-ok { background: var(--primary); border: 0; }
body.theme-b .access-icon.is-ended { background: var(--b-pale); border: 1px solid var(--b-line); }
body.theme-b .wel-sum { border-radius: var(--b-r2); background: #fff; border: 1px solid var(--b-line); }
body.theme-b .wel-row + .wel-row { border-top-color: var(--b-line-soft); }
body.theme-b .wel-form input { border-radius: var(--b-r); border: 1px solid #CFCAC2; }
body.theme-b .wel-form input:focus { box-shadow: none; border-color: var(--primary); }
body.theme-b .wel-form input[readonly] { background: #FAF9F6; color: #5C5C5C; }
body.theme-b .wel-pw button { border-radius: var(--b-r); }
body.theme-b #view-welcome .access-btn, body.theme-b #view-access .access-btn, body.theme-b #view-org_order .access-btn { border-radius: var(--b-r); background: var(--primary); box-shadow: none; }

/* ── The footer's language menu on the white footer ───────────────────── */
body.theme-b .pl-lang-btn { color: #5C5C5C; font-size: .95rem; }
body.theme-b .pl-lang-btn:hover, body.theme-b .pl-lang-btn.is-open { color: var(--text); }
body.theme-b .pl-lang-btn:focus-visible { outline-color: var(--primary); }
body.theme-b .pl-lang-menu { background: #fff; border: 1px solid var(--b-line); border-radius: var(--b-r2); box-shadow: 0 8px 24px rgba(0, 0, 0, 0.10); }
body.theme-b .pl-lang-menu [role="option"] { color: var(--text); border-radius: var(--b-r); font-size: 1rem; }
body.theme-b .pl-lang-menu [role="option"]:hover, body.theme-b .pl-lang-menu [role="option"]:focus { background: var(--b-pale); color: var(--text); }
body.theme-b .pl-lang-menu [role="option"]:focus-visible { box-shadow: inset 0 0 0 2px var(--primary); }
body.theme-b .pl-lang-check, body.theme-b .pl-lang-menu .is-current { color: var(--primary); }

/* ── The first-visit language picker: a plain white card, no glow, no motion ── */
body.theme-b .langpick { background: rgba(255, 255, 255, 0.75); backdrop-filter: none; -webkit-backdrop-filter: none; animation: none; }
body.theme-b .langpick-card { background: #fff; border: 1px solid var(--b-line); border-radius: var(--b-r2); box-shadow: 0 12px 40px rgba(0, 0, 0, 0.14); animation: none; }
body.theme-b .langpick-card::before { display: none; }
body.theme-b .langpick-title::after { display: none; }
body.theme-b .langpick-top { border-radius: var(--b-r); box-shadow: none; }
body.theme-b .langpick-top:hover { background: var(--primary); opacity: .92; box-shadow: none; }
body.theme-b .langpick-x { border-radius: var(--b-r); }
body.theme-b .langpick-opt { border-bottom-color: var(--b-line-soft); }

/* ── The consent bar ───────────────────────────────────────────────────── */
body.theme-b .consent-bar { background: #fff; color: var(--text); border: 1px solid var(--b-line); border-radius: var(--b-r2); box-shadow: 0 12px 40px rgba(0, 0, 0, 0.14); }
body.theme-b .consent-btn { border-radius: var(--b-r); font-weight: 600; }
body.theme-b .consent-btn:focus-visible { outline-color: var(--primary); }

/* ── The app's own dialog while a public page is showing (the signed-in app keeps its look) ── */
body.theme-b:has(#view-public_landing.active, #view-welcome.active, #view-access.active, #view-org_order.active) .dialog-box { background: #fff; backdrop-filter: none; -webkit-backdrop-filter: none; border: 1px solid var(--b-line); border-radius: var(--b-r2); box-shadow: 0 12px 40px rgba(0, 0, 0, 0.14); }
body.theme-b:has(#view-public_landing.active, #view-welcome.active, #view-access.active, #view-org_order.active) .dialog-box .btn { border-radius: var(--b-r); box-shadow: none; }
body.theme-b:has(#view-public_landing.active, #view-welcome.active, #view-access.active, #view-org_order.active) .btn-dialog-green { background: var(--primary); }

/* ── Phone ────────────────────────────────────────────────────────────── */
@media (max-width: 860px) {
  body.theme-b #view-public_landing { font-size: 19px; }
  body.theme-b .pl-hero { padding: 24px 18px 36px; gap: 22px; }
  body.theme-b .pl-hero-title { font-size: 2rem; }
  body.theme-b .pl-hero-sub { font-size: 1.12rem; }
  body.theme-b .pl-b-facts { padding: 24px 18px; }
  body.theme-b .pl-b-facts-grid { grid-template-columns: 1fr; }
  body.theme-b .pl-b-facts-grid > div { border-right: 0 !important; border-bottom: 1px solid var(--b-line) !important; padding: 14px 18px; }
  body.theme-b .pl-b-facts-grid > div:last-child { border-bottom: 0 !important; }
  body.theme-b .pl-b-inner { padding: 0 18px; }
  body.theme-b .pl-b-who { padding: 36px 0; }
  body.theme-b .pl-b-h2 { font-size: 1.5rem; }
  body.theme-b .pl-b-who-grid { grid-template-columns: 1fr; gap: 18px; }
  body.theme-b .pl-b-stakes { padding: 18px 18px; }
  body.theme-b .pl-features { padding: 36px 18px; }
  body.theme-b .pl-kit-grid { gap: 0; }
  body.theme-b .pl-kit-card { padding: 18px 0; }
  body.theme-b .pl-about { padding-top: 36px; }
  body.theme-b .pl-about-inner { padding: 0 18px; }
  body.theme-b .pl-b-experts { grid-template-columns: 1fr; gap: 20px; padding-bottom: 36px; }
  body.theme-b .pl-b-story { padding: 36px 0; }
  body.theme-b .pl-b-story-grid { grid-template-columns: 1fr; gap: 24px; }
  body.theme-b .pl-b-pics { gap: 12px; }
  body.theme-b .pl-b-practical { padding: 36px 0; }
  body.theme-b .pl-b-dl { grid-template-columns: 1fr; gap: 4px 0; }
  body.theme-b .pl-b-dl dd { margin-bottom: 12px; }
  body.theme-b .pl-offer { padding: 36px 18px; }
  body.theme-b .pl-offer-inner { grid-template-columns: 1fr; grid-template-areas: "camp" "head" "card"; grid-template-rows: auto; row-gap: 20px; }
  body.theme-b .pl-offer-card { padding: 20px 18px; }
  body.theme-b .pl-footer { padding: 28px 18px 40px; }
  body.theme-b .pl-buy-page { padding: 0 18px 40px; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "top top" "title close" "main main" "side side"; }
  body.theme-b .pl-b-buy-top { margin: 0 -18px 4px; padding: 0 18px; height: 60px; }
  body.theme-b .pl-buy h3 { font-size: 1.6rem; }
  body.theme-b .pl-buy-card { padding: 16px 16px 18px; }
}
