/*
Theme Name:   Lawryse
Theme URI:    https://lawryse.com
Description:  Lawryse public site — an Astra child theme carrying all Lawryse custom code, templates and design tokens. Built block-by-block rather than on a pre-made news theme (MASTER §3.1) so the directory feed, Public Voices board, polls and advertising inventory aren't fighting a theme's own opinions.
Author:       Lawryse
Template:     astra
Version:      0.59.5
Text Domain:  lawryse
*/

/* ═══════════════════════════════════════════════════════════════
   DESIGN TOKENS — Lawryse Branding, CURRENT values

   Source of truth: D:\00 LAWRYSE\GRAPHICS\Lawryse_Branding.md (MASTER §24.1)

   ⚑ CSS CONFORMANCE PASS, 2026-09-10 — this theme was brought onto the
   join.lawryse.com system (the reference the whole platform conforms to):
     · Navy is #011C3C (was the older #00101D).
     · An --lw-orange token was added (#FE6801 — attention only).
     · Headings are Roboto Condensed (was Manrope), matching the landing
       page + the Lawryse business plan.
     · The landing page's layered "lift" shadow tokens were added.
   The dashboard / AdminControl / Buddy / Research portals were already
   moved onto this system; lawryse.com is the last surface.

   Colour discipline, from §2 of the guide — follow it, it is what keeps
   the identity recognisable:
     · Red SIGNALS IMPORTANCE. It must not flood every component.
     · Midnight navy is the dark surface, never ordinary black.
     · Deep teal stays RARE — the Member-Attorney / directory accent only.
     · Orange is ATTENTION only, and rare.

   Every value below is a token and none are hard-coded further down, so
   adopting a future brand revision (or the recoloured logo) stays a
   single-file change.
   ═══════════════════════════════════════════════════════════════ */

