/* Costa & Silva — component CSS for Elementor Site Settings → Custom CSS
 * Generated by wp-migration/lib/make_custom_css.py — do not hand-edit.
 * Everything else (layout, spacing, colour, type) is handled by Elementor
 * Global Styles; see wp-migration/lib/tokens.json.
 */

/* --- WordPress / Elementor bridge ------------------------------------- */
/* Cards are Elementor columns here, not .card / .deal-card / .founder-card
   elements, so the rules the original scoped to those wrappers need
   unscoped copies. The card box itself is set with native column controls. */
.status{display:inline-block;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;padding:.25rem .6rem;border-radius:var(--radius);width:fit-content}
.status.open{background:#e8f1e8;color:#2e5c2e}
.status.under-offer{background:#fdf4e0;color:#8b6914}
.status.reserved{background:var(--grey-100);color:var(--grey-700)}
.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-3);padding:var(--s-4) 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.metric{display:flex;flex-direction:column;gap:.2rem}
.metric .label{font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--grey-500)}
.metric .value{font-family:var(--font-serif);font-size:1.25rem;color:var(--navy)}
.deal-image,.card-image{width:100%;height:180px;background-size:cover;background-position:center;background-color:var(--grey-100);filter:saturate(.85)}
.founder-avatar{width:200px;height:200px;border-radius:50%;background:var(--gold);background-size:cover;background-position:center 25%;background-repeat:no-repeat;filter:grayscale(.1) contrast(1.05);box-shadow:0 0 0 4px var(--navy),0 0 0 5px var(--gold),0 10px 30px #0003;margin:0 0 var(--s-5)}
.founder-role{color:var(--gold);font-size:.875rem;letter-spacing:.16em;text-transform:uppercase;margin-bottom:var(--s-3)}
.founder-details{list-style:none;padding:0;margin:0;color:var(--cream)}
.founder-details li{padding:.35rem 0;border-top:1px solid rgba(221,230,210,.18)}
.founder-details a{color:var(--cream)}
.elementor-widget-html .flag{display:inline-block;vertical-align:-3px;margin-right:.35rem}

/* Elementor and Hello Elementor both ship opinionated defaults that outrank a
   plain selector, so these are deliberately specific. Sections carry cs-* classes
   emitted by build_elementor.py; target those rather than Elementor's generated
   per-element selectors, which are not stable. */

/* The theme prints the page title above the content; our hero already has the H1. */
.page .page-header,
.elementor-page .page-header { display: none !important; }

/* Headings and body copy */
.elementor-widget-heading .elementor-heading-title {
  color: var(--navy);
  font-family: var(--font-serif);
  font-weight: 500;
  line-height: var(--lh-snug);
}
.elementor-widget-text-editor {
  color: var(--grey-700);
  font-family: var(--font-sans);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
}

/* Columns are flex items that shrink rather than wrap, so five 33% cards
   squeezed into one row of 20% slivers. Let them wrap like the original grid. */
.elementor-section .elementor-container { flex-wrap: wrap; }
.elementor-section .elementor-column { flex-shrink: 0; }

/* Button runs sit side by side, as on the original. Elementor makes every
   widget full-width, so two CTAs stacked like a list. Widgets that follow a
   button are still full-width, so they drop to their own line. */
.elementor-widget-wrap > .elementor-widget-button { width: auto; max-width: 100%; margin-right: 12px; }

/* Founder card: portrait on the left, everything else on the right — the
   original two-column layout. The column is the card; lay its widgets out
   as a grid with the portrait spanning every row. */
@media (min-width: 900px) {
  .elementor-column:has(.founder-avatar) > .elementor-widget-wrap {
    display: grid; grid-template-columns: 240px 1fr; column-gap: 56px; align-content: start;
  }
  .elementor-column:has(.founder-avatar) > .elementor-widget-wrap > .elementor-element { grid-column: 2; }
  .elementor-column:has(.founder-avatar) > .elementor-widget-wrap > .elementor-element:has(.founder-avatar) {
    grid-column: 1; grid-row: 1 / span 12; align-self: start;
  }
  .elementor-column:has(.founder-avatar) .founder-avatar { width: 240px; height: 240px; margin: 0; }
}

/* --- Audit fixes, Oct 2026 ------------------------------------------- */

/* Headings promoted to fix the outline keep the size of the level they were. */
.cs-as-h3 .elementor-heading-title { font-size: var(--fs-h3) !important; }
.cs-as-h4 .elementor-heading-title { font-size: var(--fs-h4) !important; }
.pillar h3 { font-family: var(--font-sans); font-size: 1rem; font-weight: 600;
  letter-spacing: .02em; color: var(--navy); margin: 0 0 var(--s-2); line-height: 1.4; }

/* Small gold text failed contrast on cream (2.1:1 and 1.8:1; WCAG AA needs
   4.5:1). Scoped to the light bands only — the same gold on dark green
   passes and is left alone. #6F5726 measures 4.6:1+ on both creams. */
:root { --gold-text: #6F5726; }
.cs-band-plain, .cs-band-tint { --gold-deep: var(--gold-text); }
:is(.cs-band-plain, .cs-band-tint) :is(.eyebrow, .meta, .approach-eyebrow, .event-chip,
  .pe-date, .event-date .mon, .credential-category, .journey-num, .insight-body .meta)
  { color: var(--gold-text) !important; }
:is(.cs-band-plain, .cs-band-tint) .event-chip { border-color: rgba(111,87,38,.45); }
:is(.cs-band-plain, .cs-band-tint) a[style*="gold"] { color: var(--gold-text) !important; }
.cs-404-links .eyebrow { color: var(--gold-text); }

/* Gold buttons: cream on gold is 2.1:1. Navy on gold is 6.9:1. */
.cs-btn-gold .elementor-button,
.cs-btn-gold .elementor-button .elementor-button-text,
.cs-btn-gold .elementor-button .elementor-button-content-wrapper { color: var(--navy) !important; }
.cta-block .btn--primary, .cs-404 .btn--primary { color: var(--navy); }

.metric .label, .pe-loc { color: #595959; }

/* Founder social icon(s) beside the credential badges. */
.founder-socials { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.founder-socials .cs-social { display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border: 1px solid rgba(221,230,210,.3); border-radius: 2px; color: var(--cream); }
.founder-socials .cs-social:hover { border-color: var(--gold); color: var(--gold); }
.founder-socials .cs-social svg { width: 18px; height: 18px; }
.trust-band-badge svg { width: 26px; height: 26px; color: var(--cream); }

/* Mobile tap targets: links inside running text and lists get a 44px-ish
   hit area without changing the layout. */
@media (max-width: 767px) {
  .elementor-widget-text-editor li a, .elementor-widget-text-editor p a,
  .cs-footer-col a, .footer-legal a { display: inline-block; padding: 8px 0; }
}

/* Branded 404 */
.cs-404 .cs-404-inner { max-width: 1120px; margin: 0 auto; padding: 0 24px; }
.cs-404-hero { background: var(--navy); color: var(--cream); padding: 120px 0 96px; }
.cs-404-hero h1 { color: var(--cream); font-family: var(--font-serif); font-weight: 500;
  font-size: clamp(2rem, 4vw, 3.25rem); line-height: 1.15; margin: 16px 0; max-width: 22ch; }
.cs-404-hero p { max-width: 56ch; opacity: .9; }
.cs-404-hero .eyebrow { color: var(--gold); }
.cs-404-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 32px; }
.cs-404-hero .btn--secondary { color: var(--cream); border-color: var(--cream); }
.cs-404-links { padding: 96px 0; background: var(--white); }
.cs-404-card { display: flex; flex-direction: column; gap: 8px; padding: 32px; background: #fff;
  border-top: 3px solid var(--navy); box-shadow: var(--shadow-sm); text-decoration: none; transition: all .25s ease; }
.cs-404-card:hover { transform: translateY(-3px); border-top-color: var(--gold); box-shadow: var(--shadow-md); }
.cs-404-card h2 { font-family: var(--font-serif); font-size: 1.5rem; font-weight: 500; color: var(--navy); margin: 0; }
.cs-404-card p { color: var(--grey-700); margin: 0; }

/* Buttons — Elementor's default is its own green. */
.elementor-widget-button .elementor-button,
.elementor-button-wrapper .elementor-button {
  background-color: var(--navy);
  color: var(--white);
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: .9375rem;
  letter-spacing: .01em;
  border-radius: var(--radius);
  padding: .8rem 1.6rem;
  border: 1px solid var(--navy);
  transition: background-color .2s ease, color .2s ease;
}
.elementor-widget-button .elementor-button:hover,
.elementor-widget-button .elementor-button:focus {
  background-color: var(--gold);
  border-color: var(--gold);
  color: var(--navy);
}

/* Elementor wraps the label in its own spans, which inherit the theme's link
   colour rather than the button's. Without this the text sits dark-on-dark and
   the button reads as an empty block. Covers every state and both wrappers. */
.elementor-button,
.elementor-button:link,
.elementor-button:visited,
.elementor-button .elementor-button-text,
.elementor-button .elementor-button-content-wrapper,
a.elementor-button .elementor-button-text { color: var(--white); }

.elementor-button:hover,
.elementor-button:focus,
.elementor-button:hover .elementor-button-text,
.elementor-button:focus .elementor-button-text,
.elementor-button:hover .elementor-button-content-wrapper { color: var(--navy); }

/* On the dark bands the secondary button is an outline, so it keeps cream text
   on hover rather than flipping to navy on navy. */
.cs-band-dark .elementor-button:hover .elementor-button-text,
.cs-hero-image .elementor-button:hover .elementor-button-text { color: var(--navy); }

/* Hero readability comes from the section's native background overlay
   (set in build_elementor.section). A CSS scrim used to sit here too; it never
   rendered because section classes weren't being written, and turning it on
   now would double-darken every hero, so it is gone. */

/* Light type on the dark bands. */
.cs-hero-image .elementor-widget-heading .elementor-heading-title,
.cs-hero-plain .elementor-widget-heading .elementor-heading-title,
.cs-band-dark  .elementor-widget-heading .elementor-heading-title { color: var(--cream); }
.cs-hero-image .elementor-widget-text-editor,
.cs-hero-plain .elementor-widget-text-editor,
.cs-band-dark  .elementor-widget-text-editor { color: var(--cream); opacity: .92; }
.cs-hero-image .eyebrow,
.cs-band-dark  .eyebrow { color: var(--gold); }

/* --- Site header ------------------------------------------------------- */
.site-header {
  background: var(--navy);
  padding: 0 var(--s-6);
  box-shadow: none;
  border-bottom: 1px solid rgba(221,230,210,.10);
}
.site-header .header-inner {
  max-width: var(--container);
  margin: 0 auto;
  padding: var(--s-4) 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-6);
}
.site-header .site-branding { display: flex; align-items: center; }
.site-header .site-title a {
  color: var(--cream);
  font-family: var(--font-serif);
  font-size: 1.35rem;
  font-weight: 500;
  letter-spacing: .01em;
  text-decoration: none;
}
.site-header .site-title a:hover { color: var(--gold); }
.site-header .site-description { display: none; }
.site-header .custom-logo-link img,
.site-header .site-logo img { max-height: 52px; width: auto; }

/* Top-level navigation */
.site-navigation .menu { display: flex; gap: var(--s-6); align-items: center; margin: 0; padding: 0; list-style: none; }
.site-navigation .menu > li > a {
  color: var(--cream);
  font-family: var(--font-sans);
  font-size: .9375rem;
  font-weight: 400;
  text-decoration: none;
  padding: var(--s-2) 0;
  border-bottom: 1px solid transparent;
  white-space: nowrap;
  transition: color .18s ease, border-color .18s ease;
}
.site-navigation .menu > li > a:hover,
.site-navigation .menu > li.current-menu-item > a,
.site-navigation .menu > li.current-page-ancestor > a {
  color: var(--gold);
  border-bottom-color: var(--gold);
}

/* Services dropdown */
.site-navigation .menu li { position: relative; }
.site-navigation .menu .sub-menu {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 268px;
  background: var(--navy);
  border: 1px solid rgba(201,169,97,.26);
  border-radius: var(--radius);
  padding: var(--s-3) 0;
  margin: 0;
  list-style: none;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-4px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s;
  z-index: 200;
  box-shadow: 0 12px 32px rgba(6,26,17,.28);
}
.site-navigation .menu li:hover > .sub-menu,
.site-navigation .menu li:focus-within > .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.site-navigation .menu .sub-menu a {
  display: block;
  color: var(--cream);
  font-family: var(--font-sans);
  font-size: .9375rem;
  padding: var(--s-3) var(--s-5);
  text-decoration: none;
  white-space: nowrap;
}
.site-navigation .menu .sub-menu a:hover { color: var(--gold); background: rgba(201,169,97,.08); }

@media (max-width: 1024px) {
  .site-navigation .menu { gap: var(--s-4); }
  .site-navigation .menu > li > a { font-size: .875rem; }
}
@media (max-width: 860px) {
  .site-header .header-inner { flex-direction: column; align-items: flex-start; gap: var(--s-4); }
  .site-navigation .menu { flex-wrap: wrap; gap: var(--s-4); }
  .site-navigation .menu .sub-menu {
    position: static; opacity: 1; visibility: visible; transform: none;
    border: none; box-shadow: none; padding: 0 0 0 var(--s-4); min-width: 0;
  }
}

/* --- Trust band marquee ------------------------------------------------ */
/* The logo strip scrolls right to left. The track holds two copies of the
   badges, so when the first copy has travelled its own width the second is
   exactly where the first began and the loop has no visible seam. */
.trust-band.cs-marquee { padding: var(--s-7) 0; overflow: hidden; }
.trust-band .trust-band-header {
  max-width: var(--container); margin: 0 auto var(--s-5); padding: 0 var(--s-6);
  font-size: .75rem; letter-spacing: .18em; text-transform: uppercase; color: var(--gold);
}
.cs-marquee-viewport {
  overflow: hidden;
  /* fade the strip out at both edges rather than cutting it off hard */
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
          mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.cs-marquee-track {
  display: flex;
  width: max-content;
  gap: var(--s-4);
  animation: cs-scroll 42s linear infinite;
}
.cs-marquee:hover .cs-marquee-track { animation-play-state: paused; }
.cs-marquee-track .trust-band-badge {
  flex: 0 0 auto;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: var(--s-2);
  min-width: 170px;
  padding: var(--s-4) var(--s-5);
  text-align: center; text-decoration: none;
  border: 1px solid rgba(201,169,97,.2);
  border-radius: var(--radius);
  background: rgba(255,255,255,.03);
  transition: border-color .3s ease, background .3s ease;
}
.cs-marquee-track .trust-band-badge:hover {
  border-color: var(--gold); background: rgba(201,169,97,.08);
}
.cs-marquee-track .trust-band-badge img {
  height: 26px; max-width: 90px; object-fit: contain;
  filter: brightness(0) invert(1);
}
.cs-marquee-track .trust-band-badge .name {
  font-size: .6875rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--cream); opacity: .75;
}

@keyframes cs-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* Respect a reduced-motion preference — the strip simply sits still. */
@media (prefers-reduced-motion: reduce) {
  .cs-marquee-track { animation: none; flex-wrap: wrap; justify-content: center; width: auto; }
  .cs-marquee-viewport { -webkit-mask-image: none; mask-image: none; }
}

/* Flag images sit where the emoji used to. */
.market-pill img.flag, .market-pill--image img.flag {
  width: 24px; height: auto; border-radius: 2px; flex: none;
  box-shadow: 0 0 0 1px rgba(15,42,31,.12);
}

/* --- Enquiry forms ----------------------------------------------------- */
.cs-form { max-width: 640px; }
.cs-field { margin: 0 0 var(--s-5); }
.cs-field label {
  display: block;
  font-family: var(--font-sans);
  font-size: .8125rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--navy);
  margin-bottom: var(--s-2);
}
.cs-field input, .cs-field select, .cs-field textarea {
  width: 100%;
  font-family: var(--font-sans);
  font-size: 1rem;
  color: var(--ink);
  background: var(--white);
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  padding: .8rem 1rem;
  transition: border-color .18s ease, box-shadow .18s ease;
}
.cs-field input:focus, .cs-field select:focus, .cs-field textarea:focus {
  outline: none;
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(201,169,97,.16);
}
.cs-field textarea { resize: vertical; min-height: 140px; }
.cs-field--check label {
  display: flex;
  gap: var(--s-3);
  align-items: flex-start;
  text-transform: none;
  letter-spacing: 0;
  font-size: .9375rem;
  color: var(--grey-700);
  line-height: 1.5;
}
.cs-field--check input { width: auto; margin-top: .2rem; flex: none; }
.cs-req { color: var(--gold); }
.cs-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
/* The submit is a real <button>, so it inherits none of Elementor's button
   styling and the theme leaves it unstyled. Give it the brand button directly. */
.cs-form-submit,
button.cs-form-submit {
  display: inline-block;
  margin-top: var(--s-3);
  cursor: pointer;
  background: var(--navy);
  color: var(--white);
  border: 1px solid var(--navy);
  border-radius: var(--radius);
  font-family: var(--font-sans);
  font-size: .9375rem;
  font-weight: 500;
  letter-spacing: .01em;
  padding: .85rem 1.8rem;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.cs-form-submit:hover,
.cs-form-submit:focus {
  background: var(--gold);
  border-color: var(--gold);
  color: var(--navy);
}
/* GoCardless and friends sit in a wide, mostly-empty canvas; let the wider
   marks use the full badge width rather than being squeezed to nothing. */
.cs-marquee-track .trust-band-badge img { max-width: 110px; }
.cs-form-note {
  padding: var(--s-4) var(--s-5);
  border-radius: var(--radius);
  margin-bottom: var(--s-5);
  font-size: .9375rem;
}
.cs-form-note--ok  { background: #eef4e6; border-left: 3px solid var(--gold); color: var(--navy); }
.cs-form-note--err { background: #fcf0f1; border-left: 3px solid #b32d2e; color: #6b2224; }

/* --- Footer ------------------------------------------------------------ */
.cs-footer { background: var(--navy-deep); color: var(--cream); padding: var(--s-9) var(--s-6) var(--s-6); }
.cs-footer-inner { max-width: var(--container); margin: 0 auto; }
.cs-footer a { color: var(--cream); text-decoration: none; }
.cs-footer a:hover { color: var(--gold); }

.cs-values {
  display: flex; flex-wrap: wrap; justify-content: center;
  gap: var(--s-5); list-style: none; margin: 0 0 var(--s-7); padding: 0;
}
.cs-values li {
  font-size: .75rem; letter-spacing: .18em; text-transform: uppercase; color: var(--gold);
}
.cs-values li + li::before { content: "·"; margin-right: var(--s-5); opacity: .5; }

.cs-footer-grid {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 1fr;
  gap: var(--s-7);
  padding-top: var(--s-6);
  border-top: 1px solid rgba(221,230,210,.14);
}
.cs-footer-logo, .cs-footer-brand img { max-width: 190px; height: auto; margin-bottom: var(--s-4); }
.cs-footer-wordmark {
  display: block; font-family: var(--font-serif); font-size: 1.3rem;
  color: var(--cream); margin-bottom: var(--s-4);
}
.cs-footer-wordmark em { color: var(--gold); font-style: normal; letter-spacing: .14em; font-size: .8em; }
.cs-footer-brand p { font-size: .9375rem; line-height: 1.6; color: var(--cream); opacity: .78; margin: 0 0 var(--s-3); }
.cs-markets { font-size: .75rem !important; letter-spacing: .14em; text-transform: uppercase; opacity: .55 !important; }

.cs-footer-col h4,
.cs-footer-col .cs-footer-heading {
  font-family: var(--font-sans); font-size: .75rem; font-weight: 500;
  letter-spacing: .16em; text-transform: uppercase; color: var(--gold);
  margin: 0 0 var(--s-4);
}
.cs-footer-col ul { list-style: none; margin: 0; padding: 0; }
.cs-footer-col li { margin-bottom: var(--s-3); }
.cs-footer-col a { font-size: .9375rem; opacity: .85; }
.cs-footer-col a:hover { opacity: 1; }
.cs-address { font-style: normal; font-size: .9375rem; line-height: 1.6; opacity: .8; margin-top: var(--s-4); }
.cs-address strong { display: block; color: var(--cream); margin-bottom: 2px; }
.cs-social { margin-top: var(--s-4); display: flex; gap: var(--s-4); font-size: .875rem; }

.cs-legal {
  margin-top: var(--s-6); padding-top: var(--s-5);
  border-top: 1px solid rgba(221,230,210,.14);
  font-size: .75rem; line-height: 1.6; color: var(--cream); opacity: .62; max-width: 78ch;
}
.cs-footer-base {
  display: flex; flex-wrap: wrap; gap: var(--s-4) var(--s-6);
  align-items: center; justify-content: space-between;
  margin-top: var(--s-5); padding-top: var(--s-5);
  border-top: 1px solid rgba(221,230,210,.14);
  font-size: .75rem; color: var(--cream); opacity: .62;
}
.cs-footer-legal-links a { margin-right: var(--s-4); }
.cs-strapline { opacity: .9; }

@media (max-width: 1024px) { .cs-footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px)  {
  .cs-footer-grid { grid-template-columns: 1fr; gap: var(--s-6); }
  .cs-values { gap: var(--s-3); }
  .cs-values li + li::before { margin-right: var(--s-3); }
  .cs-footer-base { flex-direction: column; align-items: flex-start; }
}

/* design tokens — required by the component rules below */
:root{--navy: #0F2A1F;--navy-deep: #061A11;--navy-light: #1A3D2E;--moss: #355945;--sage: #6B8770;--sage-pale: #B7C6B3;--cream: #DDE6D2;--cream-soft: #ECF1E2;--gold: #C9A961;--gold-deep: #A88846;--ink: #1A1A1A;--ink-soft: #2E2E2E;--grey-900: #1F1F1F;--grey-700: #4A4A4A;--grey-500: #777777;--grey-300: #BFC4BC;--grey-100: #DEE3D9;--rule: #C9D0C4;--white: #F4F8EC;--font-serif: "Cormorant Garamond", "Georgia", "Times New Roman", serif;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", Consolas, monospace;--fs-eyebrow: .75rem;--fs-body: 1.0625rem;--fs-lead: 1.25rem;--fs-h4: 1.25rem;--fs-h3: 1.625rem;--fs-h2: 2.25rem;--fs-h1: 3.5rem;--fs-display: 5rem;--lh-tight: 1.08;--lh-snug: 1.25;--lh-body: 1.65;--s-1: .25rem;--s-2: .5rem;--s-3: .75rem;--s-4: 1rem;--s-5: 1.5rem;--s-6: 2rem;--s-7: 3rem;--s-8: 4rem;--s-9: 6rem;--s-10: 8rem;--container: 1240px;--container-narrow: 880px;--container-prose: 720px;--radius: 2px;--shadow-sm: 0 1px 2px rgba(15,42,31,.04), 0 2px 8px rgba(15,42,31,.06);--shadow-md: 0 4px 12px rgba(15,42,31,.08), 0 12px 32px rgba(15,42,31,.08)}

/* components */
html,body{height:100%}
body{font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);color:var(--ink);background:var(--cream-soft);font-feature-settings:"kern" 1,"liga" 1,"calt" 1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
h1,h2,h3,h4,.display{font-family:var(--font-serif);font-weight:500;color:var(--navy);letter-spacing:-.01em}
h1{font-size:var(--fs-h1);line-height:var(--lh-tight)}
h2{font-size:var(--fs-h2);line-height:var(--lh-snug)}
h3{font-size:var(--fs-h3);line-height:var(--lh-snug)}
h4{font-size:var(--fs-h4);line-height:var(--lh-snug)}
.eyebrow{font-family:var(--font-sans);font-size:var(--fs-eyebrow);letter-spacing:.18em;text-transform:uppercase;color:var(--gold-deep);font-weight:600}
.lead{font-family:var(--font-serif);font-size:var(--fs-lead);line-height:1.45;color:var(--ink-soft);font-weight:400}
.prose p+p{margin-top:var(--s-4)}
.prose h2,.prose h3{margin-top:var(--s-7);margin-bottom:var(--s-4)}
.section--navy{background:var(--navy);color:var(--cream)}
.section--navy h1,.section--navy h2,.section--navy h3,.section--navy h4{color:var(--cream)}
.section--navy .eyebrow{color:var(--gold)}
.btn{display:inline-flex;align-items:center;gap:var(--s-2);padding:.95rem 1.75rem;font-family:var(--font-sans);font-size:.9375rem;font-weight:500;letter-spacing:.02em;border-radius:var(--radius);transition:all .2s ease;border:1px solid transparent;cursor:pointer}
.btn--primary{background:var(--navy);color:var(--cream)}
.btn--primary:hover{background:var(--navy-deep);transform:translateY(-1px);box-shadow:var(--shadow-md)}
.btn--secondary{background:transparent;color:var(--navy);border-color:var(--navy)}
.btn--secondary:hover{background:var(--navy);color:var(--cream)}
.btn--ghost{background:transparent;color:var(--navy);padding-left:0;padding-right:0}
.btn--ghost:after{content:"→";transition:transform .2s;margin-left:.25em}
.btn--ghost:hover:after{transform:translate(4px)}
.btn--gold{background:var(--gold);color:var(--white)}
.btn--gold:hover{background:var(--gold-deep)}
.section--navy .btn--secondary{color:var(--cream);border-color:var(--cream)}
.section--navy .btn--secondary:hover{background:var(--cream);color:var(--navy)}
.grid{display:grid;gap:var(--s-6)}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.grid-4{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.card{background:var(--white);padding:var(--s-6);border-radius:var(--radius);border-top:3px solid var(--navy);box-shadow:var(--shadow-sm);transition:all .25s ease;display:flex;flex-direction:column;gap:var(--s-4)}
.card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-top-color:var(--gold)}
.card h3{font-size:1.375rem}
.card .eyebrow{color:var(--gold-deep)}
.pillar{padding:var(--s-5) 0;border-top:1px solid var(--rule)}
.pillar h4{font-family:var(--font-sans);font-size:1rem;font-weight:600;letter-spacing:.02em;color:var(--navy);margin-bottom:var(--s-2)}
.pillar p{color:var(--grey-700)}
.cta-block{background:var(--navy);color:var(--cream);padding:var(--s-8) var(--s-6);border-radius:var(--radius);display:grid;gap:var(--s-4);text-align:center}
.cta-block h2{color:var(--cream);margin-bottom:var(--s-2)}
.cta-block p{color:var(--cream);opacity:.85;max-width:50ch;margin:0 auto}
.cta-block .btn--primary{background:var(--gold);color:var(--white)}
.cta-block .btn--primary:hover{background:var(--gold-deep)}
.two-col-balanced{display:grid;grid-template-columns:1fr;gap:var(--s-7)}
.checklist{list-style:none;padding:0}
.checklist li{position:relative;padding-left:1.5em;margin-bottom:var(--s-2);line-height:1.55}
.checklist li:before{content:"—";position:absolute;left:0;color:var(--gold);font-weight:600}
.deal-card{background:var(--white);border:1px solid var(--rule);border-radius:var(--radius);padding:var(--s-6);display:flex;flex-direction:column;gap:var(--s-3)}
.deal-card .status{display:inline-block;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;padding:.25rem .6rem;border-radius:var(--radius);width:fit-content}
.deal-card .status.open{background:#e8f1e8;color:#2e5c2e}
.deal-card .status.under-offer{background:#fdf4e0;color:#8b6914}
.deal-card .status.reserved{background:var(--grey-100);color:var(--grey-700)}
.deal-card .metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-3);padding:var(--s-4) 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.deal-card .metric{display:flex;flex-direction:column;gap:2px}
.deal-card .metric .label{font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--grey-500)}
.deal-card .metric .value{font-family:var(--font-serif);font-size:1.25rem;color:var(--navy)}
.deal-card{padding:0;overflow:hidden}
.deal-card .deal-image{width:100%;height:180px;background-size:cover;background-position:center;background-color:var(--grey-100);filter:saturate(.85)}
.deal-card-body{padding:var(--s-6);display:flex;flex-direction:column;gap:var(--s-3)}
.card-with-image{padding:0;overflow:hidden}
.card-image{width:100%;height:180px;background-size:cover;background-position:center;filter:saturate(.85)}
.card-body{padding:var(--s-6);display:flex;flex-direction:column;gap:var(--s-3);flex:1}
.split-block{display:grid;grid-template-columns:1fr;gap:0;align-items:stretch}
.split-block .split-image{min-height:380px;background-size:cover;background-position:center;filter:saturate(.85)}
.split-block .split-content{padding:var(--s-8) var(--s-7);display:flex;flex-direction:column;justify-content:center}
.insight-card-thumb{display:flex;flex-direction:column;gap:var(--s-3);background:var(--white);border:1px solid var(--rule);border-radius:var(--radius);overflow:hidden;transition:all .25s ease;text-decoration:none;color:inherit}
.insight-card-thumb:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
.insight-card-thumb .thumb{width:100%;height:180px;background-size:cover;background-position:center;filter:saturate(.85)}
.insight-card-thumb .insight-body{padding:var(--s-5);display:flex;flex-direction:column;gap:var(--s-2);flex:1}
.insight-card-thumb .meta{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-deep);font-weight:600}
.insight-card-thumb h3{font-size:1.25rem}
.insight-card-thumb h3 a:hover{color:var(--gold-deep)}
.card-with-image .card-image,.deal-card .deal-image,.insight-card-thumb .thumb{transition:transform .7s cubic-bezier(.22,.61,.36,1),filter .7s ease;transform-origin:center}
.card-with-image:hover .card-image,.deal-card:hover .deal-image,.insight-card-thumb:hover .thumb{transform:scale(1.045);filter:saturate(.95)}
.split-image{transition:transform 1.2s cubic-bezier(.22,.61,.36,1)}
.split-block:hover .split-image{transform:scale(1.025)}
.btn--ghost:after{display:inline-block;transition:transform .3s cubic-bezier(.22,.61,.36,1)}
.btn--ghost:hover:after{transform:translate(6px)}
.deal-card .status.open{animation:softPulse 3.2s ease-in-out infinite}
.cta-block .btn--primary{transition:transform .3s ease,background-color .3s ease,box-shadow .3s ease}
.cta-block .btn--primary:hover{transform:translateY(-2px);box-shadow:0 8px 20px #b8956a4d}
.section .eyebrow,.split-content .eyebrow{position:relative;padding-left:0;transition:padding-left .6s cubic-bezier(.22,.61,.36,1)}
.card-with-image .card-image{transition:transform 1.1s cubic-bezier(.22,.61,.36,1),filter .7s ease}
.approach-pillar{display:flex;flex-direction:column;gap:var(--s-2);padding:var(--s-6);background:var(--cream);border-left:3px solid var(--gold);border-radius:var(--radius)}
.approach-pillar .approach-eyebrow{font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-deep);font-weight:600}
.approach-pillar h3{font-family:var(--font-serif);font-size:1.5rem;color:var(--navy)}
.market-pill{display:flex;flex-direction:column;align-items:center;gap:var(--s-2);padding:var(--s-5) var(--s-3);background:var(--cream);border-radius:var(--radius);border-top:2px solid var(--gold)}
.market-pill .flag{font-size:2rem;line-height:1}
.market-pill .country{font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--navy);font-weight:600}
.founder-card{display:grid;grid-template-columns:1fr;gap:var(--s-7);padding:var(--s-8) var(--s-7);background:var(--navy);color:var(--cream);border-radius:var(--radius);align-items:center;position:relative;overflow:hidden}
.founder-card:before{content:"";position:absolute;top:0;right:0;width:240px;height:240px;background:radial-gradient(circle at top right,rgba(201,169,97,.18),transparent 70%);pointer-events:none}
.founder-card .founder-avatar{width:240px;height:240px;border-radius:50%;background:var(--gold);background-size:cover;background-position:center 25%;background-repeat:no-repeat;filter:grayscale(.1) contrast(1.05);display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-size:5rem;color:var(--navy);font-weight:500;position:relative;box-shadow:0 0 0 4px var(--navy),0 0 0 5px var(--gold),0 10px 30px #0003;flex-shrink:0;margin:0 auto}
.founder-card h3{color:var(--cream)}
.founder-card .founder-role{color:var(--gold);font-size:.875rem;letter-spacing:.16em;text-transform:uppercase;margin-bottom:var(--s-3)}
.founder-card ul.founder-details{list-style:none;padding:0;margin:var(--s-4) 0 0 0;display:grid;gap:var(--s-2);font-size:.9375rem}
.founder-card ul.founder-details li{display:flex;gap:var(--s-3);align-items:center;opacity:.92}
.founder-card ul.founder-details li:before{content:"";width:16px;height:1px;background:var(--gold);display:inline-block}
.market-pill--image{padding:0;background:var(--cream);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;align-items:stretch;gap:0;position:relative;transition:transform .4s cubic-bezier(.22,.61,.36,1),box-shadow .4s ease;text-decoration:none;color:inherit}
.market-pill--image:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
.market-pill--image .market-image{width:100%;height:180px;background-size:cover;background-position:center;filter:saturate(.9) brightness(.92);transition:transform .8s cubic-bezier(.22,.61,.36,1),filter .4s ease}
.market-pill--image:hover .market-image{transform:scale(1.05);filter:saturate(1) brightness(1)}
.market-pill--image .market-meta{padding:var(--s-4) var(--s-4) var(--s-5);display:flex;align-items:center;gap:var(--s-3);background:var(--cream);border-top:2px solid var(--gold)}
.market-pill--image .flag{font-size:1.5rem;line-height:1}
.market-pill--image .country{font-size:.8125rem;letter-spacing:.18em;text-transform:uppercase;color:var(--navy);font-weight:600}
.markets-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s-4)}
.markets-grid .market-pill--image .market-image{height:160px}
.markets-grid .market-pill--image .market-meta{padding:var(--s-3) var(--s-4)}
.founder-roles{display:flex;flex-wrap:wrap;gap:var(--s-2);margin:var(--s-3) 0 var(--s-4)}
.founder-roles .role-pill{font-size:.6875rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;padding:.3rem .7rem;background:#c9a96126;color:var(--gold);border:1px solid rgba(201,169,97,.4);border-radius:999px}
.founder-socials{display:flex;gap:var(--s-3);margin-top:var(--s-5);padding-top:var(--s-4);border-top:1px solid rgba(201,169,97,.25)}
.founder-socials a{display:inline-flex;align-items:center;gap:var(--s-2);font-size:.8125rem;letter-spacing:.08em;text-transform:uppercase;color:var(--cream);opacity:.85;font-weight:500;padding:.5rem .9rem;border:1px solid rgba(245,239,230,.2);border-radius:var(--radius);transition:all .25s ease}
.founder-socials a:hover{background:var(--gold);color:var(--navy);border-color:var(--gold);opacity:1}
.founder-socials svg{width:14px;height:14px}
.journey-flow{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--s-3);padding:var(--s-5) 0;background:var(--cream);border-radius:var(--radius);border-top:3px solid var(--gold);border-bottom:1px solid var(--rule);padding:var(--s-7) var(--s-5)}
.journey-step{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:90px;padding:var(--s-3) var(--s-2)}
.journey-num{font-family:var(--font-sans);font-size:.6875rem;letter-spacing:.14em;color:var(--gold-deep);font-weight:600}
.journey-label{font-family:var(--font-serif);font-size:1.125rem;color:var(--navy);font-weight:500;letter-spacing:.02em}
.journey-arrow{color:var(--gold);font-size:1.25rem;font-weight:300}
.credentials-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--s-5)}
.credential-card{background:var(--white);padding:var(--s-6);border-radius:var(--radius);border-top:3px solid var(--gold);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:var(--s-3);transition:transform .3s ease,box-shadow .3s ease;position:relative;overflow:hidden}
.credential-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
.credential-card--pending{border-top-color:var(--sage);opacity:.92}
.credential-badge{position:relative;width:56px;height:56px;border-radius:50%;background:#c9a9611f;border:1px solid rgba(201,169,97,.35);display:flex;align-items:center;justify-content:center;color:var(--gold-deep);margin-bottom:var(--s-2)}
.credential-badge svg{width:26px;height:26px}
.credential-card--pending .credential-badge{background:#6b877024;border-color:#6b877066;color:var(--sage)}
.credential-status{position:absolute;top:-8px;right:-34px;background:var(--sage);color:var(--white);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:999px;font-weight:600;white-space:nowrap}
.credential-category{font-size:.6875rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-deep);font-weight:600}
.credential-card h3{font-size:1.25rem;color:var(--navy);margin:0}
.credential-card p{color:var(--grey-700);font-size:.9375rem;line-height:1.55;margin:0}
.trust-band{background:var(--navy);color:var(--cream);padding:var(--s-7) 0;border-top:1px solid rgba(201,169,97,.25);border-bottom:1px solid rgba(201,169,97,.25)}
.trust-band-header{display:flex;align-items:end;justify-content:space-between;flex-wrap:wrap;gap:var(--s-4);margin-bottom:var(--s-6)}
.trust-band-badges{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--s-4)}
.trust-band-badge{display:flex;flex-direction:column;align-items:center;gap:var(--s-2);padding:var(--s-4) var(--s-3);text-align:center;border:1px solid rgba(201,169,97,.2);border-radius:var(--radius);background:#ffffff05;transition:border-color .3s ease,background .3s ease}
.trust-band-badge:hover{border-color:var(--gold);background:#c9a9610f}
.trust-band-badge svg{width:24px;height:24px;color:var(--gold)}
.trust-band-badge .name{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--cream);font-weight:600;opacity:.9}
.credential-badge:has(img){width:100px;height:60px;border-radius:var(--radius);background:var(--white);border:1px solid var(--rule);padding:6px 10px}
.credential-badge img{filter:none}
.standards-head{display:flex;align-items:center;gap:var(--s-3);margin-bottom:var(--s-4)}
.standards-head svg{width:26px;height:26px;color:var(--gold);flex:none}
.standards-head span{font-family:var(--font-serif);font-size:1.25rem;color:var(--navy);letter-spacing:.02em}
.standards-items{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) 0}
.standards-items span{font-size:.875rem;color:var(--grey-700);padding:0 var(--s-4);border-right:1px solid rgba(15,42,31,.16);line-height:1.3}
.standards-items span:first-child{padding-left:0}
.standards-items span:last-child{border-right:0}
.placeholder-note strong{color:#8a6d1f}
.event-date{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid var(--gold);border-radius:var(--radius);padding:var(--s-3) var(--s-4);min-width:104px;background:var(--white)}
.event-date .day{font-family:var(--font-serif);font-variant-numeric:lining-nums;font-feature-settings:'lnum' 1;font-size:2.6rem;line-height:1;color:var(--navy)}
.event-date .mon{font-size:.8125rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-top:4px}
.event-date .yr{font-size:.75rem;color:var(--grey-600);margin-top:2px}
.event-image{width:100%;aspect-ratio:4/3;background-size:cover;background-position:center;border-radius:var(--radius)}
.event-chip{display:inline-block;align-self:flex-start;width:fit-content;max-width:100%;font-size:.6875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);border:1px solid rgba(201,169,97,.5);border-radius:3px;padding:3px 9px;margin-bottom:var(--s-3)}
.event-meta{margin-top:auto;padding-top:var(--s-3);font-size:.8125rem;color:var(--grey-600);border-top:1px solid var(--rule)}
.past-events{list-style:none;margin:0;padding:0;max-width:72ch}
.past-events li{display:flex;gap:var(--s-4);align-items:baseline;padding:var(--s-3) 0;border-bottom:1px solid var(--rule)}
.pe-date{font-size:.8125rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);width:120px;flex:none}
.pe-name{flex:1;color:var(--navy)}
.pe-loc{font-size:.875rem;color:var(--grey-600)}

