/* =============================================================================
   EMBRY STACK — base layer.

   DELIBERATELY MINIMAL (client rule, 2026-08-29: "as much of the css should be
   accomplished through elements css"). Everything a page element can express
   about itself lives on that element, written by the converter — sizes,
   colours, spacing, list indents, table and form styling. This file carries
   only the two things an element cannot reach:

     1. INHERITABLE DEFAULTS, for content the builder never touches — blog
        posts, archives, search results, 404. Without these they render in the
        browser's Times/black rather than the brand.
     2. ONE NORMALISATION the element cannot make. Cornerstone renders a
        headline as <div class="x-text"><h2>…</h2></div> and carries the
        spacing on the DIV; the inner tag keeps the browser's own heading
        margin on top of it. Integrity used to zero this; the blank stack does
        not. Doing it per element would mean the same blob on 166 headlines,
        so it belongs here.

   What is NOT here, on purpose: font sizes, per-element spacing, button
   styling, component colours. Those are document decisions.
   ========================================================================== */

/* The design tokens, so any markup carried over from the source that still
   references them resolves. */
:root {
  --orange:      #FFA12D;
  --silver:      #BCC5C1;
  --charcoal:    #343735;
  --black-green: #1C1E1C;
  --warm-white:  #FBF8F1;
  --olive:       #3F4519;
  --brown:       #4D442E;
  --soft:        #f2f1ea;
  --white:       #ffffff;
  --line:        #d8d9d2;
  --muted:       #626861;
  --note-bg:     #fff8e8;
  --note-line:   #d8a531;
}

/* 1. Inheritable defaults. The mockup was drawn in Arial as a stand-in; these
   are the real brand faces from Adobe Fonts (Typekit kit aqn8bee), the same
   two the font palette holds. Arial remains the fallback until the kit loads
   and for anything it cannot serve. Converted elements state their own face,
   so these rules are what non-builder content inherits. */
body {
  font-family: "source-sans-pro", Arial, Helvetica, sans-serif;
  background-color: var(--warm-white);
  color: var(--charcoal);
  line-height: 1.55;
}

/* Headings take the Primary face. Letter-spacing is deliberately absent: the
   mockup's -0.03em tightened Arial, and a condensed face does not want it. */
h1, h2, h3, h4, h5, h6 {
  font-family: "lorimer-no-2-condensed", Arial, Helvetica, sans-serif;
  font-weight: 700;
  line-height: 1.12;
  color: var(--charcoal);
}

/* The brand hierarchy sets H1/H2 uppercase (h3 is sentence case: 29 of 30 on
   the expert's home page). Converted headings carry this themselves. */
h1, h2 { text-transform: uppercase; }

/* 2. The element owns its spacing; its inner tag must not add the browser's. */
.x-text h1, .x-text h2, .x-text h3,
.x-text h4, .x-text h5, .x-text h6 { margin-top: 0; margin-bottom: 0; }

/* 3. SITE WIDTH. Integrity used to supply this from its theme options
   (max-width 1200px, width 90%); a custom stack does not, and Cornerstone's
   own base is deliberately uncapped — `.x-container.max{max-width:100%}` plus
   `.x-container.width{width:96%}` — so after the stack switch every page ran
   full-bleed. Restored here at the client's chosen values (2026-08-29).

   Note this is the ONLY place the cap can live: when a row is a global
   container Cornerstone emits no max-width rule for it, so the 1180px those
   rows carry from the mockup's .section-inner never applies. */
.x-container.max   { max-width: 1200px; }
.x-container.width { width: 90%; }

/* ---------------------------------------------------------------------------
   HONEYPOT — one hide rule for every form on the site.

   The copy master is explicit on both points: the field must be one "a real
   visitor would never plausibly complete (e.g. 'Website' or 'Company Fax') —
   NOT 'Middle Name,' which a human might actually fill in", and it must be
   hidden by CSS POSITIONING, "not display:none, which some bots detect".

   It lives here rather than on a page element because there are three forms on
   three pages; a per-page rule would have to be remembered three times and would
   be missed on the fourth form. Keyed on .embry-hp, a class this stylesheet owns.
   --------------------------------------------------------------------------- */
.ff-el-group.embry-hp {
  position: absolute !important;
  left: -9999px !important;
  top: auto !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* =============================================================================
   Blog posts: the header and featured image printed by embry-blog/post-header.php.
   Defaults only; the post body itself is set by the importer.
   ========================================================================== */
.post-header { margin: 0 0 24px; }
.post-title { margin: 0 0 8px; }
.post-date { margin: 0 0 16px; font-size: 14px; }
.post-featured { margin: 0 0 32px; }
.post-featured-img { display: block; width: 100%; height: auto; border-radius: 6px; }