:root {
  /* ---- Core palette (guide §2) ---- */
  --lw-red:        #9D1624;   /* Lawryse Red — primary accent, CTAs, labels */
  --lw-red-dark:   #7A1019;   /* hover / pressed */
  --lw-ink:        #011C3C;   /* Midnight Navy — header, footer, dark panels */
  --lw-navy:       #011C3C;   /* alias — same as --lw-ink, matches the landing token name */
  --lw-teal:       #01486D;   /* Deep Teal — Member-Attorney badge + directory accent only */
  --lw-orange:     #FE6801;   /* attention only — late / a person is needed. Rare. */
  --lw-orange-soft:#FFF0E2;
  --lw-gold:       #D8A425;   /* GOLD membership accents (dashboard carry-over) */
  /* SATIRE accent — was its own yellow (#FFD400, MASTER §12.5.4, Alice's
     design sample 2026-08-01), CHANGED to Lawryse Orange (Alice,
     2026-09-23: "let's make the yellow line the same Lawryse orange
     instead"). Kept as its own token (aliased to --lw-orange rather than
     hand-copying the hex) so the two can still be retuned independently
     later if that original "must not look like ordinary Lawryse
     editorial" reasoning ever needs reinstating — just repoint this one
     line. */
  --lw-satire:     var(--lw-orange);
  --lw-satire-ink: #1A1A1A;   /* text on the yellow — near-black, max contrast */

  /* Soft red tints, derived from Lawryse Red, for chips and highlights.
     These are the only places red appears as a fill rather than a mark. */
  --lw-pink:       #F0DDDF;   /* soft wash */
  --lw-pink-soft:  #F8EEEF;   /* very soft highlight */

  /* ---- Supporting neutrals (guide §2) ---- */
  --lw-canvas:     #FFFFFF;   /* main page background and cards */
  --lw-canvas-alt: #F4F6F8;   /* soft cool grey — section separation */
  --lw-field:      #F4F6F8;
  --lw-border:     #E2E7EC;
  --lw-border-strong: #C9D2DA;
  --lw-muted:      #6B7A87;   /* secondary text, timestamps */
  --lw-body:       #263442;   /* slate — long-form body copy */

  /* ---- Typography (guide §3, revised 2026-09-10) ----
     Roboto Condensed for editorial headings (matches join.lawryse.com and
     the Lawryse business plan — replaced Manrope), Inter for body and
     interface, Montserrat for the occasional strapline ONLY. Arial /
     Arial Narrow lead the fallbacks so HTML email degrades gracefully. */
  --lw-font:        "Inter", Arial, Helvetica, sans-serif;
  --lw-font-head:   "Roboto Condensed", "Arial Narrow", "Inter", Arial, sans-serif;
  --lw-font-accent: "Montserrat", "Inter", Arial, sans-serif;

  /* ---- Type scale ----
     A real scale, not ad-hoc sizes. This is most of what separates a
     "neat" publication from the reference sites (Alice, 2026-07-31).
     Shifted down one slot sitewide 2026-08-03 ("ALL FONTS about 2 sizes
     smaller") — every named size now reads one step smaller than before,
     the ratios between them (what makes it read as a scale, not ad-hoc
     sizes) are untouched. xs floors at 11px rather than dropping further,
     for legibility on kickers/timestamps. */
  --lw-fs-xs:   0.6875rem; /* 11px — kickers, timestamps, labels (was 12px) */
  --lw-fs-sm:   0.75rem;   /* 12px — meta, captions (was 14px) */
  --lw-fs-base: 0.875rem;  /* 14px — body (was 16px) */
  --lw-fs-md:   1rem;      /* 16px — standfirst, card titles (was 18px) */
  --lw-fs-lg:   1.125rem;  /* 18px — section headings (was 22px) */
  --lw-fs-xl:   1.375rem;  /* 22px — page titles (was 28px) */
  --lw-fs-2xl:  1.75rem;   /* 28px — hero (was 36px) */
  --lw-fs-3xl:  2.25rem;   /* 36px — article H1 (was 46px) */

  --lw-lh-tight: 1.2;
  --lw-lh-snug:  1.35;
  --lw-lh-body:  1.6;   /* long-form legal prose needs room, but a smaller
                            base size needs slightly less than 1.65 to avoid
                            reading as loose */

  /* ---- Spacing rhythm ----
     One scale. Every gap in the site comes from here, which is what
     stops the layout drifting into the cramped feel of the reference.
     s7/s8 (between-section gaps) tightened 2026-08-03 — Alice: "reduce
     the space between sections". s1–s6 unchanged; those carry padding
     and small gaps that were never the complaint. */
  --lw-s1:  0.25rem;
  --lw-s2:  0.5rem;
  --lw-s3:  0.75rem;
  --lw-s4:  1rem;
  --lw-s5:  1.5rem;
  --lw-s6:  2rem;
  --lw-s7:  2rem;
  --lw-s8:  2.5rem;

  /* ---- Shape & depth (mirrors the dashboard) ---- */
  --lw-radius:      14px;
  --lw-radius-sm:   8px;
  --lw-shadow-soft: 0 4px 14px rgba(0, 0, 0, 0.08);
  --lw-shadow-card: 0 6px 18px rgba(1, 28, 60, 0.10);

  /* Raised-card "lift" — the landing page's layered shadow (tight contact
     + mid + soft ambient), navy-tinted for cards on a light ground. Added
     in the 2026-09-10 conformance pass; available for any card that
     should read as raised. `-hover` is the deeper pair for a hover rise. */
  --lw-lift:
    0 2px 4px rgba(1, 28, 60, 0.08),
    0 10px 22px rgba(1, 28, 60, 0.12),
    0 22px 44px rgba(1, 28, 60, 0.10);
  --lw-lift-hover:
    0 4px 8px rgba(1, 28, 60, 0.10),
    0 16px 30px rgba(1, 28, 60, 0.16),
    0 32px 58px rgba(1, 28, 60, 0.14);

  /* ---- Layout ---- */
  --lw-max:         1200px;  /* outer container — nudged in from 1280px, Alice 2026-08-03 */
  --lw-sidebar-w:   320px;   /* right-hand sidebar (Alice: required) */
  --lw-gutter:      var(--lw-s6);
  --lw-bp-lg:       1024px;
  --lw-bp-md:       768px;
}