/* responsive */
@media(min-width:880px){
  .two-col-balanced{grid-template-columns:1fr 1fr}
}
@media print{
  .site-header,.site-footer,.cta-block{display:none}
}
@media(min-width:880px){
  .split-block{grid-template-columns:1fr 1fr}
}
@media(max-width:720px){
  .split-block .split-content{padding:var(--s-7) var(--s-5)}
  .split-block .split-image{min-height:240px}
}
@media(prefers-reduced-motion:reduce){
  .reveal,.reveal.in-view,.hero-with-image:before,.page-intro-with-image:before,.card-with-image .card-image,.deal-card .deal-image,.insight-card-thumb .thumb,.split-image,.deal-card .status.open{animation:none!important;transition:none!important;transform:none!important;opacity:1!important}
}
@media(min-width:720px){
  .founder-card{grid-template-columns:280px 1fr;gap:var(--s-8)}
}
@media(min-width:720px){
  .founder-card .founder-avatar{margin:0}
}
@media(max-width:720px){
  .market-pill--image .market-image{height:130px}
}
@media(min-width:640px){
  .markets-grid{grid-template-columns:repeat(3,1fr)}
}
@media(min-width:960px){
  .markets-grid{grid-template-columns:repeat(5,1fr)}
}
@media(max-width:720px){
  .markets-grid .market-pill--image .market-image{height:120px}
}
@media(max-width:720px){
  .split-block .split-image{min-height:220px}
  .split-block .split-content{padding:var(--s-6) var(--s-5)}
  .split-block h2{max-width:100%!important}
  .markets-grid{gap:var(--s-3)}
  .grid,.grid-2,.grid-3,.grid-4{gap:var(--s-5)}
  .card{padding:var(--s-5)}
  .card-with-image .card-image{height:160px}
  .deal-card .deal-image,.insight-card-thumb .thumb{height:150px}
  .cta-block{padding:var(--s-7) var(--s-5)}
  .cta-block h2{font-size:1.75rem}
  .founder-card{padding:var(--s-6) var(--s-5);gap:var(--s-5)}
  .founder-card .founder-avatar{width:160px;height:160px;font-size:3.5rem}
  .founder-card h3{font-size:1.5rem!important}
  .approach-pillar{padding:var(--s-5)}
  .approach-pillar h3{font-size:1.25rem}
  .two-col,.two-col-balanced{gap:var(--s-5)}
  h2{max-width:100%}
  .pillar,.insight-card{padding:var(--s-4) 0}
}
@media(max-width:720px){
  .journey-flow{padding:var(--s-5) var(--s-3);gap:var(--s-2)}
  .journey-step{min-width:68px;padding:var(--s-2)}
  .journey-label{font-size:.9375rem}
  .journey-num{font-size:.625rem}
  .journey-arrow{font-size:1rem}
}
@media (max-width:720px){
  .standards-items{flex-direction:column;align-items:flex-start;gap:var(--s-2)}
  .standards-items span{border-right:0;padding:0}
}
@media (max-width:720px){
  .past-events li{flex-direction:column;gap:2px}
  .pe-date{width:auto}
}

