/*
 Theme Name:   Hello Elementor Child
 Theme URI:    https://flscmn.com
 Description:  Child theme for Forest Lake Sportsmen's Club
 Author:       Action Media LLC
 Author URI:   https://actnmedia.com
 Template:     hello-elementor
 Version:      1.0.0
 Text Domain:  hello-elementor-child
*/

/* ===========================================================================
   FLSC DESIGN TOKENS  ·  v5
   ===========================================================================
   The site was built page by page across many sessions, and each page invented
   its own micro-scale. A measured audit of all 11 templates found 45 distinct
   text styles: 13 Bebas display sizes, 24 Barlow Condensed uppercase label
   size/weight pairs, and 8 Barlow body sizes. Individually invisible, together
   they are why the site reads "assembled" rather than "designed."

   These tokens are the single scale. Per-page enforcement blocks below map the
   existing class names onto them, so the whole site converges without
   rewriting eleven pages of Elementor settings.
   =========================================================================== */
:root {
  /* Display · Bebas Neue 400 -------------------------------------------- */
  --flsc-d0: clamp(64px, 9vw, 120px);   /* homepage statement only          */
  --flsc-d1: clamp(44px, 6.2vw, 76px);  /* page h1                          */
  --flsc-d2: clamp(38px, 3.8vw, 52px);  /* feature figure / major h2        */
  --flsc-d3: clamp(28px, 2.6vw, 34px);  /* section h2                       */
  --flsc-d4: 24px;                      /* h3 / small display               */

  /* Label · Barlow Condensed uppercase ----------------------------------- */
  /* Floor raised from 11px to 13px (2026-09-08). An audit found 64 pieces of
     text under 13px on the homepage alone, some as small as 10px, set in
     uppercase Barlow Condensed with .14em tracking — the least legible
     combination in the system. This club's readership skews older than a
     typical consumer site; nothing here is small enough to be worth the cost. */
  --flsc-l1: 13px;                      /* micro: badge, eyebrow, table head */
  --flsc-l1-track: .12em;               /* eased with the size increase      */
  --flsc-l2: 14px;                      /* button, inline link label         */
  --flsc-l2-track: .09em;
  --flsc-l3: 20px;                      /* card title                        */
  --flsc-l3-track: .03em;

  /* Body · Barlow -------------------------------------------------------- */
  /* 18px is the site's de facto reading size — it carries the large majority
     of body text — so the scale aligns to it rather than dragging 300-odd
     elements down to the 17px a few components had drifted to. */
  --flsc-b-sm: 16px;                    /* caption, note, fine print         */
  --flsc-b: 18px;                       /* default                           */
  --flsc-b-lg: 21px;                    /* lede                              */
  --flsc-lh: 1.7;
  --flsc-lh-tight: 1.5;

  /* Vertical rhythm ------------------------------------------------------ */
  /* Opened up 2026-09-08. The brief is a site that breathes rather than one
     that packs the most into the least room, so sections get more air and
     cards get more interior padding. */
  --flsc-band: 112px;                   /* standard section                  */
  --flsc-band-lg: 144px;                /* statement section                 */
  --flsc-crumb-y: 28px;
  --flsc-card-pad: 32px;

  /* Colour --------------------------------------------------------------- */
  --flsc-ink: #111113;
  --flsc-body: #5a5754;
  --flsc-muted: #6b6762;
  --flsc-line: #e0ddd7;
  --flsc-line-soft: #ece9e4;
  --flsc-tint: #f8f7f5;
  --flsc-tint-warm: #fff4f0;
  --flsc-orange: #e85320;               /* fills, and text on dark           */
  --flsc-orange-ink: #b8400f;           /* orange TEXT on light · 5.56:1 AA  */
  --flsc-orange-lift: #ff7a4d;          /* orange text on dark               */
  --flsc-on-dark: rgba(255,255,255,.86);
  --flsc-on-dark-muted: rgba(255,255,255,.60);

  --flsc-radius: 3px;
}

@media (max-width: 1024px) {
  :root { --flsc-band: 88px; --flsc-band-lg: 104px; }
}
@media (max-width: 767px) {
  :root { --flsc-band: 68px; --flsc-band-lg: 76px; --flsc-crumb-y: 20px; --flsc-card-pad: 24px; }
}

/* ---------------------------------------------------------------------------
   Legibility floor and comfortable hit areas  ·  2026-09-08
   ---------------------------------------------------------------------------
   Two findings from the accessibility pass, fixed together because they share
   a cause — components that were sized to fit rather than sized to be used.

   1. Sub-13px text. The event chips were 10px. Anything that carries meaning
      now sits at the label floor.
   2. Hit areas. WCAG 2.5.8 sets a 24x24 minimum and the "Details" links on the
      events archive measured 47x28 — passing on paper, uncomfortable in hand,
      and there are nineteen of them stacked in a list. Interactive elements now
      clear 44px of height, which is the target size people actually hit.
   --------------------------------------------------------------------------- */
body.flsc-v5.flsc-v5 .flsc-tag,
body.flsc-v5.flsc-v5 .flsc-ev-chip,
body.flsc-v5.flsc-v5 .flsc-evr-gate,
body.flsc-v5.flsc-v5 .flsc-evr-gate .elementor-heading-title,
body.flsc-v5.flsc-v5 .flsc-ev-meta .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-location-footer h5,
body.flsc-v5.flsc-v5 .elementor-location-footer strong,
/* Gate-card spec lists on the homepage are bare spans inside a text widget,
   so the earlier heading-title selectors never reached them. They were 10px. */