/* ═══════════════════════════════════════════════════════════════
   BASE / TYPOGRAPHY
   ═══════════════════════════════════════════════════════════════ */

body,
.ast-container {
  font-family: var(--lw-font);
  color: var(--lw-body);
  background: var(--lw-canvas);
  font-size: var(--lw-fs-base);
  line-height: var(--lw-lh-body);
}

/* Roboto Condensed for editorial headings (guide §3, revised 2026-09-10 —
   was Manrope). The condensed face reads bold at 700 without going heavier,
   and the tighter letterforms mean the negative tracking Manrope needed is
   dialled back so headings don't crowd. */
h1, h2, h3, h4, h5, h6,
.lw-card__title,
.lw-hero__title,
.lw-sec__title {
  font-family: var(--lw-font-head);
  color: var(--lw-ink);
  line-height: var(--lw-lh-tight);
  margin: 0 0 var(--lw-s4);
}

h1 { font-size: var(--lw-fs-3xl); font-weight: 700; letter-spacing: -0.01em; }
h2 { font-size: var(--lw-fs-xl);  font-weight: 700; letter-spacing: 0; }
h3 { font-size: var(--lw-fs-lg);  font-weight: 700; }
h4 { font-size: var(--lw-fs-md);  font-weight: 500; }

/* Occasional strapline / campaign line only — never body copy, never
   every heading (guide §3 "Practical font rules"). */
.lw-strapline {
  font-family: var(--lw-font-accent);
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

p { margin: 0 0 var(--lw-s4); }

a {
  color: var(--lw-red);
  text-decoration: none;
  transition: color 0.15s ease;
}
a:hover,
a:focus-visible { color: var(--lw-red-dark); }

/* Visible focus everywhere — accessibility, and Astra's default is weak. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--lw-red);
  outline-offset: 2px;
}

img { max-width: 100%; height: auto; }

/* Screen-reader-only, used by the search landmarks and skip link. */
.lw-sr-only {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ═══════════════════════════════════════════════════════════════
   HOUSEKEEPING — quiet Astra's defaults we override in components.css
   ═══════════════════════════════════════════════════════════════ */

.ast-container,
.ast-container-fluid {
  max-width: var(--lw-max);
}

/* Astra's container modes each ship their own width rule for
   `.site-content > .ast-container`, at a specificity the single-class rule
   above cannot reach — narrow-container caps it at 750px, which starved
   `.lw-shell` of the width its two columns need (see the note on
   lawryse_force_content_layout()).

   The PHP filter is the real fix: the mode is pinned to boxed-container. This
   is the belt-and-braces for it, matching Astra's specificity so no container
   mode can squeeze the shell even if the filter is ever removed or the
   Customizer is changed. A layout that depends on one setting nobody can see
   is a layout that breaks again. */
.ast-narrow-container .site-content > .ast-container,
.ast-plain-container .site-content > .ast-container,
.ast-separate-container .site-content > .ast-container {
  max-width: var(--lw-max);
}

/* Site search: pinned LARIA results (0.47.4) */
.lw-search-pinned { list-style: none; margin: 0 0 28px; padding: 0; display: grid; gap: 12px; }
.lw-search-pinned__item a { display: block; padding: 16px 20px; border: 1px solid #d9dee8; border-radius: 12px; text-decoration: none; color: inherit; }
.lw-search-pinned__item a:hover { border-color: #0f2a4a; }
.lw-search-pinned__title { display: block; font-weight: 700; font-size: 1.1rem; color: #0f2a4a; }
.lw-search-pinned__desc { display: block; margin-top: 4px; font-size: .95rem; color: #475467; }