/* === Design pass, 30 Oct 2026 ======================================== */

/* -- Header: larger logo, gold CTA, sticky, tightens on scroll ---------- */
.site-header { position: sticky; top: 0; z-index: 900; transition: box-shadow .3s ease, background-color .3s ease; }
.admin-bar .site-header { top: 32px; }
.site-header .header-inner { transition: padding .3s ease; }
.site-header .custom-logo-link img, .site-header .site-logo img { max-height: 64px; transition: max-height .3s ease; }
.cs-scrolled .site-header { box-shadow: 0 6px 24px rgba(6,26,17,.28); }
.cs-scrolled .site-header .header-inner { padding-top: 10px; padding-bottom: 10px; }
.cs-scrolled .site-header .custom-logo-link img, .cs-scrolled .site-header .site-logo img { max-height: 46px; }
.site-navigation .cs-nav-cta > a {
  background: var(--gold); color: var(--navy) !important; border-radius: var(--radius);
  padding: .6rem 1.1rem !important; margin-left: .5rem; font-weight: 500; transition: background-color .2s ease;
}
.site-navigation .cs-nav-cta > a:hover { background: var(--cream); }
.site-navigation .cs-nav-cta > a::after { display: none !important; }
.site-navigation-dropdown .cs-nav-cta > a { color: var(--gold) !important; font-weight: 600; }