body.flsc-v5.flsc-v5 .elementor-element-2357ed23 span,
body.flsc-v5.flsc-v5 .elementor-element-7e0f6f6b span,
body.flsc-v5.flsc-v5 .elementor-element-22e2c829 span,
/* Section eyebrows that page CSS pinned at 11px. These matched the old token
   value by coincidence, which hid the fact that the mapping never applied. */
body.flsc-v5.flsc-v5 .elementor-element-5d39eac0 .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-b636326 .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-624da394 .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-4a30456e .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-5925082 .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-e79239a .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-6973fdee .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-b34af1 .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-5309d6f .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-792ad3c3 .elementor-heading-title,
/* Location block ran its field labels at 10px in <strong>. */
body.flsc-v5.flsc-v5 .elementor-element-7f56ffc6 strong,
body.flsc-v5.flsc-v5 .elementor-element-151d4fce p {
  font-size: var(--flsc-l1) !important;
  letter-spacing: var(--flsc-l1-track) !important;
}

/* Remaining sub-13px stragglers on the gate pages, the pricing tables and the
   contact form, each pinned by its own page CSS below the floor. */
body.flsc-v5.flsc-v5 .flsc-unit,
body.flsc-v5.flsc-v5 .flsc-ct-form .frm_description,
body.flsc-v5.flsc-v5 .flsc-ct-form .frm_required,
body.flsc-v5.flsc-v5 .elementor-element-7031ae4 .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-399c8bb .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-b9a0dd6 .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-0eac771 .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-c29f485 .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-c7602e9 .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-80b7d3d .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-adf1619 .elementor-heading-title {
  font-size: var(--flsc-l1) !important;
  letter-spacing: var(--flsc-l1-track) !important;
}

/* The gate stat strips pin their captions with a five-class compound selector
   (`#id .e-con .elementor-widget-heading:last-child .elementor-heading-title`),
   which outranks a plain id rule. Matched here rather than loosened globally,
   because the same pattern without the id prefix would sweep every last-child
   heading on the site. */
body.flsc-v5.flsc-v5 .elementor-element-09fbfc3 .e-con .elementor-widget-heading:last-child .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-11531d1 .e-con .elementor-widget-heading:last-child .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-92354ca.elementor-element-92354ca .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-16332ea.elementor-element-16332ea .elementor-heading-title {
  font-size: var(--flsc-l1) !important;
  letter-spacing: var(--flsc-l1-track) !important;
}

/* Gate-card "Gate 1 / 2 / 3" buttons sat at 22px tall. */
body.flsc-v5.flsc-v5 .elementor-widget-button .elementor-button-link {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

/* Comfortable hit areas. Padding rather than min-height so the label stays
   optically centred and the underline sits where it did. */
body.flsc-v5.flsc-v5 .flsc-evr-go .elementor-button,
body.flsc-v5.flsc-v5 .flsc-ev-go .elementor-button,
body.flsc-v5.flsc-v5 .flsc-rg-go .elementor-button,
body.flsc-v5.flsc-v5 .flsc-ct-link,
body.flsc-v5.flsc-v5 .flsc-404-list a,
body.flsc-v5.flsc-v5 .flsc-crumbs a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}
body.flsc-v5.flsc-v5 .flsc-prog-jump a { min-height: 44px; display: inline-flex; align-items: center; }

/* "Dates and details →" on the homepage reads as a call to action but was
   authored as a bare inline link inside a paragraph, giving it a 15px-tall
   hit area. */
body.flsc-v5.flsc-v5 .elementor-element-32c70e7e a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}
/* Same widget carried a separate 11px rule at mobile. */
body.flsc-v5.flsc-v5 .elementor-element-32c70e7e,
body.flsc-v5.flsc-v5 .elementor-element-32c70e7e p,
body.flsc-v5.flsc-v5 .elementor-element-32c70e7e a { font-size: var(--flsc-l1) !important; }

/* Phone and email in the contact rail measured 23px tall, one pixel under the
   WCAG 2.5.8 floor. These are the two things a visitor is most likely to tap. */
body.flsc-v5.flsc-v5 .flsc-ct-dl dd a {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
}

/* NOT fixed here: nineteen links reading "Details" in a row on the events
   archive all announce identically to a screen reader (WCAG 2.4.4, Link
   Purpose). CSS cannot give them distinct accessible names — that needs a
   markup change in loop template 460, which is proposed separately rather
   than slipped in as a style rule. */

/* ---------------------------------------------------------------------------
   Contrast fixes in the shared shell (header, crumb bar, skip link)
   ---------------------------------------------------------------------------
   Deliberately NOT gated behind .flsc-v5: these are strictly-improving colour
   corrections in chrome that every page renders, and holding them back would
   leave ten templates failing AA for the length of the rollout. #e85320 on a
   white ground measures 3.69:1; the floor for text this size is 4.5:1.
   --------------------------------------------------------------------------- */
/* Logo sub-line "Forest Lake, Minnesota" — 10px orange on the white header bar.
   The footer twin sits on #111113 and measures 5.12:1, so it is left alone. */
.elementor-location-header .elementor-element-2a46e2c3 .elementor-heading-title { color: var(--flsc-orange-ink) !important; }
.flsc-crumb-sep { color: var(--flsc-muted) !important; }

/* The contact form's Submit was still rendering Formidable's default blue
   (#4199fd, white label, 2.92:1) — the plugin's own stylesheet loads after the
   theme and outranked the page-level rule. Brand colours, and a passing 5.11:1.
   This is the only conversion button on the site, so it is fixed globally. */
