/* ============================================================
   PCG TYPECASE — sitewide uppercase + tracking correction
   (Quick Task 260811-5ob)

   THIS FILE OWNS ONE CONCERN: which typographic CASE the design system
   renders in, and the letter-spacing correction that case change requires.
   It declares no font-family (that is pcg-fonts.css's job), no font-size,
   no colour, and no responsive sizes (those live in the Bricks Custom CSS
   mirror, design-exports/PCG_GlobalCSS_bereinigt.css — a paste template,
   not a loaded stylesheet, so nothing here duplicates it and nothing here
   can reach it).

   Selectors below are an ENUMERATED CLASS LIST, deliberately, not a bare
   h1/h2/h3/h4 element selector. Several widgets and page types on this site
   never use a design-system heading or button class at all (grep-verified,
   zero matches) — an enumerated list excludes all of them automatically as
   a structural side effect; a bare element selector would not, and would
   silently uppercase running text those areas depend on staying exactly as
   written (legal text, in particular, must never change case). See the note
   at the bottom of this file.
   ============================================================ */

/* --- Headings: uppercase + tracking correction -----------------------------
   All declarations below are !important: Bricks writes its own per-element
   text-transform without !important, so a class-level !important beats even
   an ID-level Bricks per-element rule. The Bricks Custom CSS mirror's own
   negative tracking was tuned for mixed case and reads visibly cramped once
   every glyph is a capital, so these rules replace it with a small positive
   value. Both the mirror's declaration and this one are equal specificity
   and equal !important weight — the tie is settled purely by print order,
   which is exactly why this stylesheet is enqueued LAST among the child
   theme's own sheets (see functions.php; this fact is also verified
   mechanically by a print-order test). */
.pcg-hero-h1,
.pcg-h1,
.pcg-h2,
.pcg-h2-light {
  text-transform: uppercase !important;
  letter-spacing: 0.01em !important;
}

.pcg-subhead,
.pcg-step h3,
.pcg-box h3,
.pcg-card .brxe-heading {
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
}

/* .pcg-eyebrow is DELIBERATELY absent from both lists above — it already
   renders uppercase at a wide 0.16em tracking in the Bricks Custom CSS
   mirror. A future reader should not "complete" this file by adding it:
   doing so would only restate the mirror's own value with no visible
   effect, and risks drifting out of sync with it over time. */

/* --- Buttons: uppercase + tracking correction ------------------------------
   The :not(.pcg-backlink) guard on the first two selectors is required: the
   mirror explicitly sets text-transform:none !important on that one button
   variant (the project-detail "back to overview" link), and it must keep
   winning by intent, not by accident of this file's enqueue order.

   Quick task 260819 (button letter-spacing widen): client measured
   iro-berlin.de's own buttons directly (`getComputedStyle`) and found their
   tracking sits at ~10% of font-size (1.472px / 14.72px), noticeably wider
   than this rule's previous 0.06em (~6%) - part of what read as "not one
   mold" next to IRO's reference. Border-radius was compared in the same
   pass and explicitly kept as-is (client decision) - only tracking widens
   here, sitewide (desktop and mobile both use this same unscoped rule). */
.bricks-button:not(.pcg-backlink),
.brxe-button:not(.pcg-backlink),
.pcg-btn-ghost,
.pcg-btn-outline,
.pcg-btn-header {
  text-transform: uppercase !important;
  letter-spacing: 0.10em !important;
}

/* --- Deliberately excluded areas --------------------------------------------
   The footer navigation, the legal pages (Impressum/Datenschutz), the price
   calculator widget and the AI visualizer widget are excluded from every
   rule above — structurally, not by a written exception: none of those four
   areas uses a design-system heading or button class anywhere in their own
   markup (grep-verified: zero matches in either widget's JavaScript, or in
   the footer/legal PHP includes). Because this file works from the
   enumerated class list above rather than a bare element selector, none of
   those areas can ever be reached by a rule here, whether or not this note
   exists — it is written purely so a future editor doesn't "helpfully" widen
   a selector into one of their classes, thinking it was an oversight. */