/* -- Hero (homepage): taller, text block vertically centred ------------- */
.home .elementor-top-section.cs-hero-image:first-child .elementor-heading-title { font-size: clamp(2.5rem, 4.4vw, 4rem); line-height: 1.1; max-width: 22ch; }
.home .elementor-top-section.cs-hero-image:first-child .lead { max-width: 60ch; font-size: 1.125rem; }
/* .lead is ink-grey in the component CSS — on a photo or dark band it vanished. */
:is(.cs-hero-image, .cs-hero-plain, .cs-band-dark, .cs-image-break) .lead { color: var(--cream) !important; opacity: .92; }

/* -- Full-width image break --------------------------------------------- */
.cs-image-break .elementor-heading-title { font-size: clamp(2rem, 3.6vw, 3.25rem) !important; line-height: 1.12; max-width: 20ch; color: var(--cream) !important; }
.cs-image-break .eyebrow { color: var(--gold) !important; letter-spacing: .22em; }

/* -- Founder pull-quote ------------------------------------------------- */
.cs-pullquote {
  font-family: var(--font-serif) !important; font-style: italic; font-weight: 400;
  font-size: clamp(1.6rem, 2.6vw, 2.35rem) !important; line-height: 1.32 !important;
  color: var(--navy); max-width: 30ch !important; margin: 0 auto !important; text-align: center;
  position: relative; padding-top: 56px;
}
.cs-pullquote::before {
  content: "\201C"; position: absolute; top: -18px; left: 50%; transform: translateX(-50%);
  font-size: 6rem; line-height: 1; color: var(--gold); font-style: normal; opacity: .9;
}
.cs-pullquote-by {
  text-align: center; margin-top: 28px !important; font-size: .8125rem !important; letter-spacing: .2em !important;
  text-transform: uppercase; color: var(--gold-text) !important; font-weight: 600;
}
.cs-pullquote-by::before { content: ""; display: block; width: 48px; height: 1px; background: var(--gold); margin: 0 auto 18px; }
.elementor-widget-text-editor:has(.cs-pullquote), .elementor-widget-text-editor:has(.cs-pullquote-by) { text-align: center; }
.elementor-column:has(.cs-pullquote) .elementor-widget-text-editor:has(.eyebrow) { text-align: center; }