.flsc-ct-form .frm_forms .frm_submit button,
.flsc-ct-form button.frm_button_submit,
.flsc-ct-form input[type="submit"] {
  background: var(--flsc-orange) !important;
  background-image: none !important;
  color: var(--flsc-ink) !important;
  border: 0 !important;
  border-radius: var(--flsc-radius) !important;
  font-family: 'Barlow Condensed', sans-serif !important;
  font-size: var(--flsc-l2) !important;
  font-weight: 700 !important;
  letter-spacing: var(--flsc-l2-track) !important;
  text-transform: uppercase !important;
  padding: 15px 34px !important;
  cursor: pointer;
  transition: background .15s, color .15s;
}
.flsc-ct-form .frm_forms .frm_submit button:hover,
.flsc-ct-form button.frm_button_submit:hover,
.flsc-ct-form input[type="submit"]:hover {
  background: var(--flsc-ink) !important;
  color: #ffffff !important;
}

/* Inline "→" links were inheriting the global link colour (#e85320, 3.45:1 on
   the warm ground) instead of the ink the component declares. */
.flsc-ct-link,
.flsc-ct-link:link,
.flsc-ct-link:visited { color: var(--flsc-ink) !important; }
.flsc-ct-link:hover,
.flsc-ct-link:focus { color: var(--flsc-orange-ink) !important; }
.skip-link,
a.skip-link:focus { color: #ffffff !important; background: var(--flsc-ink) !important; }

/* ---------------------------------------------------------------------------
   Token enforcement · shared shells
   ---------------------------------------------------------------------------
   Elementor splits boxed-container padding: inline lands on .e-con, block on
   .e-con-inner. Vertical rhythm is therefore always set on the inner wrapper.
   --------------------------------------------------------------------------- */
body.flsc-v5.flsc-v5 .flsc-crumbs > .e-con-inner { padding-block: var(--flsc-crumb-y) !important; }
body.flsc-v5.flsc-v5 .flsc-mem-hero > .e-con-inner,
body.flsc-v5.flsc-v5 .flsc-gate-hero > .e-con-inner { padding-block: var(--flsc-band) !important; }
body.flsc-v5.flsc-v5 .flsc-mem-body > .e-con-inner,
body.flsc-v5.flsc-v5 .flsc-gate-body > .e-con-inner,
body.flsc-v5.flsc-v5 .flsc-price > .e-con-inner { padding-block: var(--flsc-band) !important; }

/* Shared hero components. These were being redeclared in every page's own
   custom CSS, which is why a new template (the 404) rendered its badge as dark
   text on the dark hero — invisible. They belong here so any future template
   inherits them without copy-paste. */
body.flsc-v5.flsc-v5 .flsc-gate-badge .elementor-heading-title {
  display: inline-block;
  background: var(--flsc-orange);
  color: var(--flsc-ink);
  padding: 5px 12px;
  line-height: 1.6;
}
body.flsc-v5.flsc-v5 .flsc-gate-badge { margin-bottom: 20px !important; }
body.flsc-v5.flsc-v5 .flsc-gate-h1 { margin-bottom: 14px !important; }
body.flsc-v5.flsc-v5 .flsc-mem-lede { max-width: 62ch; }
body.flsc-v5.flsc-v5 .flsc-mem-lede p { margin: 0; }

body.flsc-v5.flsc-v5 .flsc-gate-h1 .elementor-heading-title { font-size: var(--flsc-d1) !important; line-height: .96 !important; }
body.flsc-v5.flsc-v5 .flsc-mem-h2 .elementor-heading-title,
body.flsc-v5.flsc-v5 .flsc-ab-sec h2,
body.flsc-v5.flsc-v5 .flsc-prog-sec h2,
body.flsc-v5.flsc-v5 .flsc-price-head h2 { font-size: var(--flsc-d3) !important; }
body.flsc-v5.flsc-v5 .flsc-note-h .elementor-heading-title { font-size: var(--flsc-d4) !important; }
/* Figures come in two roles, and they should not be the same size.
   Feature figures carry a page — Membership's three cost cards ARE the page —
   and take the large step. Compact strips of four or more read as a supporting
   band and take the section step, which is also what the homepage and Gate 2
   strips were reaching for at 30px and 44px. */
body.flsc-v5.flsc-v5 .flsc-cost-figure .elementor-heading-title { font-size: var(--flsc-d2) !important; }
body.flsc-v5.flsc-v5 .flsc-ab-fig,
body.flsc-v5.flsc-v5 .elementor-element-09fbfc3 .e-con .elementor-widget-heading:first-child .elementor-heading-title { font-size: var(--flsc-d3) !important; }

body.flsc-v5.flsc-v5 .flsc-gate-badge .elementor-heading-title,
body.flsc-v5.flsc-v5 .flsc-crumbs a,
body.flsc-v5.flsc-v5 .flsc-crumbs span,
body.flsc-v5.flsc-v5 .flsc-crumb-current-w .elementor-heading-title,
body.flsc-v5.flsc-v5 .flsc-ab-kicker,
body.flsc-v5.flsc-v5 .flsc-prog-kicker,
body.flsc-v5.flsc-v5 .flsc-price-kicker,
body.flsc-v5.flsc-v5 .flsc-ct-h,
body.flsc-v5.flsc-v5 .flsc-cost-label .elementor-heading-title,
body.flsc-v5.flsc-v5 .flsc-ab-lab,
body.flsc-v5.flsc-v5 .flsc-table thead th,
body.flsc-v5.flsc-v5 .flsc-ct-dl dt { font-size: var(--flsc-l1) !important; letter-spacing: var(--flsc-l1-track) !important; }

body.flsc-v5.flsc-v5 .flsc-ct-link,
body.flsc-v5.flsc-v5 .flsc-prog-jump a,
body.flsc-v5.flsc-v5 .elementor-button { font-size: var(--flsc-l2) !important; letter-spacing: var(--flsc-l2-track) !important; }

body.flsc-v5.flsc-v5 .flsc-mem-lede p { font-size: var(--flsc-b-lg) !important; }
body.flsc-v5.flsc-v5 .flsc-mem-body-copy p,
body.flsc-v5.flsc-v5 .flsc-mem-body-copy li,
body.flsc-v5.flsc-v5 .flsc-ab-sec p,
body.flsc-v5.flsc-v5 .flsc-prog-sec p,
body.flsc-v5.flsc-v5 .flsc-price-intro,
body.flsc-v5.flsc-v5 .flsc-legal p,
body.flsc-v5.flsc-v5 .flsc-legal li { font-size: var(--flsc-b) !important; line-height: var(--flsc-lh) !important; }
body.flsc-v5.flsc-v5 .flsc-mem-note,
body.flsc-v5.flsc-v5 .flsc-price-note,
body.flsc-v5.flsc-v5 .flsc-price-foot,
body.flsc-v5.flsc-v5 .flsc-ct-note { font-size: var(--flsc-b-sm) !important; }

/* The "club to supply" markers are <p> inside those same sections, so the body
   rule above was capturing them and inflating them to 17px. They are annotations
   for us, not prose for the reader, and must stay at label scale. */
body.flsc-v5.flsc-v5 .flsc-ab-sec p.flsc-ab-todo,
body.flsc-v5.flsc-v5 .flsc-prog-sec p.flsc-prog-todo,
body.flsc-v5.flsc-v5 .flsc-ct-card p.flsc-ct-todo,
body.flsc-v5.flsc-v5 .flsc-todo-dark { font-size: var(--flsc-l1) !important; line-height: 1.5 !important; }

/* Orange text on a light ground fails AA at #e85320 (3.69:1). Every such use
   resolves to the darker ink at 5.56:1. Orange as a FILL is untouched. */
body.flsc-v5.flsc-v5 .flsc-ab-kicker,
body.flsc-v5.flsc-v5 .flsc-prog-kicker,
body.flsc-v5.flsc-v5 .flsc-price-kicker,
body.flsc-v5.flsc-v5 .flsc-ab-when,
body.flsc-v5.flsc-v5 .flsc-table tbody td:first-of-type,
body.flsc-v5.flsc-v5 .flsc-table thead th:nth-child(2),
body.flsc-v5.flsc-v5 .flsc-ct-dl dd a,
body.flsc-v5.flsc-v5 .flsc-legal a { color: var(--flsc-orange-ink) !important; }

/* Eyebrow labels that sit on a light ground. At 11px, #e85320 measures 3.69:1
   on white and 3.45:1 on the warm tint, both under the 4.5:1 floor. The ones
   not listed here sit on the dark bands, where the same orange clears 5.12:1. */
body.flsc-v5.flsc-v5 .elementor-element-92354ca .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-16332ea .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-b636326 .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-49f8c9ca .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-23c967a .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-18d87d3b .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-6973fdee .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-792ad3c3 .elementor-heading-title { color: var(--flsc-orange-ink) !important; }

/* Badges. One of these was rendering orange text on an orange fill — a 1:1
   ratio, invisible — and another was white on orange at 3.69:1. Any badge on
   the orange fill takes the near-black label, which measures 5.11:1. The
   members-only variant gets its intended dark fill back so it stays distinct. */
body.flsc-v5.flsc-v5 .flsc-gate-badge .elementor-heading-title,
body.flsc-v5.flsc-v5 .flsc-rg-badge-public .elementor-heading-title,
body.flsc-v5.flsc-v5 .flsc-rg-badge-match .elementor-heading-title { color: var(--flsc-ink) !important; }
body.flsc-v5.flsc-v5 .flsc-rg-badge-member .elementor-heading-title {
  background: rgba(17, 17, 19, .78) !important;
  color: #ffffff !important;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .28);
}
body.flsc-v5.flsc-v5 .flsc-rg-badge-match .elementor-heading-title { background: #ffffff !important; }

/* The gate-hero subtitle sits ON the dark hero, not on a light ground, so it
   keeps the full-strength orange (5.12:1 there). The darker ink would have
   dropped it to 3.40:1 — the opposite of the fix. */
body.flsc-v5.flsc-v5 .flsc-gate-sub .elementor-heading-title { color: var(--flsc-orange) !important; }

/* Gate 1's members-only badge had near-black text on a transparent fill over
   the dark hero, which is effectively invisible. Restored to the outlined
   treatment its Gate 3 counterpart already uses. */
body.flsc-v5.flsc-v5 .flsc-gate-badge-member .elementor-heading-title {
  background: transparent !important;
  color: #ffffff !important;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .45);
}

/* Annotation markers were at #8a857e, 3.66:1. The muted token clears 5.61:1. */
body.flsc-v5.flsc-v5 .flsc-todo,
body.flsc-v5.flsc-v5 .flsc-ab-todo,
body.flsc-v5.flsc-v5 .flsc-prog-todo,
body.flsc-v5.flsc-v5 .flsc-ct-todo { color: var(--flsc-muted) !important; }

/* Micro-labels are supporting text, not accents. Orange at 11px measures
   3.53:1 on the warm ground, well under the 4.5:1 AA floor, and it also
   competes with the figure it is meant to caption. Muted grey on both counts. */
body.flsc-v5.flsc-v5 .flsc-cost-label .elementor-heading-title,
body.flsc-v5.flsc-v5 .flsc-ab-lab { color: var(--flsc-muted) !important; }

/* Large display figures keep the full-strength orange: at 52px they clear the
   3:1 large-text floor, and the accent card is already set apart by its tint
   and left rule, so a second orange would only muddy the pair. */
body.flsc-v5.flsc-v5 .flsc-cost-figure .elementor-heading-title,
body.flsc-v5.flsc-v5 .flsc-ab-fig { color: var(--flsc-orange) !important; }

/* These are text-editor widgets, not heading widgets: the content is a <p>,
   with no .elementor-heading-title to hang a rule on. */
body.flsc-v5.flsc-v5 .flsc-fact .flsc-fact-v { font-size: var(--flsc-d3) !important; }
body.flsc-v5.flsc-v5 .flsc-fact .flsc-fact-l { font-size: var(--flsc-l1) !important; letter-spacing: var(--flsc-l1-track) !important; }
body.flsc-v5.flsc-v5 .flsc-pub-disc p { font-size: var(--flsc-l2) !important; letter-spacing: var(--flsc-l2-track) !important; }

/* Last of the 17px holdouts. Table cells move with the rest: the tables sit in
   scroll wrappers, so the extra pixel cannot break their layout. */
body.flsc-v5.flsc-v5 .flsc-pub-p p,
body.flsc-v5.flsc-v5 .flsc-note-p p,
body.flsc-v5.flsc-v5 .flsc-mem-grid p,
body.flsc-v5.flsc-v5 .flsc-arch-p p,
body.flsc-v5.flsc-v5 .flsc-ab-events li,
body.flsc-v5.flsc-v5 .flsc-table tbody th,
body.flsc-v5.flsc-v5 .flsc-table tbody td,
body.flsc-v5.flsc-v5 .flsc-ab-what,
body.flsc-v5.flsc-v5 .flsc-ct-dl dd,
body.flsc-v5.flsc-v5 .flsc-ct-dl dd a,
body.flsc-v5.flsc-v5 .elementor-element-6bc24b4e p,
body.flsc-v5.flsc-v5 .elementor-element-27404f7 p,
body.flsc-v5.flsc-v5 .elementor-element-ded6668 p { font-size: var(--flsc-b) !important; }

/* Same shadowing problem as the other annotation markers: the body rule for
   .flsc-note-p outranks the bare .flsc-todo-dark class. */
body.flsc-v5.flsc-v5 .flsc-note-p p.flsc-todo-dark { font-size: var(--flsc-l1) !important; }

/* Chips and badges built as inner spans, which the heading-level radius rule
   above does not reach. */
body.flsc-v5.flsc-v5 .elementor-heading-title span,
body.flsc-v5.flsc-v5 .elementor-widget-text-editor p > span { border-radius: var(--flsc-radius) !important; }

/* The external-link glyph was inheriting 0.9em and rendering at 10px. */
.util-ext { font-size: 1em; }
body.flsc-v5.flsc-v5 .flsc-news-note p,
body.flsc-v5.flsc-v5 .flsc-g1-cardbody p { font-size: var(--flsc-l1) !important; letter-spacing: var(--flsc-l1-track) !important; }

/* Homepage lede and the three gate-card summaries were at 20px and 16px. */
body.flsc-v5.flsc-v5 .elementor-element-6466236e p { font-size: var(--flsc-b-lg) !important; }
body.flsc-v5.flsc-v5 .elementor-element-5f683b28 p,
body.flsc-v5.flsc-v5 .elementor-element-31fbd9aa p,
body.flsc-v5.flsc-v5 .elementor-element-4b0c5df4 p { font-size: var(--flsc-b) !important; }

/* One radius, not two. 2px and 3px were both in play, differing by a pixel. */
body.flsc-v5.flsc-v5 .flsc-gate-badge .elementor-heading-title,
body.flsc-v5.flsc-v5 .flsc-rg-badge .elementor-heading-title,
body.flsc-v5.flsc-v5 .flsc-cost-card,
body.flsc-v5.flsc-v5 .flsc-ab-stat,
body.flsc-v5.flsc-v5 .flsc-ct-card,
body.flsc-v5.flsc-v5 .flsc-price-block,
body.flsc-v5.flsc-v5 .flsc-prog-jump a,
body.flsc-v5.flsc-v5 .elementor-button,
body.flsc-v5.flsc-v5 .flsc-tag,
body.flsc-v5.flsc-v5 .flsc-ab-todo,
body.flsc-v5.flsc-v5 .flsc-prog-todo,
body.flsc-v5.flsc-v5 .flsc-ct-todo,
body.flsc-v5.flsc-v5 .flsc-todo-dark,
body.flsc-v5.flsc-v5 .flsc-ev-chip,
body.flsc-v5.flsc-v5 .flsc-evr-gate,
body.flsc-v5.flsc-v5 .flsc-fact-l,
body.flsc-v5.flsc-v5 .flsc-fact-v,
body.flsc-v5.flsc-v5 [class*="flsc-"][class*="todo"],
body.flsc-v5.flsc-v5 .elementor-heading-title { border-radius: var(--flsc-radius) !important; }

/* ---------------------------------------------------------------------------
   Token enforcement · remaining components
   ---------------------------------------------------------------------------
   Everything the first pass did not reach, found by re-harvesting computed
   styles across all eleven templates and listing what still fell outside the
   scale. Header and footer navigation are deliberately excluded: navigation is
   its own role with its own rhythm, and the wordmark is a one-off by design.
   --------------------------------------------------------------------------- */

/* Display steps */
body.flsc-v5.flsc-v5 .flsc-legal h2,
body.flsc-v5.flsc-v5 .flsc-fact .elementor-heading-title { font-size: var(--flsc-d3) !important; }
body.flsc-v5.flsc-v5 .flsc-g1-cardtitle .elementor-heading-title,
body.flsc-v5.flsc-v5 .flsc-rg-title .elementor-heading-title { font-size: var(--flsc-d4) !important; }
/* Events archive headline joins the page-h1 step. */
body.flsc-v5.flsc-v5 .elementor-element-6a7c647 .elementor-heading-title { font-size: var(--flsc-d1) !important; }

/* Label steps */
body.flsc-v5.flsc-v5 .flsc-ev-meta .elementor-heading-title,
body.flsc-v5.flsc-v5 .flsc-news-note .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-7f56ffc6 .elementor-heading-title,
body.flsc-v5.flsc-v5 .flsc-g1-cardbody .elementor-heading-title,
body.flsc-v5.flsc-v5 .flsc-ab-when,
body.flsc-v5.flsc-v5 .elementor-location-footer .elementor-element-5032eda0 .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-location-footer .elementor-element-512c6176 .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-location-footer .elementor-element-3adde241 .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-location-footer .elementor-element-669297c9 .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-location-footer .elementor-element-4c332098 .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-location-header .elementor-element-2a46e2c3 .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-location-header .elementor-element-4dfe3285 a,
body.flsc-v5.flsc-v5 .elementor-location-header .elementor-element-4dfe3285 span {
  font-size: var(--flsc-l1) !important;
  letter-spacing: var(--flsc-l1-track) !important;
}
body.flsc-v5.flsc-v5 .flsc-pub-disc .elementor-heading-title { font-size: var(--flsc-l2) !important; }
body.flsc-v5.flsc-v5 .flsc-gate-sub .elementor-heading-title,
body.flsc-v5.flsc-v5 .flsc-evr-title .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-91bc7fb .elementor-heading-title {
  font-size: var(--flsc-l3) !important;
  letter-spacing: var(--flsc-l3-track) !important;
}

/* Bebas Neue is a display face. It was being used at 10 and 11px for badges and
   card captions, sizes it was never drawn for and which read as mush next to the
   Barlow Condensed labels doing the same job elsewhere. Moved to the label face. */
body.flsc-v5.flsc-v5 .flsc-rg-badge .elementor-heading-title,
body.flsc-v5.flsc-v5 .flsc-cost-label .elementor-heading-title {
  font-family: 'Barlow Condensed', sans-serif !important;
  font-size: var(--flsc-l1) !important;
  font-weight: 700 !important;
  letter-spacing: var(--flsc-l1-track) !important;
}

/* ---------------------------------------------------------------------------
   Token enforcement · homepage
   ---------------------------------------------------------------------------
   The homepage predates the flsc-* class convention, so its styles are keyed to
   Elementor element IDs. The IDs are listed explicitly rather than swept with a
   broad selector: it is verbose, but it means every change here is traceable to
   a specific block, and nothing gets restyled by accident.

   Its top-level sections are full-bleed (content_width: full), so they have no
   .e-con-inner and padding sits directly on the element.
   --------------------------------------------------------------------------- */

/* Section rhythm: was 110/110 on four bands and 80/80 on a fifth. */
body.flsc-v5.flsc-v5 .elementor-element-104ac58c,
body.flsc-v5.flsc-v5 .elementor-element-77e087dd,
body.flsc-v5.flsc-v5 .elementor-element-457592ba,
body.flsc-v5.flsc-v5 .elementor-element-4c3bd9af,
body.flsc-v5.flsc-v5 .elementor-element-407a9b4d {
  padding-block: var(--flsc-band-lg) !important;
}
/* Continuation band: opens flush against the one above it, so top stays 0. */
body.flsc-v5.flsc-v5 .elementor-element-29ffe879 { padding-block: 0 var(--flsc-band-lg) !important; }

/* Landing section headlines — were 72 and 66, now share the page-h1 step. */
body.flsc-v5.flsc-v5 .elementor-element-64f73f1a .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-5bd8a646 .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-6cebe60f .elementor-heading-title { font-size: var(--flsc-d1) !important; }

/* Section h2s, event dates, gate-card names and compact stat figures — this was
   the 38/34/31/30 cluster, four sizes doing one job. */
body.flsc-v5.flsc-v5 .elementor-element-22ab41d .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-03bced7 .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-454881a .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-80b3e01 .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-fa08169 .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-2e4cb28 .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-d815682 .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-a421e21 .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-0b17f52 .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-787d9ff .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-1c6f483 .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-701adf1 .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-433bdc97 .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-977ff9e .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-6d1393b4 .elementor-heading-title { font-size: var(--flsc-d3) !important; }

/* Card titles and pull-quotes — the 24/21 pair. */
body.flsc-v5.flsc-v5 .elementor-element-bb8da9c .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-416f9edc .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-a62426b .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-08ec568 .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-236cb09 .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-1fd4bb0 .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-623d78e .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-c62ce2d .elementor-heading-title { font-size: var(--flsc-d4) !important; }

/* "Fall season" was set in Bebas at 11px, which is a display face doing a
   micro-label's job at a size it was never drawn for. Moved to the label face. */
body.flsc-v5.flsc-v5 .elementor-element-4583d14 .elementor-heading-title {
  font-family: 'Barlow Condensed', sans-serif !important;
  font-size: var(--flsc-l1) !important;
  font-weight: 700 !important;
  letter-spacing: var(--flsc-l1-track) !important;
}

/* Micro-labels — the 10/11/12px spread collapses onto one size and one track.
   Weights are left as authored; the size and tracking were the visible drift. */
body.flsc-v5.flsc-v5 .elementor-element-a8b5a91 .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-5d7cbef .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-de2ccd3 .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-394ab2b .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-4f4f61d .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-a48ffc7 .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-49f8c9ca .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-2357ed23 .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-2357ed23 li,
body.flsc-v5.flsc-v5 .elementor-element-23c967a .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-7e0f6f6b .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-7e0f6f6b li,
body.flsc-v5.flsc-v5 .elementor-element-18d87d3b .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-22e2c829 .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-22e2c829 li,
body.flsc-v5.flsc-v5 .elementor-element-40e802f7 .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-755f719f .elementor-heading-title,
body.flsc-v5.flsc-v5 .elementor-element-be3e570 .elementor-heading-title {
  font-size: var(--flsc-l1) !important;
  letter-spacing: var(--flsc-l1-track) !important;
}

/* ---------------------------------------------------------------------------
   FLSC mobile container padding normaliser
   ---------------------------------------------------------------------------
   Elementor boxed containers split their padding: the inline (left/right)
   padding lands on .e-con, the block (top/bottom) padding lands on
   .e-con-inner. Page-level mobile overrides written as a `padding:` shorthand
   therefore ADD their top/bottom value on top of the inner wrapper's desktop
   value instead of replacing it, which doubles vertical rhythm below 768px.
   Zeroing the inner's block padding at that breakpoint lets the page-level
   override be the only source of truth. Keep this in sync with the section
   wrapper classes used across the build.
   --------------------------------------------------------------------------- */
@media (max-width: 767px) {
  .flsc-crumbs > .e-con-inner,
  .flsc-gate-hero > .e-con-inner,
  .flsc-mem-hero > .e-con-inner,
  .flsc-ev-hero > .e-con-inner,
  .flsc-gate-body > .e-con-inner,
  .flsc-mem-body > .e-con-inner,
  .flsc-ev-body > .e-con-inner,
  .flsc-g1-note > .e-con-inner,
  .flsc-mem-cta > .e-con-inner {
    padding-block: 0 !important;
  }
}

/* ---------------------------------------------------------------------------
   FLSC gate page card padding reconciliation
   ---------------------------------------------------------------------------
   Same root cause as the block above, but at every width rather than only on
   mobile. Page-level CSS on Gate 2 and Gate 3 sets a `padding:` shorthand on
   card and note containers. Elementor is still applying its own block padding
   to those containers' `.e-con-inner`, so the two stack and the cards render
   roughly twice the top padding of their side padding (Gate 2 cards measured
   50px top against 26px left).

   Zeroing the inner block padding makes the page-level rule the single visible
   source of truth. The `body.page-id-N` prefix is deliberate: it raises
   specificity above Elementor's own post CSS, which loads after this file.

   When the page CSS for these two pages is next rewritten, fold the padding
   into the Elementor padding control and delete the matching block here.
   --------------------------------------------------------------------------- */

/* Gate 2 */
body.page-id-193 .elementor-element-535b62c > .e-con-inner > .e-con > .e-con-inner,
body.page-id-193 .elementor-element-31bc682 > .e-con-inner,
body.page-id-193 .elementor-element-09fbfc3 > .e-con-inner {
  padding-block: 0 !important;
}

/* ---------------------------------------------------------------------------
   Gate page stat strips  ·  2026-09-08
   ---------------------------------------------------------------------------
   Both strips were flex rows of content-width tiles with a fixed gap, so the
   tiles sized themselves unevenly (95, 101, 117, 107, 119px on Gate 2) and
   clumped against the left edge. Gate 2 left 490px of empty band on the right;
   Gate 3 left 840px. Both also carried top padding and none at the bottom, so
   the tiles sat flush against the lower edge of the band.

   Grid with equal tracks fixes the symmetry; the padding is made even.
   --------------------------------------------------------------------------- */

/* Gate 2: five tiles in a filled band. Equal tracks that fill the width. */
body.flsc-v5.flsc-v5 .elementor-element-09fbfc3 { padding-block: 40px !important; }
body.flsc-v5.flsc-v5 .elementor-element-09fbfc3 > .e-con-inner {
  display: grid !important;
  /* Explicit five rather than auto-fit. Auto-fit picks whatever number of
     tracks the width allows, which at tablet sizes lands on four and strands
     the fifth tile alone on a second row. Five items only divide cleanly into
     five or into two-plus-a-spanning-remainder, so those are the two states.
     If a sixth stat is ever added, update this count. */
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 20px !important;
  align-items: stretch !important;
}
body.flsc-v5.flsc-v5 .elementor-element-09fbfc3 > .e-con-inner > .e-con {
  width: auto !important;
  min-width: 0 !important;
  flex: initial !important;
  align-items: center !important;
  text-align: center;
}

/* Gate 3's equivalent element is NOT a stat strip: it is a pair of call-to-action
   buttons. Slack to their right is correct for a button row sitting under
   left-aligned content, so only the missing bottom padding is fixed here. */
body.flsc-v5.flsc-v5 .elementor-element-11531d1 { padding-block: 0 40px !important; }
body.flsc-v5.flsc-v5 .elementor-element-11531d1 > .e-con-inner {
  gap: 16px !important;
  align-items: center !important;
}

@media (max-width: 767px) {
  body.flsc-v5.flsc-v5 .elementor-element-09fbfc3 > .e-con-inner {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  /* Five tiles in two columns leaves the last one stranded alone on the bottom
     row. Span it so the block still reads as a finished rectangle. */
  body.flsc-v5.flsc-v5 .elementor-element-09fbfc3 > .e-con-inner > .e-con:last-child:nth-child(odd) {
    grid-column: 1 / -1;
  }
  body.flsc-v5.flsc-v5 .elementor-element-09fbfc3 { padding-block: 28px !important; }
  body.flsc-v5.flsc-v5 .elementor-element-11531d1 { padding-block: 0 28px !important; }
}

/* ---------------------------------------------------------------------------
   FLSC pricing tables
   ---------------------------------------------------------------------------
   Component styles, deliberately not scoped to a page id: production publishes
   the 2026 rates as flat images on the Gate 2 page only, and these tables are
   meant to be reusable if pricing later moves to its own page.
   --------------------------------------------------------------------------- */
.flsc-price-head {
  margin: 0 0 44px;
}

.flsc-price-kicker {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #b8400f;
  margin: 0 0 8px;
}

.flsc-price-head h2 {
  font-family: 'Bebas Neue', sans-serif;
  font-weight: 400;
  font-size: 46px;
  line-height: 1;
  letter-spacing: .01em;
  color: #111113;
  margin: 0 0 16px;
}

.flsc-price-intro {
  font-family: 'Barlow', sans-serif;
  font-size: 18px;
  line-height: 1.7;
  color: #5a5754;
  margin: 0;
  max-width: 70ch;
}

.flsc-price-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 32px;
  align-items: start;
  margin: 0 0 32px;
}

.flsc-price-block {
  min-width: 0;
  background: #ffffff;
  border: 1px solid #e0ddd7;
  border-radius: 3px;
  padding: var(--flsc-card-pad);
}

.flsc-price-wide {
  margin: 0 0 32px;
}

.flsc-price-block h3 {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 20px;
  line-height: 1.2;
  letter-spacing: .03em;
  text-transform: uppercase;
  color: #111113;
  margin: 0 0 16px;
}

/* Scroll container. tabindex makes it keyboard reachable, which is required
   once a region can scroll; the focus ring below makes that state visible. */
.flsc-tw {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.flsc-tw:focus-visible {
  outline: 2px solid #b8400f;
  outline-offset: 3px;
}

.flsc-table {
  width: 100%;
  border-collapse: collapse;
  font-family: 'Barlow', sans-serif;
  font-variant-numeric: tabular-nums;
}

/* Cell padding reworked 2026-09-08. The member column carries a tint, and with
   zero horizontal padding that tint rendered as a tight stripe pressed against
   the figures rather than as a column. Cells now carry real padding on both
   sides; only the table's outer edges are flush, so the grid still aligns to
   the heading above it. */
.flsc-table thead th {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #6b6762;
  text-align: right;
  padding: 0 18px 12px;
  border-bottom: 2px solid #e0ddd7;
  white-space: nowrap;
}

.flsc-table thead th:first-child {
  text-align: left;
  padding-left: 0;
}

.flsc-table thead th:last-child,
.flsc-table tbody td:last-child { padding-right: 0; }

.flsc-table tbody th {
  font-family: 'Barlow', sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
  color: #111113;
  text-align: left;
  padding: 16px 18px 16px 0;
  border-bottom: 1px solid #ece9e4;
}

.flsc-table tbody td {
  font-size: 17px;
  line-height: 1.3;
  color: #111113;
  text-align: right;
  padding: 16px 18px;
  border-bottom: 1px solid #ece9e4;
  white-space: nowrap;
}

/* Member column carries the benefit, so it gets the weight and the tint. */
.flsc-table tbody td:first-of-type {
  font-weight: 600;
  color: #b8400f;
  background: #fff8f5;
}

.flsc-table thead th:nth-child(2) {
  color: #b8400f;
}

.flsc-table tbody tr:last-child th,
.flsc-table tbody tr:last-child td {
  border-bottom: 0;
}

.flsc-unit {
  display: block;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #6b6762;
  margin-top: 3px;
}

.flsc-price-note {
  font-family: 'Barlow', sans-serif;
  font-size: 14px;
  line-height: 1.6;
  color: #6b6762;
  margin: 14px 0 0;
}

.flsc-price-foot {
  font-family: 'Barlow', sans-serif;
  font-size: 15px;
  line-height: 1.6;
  color: #6b6762;
  border-left: 3px solid #e0ddd7;
  padding-left: 14px;
  margin: 8px 0 0;
  max-width: 76ch;
}

@media (max-width: 860px) {
  .flsc-price-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 767px) {
  /* Written as inline + inner block deliberately: a `padding:` shorthand on a
     boxed Elementor container stacks with the inner wrapper's own block
     padding. See the normaliser at the top of this file. */
  .flsc-price {
    padding-inline: 20px !important;
  }
  .flsc-price > .e-con-inner {
    padding-block: 56px 64px !important;
  }
  .flsc-price-head h2 {
    font-size: 34px;
  }
  .flsc-price-intro {
    font-size: 17px;
  }
  .flsc-price-block {
    padding: 20px;
  }
  /* The wider desktop cell padding pushes these tables past their card on a
     phone. The scroll wrapper would catch it, but a table that simply fits is
     better than one that has to be dragged. */
  .flsc-table thead th { padding: 0 10px 10px; }
  .flsc-table tbody th { padding: 14px 10px 14px 0; }
  .flsc-table tbody td { padding: 14px 10px; }
}

/* ---------------------------------------------------------------------------
   Utility bar: external link cue and screen-reader-only text
   --------------------------------------------------------------------------- */
.util-ext {
  display: inline-block;
  margin-left: 5px;
  font-size: 1em;
  line-height: 1;
  vertical-align: baseline;
}

.screen-reader-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* Gate 3 */
body.page-id-195 .elementor-element-d6f42f4 > .e-con-inner,
body.page-id-195 .elementor-element-ed005b5 > .e-con-inner,
body.page-id-195 .elementor-element-b3fc8b8 > .e-con-inner,
body.page-id-195 .elementor-element-0ac5914 > .e-con-inner,
body.page-id-195 .elementor-element-66a314a > .e-con-inner,
body.page-id-195 .elementor-element-d31596e > .e-con-inner,
body.page-id-195 .elementor-element-11531d1 > .e-con-inner {
  padding-block: 0 !important;
}