.elementor-kit-4064{--e-global-color-primary:#042151;--e-global-color-secondary:#143A79;--e-global-color-text:#161617;--e-global-color-accent:#AFB0A7;--e-global-color-6ad74ad5:#133351;--e-global-color-8d4c899:#3A7392;--e-global-color-48e33d1:#F2F2F2;--e-global-color-6fbc1739:#FFF;--e-global-color-373566a:#C69C6D;--e-global-color-4f27481:#A77A48;--e-global-color-4e7c03b:#F6F8FC;--e-global-color-5a6f22b1:#DBDBDB;--e-global-color-5660bb67:RGBA(97, 206, 112, 0);--e-global-color-1412393a:#EFF9FF;--e-global-color-789f46c6:#324B4A;--e-global-color-2d89e9c3:#163E3D;--e-global-color-20170128:#265846;--e-global-color-6d6b9e6c:#114734;--e-global-color-6a7f7b2:#2D2D2D;--e-global-color-176d1bb:#61CE70;--e-global-color-765907eb:#102A4C;--e-global-color-23fc8f35:#0B1F3A;--e-global-color-2cef92d2:#1B3A66;--e-global-color-8e1626a2:#C9A36E;--e-global-color-96e991bd:#A98352;--e-global-color-22f096a5:#7E5F35;--e-global-color-e065422a:#D9B98A;--e-global-color-9bb5b798:#FFFFFF;--e-global-color-a8ba2971:#F4F1EC;--e-global-color-9ca65744:#F2F2F4;--e-global-color-ccdadec9:#E4E4E8;--e-global-color-b0badb29:#6B7280;--e-global-color-449f117b:#1F2937;--e-global-color-ba355f04:#2F9E5A;--e-global-color-3b4fe7b8:#B85B5B;--e-global-color-8a1c8d3d:#E7AA5B38;--e-global-color-da9b15a7:#BDC7D4;--e-global-color-6a921913:#E1E6EC;--e-global-color-be253503:#4A3E30;--e-global-color-80791b07:#9FA9B8;--e-global-color-87cf6bc2:#FBF4EA;--e-global-color-bdbbee9e:#FFFFFF1F;--e-global-color-f91b974a:#1F7A42;--e-global-color-63c14e3c:#071627;--e-global-typography-primary-font-family:"Lora";--e-global-typography-primary-font-size:2.5rem;--e-global-typography-primary-font-weight:600;--e-global-typography-primary-line-height:1.15em;--e-global-typography-secondary-font-family:"Inter";--e-global-typography-secondary-font-size:1rem;--e-global-typography-secondary-font-weight:400;--e-global-typography-secondary-line-height:1.65em;--e-global-typography-text-font-family:"Lora";--e-global-typography-text-font-size:2rem;--e-global-typography-text-font-weight:600;--e-global-typography-text-line-height:1.2em;--e-global-typography-accent-font-family:"Lora";--e-global-typography-accent-font-size:1.5rem;--e-global-typography-accent-font-weight:600;--e-global-typography-accent-line-height:1.25em;--e-global-typography-ab25b88-font-family:"Lora";--e-global-typography-ab25b88-font-size:1.1875rem;--e-global-typography-ab25b88-font-weight:600;--e-global-typography-ab25b88-line-height:1.3em;--e-global-typography-9e84adb-font-family:"Lora";--e-global-typography-9e84adb-font-size:1.0625rem;--e-global-typography-9e84adb-font-weight:600;--e-global-typography-9e84adb-line-height:1.35em;--e-global-typography-d01a25e-font-family:"Lora";--e-global-typography-d01a25e-font-size:0.9375rem;--e-global-typography-d01a25e-font-weight:600;--e-global-typography-d01a25e-line-height:1.4em;--e-global-typography-lrdispl1-font-family:"Lora";--e-global-typography-lrdispl1-font-size:3.25rem;--e-global-typography-lrdispl1-font-weight:600;--e-global-typography-lrdispl1-line-height:1.05em;--e-global-typography-lrhead01-font-family:"Lora";--e-global-typography-lrhead01-font-size:4rem;--e-global-typography-lrhead01-font-weight:600;--e-global-typography-lrhead01-line-height:1.12em;--e-global-typography-lrhead01-letter-spacing:-0.018em;--e-global-typography-lrhead02-font-family:"Lora";--e-global-typography-lrhead02-font-size:2.5rem;--e-global-typography-lrhead02-font-weight:600;--e-global-typography-lrhead02-line-height:1.15em;--e-global-typography-lrhead02c-font-family:"Lora";--e-global-typography-lrhead02c-font-size:2rem;--e-global-typography-lrhead02c-font-weight:600;--e-global-typography-lrhead02c-line-height:1.2em;--e-global-typography-lrhead03-font-family:"Lora";--e-global-typography-lrhead03-font-size:1.75rem;--e-global-typography-lrhead03-font-weight:600;--e-global-typography-lrhead03-line-height:1.2em;--e-global-typography-lrhead03c-font-family:"Lora";--e-global-typography-lrhead03c-font-size:1.5rem;--e-global-typography-lrhead03c-font-weight:600;--e-global-typography-lrhead03c-line-height:1.25em;--e-global-typography-lrcardti-font-family:"Lora";--e-global-typography-lrcardti-font-size:1.375rem;--e-global-typography-lrcardti-font-weight:600;--e-global-typography-lrcardti-line-height:1.3em;--e-global-typography-lrhead04-font-family:"Lora";--e-global-typography-lrhead04-font-size:1.1875rem;--e-global-typography-lrhead04-font-weight:600;--e-global-typography-lrhead04-line-height:1.3em;--e-global-typography-lrhead04c-font-family:"Lora";--e-global-typography-lrhead04c-font-size:1.0625rem;--e-global-typography-lrhead04c-font-weight:600;--e-global-typography-lrhead04c-line-height:1.35em;--e-global-typography-lrherold-font-family:"Inter";--e-global-typography-lrherold-font-size:1.1875rem;--e-global-typography-lrherold-font-weight:400;--e-global-typography-lrherold-line-height:1.62em;--e-global-typography-lrsecled-font-family:"Inter";--e-global-typography-lrsecled-font-size:1.125rem;--e-global-typography-lrsecled-font-weight:400;--e-global-typography-lrsecled-line-height:1.6em;--e-global-typography-lrbody01-font-family:"Inter";--e-global-typography-lrbody01-font-size:1rem;--e-global-typography-lrbody01-font-weight:400;--e-global-typography-lrbody01-line-height:1.65em;--e-global-typography-lrcompac-font-family:"Inter";--e-global-typography-lrcompac-font-size:0.9375rem;--e-global-typography-lrcompac-font-weight:400;--e-global-typography-lrcompac-line-height:1.55em;--e-global-typography-lrsmall1-font-family:"Inter";--e-global-typography-lrsmall1-font-size:0.875rem;--e-global-typography-lrsmall1-font-weight:400;--e-global-typography-lrsmall1-line-height:1.5em;--e-global-typography-lreyebro-font-family:"Inter";--e-global-typography-lreyebro-font-size:0.8125rem;--e-global-typography-lreyebro-font-weight:600;--e-global-typography-lreyebro-text-transform:uppercase;--e-global-typography-lreyebro-line-height:1.4em;--e-global-typography-lreyebro-letter-spacing:0.08em;--e-global-typography-lrmicrol-font-family:"Inter";--e-global-typography-lrmicrol-font-size:0.75rem;--e-global-typography-lrmicrol-font-weight:600;--e-global-typography-lrmicrol-text-transform:uppercase;--e-global-typography-lrmicrol-line-height:1.4em;--e-global-typography-lrmicrol-letter-spacing:0.14em;--e-global-typography-lrheroey-font-family:"Inter";--e-global-typography-lrheroey-font-size:0.75rem;--e-global-typography-lrheroey-font-weight:600;--e-global-typography-lrheroey-text-transform:uppercase;--e-global-typography-lrheroey-line-height:1.4em;--e-global-typography-lrheroey-letter-spacing:0.1em;--e-global-typography-lrtag001-font-family:"Inter";--e-global-typography-lrtag001-font-size:0.6875rem;--e-global-typography-lrtag001-font-weight:600;--e-global-typography-lrtag001-text-transform:uppercase;--e-global-typography-lrtag001-line-height:1.4em;--e-global-typography-lrtag001-letter-spacing:0.14em;}.elementor-kit-4064 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;--container-default-padding-top:10px;--container-default-padding-right:10px;--container-default-padding-bottom:10px;--container-default-padding-left:10px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-kit-4064{--e-global-typography-primary-font-size:2rem;--e-global-typography-lrhead01-font-size:2.875rem;--e-global-typography-lrhead02-font-size:2rem;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-4064{--e-global-typography-primary-font-size:1.9375rem;--e-global-typography-text-font-size:1.8125rem;--e-global-typography-accent-font-size:1.375rem;--e-global-typography-lrhead01-font-size:2.625rem;--e-global-typography-lrhead02-font-size:1.9375rem;--e-global-typography-lrhead02c-font-size:1.8125rem;--e-global-typography-lrhead03-font-size:1.5rem;--e-global-typography-lrhead03c-font-size:1.375rem;--e-global-typography-lreyebro-font-size:0.875rem;--e-global-typography-lrmicrol-font-size:0.8125rem;--e-global-typography-lrheroey-font-size:0.8125rem;--e-global-typography-lrtag001-font-size:0.75rem;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* ===============================================================
   LR TABLE — global component, added 2026-09-03 (PowerPack Phase 3)
   Spec: PATTERNS.md §14. Replaces pp-table, and is the target for
   the per-article <style> tables in the 2025–26 editorial guides.

   Markup:
     <div class="lr-table [lr-decision-table]">
       <table>
         <thead><tr><th class="lr-rowlabel">…</th>
                    <th class="lr-rec">…</th></tr></thead>
         <tbody><tr><th class="lr-rowlabel" scope="row">…</th>
                    <td class="lr-rec lr-good">…</td></tr></tbody>
       </table>
     </div>
   Tone classes on a cell: lr-good | lr-bad | lr-mute | lr-strong | lr-price
   =============================================================== */
.lr-table{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;background:#FFFFFF;border:1px solid #E4E4E8;border-radius:.875rem;margin:1.5rem 0}
.lr-table > table{width:100%;min-width:36rem;margin:0;border:0;border-collapse:collapse;font-family:"Inter",sans-serif}
/* border:0 first — Astra sets table,td,th{border:1px solid} with border-width:0 1px 1px 0,
   which would otherwise leak vertical gridlines into every cell. */
.lr-table th,.lr-table td{padding:1.125rem 1.25rem;text-align:left;vertical-align:top;border:0;border-bottom:1px solid #E4E4E8}
.lr-table thead th{background:#F2F2F4;color:#102A4C;font-size:.8125rem;font-weight:600;line-height:1.35;text-transform:uppercase;letter-spacing:.04em;vertical-align:bottom}
.lr-table tbody th,.lr-table tbody td{background:#FFFFFF;color:#1F2937;font-size:.9375rem;font-weight:400;line-height:1.5}
.lr-table tbody tr:last-child th,.lr-table tbody tr:last-child td{border-bottom:0}

/* Row-label column */
.lr-table .lr-rowlabel{width:28%;font-weight:600;color:#102A4C}

/* Tone words */
.lr-table .lr-good{color:#2F9E5A;font-weight:600}
.lr-table .lr-bad{color:#B85B5B;font-weight:600}
.lr-table .lr-mute{color:#6B7280}
.lr-table .lr-strong{color:#102A4C;font-weight:700}
.lr-table .lr-price{white-space:nowrap;color:#7E5F35;font-weight:600}

/* A quiet second line inside a header cell — "Standard Compliance<br>
   <span class="lr-sub">$990 / year</span>". Cancels the header's own caps
   and tracking, which would otherwise shout the figure. */
.lr-table thead th .lr-sub{font-weight:400;text-transform:none;letter-spacing:0;color:inherit;opacity:.8}

/* Links inside header and row-label cells. These cells set their own colour,
   so a link must inherit it and carry its own rule to stay identifiable.
   The site-wide LR link system does not reach here: it targets text-editor
   and post-content widgets, and every table is an HTML widget. */
.lr-table thead th a{color:inherit;border-bottom:1px solid rgba(16,42,76,.35)}
.lr-table tbody .lr-rowlabel a{color:#102A4C;border-bottom:1px solid rgba(201,163,110,.55)}
.lr-table tbody .lr-rowlabel a:hover{color:#7E5F35;border-bottom-color:#7E5F35}

/* Recommended column — at most one per table */
.lr-table thead th.lr-rec{position:relative;background:#102A4C;color:#FFFFFF;padding-top:2rem}
.lr-table thead th.lr-rec::before{content:"RECOMMENDED";position:absolute;top:.5625rem;left:1.25rem;font-size:.5625rem;font-weight:700;letter-spacing:.2em;color:#D9B98A}
/* …unless the table supplies its own label text, e.g. "Most founders".
   An explicit .lr-rectag span replaces the generated word rather than
   stacking on top of it. */
.lr-table thead th.lr-rec:has(.lr-rectag)::before{content:none}
.lr-table thead th.lr-rec .lr-rectag{position:absolute;top:.5625rem;left:1.25rem;font-size:.5625rem;font-weight:700;letter-spacing:.2em;color:#D9B98A;text-transform:uppercase}
.lr-table tbody td.lr-rec{background:rgba(201,163,110,.06);border-left:1px solid rgba(201,163,110,.28);border-right:1px solid rgba(201,163,110,.28)}
.lr-table tbody tr:last-child td.lr-rec{border-bottom:1px solid rgba(201,163,110,.28)}

/* Prose inside cells — guide tables carry lists, <strong> and <br> */
.lr-table td > :first-child,.lr-table th > :first-child{margin-top:0}
.lr-table td > :last-child,.lr-table th > :last-child{margin-bottom:0}
.lr-table td ul,.lr-table td ol{margin:.5rem 0 0;padding-left:1.125rem}
.lr-table td li{margin:0 0 .375rem;padding-bottom:0}
.lr-table td li:last-child{margin-bottom:0}
.lr-table td strong{color:#102A4C;font-weight:600}

/* Wider floor where a decision table carries 3+ option columns */
.lr-decision-table > table{min-width:45rem}

/* Optional centred footnote, placed after the wrapper */
.lr-table-note{margin-top:1.25rem;text-align:center;font-size:.875rem;line-height:1.55;color:#6B7280}

/* Equal columns — carried over where the PowerPack original declared explicit
   equal widths in its per-element custom_css (50/50, 33/33/34). Without this
   the native table falls back to auto layout and sizes columns by content. */
.lr-table-even > table{table-layout:fixed}

/* Fixed layout cannot shrink a long unbroken string, so let cells wrap. */
.lr-table th,.lr-table td{overflow-wrap:break-word}

/* Scroll affordance. A wide table scrolls inside its own wrapper, but the
   content simply cut off at the right edge with nothing to say so.

   The usual CSS-only trick (white "cover" panels on the wrapper with
   background-attachment: local over fixed shadows) does NOT work for this
   component: `.lr-table tbody th/td` paint opaque backgrounds, which sit on
   top of the wrapper's background and hide the shadow entirely. Verified in
   the browser before this was replaced.

   A mask fades the rendered content itself, so opaque cells are irrelevant.
   It is scoped to phone widths, where a table that is not .lr-table-fit is
   always wider than the viewport (measured: 525px and 657px against a 332px
   track), so the fade never appears on a table that fits. */
@media (max-width:767px){
  .lr-table:not(.lr-table-fit){
    -webkit-mask-image:linear-gradient(to right,#000 calc(100% - 2.5rem),rgba(0,0,0,.28));
            mask-image:linear-gradient(to right,#000 calc(100% - 2.5rem),rgba(0,0,0,.28));
  }
}

/* Short-content tables do not need the 36rem floor — it forced a horizontal
   scroll on phones for tables of dates and single words, which the design
   system only sanctions where simultaneous comparison genuinely matters. */
.lr-table-fit > table{min-width:0}

/* Wide tier, added 2026-09-04 for the editorial guide tables folded onto this
   component. Their column counts genuinely differ (the business-structures
   comparison needs 900px, the UEN tiers 640px), so the scroll floor is carried
   on the wrapper rather than lost. Three tiers now: default 36rem,
   lr-decision-table 45rem, lr-table-wide 56rem. */
.lr-table-wide > table{min-width:56rem}

/* Table captions. The guides use <caption> as a table title; it must sit
   outside the scrolling box visually but stays inside <table> for semantics. */
.lr-table caption{
  padding:1rem 1.25rem .75rem;
  text-align:left;
  font-family:"Inter",sans-serif;
  font-size:.875rem;
  font-weight:600;
  line-height:1.4;
  color:#102A4C;
  caption-side:top;
}

/* ===============================================================
   LR GUIDES STRIP — global component, added 2026-09-03
   Spec: PATTERNS.md §22. The "Read our guides" strip, rendered by
   Elementor Pro Loop Grid through loop item 13892 (Direction A) or
   13950 (Direction C fallback).

   Everything a native Elementor control CAN express is set on the
   widgets themselves — border, radius, padding, background, colour,
   typography. Only the four things no control reaches live here:
   image aspect-ratio, clipping the image to the card radius,
   equal-height cards, and the hover state.
   =============================================================== */

/* --- Direction A: editorial card ------------------------------- */
/* TRAP: Elementor does NOT emit `_css_classes` on the ROOT container of a
   loop-item document. The class lands on widgets (.lr-guide-img works) but
   the root <a> renders as
     class="elementor-element elementor-element-tileroot e-con-full e-flex e-con e-parent"
   with no custom class. So the card is selected by the element class Elementor
   always emits, which is stable because the element id `tileroot` is ours.
   .lr-guide-card is kept first so the rule still works if that ever changes. */
.lr-guide-card,
.e-loop-item .elementor-element-tileroot{
  height:100%;                 /* grid rows stretch; fill the row */
  overflow:hidden;             /* clip the image to the card radius */
  transition:border-color .18s ease, transform .18s ease;
}
.lr-guide-card:hover,
.e-loop-item .elementor-element-tileroot:hover{border-color:#C9A36E; transform:translateY(-2px)}
.lr-guide-card:focus-visible,
.e-loop-item .elementor-element-tileroot:focus-visible{outline:2px solid #A98352; outline-offset:2px}

/* Uniform crop, so a portrait upload cannot distort the row. */
.lr-guide-card .lr-guide-img img,
.e-loop-item .lr-guide-img img{
  display:block; width:100%; aspect-ratio:16/9; object-fit:cover;
}

/* --- Direction C: ruled index (fallback) ----------------------- */
/* Same root-container trap as Direction A: select by the element class
   Elementor emits (`rowroot` is our element id), not by _css_classes. */
.lr-guide-row,
.e-loop-item .elementor-element-rowroot{transition:background-color .16s ease}
.lr-guide-row:hover,
.e-loop-item .elementor-element-rowroot:hover{background-color:#F4F1EC}
.lr-guide-row:focus-visible,
.e-loop-item .elementor-element-rowroot:focus-visible{outline:2px solid #A98352; outline-offset:-2px}

@media (prefers-reduced-motion:reduce){
  .lr-guide-card,.lr-guide-row,
  .e-loop-item .elementor-element-tileroot,
  .e-loop-item .elementor-element-rowroot{transition:none}
  .lr-guide-card:hover,.e-loop-item .elementor-element-tileroot:hover{transform:none}
}

/* The card root is an <a>. Inside a guide's post content the LR link system
   (`.elementor-widget-theme-post-content a:not(.elementor-button)`, specificity
   0,2,1) underlines every anchor — which underlined the whole card, category,
   title and date included. Beat it with the widget class in the rule head, and
   again scoped to post content so source order can never decide it. */
.e-loop-item a.elementor-element-tileroot,
.e-loop-item a.elementor-element-tileroot:hover,
.e-loop-item a.elementor-element-tileroot:focus,
.e-loop-item a.elementor-element-rowroot,
.e-loop-item a.elementor-element-rowroot:hover,
.e-loop-item a.elementor-element-rowroot:focus,
.elementor-widget-theme-post-content .e-loop-item a.elementor-element-tileroot,
.elementor-widget-theme-post-content .e-loop-item a.elementor-element-rowroot{
  text-decoration:none;
}

/* The guide-post template styles every h3 in the article body
   (`.elementor-14129 .elementor-element-gpart .lr-artbody h3` → 1.375rem,
   specificity 0,4,1). Card and row titles are h3s and sit inside that body
   whenever the strip appears on a guide post, so they were rendering at
   22px instead of 17px. Out-specify it at 0,5,0 using the `.elementor`
   class Elementor already puts on the loop-item wrapper. */
.e-loop-item.elementor .elementor-element.elementor-element-tilettl .elementor-heading-title,
.e-loop-item.elementor .elementor-element.elementor-element-rowttl .elementor-heading-title{
  font-size:1.0625rem;
}


/* ===============================================================
   LR ICON — mask-based inline icons, added 2026-09-04.
   Spec: PATTERNS.md §24.

   The last thing keeping Font Awesome on the site was 136 literal
   <i class="fas fa-check-circle"> on the two pricing pages, inside
   HTML widgets where Elementor's SVG renderer never sees them.
   58 KB of CSS and up to 157 KB of webfont for one glyph.

   These icons paint an SVG mask in currentColor instead, which is
   the pattern the checkout already uses for its tick list and pay
   icons. No font, no network request — the artwork is a data URI.

   Sizing is deliberate: the box is 1em so it occupies exactly the
   space the font glyph did (the pricing list is a flex row and the
   icon's width sets where the label starts), while the mask is
   inset to 0.875em to match Font Awesome's optical size inside its
   em box. Swapping to a full-bleed 1em mask makes the ticks read
   noticeably heavier than the originals.

   Colour and size come from whatever styles the element — here
   `.lr-opt-checks i` sets #2F9E5A at .9375rem — because the mask
   paints in currentColor. Keep the element an <i> when replacing a
   font icon so element-based rule heads keep matching.
   =============================================================== */
.lr-ico{
  display:inline-block;
  flex:0 0 auto;
  width:1em;
  height:1em;
  background-color:currentColor;
  -webkit-mask-repeat:no-repeat;
          mask-repeat:no-repeat;
  -webkit-mask-position:center;
          mask-position:center;
  -webkit-mask-size:0.875em;
          mask-size:0.875em;
}

/* Filled circle with a knocked-out tick — the fa-check-circle shape,
   same artwork as .ckv-inc li::before in the checkout component. */
.lr-ico-check{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M10 0a10 10 0 1 0 0 20A10 10 0 0 0 10 0zm-1.2 14.6L4.4 10.2l1.6-1.6 2.8 2.8 5.2-5.2 1.6 1.6-6.8 6.8z'/%3E%3C/svg%3E");
          mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M10 0a10 10 0 1 0 0 20A10 10 0 0 0 10 0zm-1.2 14.6L4.4 10.2l1.6-1.6 2.8 2.8 5.2-5.2 1.6 1.6-6.8 6.8z'/%3E%3C/svg%3E");
}

/* ===============================================================
   LR LINK SYSTEM — global component.
   Source of truth: .claude/build-tools/_shared/lr-link.css
   Spec: DESIGN-SYSTEM.md § Links, PATTERNS.md § Link surface classes.

   Moved out of Customizer -> Additional CSS on 2026-09-04. It had been
   the site's only unversioned design-system component: invisible in the
   editor, inline on every page, and outside verify-css.py. The original
   Customizer block is kept at option lr_backup_custom_css_20260904.

   One rule, two surface variants. Inline prose links carry gold and are
   underlined; on hover they resolve toward the surface's anchor colour
   (down to navy on light, up to white on dark).

   Globals used — no new colours introduced:
     light default   LR - Gold Text on Light   #7E5F35   5.87:1 on white
     light hover     LR - Navy                 #102A4C  14.41:1 on white
     dark  default   LR - Gold Text on Dark    #D9B98A   7.72:1 on navy
     dark  hover     LR - White                #FFFFFF  14.41:1 on navy

   Surface markers — set as an Elementor CSS class on the section
   container. Light surfaces are the default and need no class:
     .lr-on-dark   navy / dark-image sections
     .lr-on-gold   the gold CTA bar (#C9A36E)
     .lr-on-light  a light container nested inside a dark or gold one

   The underline is structural, not decorative: gold sits at 2.50:1
   against Ink on light and 1.09:1 against Hero Muted on navy, both
   below the 3:1 colour alone would need.
   =============================================================== */

:root {
  --lr-link: #7E5F35;
  --lr-link-hover: #102A4C;
  --lr-link-rule: rgba(126, 95, 53, 0.45);
  --lr-link-rule-hover: rgba(16, 42, 76, 0.55);
}

.lr-on-light {
  --lr-link: #7E5F35;
  --lr-link-hover: #102A4C;
  --lr-link-rule: rgba(126, 95, 53, 0.45);
  --lr-link-rule-hover: rgba(16, 42, 76, 0.55);
}

.lr-on-dark {
  --lr-link: #D9B98A;
  --lr-link-hover: #FFFFFF;
  --lr-link-rule: rgba(217, 185, 138, 0.45);
  --lr-link-rule-hover: rgba(255, 255, 255, 0.70);
}

.lr-on-gold {
  --lr-link: #102A4C;
  --lr-link-hover: #FBF4EA;
  --lr-link-rule: rgba(16, 42, 76, 0.45);
  --lr-link-rule-hover: rgba(251, 244, 234, 0.70);
}

/* Inline prose links only. Buttons, nav and card/CTA links style
   themselves and are excluded. */
.elementor-widget-text-editor a:not(.elementor-button),
.elementor-widget-theme-post-content a:not(.elementor-button) {
  color: var(--lr-link);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-decoration-color: var(--lr-link-rule);
  text-underline-offset: 0.16em;
  transition: color 140ms ease, text-decoration-color 140ms ease;
}

.elementor-widget-text-editor a:not(.elementor-button):hover,
.elementor-widget-text-editor a:not(.elementor-button):focus-visible,
.elementor-widget-theme-post-content a:not(.elementor-button):hover,
.elementor-widget-theme-post-content a:not(.elementor-button):focus-visible {
  color: var(--lr-link-hover);
  text-decoration-color: var(--lr-link-rule-hover);
}

/* Keyboard focus stays visible on every surface. */
.elementor-widget-text-editor a:not(.elementor-button):focus-visible,
.elementor-widget-theme-post-content a:not(.elementor-button):focus-visible {
  outline: 2px solid var(--lr-link-hover);
  outline-offset: 2px;
  border-radius: 0.25rem;
}/* End custom CSS */