/* ==========================================================================
   LFFO FIXES 3 - loaded after fixes-2 (batch 5 completion)
   ========================================================================== */

/* (41) TIERS - Partner colour made consistent + mobile-compact layout.
   The Partner card is styled oxblood on the membership page (rich animated
   head). On home it was rendering navy like SFO/MFO because every brown/
   partner rule targeted [data-tier-kind="partner"] while the live markup uses
   [data-tier-kind="serve"]. Home Partner now adopts the SAME oxblood ground
   as membership, so Partner reads the same on both pages, desktop + mobile.
   Membership's own oxblood head is left untouched. */
body.home .join-tiers .jt[data-tier-kind="serve"] .jt-head{
  background-color:#1c1917 !important;
  background-image:
    radial-gradient(120% 150% at 50% 50%, rgba(114,47,50,.86) 0%, rgba(114,47,50,0) 60%),
    radial-gradient(120% 150% at 50% 50%, rgba(141,61,64,.42) 0%, rgba(141,61,64,0) 64%),
    radial-gradient(90% 120% at 50% 50%, rgba(74,30,32,.6) 0%, rgba(74,30,32,0) 58%) !important;
  background-size:200% 200%, 230% 230%, 260% 260% !important;
  background-repeat:no-repeat !important;
  border-bottom:1px solid rgba(201,163,78,.28) !important;
}
body.home .join-tiers .jt[data-tier-kind="serve"] .jt-kind{ color:var(--gold-soft, #f3ead4) !important; }

/* mobile-compact tiers - membership (.tier) and home (.jt) */
@media (max-width:760px){
  .tier-head{ padding:20px 18px 15px !important; }
  .tier-name{ font-size:1.4rem !important; }
  .tier-price{ font-size:2.05rem !important; margin-top:9px !important; }
  .tier-price small{ font-size:.86rem !important; }
  .tier-body{ padding:17px 18px 20px !important; }
  .tier-list li{ font-size:.88rem !important; padding:.3em 0 !important; }
  .tier .btn{ padding:.82em 1.2em !important; font-size:.86rem !important; }
  body.home .join-tiers{ gap:12px !important; }
  body.home .join-tiers .jt-head{ padding:13px 16px 11px !important; }
  body.home .join-tiers .jt-name{ font-size:1.02rem !important; }
  body.home .join-tiers .jt-price{ font-size:1.55rem !important; }
  body.home .join-tiers .jt-body{ padding:12px 16px 15px !important; }
  body.home .join-tiers .jt-for{ font-size:.82rem !important; }
}

/* ==========================================================================
   (40) HOME INSIGHT CARDS - Publication / Article / Training
   ========================================================================== */
.knowledge-grid{ gap:22px; }
.k-card{
  background:var(--surface, #fff);
  border:1px solid var(--line, #e7dfcd);
  border-radius:7px;
  box-shadow:0 1px 0 rgba(15,32,56,.03), 0 20px 44px -32px rgba(15,32,56,.34);
  transition:transform .55s cubic-bezier(.2,.7,.2,1), box-shadow .55s cubic-bezier(.2,.7,.2,1), border-color .5s ease;
}
.k-card::before{
  content:""; position:absolute; left:0; right:0; top:0; height:2px; z-index:2;
  background:linear-gradient(90deg,
    rgba(201,163,78,0) 0%, rgba(201,163,78,.55) 22%,
    rgba(201,163,78,.55) 78%, rgba(201,163,78,0) 100%);
}
.k-card:hover{
  transform:translateY(-6px);
  box-shadow:0 1px 0 rgba(15,32,56,.05), 0 34px 66px -34px rgba(15,32,56,.5);
  border-color:var(--gold-soft, #f3ead4);
}
.k-card .k-tag{
  align-self:flex-start;
  margin:22px 22px 0;
  display:inline-flex; align-items:center;
  padding:.55em 1.05em;
  border-radius:3px;
  border:1px solid rgba(201,163,78,.30);
  background-color:var(--navy, #0f2038);
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.4'/%3E%3C/svg%3E"),
    linear-gradient(135deg, #16294a 0%, #0c1c33 100%);
  background-size:150px 150px, 100% 100%;
  background-blend-mode:overlay, normal;
  color:var(--gold-bright, #dcb763);
  font-size:.62rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06), 0 6px 16px -12px rgba(15,32,56,.6);
}
.k-card .k-cat{
  display:inline-flex; align-items:center;
  color:var(--gold-deep, #a07c33);
  font-size:.72rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
}
.k-card .k-cat::before{
  content:""; width:20px; height:1px; margin-right:.65em;
  background:linear-gradient(90deg,var(--gold, #c9a34e), rgba(201,163,78,.2));
}
.k-card .k-body{ padding:18px 24px 26px; }
.k-card .k-body h3{
  font-family:var(--serif, "EB Garamond", Georgia, serif);
  font-weight:500; font-style:normal;
  font-size:1.42rem; line-height:1.22; letter-spacing:0;
  margin:11px 0 10px; color:var(--ink, #1b2430);
}
.k-card .k-body p{ font-size:.93rem; line-height:1.62; color:var(--ink-soft, #55627a); }
.k-card .k-foot{ margin-top:18px; letter-spacing:.02em; }

/* TRAINING - members-only tile: engraved navy ground + grain */
.k-card.k-training,
.k-card:has(.k-stretch[href$="#training"]){
  background-color:var(--navy, #0f2038);
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.3'/%3E%3C/svg%3E"),
    radial-gradient(120% 130% at 18% 4%, rgba(46,83,125,.75) 0%, rgba(46,83,125,0) 60%),
    radial-gradient(115% 130% at 88% 96%, rgba(17,44,84,.9) 0%, rgba(17,44,84,0) 58%);
  background-size:180px 180px, 190% 190%, 200% 200%;
  background-position:0 0, 14% 46%, 86% 54%;
  background-repeat:repeat, no-repeat, no-repeat;
  border-color:rgba(201,163,78,.34);
}
.k-card.k-training:hover,
.k-card:has(.k-stretch[href$="#training"]):hover{
  border-color:rgba(201,163,78,.6);
  box-shadow:0 1px 0 rgba(0,0,0,.2), 0 34px 66px -32px rgba(0,0,0,.55);
}
.k-card.k-training .k-tag,
.k-card:has(.k-stretch[href$="#training"]) .k-tag{
  background:linear-gradient(135deg, var(--gold-bright, #dcb763) 0%, var(--gold-deep, #a07c33) 100%);
  color:var(--navy, #0f2038);
  border-color:rgba(201,163,78,.5);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28), 0 8px 18px -12px rgba(0,0,0,.55);
}
.k-card.k-training .k-tag::after,
.k-card:has(.k-stretch[href$="#training"]) .k-tag::after{
  content:"Members only";
  margin-left:.75em; padding-left:.75em;
  border-left:1px solid rgba(15,32,56,.35);
  font-size:.92em; letter-spacing:.16em; opacity:.85;
}
.k-card.k-training .k-cat,
.k-card:has(.k-stretch[href$="#training"]) .k-cat{ color:var(--gold-bright, #dcb763); }
.k-card.k-training .k-cat::before,
.k-card:has(.k-stretch[href$="#training"]) .k-cat::before{
  background:linear-gradient(90deg,var(--gold-bright, #dcb763), rgba(220,183,99,.2));
}
.k-card.k-training .k-body h3,
.k-card:has(.k-stretch[href$="#training"]) .k-body h3{ color:#fbf8f0; }
.k-card.k-training .k-body p,
.k-card:has(.k-stretch[href$="#training"]) .k-body p{ color:rgba(238,238,232,.86); }
.k-card.k-training .k-foot,
.k-card:has(.k-stretch[href$="#training"]) .k-foot{ color:rgba(233,222,197,.72); }
.k-card.k-training .k-foot i,
.k-card:has(.k-stretch[href$="#training"]) .k-foot i{ color:var(--gold-bright, #dcb763); }
.k-card.k-training:focus-within,
.k-card:has(.k-stretch[href$="#training"]):focus-within{ outline-color:var(--gold-bright, #dcb763); }

@media (max-width:760px){
  .knowledge-grid{ gap:16px; }
  .k-card .k-tag{ margin:18px 18px 0; }
  .k-card .k-body{ padding:16px 20px 22px; }
  .k-card .k-body h3{ font-size:1.3rem; }
}
/* ==========================================================================
   (42) SPONSOR CHOICE CARD - selected (navy) state: glossy + readable
   --------------------------------------------------------------------------
   When a choice card is picked it turns navy. The member cards carry the
   ambient re-pitch that turns their ink light on navy; the sponsor card never
   did, so its eyebrow and title stayed navy-on-navy and vanished. The ink is
   re-pitched to cream/gold and the card is given a glossy glass sheen behind
   its text, so the selected state reads as intentional here and when the user
   returns to this step. (Clicking Sponsor also opens the sponsor popup.)
   ========================================================================== */
.wz-card[data-match="sponsor"].is-selected,
.wz-card[data-match="sponsor"].is-on,
.wz-card[data-match="sponsor"][aria-pressed="true"]{
  background:
    linear-gradient(148deg, rgba(255,255,255,.15) 0%, rgba(255,255,255,.035) 34%, rgba(255,255,255,0) 58%),
    radial-gradient(120% 150% at 12% 0%, rgba(46,83,125,.6) 0%, rgba(46,83,125,0) 62%),
    var(--navy, #0f2038) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.18),
    inset 0 0 0 1px rgba(201,163,78,.42),
    0 18px 40px -26px rgba(0,0,0,.6) !important;
  border-color:rgba(201,163,78,.5) !important;
}
.wz-card[data-match="sponsor"].is-selected .wz-card-top,
.wz-card[data-match="sponsor"].is-on .wz-card-top,
.wz-card[data-match="sponsor"][aria-pressed="true"] .wz-card-top,
.wz-card[data-match="sponsor"].is-selected .wz-c-t,
.wz-card[data-match="sponsor"].is-on .wz-c-t,
.wz-card[data-match="sponsor"][aria-pressed="true"] .wz-c-t{
  color:#fbf8f0 !important;
}
.wz-card[data-match="sponsor"].is-selected .wz-card-top i,
.wz-card[data-match="sponsor"].is-on .wz-card-top i,
.wz-card[data-match="sponsor"][aria-pressed="true"] .wz-card-top i{
  color:var(--gold-bright, #dcb763) !important;
}
.wz-card[data-match="sponsor"].is-selected .wz-c-p,
.wz-card[data-match="sponsor"].is-on .wz-c-p,
.wz-card[data-match="sponsor"][aria-pressed="true"] .wz-c-p{
  color:rgba(238,238,232,.86) !important;
}
.wz-card[data-match="sponsor"].is-selected .wz-c-s,
.wz-card[data-match="sponsor"].is-on .wz-c-s,
.wz-card[data-match="sponsor"][aria-pressed="true"] .wz-c-s{
  color:var(--gold-bright, #dcb763) !important;
  border-top-color:rgba(255,255,255,.16) !important;
}
/* ==========================================================================
   (43) HOME TIERS - refine the gold upper outline
   --------------------------------------------------------------------------
   Each tier card wore a flat 3px block of bright gold across its top - heavier
   and cruder than the engraved gold seam the rest of the site uses (the
   Knowledge cards, the About band). Replaced with the same soft seam: a 2px
   gradient that brightens at the centre and fades to nothing at both edges.
   ========================================================================== */
body.home .join-tiers .jt{
  border-top:0 !important;
  position:relative;
}
body.home .join-tiers .jt::before{
  content:"";
  position:absolute; left:0; right:0; top:0; height:2px; z-index:4;
  pointer-events:none;
  background:linear-gradient(90deg,
    rgba(201,163,78,0) 0%,
    rgba(201,163,78,.65) 18%,
    rgba(220,183,99,.95) 50%,
    rgba(201,163,78,.65) 82%,
    rgba(201,163,78,0) 100%);
}
/* ==========================================================================
   (44) PAGE FOLD - scroll-driven on touch, hover kept on desktop
   --------------------------------------------------------------------------
   On touch the fold's scale is written by js/mobile-fold.js into --fold on the
   row, so it grows as the row nears the centre of the screen and settles back
   as it leaves. Desktop keeps its hover rules untouched (this block is inside
   a touch/narrow media query).
   ========================================================================== */
@media (hover: none), (max-width: 760px){
  .lb-row > .lb-fold{
    transform:scale(var(--fold, 0)) !important;
    transition:transform .14s linear !important;
  }
  body.lffo-member .lb-row.is-mem > .lb-fold{
    transform:scale(var(--fold, 0)) !important;
    transition:transform .14s linear !important;
  }
}
/* ==========================================================================
   (45) SPONSOR EXPLAINER LINK - single underline, not two
   The .ta-open link drew a static ::before line AND an animated ::after line,
   reading as a double underline. Keep the animated one, drop the static base.
   ========================================================================== */
.ta-open::before{ content:none !important; }

/* ==========================================================================
   (48) APPLICATION CHOICE CARDS - the chosen card becomes an ambient plate
   --------------------------------------------------------------------------
   The selected card is the one coloured object in the group. Each kind carries
   its own ground with the same grain used on the About band: members navy,
   Partner the oxblood red it wears on its tier, Sponsor a navy ground lit gold
   so it reads as its own thing. Ink is re-pitched light on all of them.
   ========================================================================== */
.wz-card[data-match]:is(.is-selected, .is-on, [aria-pressed="true"]){
  background-color:var(--navy, #0f2038) !important;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.28'/%3E%3C/svg%3E"),
    radial-gradient(120% 130% at 18% 4%, rgba(46,83,125,.72) 0%, rgba(46,83,125,0) 60%),
    radial-gradient(115% 130% at 88% 96%, rgba(17,44,84,.9) 0%, rgba(17,44,84,0) 58%) !important;
  background-size:180px 180px, 200% 200%, 220% 220% !important;
  background-repeat:repeat, no-repeat, no-repeat !important;
  border-color:rgba(201,163,78,.5) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16), inset 0 0 0 1px rgba(201,163,78,.4), 0 18px 40px -26px rgba(0,0,0,.55) !important;
}
/* Partner keeps its oxblood red */
.wz-card[data-match="partner"]:is(.is-selected, .is-on, [aria-pressed="true"]){
  background-color:#1c1917 !important;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.26'/%3E%3C/svg%3E"),
    radial-gradient(120% 150% at 50% 26%, rgba(114,47,50,.88) 0%, rgba(114,47,50,0) 62%),
    radial-gradient(115% 130% at 86% 96%, rgba(74,30,32,.72) 0%, rgba(74,30,32,0) 58%) !important;
}
/* Sponsor: a navy ground lit gold - its own thing, good contrast */
.wz-card[data-match="sponsor"]:is(.is-selected, .is-on, [aria-pressed="true"]){
  background-color:var(--navy, #0f2038) !important;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.3'/%3E%3C/svg%3E"),
    radial-gradient(120% 130% at 16% 2%, rgba(201,163,78,.4) 0%, rgba(201,163,78,0) 56%),
    radial-gradient(120% 140% at 88% 98%, rgba(46,83,125,.6) 0%, rgba(46,83,125,0) 60%) !important;
  border-color:rgba(201,163,78,.6) !important;
}
/* ink re-pitched light on every chosen card */
.wz-card[data-match]:is(.is-selected, .is-on, [aria-pressed="true"]) .wz-card-top,
.wz-card[data-match]:is(.is-selected, .is-on, [aria-pressed="true"]) .wz-c-t{ color:#fbf8f0 !important; }
.wz-card[data-match]:is(.is-selected, .is-on, [aria-pressed="true"]) .wz-card-top i{ color:var(--gold-bright, #dcb763) !important; }
.wz-card[data-match]:is(.is-selected, .is-on, [aria-pressed="true"]) .wz-c-p{ color:rgba(238,238,232,.86) !important; }
.wz-card[data-match]:is(.is-selected, .is-on, [aria-pressed="true"]) .wz-c-s{ color:var(--gold-bright, #dcb763) !important; border-top-color:rgba(255,255,255,.16) !important; }
/* ==========================================================================
   (50) SPONSOR PANEL - rendered inline in the page, not as a modal popup
   --------------------------------------------------------------------------
   apply.js now opens #spBox with class .spx-inline and the open attribute
   instead of showModal(). These rules take it out of the top layer and seat
   it as a compact in-flow card in the application area.
   ========================================================================== */
dialog.spx.spx-inline{
  position:static !important;
  inset:auto !important;
  width:100% !important;
  height:auto !important;
  max-height:none !important;
  overflow:visible !important;
  margin:24px auto 6px !important;
  background:transparent !important;
}
dialog.spx.spx-inline::backdrop{ display:none !important; background:none !important; }
dialog.spx.spx-inline > .spx-in{
  margin:0 auto !important;
  width:100% !important;
  max-width:720px !important;
  max-height:none !important;
  border-radius:14px !important;
  box-shadow:0 0 0 1px rgba(15,32,56,.10), 0 30px 70px -42px rgba(10,23,40,.5) !important;
  animation:none !important;
}
dialog.spx.spx-inline .spx-body{ overflow:visible !important; }
dialog.spx.spx-inline .spx-stage{
  overflow:visible !important;
  max-height:none !important;
  padding:22px 30px 10px !important;
}
dialog.spx.spx-inline .spx-in,
dialog.spx.spx-inline .spx-head,
dialog.spx.spx-inline .spx-rail,
dialog.spx.spx-inline .spx-stage,
dialog.spx.spx-inline .spx-pass.is-on{ animation:none !important; transform:none !important; opacity:1 !important; }

/* (47) STEPPER - three steps spaced evenly, the active one no longer hogging */
dialog.spx.spx-inline .spx-rail{ justify-content:space-between !important; gap:10px !important; }
dialog.spx.spx-inline .spx-node.is-now{ flex:0 1 auto !important; min-width:0 !important; }
dialog.spx.spx-inline .spx-node:not(.is-now){ margin-left:0 !important; flex:0 0 auto !important; }

/* (46) SLIDER - nothing clips the handle inline; keep it compact and inside */
dialog.spx.spx-inline .spx-track{ padding-inline:2px !important; overflow:visible !important; }
dialog.spx.spx-inline .spx-in .bf-amount,
dialog.spx.spx-inline .spx-in .spx-pass,
dialog.spx.spx-inline .spx-in .bf-set{ overflow:visible !important; }
/* (50b) SPONSOR PANEL INLINE - compact spacing, both breakpoints */
dialog.spx.spx-inline .spx-stage{ padding:16px 26px 8px !important; }
dialog.spx.spx-inline .spx-in .spx-pass > * + *{ margin-top:15px !important; }
dialog.spx.spx-inline .spx-in .spx-pass > .bf-amount + *{ margin-top:16px !important; }
dialog.spx.spx-inline .spx-in .bf-amount{ margin-bottom:14px !important; }
dialog.spx.spx-inline .spx-head{ padding-bottom:2px !important; }
dialog.spx.spx-inline .spx-lead{ margin-bottom:8px !important; }
dialog.spx.spx-inline .spx-rail{ margin-top:12px !important; }
/* a slightly larger, tactile knob */
dialog.spx.spx-inline .spx-track{ --sx-knob:18px !important; }
@media (max-width:760px){
  dialog.spx.spx-inline{ margin:16px auto 4px !important; }
  dialog.spx.spx-inline > .spx-in{ max-width:100% !important; }
  dialog.spx.spx-inline .spx-stage{ padding:14px 18px 6px !important; }
}
/* ==========================================================================
   (51) APPLICATION CHOICE CARD - checkbox tick white on the dark plate
   The chosen card is a dark ambient plate; its tick was near-black. White it,
   in a gold-outlined box so it reads clearly.
   ========================================================================== */
.wz-card[data-match]:is(.is-selected,.is-on,[aria-pressed="true"]) .wz-card-mark{
  background:rgba(201,163,78,.16) !important;
  box-shadow:inset 0 0 0 1px rgba(201,163,78,.85) !important;
}
.wz-card[data-match]:is(.is-selected,.is-on,[aria-pressed="true"]) .wz-card-mark svg,
.wz-card[data-match]:is(.is-selected,.is-on,[aria-pressed="true"]) .wz-card-mark svg path,
.wz-card[data-match]:is(.is-selected,.is-on,[aria-pressed="true"]) .wz-card-mark svg polyline{
  stroke:#ffffff !important;
}

/* ==========================================================================
   (53) HEADER DROPDOWN GLOW - thinner, subtler, premium
   ========================================================================== */
.site-header .dropdown::after{ height:1.5px !important; border-radius:2px !important; }
.site-header .nav-item.open .dropdown::after{ opacity:.9 !important; filter:blur(.2px) !important; }

/* ==========================================================================
   (54) TOP SCROLL/LOADING BAR - a thinner, more elegant gold hairline
   ========================================================================== */
.scroll-progress{
  height:1.5px !important;
  background:linear-gradient(90deg, var(--gold-deep, #a07c33) 0%, var(--gold, #c9a34e) 55%, var(--gold-bright, #dcb763) 100%) !important;
  box-shadow:0 0 6px rgba(201,163,78,.45) !important;
}
@media (max-width:760px){
  .scroll-progress{ height:1.5px !important; }
}

/* ==========================================================================
   (55) PARTNERS PAGE - remove the golden animated line on the sponsorship CTA
   ========================================================================== */
body.page-id-40 .link-cta::after{ content:none !important; }
/* ==========================================================================
   (56) HEADER NAV - even, premium word spacing
   --------------------------------------------------------------------------
   The intended uppercase tracking on the nav was overridden to ~0 by a later
   sheet while its compensating negative margins stayed, so the words read a
   touch cramped and off-centre. Restore a clean, consistent tracking with a
   matching trim, and give the fitted "tight" state a little breathing room.
   ========================================================================== */
.site-header .nav-link{ letter-spacing:.1em !important; }
.site-header .nav-link > span[data-i18n]{ margin-right:-.1em !important; }
html.nav-tight .site-header .nav-menu{ gap:5px !important; }
html.nav-tight .site-header .nav-link{ letter-spacing:.07em !important; }
html.nav-tight .site-header .nav-link > span[data-i18n]{ margin-right:-.07em !important; }
/* ==========================================================================
   (57) HOME - the divider above the Membership band sits ON the colour seam
   --------------------------------------------------------------------------
   The divider band ends exactly on the seam between the pale section and the
   navy "Join the association" band, so its centred gold line read ~28px above
   the colour change. Shifting the band down by half its own height lands the
   line on the seam; a 50% transform keeps that true at every width and does
   not reflow the navy section beneath it.
   ========================================================================== */
.elementor-element-601f9ba{ transform:translateY(50%) !important; }
/* ==========================================================================
   (58) DESKTOP HEADER - refined menu type + smooth ambient gradient surface
   --------------------------------------------------------------------------
   Menu type gets a touch more size and a medium weight (not regular). The
   flat two-stop navy bar is replaced with a smooth ambient field: navy with
   two soft blue glows that drift slowly - gradient, not grain. The scroll-
   driven opacity fade (the hero transition) is untouched.
   ========================================================================== */
.site-header .nav-menu .nav-link{ font-weight:500 !important; }
html:not(.nav-tight):not(.nav-collapsed) .site-header .nav-menu .nav-link{ font-size:.82rem !important; }
html.nav-tight .site-header .nav-menu .nav-link{ font-size:12.5px !important; }

.site-header, .site-header.condensed{ background:transparent !important; }
.site-header::before{
  background:
    radial-gradient(150% 240% at 15% -80%, rgba(74,124,178,.42) 0%, rgba(74,124,178,0) 55%),
    radial-gradient(150% 240% at 90% -70%, rgba(22,54,98,.55) 0%, rgba(22,54,98,0) 58%),
    linear-gradient(180deg, #1d3f68 0%, #14305a 100%) !important;
  background-size:200% 340%, 220% 340%, 100% 100% !important;
  background-repeat:no-repeat !important;
  animation:lffoHdrDrift 26s ease-in-out infinite !important;
}
@keyframes lffoHdrDrift{
  0%, 100%{ background-position:12% 0, 88% 0, 0 0; }
  50%     { background-position:32% 0, 68% 0, 0 0; }
}
@media (prefers-reduced-motion: reduce){
  .site-header::before{ animation:none !important; }
}
/* (58b) HEADER - kill the white seam: the surface bottom must match the hero
   navy exactly (rgb(20,50,92)), and the glows stay in the upper half so the
   bottom edge is pure navy. Overlap 1px into the hero, no border, no shadow. */
.site-header::before{
  background:
    radial-gradient(140% 200% at 16% -90%, rgba(74,124,178,.38) 0%, rgba(74,124,178,0) 48%),
    radial-gradient(150% 220% at 88% -80%, rgba(30,64,110,.5) 0%, rgba(30,64,110,0) 52%),
    linear-gradient(180deg, #1f4470 0%, rgb(20,50,92) 100%) !important;
  background-size:200% 300%, 220% 300%, 100% 100% !important;
  background-repeat:no-repeat !important;
  bottom:-1px !important;
  border-bottom:0 !important;
  box-shadow:none !important;
}
/* ==========================================================================
   (60) EVENTS - Member workshops is member content: engraved navy + grain
   ========================================================================== */
.evtype:has(.ti-presentation){
  background-color:var(--navy, #0f2038) !important;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.3'/%3E%3C/svg%3E"),
    radial-gradient(120% 130% at 18% 4%, rgba(46,83,125,.72) 0%, rgba(46,83,125,0) 60%),
    radial-gradient(115% 130% at 88% 96%, rgba(17,44,84,.9) 0%, rgba(17,44,84,0) 58%) !important;
  background-size:180px 180px, 200% 200%, 220% 220% !important;
  background-repeat:repeat, no-repeat, no-repeat !important;
  border-color:rgba(201,163,78,.34) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 20px 44px -30px rgba(0,0,0,.5) !important;
}
.evtype:has(.ti-presentation) h3{ color:#fbf8f0 !important; }
.evtype:has(.ti-presentation) p{ color:rgba(238,238,232,.86) !important; }
.evtype:has(.ti-presentation) i,
.evtype:has(.ti-presentation) .ei-icon{ color:var(--gold-bright, #dcb763) !important; }
.evtype:has(.ti-presentation) span,
.evtype:has(.ti-presentation) a{ color:rgba(233,222,197,.9) !important; }

/* ==========================================================================
   (59) EVENTS CALENDAR - compact 'next season' invite
   The section towered at 108px padding around a 360px empty card. Recast as a
   compact horizontal invite: icon | heading + one line | actions.
   ========================================================================== */
.lffo-section:has(.empty-invite){ padding-block:clamp(40px,5vw,60px) !important; }
.empty-invite{
  max-width:800px !important;
  margin-inline:auto !important;
  padding:24px 30px !important;
  display:grid !important;
  grid-template-columns:auto 1fr auto !important;
  grid-template-areas:"icon head cta" "icon copy cta" !important;
  align-items:center !important;
  column-gap:26px !important; row-gap:3px !important;
  text-align:left !important;
}
.empty-invite .ei-leaves{ display:none !important; }
.empty-invite .ei-icon{ grid-area:icon !important; font-size:2rem !important; margin:0 !important; align-self:center !important; }
.empty-invite h3.gilded-head{ grid-area:head !important; margin:0 !important; font-size:1.22rem !important; }
.empty-invite p{ grid-area:copy !important; margin:2px 0 0 !important; font-size:.88rem !important; line-height:1.5 !important; max-width:54ch !important; }
.empty-invite > div:last-of-type{ grid-area:cta !important; display:flex !important; flex-direction:column !important; gap:8px !important; align-items:stretch !important; white-space:nowrap; }
@media (max-width:720px){
  .empty-invite{
    grid-template-columns:1fr !important;
    grid-template-areas:"icon" "head" "copy" "cta" !important;
    text-align:center !important; justify-items:center !important; row-gap:8px !important;
    padding:24px 22px !important;
  }
  .empty-invite > div:last-of-type{ flex-direction:row !important; align-items:center !important; }
}