/* -- Six disciplines: icons --------------------------------------------- */
.pillar .cs-icon { width: 40px; height: 40px; color: var(--gold); margin-bottom: 14px; }
.pillar .cs-icon svg { width: 100%; height: 100%; display: block; }
.pillar { transition: border-color .3s ease; }
.pillar:hover { border-top-color: var(--gold); }

/* -- Featured opportunity teasers: photo on top ------------------------- */
a.market-pill, a.market-pill:hover, a.market-pill:focus { display: block; color: inherit; text-decoration: none; }
a.market-pill { transition: transform .35s ease, box-shadow .35s ease; cursor: pointer; }
a.market-pill:hover { transform: translateY(-4px); box-shadow: 0 16px 36px rgba(0,0,0,.25); }
a.market-pill:focus-visible { outline: 2px solid #C9A961; outline-offset: 3px; }
.cs-teaser-img { height: 150px; background-size: cover; background-position: center; margin: 0 0 16px;
  border-radius: var(--radius); filter: saturate(.9); transition: transform .6s ease; }
.grid > div:has(.cs-teaser-img) { overflow: hidden; }
.grid > div:hover .cs-teaser-img { transform: scale(1.03); }

/* -- Close the dead gap where two dark bands meet ----------------------- */
.elementor-top-section.cs-band-dark + .elementor-top-section.cs-band-dark { padding-top: 0 !important; }
.elementor-top-section.cs-band-dark:has(+ .elementor-top-section.cs-band-dark) { padding-bottom: 40px !important; }

/* -- Balanced card rows: a short last row is centred, not left-hanging --- */
.elementor-top-section > .elementor-container { justify-content: center; }

/* -- Card motion: lift + slow image zoom -------------------------------- */
.elementor-column:has(.card-image), .elementor-column:has(.deal-image) { transition: transform .35s ease, box-shadow .35s ease; }
.elementor-column:has(.card-image):hover, .elementor-column:has(.deal-image):hover {
  transform: translateY(-4px); box-shadow: 0 4px 12px rgba(15,42,31,.08), 0 16px 40px rgba(15,42,31,.10) !important; }
.elementor-column:has(.card-image) > .elementor-widget-wrap,
.elementor-column:has(.deal-image) > .elementor-widget-wrap { overflow: hidden; }
.card-image, .deal-image { transition: transform 1.1s cubic-bezier(.22,.61,.36,1); }
.elementor-column:hover .card-image, .elementor-column:hover .deal-image { transform: scale(1.04); }

/* -- Insight cards: equal heights, image zoom, bigger titles ------------ */
.grid > .insight-card-thumb { display: flex; flex-direction: column; height: 100%; overflow: hidden; transition: transform .35s ease, box-shadow .35s ease; }
.insight-card-thumb .thumb { transition: transform 1.1s cubic-bezier(.22,.61,.36,1); }
.insight-card-thumb:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.insight-card-thumb:hover .thumb { transform: scale(1.05); }
.insight-card-thumb .insight-body { flex: 1; }
.insight-card-thumb h3 { font-size: 1.375rem !important; line-height: 1.25; margin: 4px 0 8px !important; }

/* -- Logo strip fades out at its edges ---------------------------------- */
.cs-marquee-viewport {
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
          mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
}

/* -- Reveal on scroll (JS adds .cs-anim; nothing hidden without JS) ----- */
.cs-anim .elementor-top-section > .elementor-container { opacity: 0; transform: translateY(22px);
  transition: opacity .8s ease, transform .8s cubic-bezier(.22,.61,.36,1); }
.cs-anim .elementor-top-section > .elementor-container.cs-in { opacity: 1; transform: none; }
.cs-anim .elementor-top-section:first-child > .elementor-container { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .cs-anim .elementor-top-section > .elementor-container { opacity: 1 !important; transform: none !important; }
  * { transition: none !important; }
}

/* -- Numbers strip under the hero ------------------------------------- */
.elementor-top-section:has(.cs-stats) { padding: 44px 0 !important; border-bottom: 1px solid var(--rule); }
.cs-stats { display: grid; grid-template-columns: repeat(4, 1fr); }
.cs-stat { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 6px; padding: 4px 16px; }
.cs-stat + .cs-stat { border-left: 1px solid var(--rule); }
.cs-stat-num { font-family: var(--font-serif); font-weight: 500; font-size: clamp(2.25rem, 3.6vw, 3rem); line-height: 1; color: var(--navy); }
.cs-stat-label { font-size: .75rem; letter-spacing: .16em; text-transform: uppercase; font-weight: 600; color: var(--gold-text); }

/* -- Network journey: a numbered timeline, not a cramped row ---------- */
.journey-flow { display: grid; grid-template-columns: repeat(5, 1fr); row-gap: 44px; column-gap: 0;
  padding: 48px 32px 40px; background: var(--white); border: 1px solid var(--rule); border-top: 3px solid var(--gold);
  border-radius: var(--radius); }
.journey-arrow { display: none !important; }
.journey-step { position: relative; display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 0; min-width: 0; text-align: center; }
.journey-step::before { content: ""; position: absolute; top: 24px; right: 50%; width: 100%; height: 1px;
  background: linear-gradient(90deg, rgba(201,169,97,.25), var(--gold)); z-index: 0; }
.journey-step:nth-of-type(5n+1)::before { display: none; }
.journey-num { position: relative; z-index: 1; width: 48px; height: 48px; border-radius: 50%; border: 1px solid var(--gold);
  background: var(--white); display: flex; align-items: center; justify-content: center;
  color: var(--navy) !important; font-size: .8125rem !important; letter-spacing: .06em; font-weight: 600;
  transition: background-color .3s ease, transform .3s ease; }
.journey-step:hover .journey-num { background: var(--gold); transform: scale(1.08); }
.journey-label { font-size: 1.125rem !important; color: var(--navy); }

/* -- Motion ------------------------------------------------------------- */
html { scroll-behavior: smooth; }
/* Items inside a section arrive one after another (JS sets --d). */
.cs-anim .cs-stagger { opacity: 0; transform: translateY(18px);
  transition: opacity .7s ease var(--d, 0ms), transform .7s cubic-bezier(.22,.61,.36,1) var(--d, 0ms); }
.cs-anim .cs-in .cs-stagger { opacity: 1; transform: none; }
/* Hero copy rises in on load. */
@keyframes cs-rise { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
.cs-anim .elementor-top-section:first-child .elementor-widget { animation: cs-rise .9s cubic-bezier(.22,.61,.36,1) both; }
.cs-anim .elementor-top-section:first-child .elementor-widget:nth-child(2) { animation-delay: .12s; }
.cs-anim .elementor-top-section:first-child .elementor-widget:nth-child(3) { animation-delay: .24s; }
.cs-anim .elementor-top-section:first-child .elementor-widget:nth-child(n+4) { animation-delay: .36s; }
/* Menu: the gold underline draws in rather than appearing. */
.site-navigation .menu > li > a { position: relative; border-bottom-color: transparent !important; }
.site-navigation .menu > li:not(.cs-nav-cta) > a::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px;
  background: var(--gold); transform: scaleX(0); transform-origin: left; transition: transform .3s ease; }
.site-navigation .menu > li:not(.cs-nav-cta) > a:hover::after,
.site-navigation .menu > li.current-menu-item > a::after,
.site-navigation .menu > li.current-page-ancestor > a::after { transform: scaleX(1); }
/* Buttons lift a touch on hover. */
.elementor-button, .btn { transition: background-color .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease !important; }
.elementor-button:hover, .btn:hover { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(15,42,31,.18); }
.cs-stat-num { font-variant-numeric: tabular-nums; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .cs-anim .cs-stagger, .cs-anim .elementor-top-section:first-child .elementor-widget { opacity: 1 !important; transform: none !important; animation: none !important; }
}

/* -- Mobile ------------------------------------------------------------- */
@media (max-width: 767px) {
  /* clip, not hidden: overflow-x:hidden on html+body makes <body> the scroll
     container, so window scroll events (sticky header, reveal-on-scroll) stop firing. */
  html, body { overflow-x: clip; }
  .admin-bar .site-header { top: 0; }
  .site-header .custom-logo-link img, .site-header .site-logo img { max-height: 48px; }
  .cs-scrolled .site-header .custom-logo-link img, .cs-scrolled .site-header .site-logo img { max-height: 40px; }
  .elementor-widget-wrap > .elementor-widget-button { margin: 0 12px 12px 0 !important; }
  .markets-grid > :last-child:nth-child(odd) { grid-column: 1 / -1; }
  .journey-flow { grid-template-columns: 1fr; row-gap: 20px; padding: 28px 22px; justify-items: start; }
  .journey-step { flex-direction: row; gap: 16px; text-align: left; }
  .journey-step::before { display: block !important; top: -20px; right: auto; left: 23px; width: 1px; height: 20px;
    background: rgba(201,169,97,.6); }
  .journey-step:nth-of-type(1)::before { display: none !important; }
  .journey-num { width: 46px; height: 46px; flex-shrink: 0; }
  .cs-stats { grid-template-columns: repeat(2, 1fr); row-gap: 28px; }
  .cs-stat:nth-child(3) { border-left: 0; }
  .markets-grid > :last-child:nth-child(odd) .market-image { height: 140px; }
  .cs-image-break { min-height: 380px; }
  .cs-pullquote { padding-top: 44px; }
  .cs-pullquote::before { font-size: 4.5rem; top: -10px; }
  .home .elementor-top-section.cs-hero-image:first-child { min-height: 88vh !important; }
}


/* mobile type scale (keep at end of file) */
/* Mobile: the desktop type scale is far too big on a phone — the homepage
   headline alone was ~800px tall at 390px wide. */
@media (max-width: 720px) {
  :root { --fs-h1: 2.25rem; --fs-h2: 1.75rem; --fs-h3: 1.375rem; --fs-display: 2.75rem; --fs-lead: 1.0625rem; }
  .elementor-widget-heading .elementor-heading-title { line-height: 1.15; }
  .site-header .header-inner { flex-direction: row; align-items: center; justify-content: space-between; }
  .site-header .custom-logo-link img, .site-header .site-logo img { max-height: 40px; }
}

