/* ==========================================================================
   finjuris-lp.css
   SHARED stylesheet loaded by every service landing page on finjuris.ae
   (vara-license-dubai.php and any future service page). Contains only
   the common design system: tokens, nav/top-bar, hero system, stats
   strip, buttons, cards, forms, footer, etc. — nothing scoped to one
   specific page or service.

   Page-specific tweaks (a one-off layout quirk, a section only one page
   has) do NOT belong in here as a body-class override — they go in that
   page's own small stylesheet, loaded AFTER this file, e.g.:
     <link rel="stylesheet" href="assets/finjuris-lp.css">
     <link rel="stylesheet" href="assets/vara-license-dubai-page.css">
   Older bundles (start-crypto-venture.css) mixed page-specific
   body-class overrides (.dlg1-page, .dlg2-page) into the shared file —
   that pattern is NOT continued here so this file can be reused as-is
   across every service page without accumulating other pages' rules.
   ========================================================================== */

/* ==========================================================================
   Finlaw · FIU-IND Registration Service Page
   Design system: institutional/regulatory-compliance — black for authority,
   red as the deliberate "action + risk" accent, blue kept secondary.
   Loaded AFTER bootstrap.min.css so these rules override Bootstrap defaults.
   ========================================================================== */

:root {
  --ink: #0b0f14;
  --blue: #1d4ed8;
  --blue-dark: #1b3fb0;
  --red: #dc2626;
  --red-dark: #b91c1c;
  --surface: #ffffff;
  --surface-alt: #f5f7fa;
  --muted: #56606b;
  --border: #e4e8ec;

  --font-display: "Geist", -apple-system, BlinkMacSystemFont, sans-serif !important;
  --font-body: "Inter", -apple-system, BlinkMacSystemFont, sans-serif !important;

  --bs-body-bg: var(--surface);
  --bs-body-color: var(--muted);
  --bs-body-font-family: var(--font-body);
  --bs-link-color: var(--blue);
  --bs-link-hover-color: var(--blue-dark);
  --bs-border-color: var(--border);
  --bs-primary: var(--red);
  --bs-primary-rgb: 220, 38, 38;

  /* Measured at runtime by fiu-scripts.js so sticky bars stack without gaps/overlap;
     these are just sane fallbacks before JS runs. */
  --nav-h: 80px;
  --subnav-h: 52px;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  * {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}

html {
  scroll-behavior: smooth;
}

/* Safety net: catches any future 1-2px horizontal bleed from Bootstrap's
   negative-margin grid gutters without affecting position:sticky, since
   overflow-x here is scoped to html/body (the natural sticky containing
   block), not to an inner wrapper. */
html,
body {
  overflow-x: clip;
  max-width: 100%;
  font-family: "Inter" sans-serif !important;
  font-weight: 500 !important;

}

/* ==========================================================================
   Wider .container on large screens
   Bootstrap's own .container max-widths, for reference:
     ≥1200px (xl)  → 1140px
     ≥1400px (xxl) → 1320px
   Every .container on this page (nav, hero, breadcrumb, sub-nav, main
   layout, footer) shares this class, so changing these two numbers widens
   all of them together and keeps everything aligned. Mobile/tablet
   (below 1200px) are untouched — only large screens get more room.
   Tune the two max-width values below to taste.
   ========================================================================== */
@media (min-width: 1200px) {
  .container {
    max-width: 1320px;
    padding-left: 2.5rem;
    padding-right: 2.5rem;
  }

  /* was 1140px, 12px padding */
}

@media (min-width: 1400px) {
  .container {
    max-width: 1400px;
    padding-left: 3rem;
    padding-right: 3rem;
  }

  /* was 1320px, 12px padding */
  .custom-container {
    max-width: 1600px;
    padding-left: 3rem;
    padding-right: 3rem;
    margin: 0 auto;
  }
}

body {
  font-family: var(--font-body);
  background: var(--surface);
  color: var(--muted);
  -webkit-font-smoothing: antialiased;
}

h1,
h2,
h3,
.font-display {
  font-family: "Geist", sans-serif !important;
  color: var(--ink);
  font-weight: 700;
}

p {
  color: var(--muted);
}

a {
  color: var(--blue);
  text-decoration: none;
  transition: color 0.2s ease;
}

a:hover {
  color: var(--blue-dark);
}

a:focus-visible,
button:focus-visible,
summary:focus-visible,
.btn:focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 3px;
  border-radius: 2px;
}

.eyebrow {
  font-family: var(--font-display);
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--red);
  display: flex;
  align-items: center;
  gap: 10px;
}

.eyebrow::before {
  content: "";
  width: 22px;
  height: 2px;
  background: var(--red);
  display: inline-block;
}

.col-w-34 {
  width: 34%;
}

.col-w-26 {
  width: 26%;
}

/* ==========================================================================
   Sticky top nav
   ========================================================================== */
.site-nav {
  position: sticky;
  top: 0;
  z-index: 1030;
  background: rgba(11, 15, 20, 0.92);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.site-nav .navbar-brand {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 1.15rem;
  color: #ffffff;
  letter-spacing: 0.01em;
}

.site-nav .nav-link {
  color: #c9d0d9;
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 0.92rem;
  position: relative;
  padding-bottom: 4px !important;
}

.site-nav .nav-link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: 0;
  height: 2px;
  background: var(--red);
  transition: right 0.2s ease;
}

.site-nav .nav-link:hover {
  color: #ffffff;
}

.site-nav .nav-link:hover::after {
  right: 0;
}

.btn-nav-cta {
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.85rem;
  color: #ffffff;
  background: linear-gradient(135deg, #ff5f5f 0%, #e63946 55%, #c81e3a 100%);
  border: 1px solid #c81e3a;
  border-radius: 6px;
  transition: filter 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.btn-nav-cta:hover {
  filter: brightness(0.92);
  box-shadow: 0 8px 20px rgba(200, 30, 58, 0.32);
  transform: translateY(-1px);
  color: #ffffff;
}

/* ==========================================================================
   Section sub-nav — sticky horizontal bar under the breadcrumb
   ========================================================================== */
.section-subnav {
  position: sticky;
  top: var(--nav-h);
  z-index: 100;
  background: rgb(255 247 247 / 92%);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-bottom: 1px solid #e4e8ec;
}

.subnav-inner {
  display: flex;
  overflow-x: auto;
  white-space: nowrap;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  /* Firefox */
  -ms-overflow-style: none;
  /* legacy Edge / IE */
  cursor: grab;
}

.subnav-inner::-webkit-scrollbar {
  display: none;
}

/* Chrome, Safari, Edge (Chromium) */
.subnav-inner.dragging {
  cursor: grabbing;
  user-select: none;
  -webkit-user-select: none;
  scroll-behavior: auto;
  /* don't fight the drag with smooth-scroll easing */
}

.subnav-link {
  flex-shrink: 0;
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 0.85rem;
  color: var(--muted);
  padding: 20px 16px;
  transition: color 0.2s ease;
}

.subnav-link:hover {
  color: var(--ink);
}

.subnav-link.active {
  color: var(--red);
  font-weight: 700;
}

/* ==========================================================================
   Hero
   ========================================================================== */
.cover {
  background-image: url(../images/fiu/banner-bgw.png);
  background-size: 100% 100%;
  color: #f5f7fa;
  position: relative;
  overflow: hidden;
}

.cover .container {
  position: relative;
}

.cover-new-fn {
  padding-top: 5rem;
  padding-bottom: 2rem;
}

.file-tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-body);
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 600;
  color: #e70000;
  border: 1px solid rgba(220, 38, 38, 0.45);
  background: rgba(220, 38, 38, 0.08);
  border-radius: 2px;
}

.file-tag .dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--red);
  display: inline-block;
}

.cover h1 {
  color: #c30000;
  font-size: clamp(2rem, 4.2vw, 3.2rem);
  line-height: 1.12;
  font-weight: 800;
  max-width: 20ch;
}

.cover .sub {
  color: #6e6e6e;
  font-size: clamp(0.95rem, 1.6vw, 1.15rem);
  max-width: 58ch;
  font-family: var(--font-body);
  font-weight: 400;
}

.cover .sub strong {
  color: #565656;
  font-weight: 600;
}

.hero-note {
  font-family: var(--font-body);
  font-size: 0.75rem;
  color: #787878;
}

.btn-primary-custom {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.92rem;
  color: #ffffff;
  background: linear-gradient(135deg, #ff5f5f 0%, #e63946 55%, #c81e3a 100%);
  border: 1px solid #c81e3a;
  border-radius: 6px;
  transition: filter 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.btn-primary-custom:hover {
  filter: brightness(0.92);
  box-shadow: 0 8px 20px rgba(200, 30, 58, 0.32);
  transform: translateY(-2px);
  color: #ffffff;
}

.trust-bar {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 1px;
  background: rgb(0 0 0 / 8%);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 8px;
  overflow: hidden;
  max-width: 780px;
  margin-top: 7%;
}

.trust-item {
  background: rgba(255, 255, 255, 0.03);
}

.trust-item .v {
  display: block;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.2rem;
  color: var(--red);
}

.trust-item .k {
  display: block;
  font-size: 0.8rem;
  color: #464646;
  line-height: 1.4;
}

/* ==========================================================================
   Breadcrumb
   ========================================================================== */
.dossier-breadcrumb {
  background: var(--surface-alt);
  border-bottom: 1px solid var(--border);
}

.dossier-breadcrumb .breadcrumb {
  font-family: var(--font-body);
  font-size: 0.8rem;
  color: var(--muted);
}

.dossier-breadcrumb .breadcrumb-item a {
  color: var(--blue);
}

.dossier-breadcrumb .breadcrumb-item a:hover {
  color: var(--blue-dark);
  text-decoration: underline;
}

.dossier-breadcrumb .breadcrumb-item.active {
  color: var(--ink);
  font-weight: 600;
}

/* ==========================================================================
   Article sections — alternating surface rhythm
   ========================================================================== */
.doc-section {
  padding: 2.6rem 1.75rem;
  margin-bottom: 2rem;
  border-radius: 10px;
  scroll-margin-top: calc(var(--nav-h) + var(--subnav-h) + 16px);
}

.doc-section.bg-white-section {
  background: var(--surface);
  border: 1px solid var(--border);
}

.doc-section.bg-alt-section {
  background: var(--surface-alt);
}

.doc-section:last-of-type {
  margin-bottom: 0;
}

.doc-section h2 {
  font-size: clamp(1.6rem, 2.6vw, 2.2rem);
}

.doc-section h3.sub-heading {
  font-family: "Geist", sans-serif !important;
  font-size: 1.15rem;
  color: var(--ink);
  font-weight: 700;
}

.lede {
  font-size: 1.05rem;
  color: var(--muted);
}

.lede strong {
  color: var(--ink);
  font-weight: 700;
}

.note-card {
  background: #eff4ff;
  border-left: 3px solid var(--blue);
  border-radius: 4px;
  font-size: 0.9rem;
  color: var(--muted);
}

.note-card strong {
  color: var(--ink);
}

.dossier-list {
  list-style: none;
  padding-left: 0;
  margin-bottom: 0;
}

.dossier-list li {
  position: relative;
  padding-left: 22px;
  margin-bottom: 0.7rem;
  color: var(--muted);
}

.dossier-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 9px;
  width: 6px;
  height: 6px;
  background: var(--red);
  border-radius: 50%;
}

.dossier-list.on-dark li {
  color: #c9d0d9;
}

.dossier-list.on-dark li::before {
  background: var(--red);
}

/* ==========================================================================
   Cards — service scope + entity types (shared hover convention)
   ========================================================================== */
.scope-item,
.entity-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 10px;
  height: 100%;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease,
    background 0.2s ease;
}

.entity-card i {
  font-size: 42px;
  color: #7dadf1;
  padding-bottom: 1rem;
}

.entity-card s i {
  color: #ffb032;
}

.scope-item:hover,
.entity-card:hover {
  background: var(--surface);
  transform: translateY(-4px);
  box-shadow: 0 14px 28px rgba(11, 15, 20, 0.08);
  border-color: var(--red);
}

/* Cycling pastel palette — pulled from colors already used elsewhere on the
   page (red, blue, the testimonial-card green, the star gold) so the mix
   reads as one intentional system rather than random colors. Each card sits
   alone inside its own Bootstrap .col, so the nth-child cycles on .col. */
.col:nth-child(4n + 1)>.scope-item {
  background: #fdeded;
}

/* soft red */
.col:nth-child(4n + 2)>.scope-item {
  background: #fdeded;
}

/* soft blue */
.col:nth-child(4n + 3)>.scope-item {
  background: #fdeded;
}

/* soft green */
.col:nth-child(4n)>.scope-item {
  background: #fdeded;
}

/* soft gold */

/* .entity-card: one flat color for all cards, except card 3 which is gold */
.entity-card {
  background: #eaf1fe;
}

/* soft blue */
.col:nth-child(3)>.entity-card {
  background: #fdf3e3;
}

/* override — card 3 */

/* Faded topical icon — .scope-item ONLY (not .entity-card), same layering
   technique as the testimonial-card quote mark: large, low-opacity, sits
   behind the text via z-index. */
.scope-item {
  position: relative;
  overflow: hidden;
}

.scope-item .scope-icon {
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: 64px;
  height: 64px;
  color: rgba(11, 15, 20, 0.08);
  z-index: 0;
  pointer-events: none;
}

.scope-item .scope-num {
  position: relative;
  z-index: 1;
}

.scope-num {
  font-family: var(--font-display);
  font-size: 0.8rem;
  color: var(--red);
  font-weight: 700;
  letter-spacing: 0.06em;
  display: block;
}

.scope-item h3,
.entity-card h3 {
  position: relative;
  z-index: 1;
  font-size: 1.02rem;
  font-weight: 700;
  font-family: "Geist", sans-serif !important;
}

.scope-item p,
.entity-card p {
  position: relative;
  z-index: 1;
  font-size: 0.88rem;
  margin-bottom: 0;
}

.entity-card .tab {
  font-family: var(--font-body);
  font-size: 0.68rem;
  font-weight: 600;
  color: var(--red);
  letter-spacing: 0.06em;
  display: block;
  text-transform: uppercase;
}

/* ==========================================================================
   Mid-page CTA banner
   ========================================================================== */
.cta-banner {
  background: var(--surface-alt);
  border: 1px solid var(--border);
  border-radius: 10px;
}

.cta-banner p {
  margin-bottom: 0;
  color: var(--ink);
  font-size: 0.95rem;
}

.cta-banner p strong {
  color: var(--red);
}

.btn-banner {
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.88rem;
  color: #ffffff;
  background: linear-gradient(135deg, #ff5f5f 0%, #e63946 55%, #c81e3a 100%);
  border: 1px solid #c81e3a;
  border-radius: 6px;
  transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease,
    box-shadow 0.2s ease;
}

.btn-banner:hover {
  background: var(--ink);
  border-color: var(--ink);
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(11, 15, 20, 0.28);
  color: #ffffff;
}

/* ==========================================================================
   Regulatory timeline
   ========================================================================== */
.timeline {
  position: relative;
  padding-left: 6px;
}

.timeline::before {
  content: "";
  position: absolute;
  left: 43px;
  top: 6px;
  bottom: 6px;
  width: 2px;
  background: #dee3e9;
}

.stamp {
  width: 76px;
  height: 76px;
  border: 2px solid var(--ink);
  border-radius: 20%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  background: var(--surface);
  box-shadow: 0 8px 20px rgba(11, 15, 20, 0.1);
  z-index: 1;
  text-align: center;
  line-height: 1.1;
  flex-shrink: 0;
  font-family: var(--font-display);
  font-size: 1.4rem;
  color: var(--red);
  font-weight: 700;
}

.tl-item.enforce .stamp {
  border-color: var(--red);
  background: #fef2f2;
}

.stamp .d {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.78rem;
  color: var(--ink);
}

.tl-item.enforce .stamp .d {
  color: var(--red);
}

.stamp .m {
  font-family: var(--font-body);
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  color: var(--muted);
  text-transform: uppercase;
}

.tl-body .tl-date {
  font-family: var(--font-body);
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--muted);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  display: block;
}

.tl-body h3 {
  font-size: 1.05rem;
  color: var(--ink);
  font-weight: 700;
  font-family: "Geist", sans-serif !important;
}

.tl-body p {
  font-size: 0.9rem;
  margin-bottom: 0;
}

/* ==========================================================================
   Tables
   ========================================================================== */
.table-dossier {
  background: var(--surface);
  font-size: 0.9rem;
  margin-bottom: 0;
}

.table-dossier thead th {
  background: #649aff;
  color: #ffffff;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.90rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border-color: #ffffff;
  vertical-align: middle;
  padding: 1rem;
}

.table-dossier tbody td {
  color: var(--muted);
  vertical-align: top;
  border-color: var(--border);
}

.table-dossier tbody td:first-child {
  color: var(--ink);
  font-weight: 700;
  white-space: nowrap;
}

.table-dossier tbody tr:nth-child(even) {
  --bs-table-bg: var(--surface-alt);
}

.table-responsive-dossier {
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
}

/* ==========================================================================
   Process steps
   ========================================================================== */
.step-row {
  /* border-top: 1px solid var(--border); */
  transition: background 0.2s ease;
}

.step-row:first-child {
  border-top: none;
}

.step-row:hover {
  /* background: var(--surface-alt); */
}

.step-row h3 {
  padding-top: 1rem;
  font-family: "Geist", sans-serif !important;
}

/* .step-num {
  font-family: var(--font-display);
  font-size: 1.4rem;
  color: var(--red);
  font-weight: 700;
  line-height: 1;
} */

.step-num {
  width: 76px;
  height: 76px;
  border: 2px solid var(--ink);
  border-radius: 20%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  background: #fdf3e3;
  box-shadow: 0 8px 20px rgba(11, 15, 20, 0.1);
  z-index: 1;
  text-align: center;
  line-height: 1.1;
  flex-shrink: 0;
  font-family: var(--font-display);
  font-size: 1.4rem;
  color: var(--red);
  font-weight: 700;
}

.step-row h3 {
  font-size: 1rem;
  color: var(--ink);
  font-weight: 700;
  font-family: "Geist", sans-serif !important;
}

.step-row p {
  font-size: 0.9rem;
  margin-bottom: 0;
}

/* ==========================================================================
   Penalties — dark section per design system ("black for authority/gravitas")
   ========================================================================== */
.doc-section.section-dark {
  background: radial-gradient(900px 380px at 85% -10%,
      rgba(220, 38, 38, 0.12),
      transparent 60%),
    linear-gradient(160deg, #0b0f14 0%, #15191f 100%);
  color: #c9d0d9;
  position: relative;
  overflow: hidden;
}

.doc-section.section-dark .eyebrow {
  color: var(--red);
}

.doc-section.section-dark .eyebrow::before {
  background: var(--red);
}

.doc-section.section-dark h2 {
  color: #ffffff;
}

.doc-section.section-dark .lede {
  color: #c9d0d9;
}

.doc-section.section-dark .lede strong {
  color: #ffffff;
}

.doc-section.section-dark p {
  color: #b7c0cc;
}

.redact {
  background: rgba(220, 38, 38, 0.08);
  border: 1px solid rgba(220, 38, 38, 0.35);
  border-radius: 10px;
}

.redact-tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-display);
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 700;
  color: #ffffff;
  background: linear-gradient(135deg, #ff5f5f 0%, #e63946 55%, #c81e3a 100%);
  border: 1px solid #c81e3a;
  border-radius: 4px;
}

.redact-example {
  border-top: 1px dashed rgba(220, 38, 38, 0.35);
  font-size: 0.9rem;
  color: #c9d0d9;
}

.redact-example strong {
  color: #fca5a5;
}

/* ==========================================================================
   FAQ accordion
   ========================================================================== */
.dossier-accordion .accordion-item {
  background: transparent;
  border: 0;
  border-top: 1px solid var(--border);
  border-radius: 0;
}

.dossier-accordion .accordion-item:last-of-type {
  border-bottom: 1px solid var(--border);
}

.dossier-accordion .accordion-button {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1rem;
  color: var(--ink);
  background: transparent;
  box-shadow: none;
  padding-left: 0;
  padding-right: 0;
}

.dossier-accordion .accordion-button:not(.collapsed) {
  color: var(--red);
  background: transparent;
  box-shadow: none;
}

.dossier-accordion .accordion-button:focus {
  box-shadow: none;
  /* outline:2px solid var(--red);  */
  outline-offset: 2px;
}

.dossier-accordion .accordion-button::after {
  filter: none;
  background-image: none;
  content: "+";
  font-family: var(--font-body);
  font-size: 1.2rem;
  color: var(--red);
  font-weight: 700;
  width: auto;
  height: auto;
  line-height: 1;
  transition: transform 0.2s ease;
}

.dossier-accordion .accordion-button:not(.collapsed)::after {
  content: "+";
  transform: rotate(45deg);
}

.dossier-accordion .accordion-body {
  padding-left: 0;
  padding-right: 0;
  font-size: 0.9rem;
  /* max-width: 70ch; */
}

.meta-line {
  font-family: var(--font-body);
  font-size: 0.72rem;
  color: #8a94a3;
  border-top: 1px solid var(--border);
}

/* ==========================================================================
   Sidebar rail
   ========================================================================== */
.rail {
  position: sticky;
  top: calc(var(--nav-h) + var(--subnav-h) + 16px);
}

.widget-card {
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
}

.widget-card .card-header {
  font-family: var(--font-display);
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--red);
  background: var(--surface-alt);
  border-bottom: 1px solid var(--border);
}

/* (Former "On This Page" sidebar TOC removed — replaced by the horizontal
   sticky sub-nav below the breadcrumb; see .section-subnav / .subnav-link.) */
.fact-row {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  border-bottom: 1px solid var(--border);
}

.fact-row:last-child {
  border-bottom: none;
  padding-bottom: 0 !important;
}

.fact-row:first-child {
  padding-top: 0 !important;
}

.fact-row .k {
  font-size: 0.82rem;
  color: var(--muted);
  max-width: 15ch;
}

.fact-row .v {
  font-family: var(--font-display);
  font-size: 0.78rem;
  color: var(--ink);
  text-align: right;
  font-weight: 700;
}

.widget-card.cta-widget {
  background: var(--ink);
  border-color: var(--ink);
}

.cta-widget h3 {
  color: #ffffff;
  font-size: 1.05rem;
  font-weight: 700;
  font-family: "Geist", sans-serif !important;
}

.cta-widget p {
  color: #b7c0cc;
  font-size: 0.85rem;
}

.btn-rail {
  display: block;
  width: 100%;
  text-align: center;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.87rem;
  color: #ffffff;
  background: linear-gradient(135deg, #ff5f5f 0%, #e63946 55%, #c81e3a 100%);
  border: 1px solid #c81e3a;
  border-radius: 6px;
  transition: filter 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.btn-rail:hover {
  filter: brightness(0.92);
  box-shadow: 0 8px 20px rgba(200, 30, 58, 0.32);
  transform: translateY(-2px);
  color: #ffffff;
}

.cta-note {
  font-size: 0.72rem;
  color: #8a94a3;
}

.rel-list a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: var(--ink);
  font-size: 0.85rem;
  font-weight: 600;
  border-bottom: 1px solid var(--border);
  transition: color 0.2s ease;
}

.rel-list a:last-child {
  border-bottom: none;
  padding-bottom: 0 !important;
}

.rel-list a:first-child {
  padding-top: 0 !important;
}

.rel-list a:hover {
  color: var(--red);
}

.rel-list .arrow {
  color: var(--red);
  font-family: var(--font-body);
  flex-shrink: 0;
}

.deadline-row {
  display: flex;
  gap: 12px;
  border-bottom: 1px solid var(--border);
  align-items: flex-start;
}

.deadline-row:last-child {
  border-bottom: none;
  padding-bottom: 0 !important;
}

.deadline-row:first-child {
  padding-top: 0 !important;
}

.deadline-code {
  font-family: var(--font-display);
  font-size: 0.66rem;
  font-weight: 700;
  color: #ffffff;
  background: var(--red);
  border-radius: 4px;
  flex-shrink: 0;
}

.deadline-txt {
  font-size: 0.8rem;
  color: var(--muted);
}

.deadline-txt strong {
  color: var(--ink);
}

/* Scoped override: when deadline chips sit in a 2-col grid (full-width page
   variant) instead of a stacked sidebar list, each needs its own bordered
   "chip" look rather than relying on :first-child/:last-child divider logic,
   which only made sense for a single vertical stack. */
.deadline-grid .deadline-row {
  border: 1px solid var(--border) !important;
  border-radius: 8px;
  padding: 0.6rem 0.75rem !important;
  background: var(--surface);
}

/* ==========================================================================
   Testimonials — full-width scrollable card track
   ========================================================================== */
.testimonials-section {
  background: var(--surface-alt);
  border-top: 1px solid var(--border);
}

.btn-carousel {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--surface);
  border: 1px solid var(--border);
  color: var(--ink);
  font-size: 1.1rem;
  line-height: 1;
  cursor: pointer;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease,
    transform 0.2s ease;
}

.btn-carousel:hover {
  background: linear-gradient(135deg, #ff5f5f 0%, #e63946 55%, #c81e3a 100%);
  border-color: #c81e3a;
  color: #ffffff;
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(200, 30, 58, 0.32);
}

.btn-carousel:disabled {
  opacity: 0.35;
  cursor: default;
  transform: none;
}

.btn-carousel:disabled:hover {
  background: var(--surface);
  border-color: var(--border);
  color: var(--ink);
}

.testimonial-track {
  display: flex;
  gap: 1.25rem;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x proximity;
  padding: 1.25rem 0.25rem 1.5rem;
  /* top/bottom room so hover-lift + shadow never get clipped */
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
  cursor: grab;
}

.testimonial-track::-webkit-scrollbar {
  display: none;
}

.testimonial-track.dragging {
  cursor: grabbing;
  user-select: none;
  -webkit-user-select: none;
  scroll-behavior: auto;
  scroll-snap-type: none;
  /* let the drag fully own scrollLeft — snap fights it mid-drag otherwise */
}

.testimonial-card {
  position: relative;
  overflow: hidden;
  flex: 0 0 320px;
  scroll-snap-align: start;
  background: #eaf7ee;
  /* light green — explicit request, not part of the red/ink/blue token set */
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 1.75rem;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease,
    background 0.2s ease;
}

.testimonial-card::before {
  content: "\201D";
  position: absolute;
  top: -0.35rem;
  right: 0.75rem;
  font-family: var(--font-display);
  font-size: 6rem;
  font-weight: 800;
  line-height: 1;
  color: rgba(11, 15, 20, 0.08);
  z-index: 0;
  pointer-events: none;
  user-select: none;
}

.testimonial-card:hover {
  background: var(--surface);
  transform: translateY(-4px);
  box-shadow: 0 14px 28px rgba(11, 15, 20, 0.08);
  border-color: var(--red);
}

.stars {
  position: relative;
  z-index: 1;
  color: #ef9c1f;
  font-size: 1.4rem;
  letter-spacing: 2px;
  margin-bottom: 0.9rem;
}

.testimonial-quote {
  position: relative;
  z-index: 1;
  font-size: 0.92rem;
  color: var(--ink);
  line-height: 1.6;
  margin-bottom: 1.5rem;
  min-height: 5.5rem;
}

.testimonial-author {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.testimonial-author .avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  flex-shrink: 0;
  background: linear-gradient(135deg, #ff5f5f 0%, #e63946 55%, #c81e3a 100%);
  border: 1px solid #c81e3a;
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.82rem;
}

.testimonial-author .name {
  display: block;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.88rem;
  color: var(--ink);
}

.testimonial-author .role {
  display: block;
  font-size: 0.78rem;
  color: var(--muted);
}

/* Verified checkmark next to a client name — blue site-wide, on every
   page. Name itself stays var(--ink)/black. */
.testimonial-author .name .verified-badge {
  color: #1d9bf0;
}

@media (max-width: 575.98px) {
  .testimonial-card {
    flex-basis: 270px;
  }
}

/* ==========================================================================
   Related Blog — image-on-top cards, same scrollable-track pattern as
   testimonials, reusing .btn-carousel from that section.
   ========================================================================== */
.blog-section {
  background: var(--surface);
  border-top: 1px solid var(--border);
}

.blog-track {
  display: flex;
  gap: 1.25rem;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x proximity;
  padding: 0.25rem 0.25rem 1.5rem;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
  cursor: grab;
}

.blog-track::-webkit-scrollbar {
  display: none;
}

.blog-track.dragging {
  cursor: grabbing;
  user-select: none;
  -webkit-user-select: none;
  scroll-behavior: auto;
  scroll-snap-type: none;
}

.blog-card {
  flex: 0 0 300px;
  scroll-snap-align: start;
  display: block;
  background: var(--surface-alt);
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
  text-decoration: none;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease,
    background 0.2s ease;
}

.blog-card:hover {
  background: var(--surface);
  transform: translateY(-4px);
  box-shadow: 0 14px 28px rgba(11, 15, 20, 0.08);
  border-color: var(--red);
}

.blog-card-img {
  position: relative;
  aspect-ratio: 16/9;
  background: linear-gradient(135deg, var(--ink) 0%, #22303f 100%);
  display: flex;
  align-items: center;
  justify-content: center;
}

.blog-img-icon {
  width: 34px;
  height: 34px;
  color: rgba(255, 255, 255, 0.35);
}

.blog-card-category {
  position: absolute;
  top: 12px;
  left: 12px;
  background: linear-gradient(135deg, #ff5f5f 0%, #e63946 55%, #c81e3a 100%);
  border: 1px solid #c81e3a;
  color: #ffffff;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 5px 10px;
  border-radius: 4px;
}

.blog-card-body {
  padding: 1.25rem 1.25rem 1.5rem;
}

.blog-card-meta {
  font-family: var(--font-body);
  font-size: 0.72rem;
  color: var(--muted);
  margin-bottom: 0.5rem;
}

.blog-card-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1rem;
  color: var(--ink);
  line-height: 1.35;
  margin-bottom: 0.6rem;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.blog-card-excerpt {
  font-size: 0.85rem;
  color: var(--muted);
  line-height: 1.55;
  margin-bottom: 1rem;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.blog-card-link {
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.82rem;
  color: var(--red);
}

.blog-card:hover .blog-card-link {
  color: var(--red-dark);
}

@media (max-width: 575.98px) {
  .blog-card {
    flex-basis: 260px;
  }
}

/* ==========================================================================
   Outline button — per design system: transparent bg, 1px red border,
   red text; fills solid red with white text on hover.
   ========================================================================== */
.btn-outline-custom {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.92rem;
  color: #fff;
  background: #25d366;
  border: 1px solid #18bb54;
  border-radius: 6px;
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.btn-outline-custom i {
  font-size: 1.2rem;
}

.btn-outline-custom:hover {
  background: var(--red);
  color: #ffffff;
  transform: translateY(-2px);
}

/* ==========================================================================
   Quick Facts band (full-width page variant) — relocated sidebar "At a
   Glance" widget, shown as a horizontal strip instead of a stacked card.
   ========================================================================== */
.quickfacts-band {
  background: var(--ink);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.quickfacts-inner {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem 2rem;
  justify-content: space-between;
}

.quickfacts-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.quickfacts-item .k {
  font-family: var(--font-body);
  font-size: 0.7rem;
  color: #8a94a3;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.quickfacts-item .v {
  font-family: var(--font-display);
  font-size: 0.88rem;
  font-weight: 700;
  color: #ffffff;
  display: block;
}

/* ==========================================================================
   Mid-page CTA band (full-width page variant) — relocated sidebar "Need
   help registering?" widget, shown as a full-width dark band instead.
   ========================================================================== */
.midpage-cta-band {
  background: radial-gradient(900px 380px at 15% -10%, rgba(220, 38, 38, 0.12), transparent 60%), linear-gradient(160deg, #0b0f1400 0%, #15191f00 100%), url(../images/fiu/midpage.jpg);
  background-size: cover;
  border-radius: 10px;
  padding: 2.5rem;
  margin-bottom: 2rem;
}

.midpage-cta-band h2 {
  color: #ffffff;
  margin-bottom: 0.5rem;
  max-width: 36ch;
}

.midpage-cta-band p {
  color: #c9d0d9;
  margin-bottom: 0;
  max-width: 52ch;
}

/* ==========================================================================
   Related Services grid (full-width page variant) — relocated sidebar
   "Related Services" link list, shown as a card grid instead.
   ========================================================================== */
.related-service-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 1.25rem 1.5rem;
  height: 100%;
  text-decoration: none;
  color: var(--ink);
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.95rem;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.related-service-card:hover {
  background: #eaf1fe;
  color: var(--ink);
  transform: translateY(-4px);
  box-shadow: 0 14px 28px rgba(11, 15, 20, 0.08);
  border-color: var(--red);
}

.related-service-card .arrow {
  color: var(--red);
  font-family: var(--font-body);
  font-weight: 600;
  flex-shrink: 0;
}

/* ==========================================================================
   Footer — dark, per design system
   ========================================================================== */
.site-footer {
  background: var(--ink);
  color: #8a94a3;
  font-size: 0.82rem;
}

.site-footer a {
  color: #b7c0cc;
}

.site-footer a:hover {
  color: #ffffff;
}

/* ==========================================================================
   Scroll reveal
   ========================================================================== */
.reveal {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 0.5s ease, transform 0.5s ease;
}

.reveal.in {
  opacity: 1;
  transform: none;
}

.avoid-these {
  background: #fdf3e3 !important;
}

.eligibility {
  background: #f3fff7 !important;
}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 991.98px) {
  .rail {
    position: static;
  }

  .cover-new-fn {
    padding: 2rem 1rem 0 1rem;
  }

  .banner-new-fn {
    margin-top: 2rem;
  }

  .quickfacts-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 30px;
    row-gap: 20px;
  }

  .quickfacts-item {
    text-align: left;
  }

  .btn-outline-custom {
    display: block;
  }

  .section-subnav {
    /* top: 12%; */
  }

}

@media (max-width: 575.98px) {
  .stamp {
    width: 56px;
    height: 56px;
  }

  .stamp .d {
    font-size: 0.68rem;
  }

  .stamp .m {
    font-size: 0.55rem;
  }

  .doc-section {
    padding: 1.75rem 1.25rem;
  }

  .top-bar {
    padding: 0;
  }

  .step-num {
    width: 40px;
    height: 40px;
  }

  .timeline::before {
    left: 25px;
  }

}

@media (max-width: 360px) {
  .top-bar-contact a p1 {
    font-size: 0;
  }
}

@media (max-width: 1400px) {
  .cover-new-fn {
    padding-right: 2rem !important;
    padding-left: 2rem !important;
  }
}


@media (max-width: 1240px) {
  .section-subnav {
    top: 65px;
  }
}

/* ===== header-nav.css ===== */
/* ==========================================================================
   HEADER + MAIN NAVIGATION + MEGA MENU — standalone stylesheet
   Extracted from the FIU-IND compliance site build.

   DEPENDENCIES — this file assumes the following are already defined
   elsewhere on the page (either paste them above this file, or keep
   them in your main stylesheet):

   1. CSS variables (:root) — colors, fonts:
        --ink, --blue, --blue-dark, --red, --red-dark,
        --surface, --surface-alt, --muted, --border,
        --font-display, --font-body

   2. Button classes used by the nav CTAs:
        .btn-primary-custom, .btn-primary-custom:hover,
        .btn-outline-custom, .btn-outline-custom:hover,
        .btn-sm-custom

   3. Google Fonts + Bootstrap 5 loaded in <head>:
        <link href="https://fonts.googleapis.com/css2?family=Archivo:wght@500;600;700;800&family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
        <link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.3/css/bootstrap.min.css" rel="stylesheet">

   The dependency blocks (1) and (2) are included below, commented out,
   for convenience — uncomment and paste at the top of your stylesheet
   if you don't already have them.
   ========================================================================== */

/*
:root {
  --ink: #0B0F14;
  --blue: #1D4ED8;
  --blue-dark: #1B3FB0;
  --red: #DC2626;
  --red-dark: #B91C1C;
  --surface: #FFFFFF;
  --surface-alt: #F5F7FA;
  --muted: #56606B;
  --border: #E4E8EC;
  --font-display: 'Archivo', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-body: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
}

.btn-primary-custom {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: linear-gradient(135deg, #FF5F5F 0%, #E63946 55%, #C81E3A 100%);
  color: #fff;
  border: 1px solid #C81E3A;
  padding: 12px 26px;
  border-radius: 6px;
  font-weight: 600;
  font-size: 0.95rem;
  transition: filter 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
}

.btn-primary-custom:hover {
  filter: brightness(0.92);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(200, 30, 58, 0.32);
}

.btn-outline-custom {
  background: transparent;
  color: var(--red);
  border: 1px solid var(--red);
  padding: 10px 22px;
  border-radius: 6px;
  font-weight: 600;
  font-size: 0.9rem;
  display: inline-block;
  transition: background 0.2s ease, color 0.2s ease, transform 0.15s ease;
}

.btn-outline-custom:hover {
  background: var(--red);
  color: #fff;
  transform: translateY(-2px);
}

.btn-sm-custom { padding: 8px 18px; font-size: 0.85rem; }
*/

/* ==========================================================================
   MAIN SITE HEADER (header.php) — top-bar + main navigation
   ========================================================================== */

.main-nav {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: transparent;
  border-bottom: 1px solid transparent;
  padding: 0 3rem;
  margin-bottom: calc(-1 * var(--nav-h));
  transition: background 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}

.main-nav.is-scrolled {
  background: #fff;
  border-bottom: 1px solid var(--border);
  box-shadow: 0 2px 14px rgba(11, 15, 20, 0.06);
}

.main-nav-inner {
  display: flex;
  align-items: center;
  gap: 32px;
  padding: 14px 16px;
}

.main-nav-logo {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.2rem;
  color: var(--ink);
  white-space: nowrap;
  transition: opacity 0.2s ease;
}

.main-nav-logo:hover {
  opacity: 0.8;
}

.main-nav-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 32px;
  height: 32px;
  background: transparent;
  border: none;
  cursor: pointer;
  margin-left: auto;
}

.main-nav-toggle span {
  display: block;
  height: 2px;
  background: var(--ink);
  border-radius: 2px;
}

.main-nav-menu {
  display: flex;
  align-items: center;
  gap: 28px;
  margin-left: auto;
  flex-wrap: wrap;
}

.main-nav-links {
  list-style: none;
  display: flex;
  align-items: center;
  gap: 26px;
  margin: 0;
  padding: 0;
}

.main-nav-links a {
  position: relative;
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--ink);
  padding: 4px 0;
  transition: color 0.2s ease;
}

.main-nav-links a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 0%;
  height: 2px;
  background: var(--red);
  transition: width 0.2s ease;
}

.main-nav-links a:hover {
  color: var(--red);
}

.main-nav-links a:hover::after {
  width: 100%;
}

.main-nav-ctas {
  display: flex;
  align-items: center;
  gap: 10px;
}

.main-nav-btn {
  padding: 9px 18px;
  font-size: 0.86rem;
}

.main-nav-logo img {
  width: 130px;
}

@media (max-width: 1240px) {

  .main-nav-logo img {
    width: 95px;
  }

  .consulting {
    transform: none !important;
  }

  .mega-menu {
    transform: none !important;
  }

  .main-nav-inner {
    flex-wrap: wrap;
  }

  .main-nav-toggle {
    display: flex;
  }

  .main-nav-menu {
    display: none;
    width: 100%;
    flex-direction: column;
    align-items: flex-start;
    gap: 18px;
    margin: 14px 0 4px;
    order: 3;
  }

  .main-nav-menu.open {
    display: block;
    max-height: calc(85vh - 90px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    padding: 1rem 1.25rem 1.25rem;
    background: #ffffff;
    border-radius: 14px;
    box-shadow: 0 16px 36px rgba(11, 15, 20, 0.14);
  }

  .main-nav-links {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    width: 100%;
    margin-bottom: 2%;
  }

  .main-nav-links a {
    display: block;
    padding: 8px 0;
  }

  .main-nav-ctas {
    width: 100%;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }

  .section-subnav {
    /* top: 0% !important; */
  }

  .main-nav-btn {
    text-align: center;
  }

  .top-bar-contact {
    display: none;
  }

}

/* --- Mega menu (Service 1 / Service 2) --- */

.has-mega i {
  font-size: 14px;
}

.has-mega {
  position: relative;
  display: flex;
  align-items: center;
}

/* Top-level caret button (Service 1 / Service 2) */

.mega-caret {
  display: none;
  align-items: center;
  justify-content: center;
  background: var(--surface-alt);
  border: 1px solid var(--border);
  border-radius: 50%;
  width: 30px;
  height: 30px;
  margin-left: 6px;
  cursor: pointer;
  position: relative;
  transition: background 0.2s ease, border-color 0.2s ease;
}

.mega-caret::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 8px;
  height: 8px;
  border-right: 2px solid var(--ink);
  border-bottom: 2px solid var(--ink);
  transform: translate(-50%, -65%) rotate(45deg);
  transition: transform 0.25s ease, border-color 0.2s ease;
}

.has-mega.mega-open .mega-caret {
  background: #FDEBEC;
  border-color: var(--red);
}

.has-mega.mega-open .mega-caret::before {
  border-color: var(--red);
  transform: translate(-50%, -35%) rotate(225deg);
}

/* --- Desktop panel (anchored dropdown, not full-width) --- */

.mega-menu {
  position: absolute;
  top: calc(100% + 16px);
  left: 0%;
  transform: translateX(-35%) !important;
  width: 940px;
  max-width: min(940px, calc(100vw - 32px));
  background: #fff;
  border: 1px solid var(--border);
  border: 1px solid #ffdcdc;
  border-radius: 8px;
  box-shadow: 0 24px 48px rgba(11, 15, 20, 0.16);
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px);
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
  z-index: 1100;
}

.mega-menu.align-right {
  /* left: -400%; */
  right: 0;
}

.has-mega:hover .mega-menu,
.has-mega:focus-within .mega-menu,
.has-mega.mega-open .mega-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.consulting {
  transform: translateX(-55%) !important;
}

.mega-menu-inner {
  padding: 32px 36px;
  display: flex;
  gap: 48px;
}

/* Left column — plain text category list */

.mega-col.mega-categories {
  flex: 0 0 350px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  background: var(--surface-alt);
  margin: -32px 0 -32px -36px;
  padding: 32px 20px 32px 36px;
  border-top-left-radius: 13px;
  border-bottom-left-radius: 13px;
}

.mega-cat {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  text-align: left;
  background: transparent;
  border: none;
  border-radius: 6px;
  padding: 10px 12px;
  font-size: 0.96rem;
  font-weight: 600;
  color: var(--ink);
  cursor: pointer;
  transition: color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease;
}

.mega-cat:hover,
.mega-cat.active {
  background: linear-gradient(135deg, #FF5F5F 0%, #E63946 55%, #C81E3A 100%);
  color: #fff;
  box-shadow: 0 8px 20px rgba(200, 30, 58, 0.32);
  transform: translateX(2px);
}

.mega-cat-arrow {
  flex-shrink: 0;
  position: relative;
  width: 7px;
  height: 7px;
}

.mega-cat-arrow::before {
  content: "";
  position: absolute;
  inset: 0;
  border-right: 2px solid var(--muted);
  border-bottom: 2px solid var(--muted);
  transform: rotate(-45deg);
  transition: border-color 0.2s ease;
}

.mega-cat:hover .mega-cat-arrow::before,
.mega-cat.active .mega-cat-arrow::before {
  border-color: #fff;
}

/* Right column — heading + two-column plain link list */

.mega-col.mega-services {
  flex: 1;
  /* padding-left: 40px; */
  min-width: 0;
}

.mega-active-heading {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.3rem;
  color: var(--red);
  margin-bottom: 22px;
}

.mega-panel {
  display: none;
  list-style: none;
  margin: 0;
  padding: 0;
  column-count: 2;
  column-gap: 40px;
}

.mega-panel.active {
  display: block;
}

.mega-panel li {
  break-inside: avoid;
  margin-bottom: 15px;
}

.mega-panel a {
  display: inline-block;
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--ink);
  padding: 1px 0;
  transition: color 0.2s ease;
}

.mega-panel a:hover {
  color: var(--red);
}

.mobile-menu {
  display: none;
}

/* ==========================================================================
   MOBILE MEGA MENU
   ========================================================================== */

@media (max-width: 1240px) {

  .main-nav {
    /* position: static; */
  }

  .has-mega {
    flex-wrap: wrap;
    width: 100%;
    justify-content: space-between;
  }

  .has-mega i {
    display: none;
  }

  .mega-caret {
    display: flex;
  }

  .mega-menu {
    position: static;
    display: none;
    width: 100%;
    background: var(--surface-alt);
    border-top: none;
    border-radius: 10px;
    box-shadow: none;
    margin-top: 10px;
    opacity: 1;
    visibility: visible;
    transform: none !important;
  }

  .has-mega.mega-open .mega-menu {
    display: block;
  }

  .mega-menu-inner {
    max-width: none;
    padding: 16px;
    display: block;
  }

  .mega-col.mega-categories {
    width: 100%;
    gap: 2px;
    background: transparent;
    margin: 0;
    padding: 0;
    border-radius: 0;
  }

  .mega-cat {
    width: 100%;
    background: #fff;
    border: 1px solid var(--border);
    border-left: 3px solid transparent;
    border-radius: 8px;
    padding: 13px 14px;
    font-size: 0.9rem;
    margin-bottom: 6px;
  }

  .mega-cat:hover,
  .mega-cat.active {
    background: linear-gradient(135deg, #FF5F5F 0%, #E63946 55%, #C81E3A 100%);
    color: #fff;
    border-color: #C81E3A;
    border-left-color: #C81E3A;
    box-shadow: 0 8px 20px rgba(200, 30, 58, 0.28);
  }

  .mega-cat:hover .mega-cat-arrow::before,
  .mega-cat.active .mega-cat-arrow::before {
    border-color: #fff;
  }

  .mega-cat-arrow {
    transform: rotate(45deg);
    transition: transform 0.2s ease;
  }

  .mega-cat-arrow::before {
    transform: rotate(-45deg);
  }

  .mega-cat.active .mega-cat-arrow {
    transform: rotate(225deg);
  }

  .mega-col.mega-services {
    border-left: none;
    padding-left: 0;
  }

  .mega-active-heading {
    display: none;
  }

  .mega-panel {
    column-count: 1;
    padding: 4px 0 10px 16px;
    margin: 0 0 6px 8px;
    border-left: 2px solid var(--red);
  }

  .mega-panel a {
    display: block;
    padding: 9px 10px;
    font-size: 0.88rem;
    background: #fff;
    border-radius: 6px;
    margin-bottom: 4px;
  }

  .mobile-menu {
    display: block;
  }
}

@media (max-width: 360px) {

  .top-bar,
  .main-nav {
    padding: 0;
  }


}

@media (max-width:1336px) {
  .main-nav {
    padding: 0;
  }
}

/* ===== footer.css ===== */

/* ==========================================================================
   SITE FOOTER (footer.php) — standalone stylesheet
   Colors match the site's existing design system (--ink, --red gradient)
   rather than the original reference screenshot's navy/gold palette.

   DEPENDENCIES — this file assumes the following are already defined
   elsewhere on the page (either paste them above this file, or keep
   them in your main stylesheet):

     --ink, --border, --font-display, --font-body
     (see :root in style.css / header-nav.css for exact values)

   Google Fonts + Bootstrap 5 should already be loaded in <head> from
   header.php's setup — no additional requirements beyond that.
   ========================================================================== */

.site-footer {
  --footer-bg: var(--ink, #0B0F14);
  --footer-accent: var(--red, #DC2626);
  --footer-accent-gradient: linear-gradient(135deg, #FF5F5F 0%, #E63946 55%, #C81E3A 100%);
  --footer-text: #FFFFFF;
  --footer-muted: #B7C0CC;
  --footer-border: rgba(255, 255, 255, 0.12);

  background: var(--footer-bg);
  color: var(--footer-text);
  padding: 40px 0 32px;
  font-size: 0.92rem;
}

/* --- Top row: logo + simple nav --- */

.footer-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 20px;
  padding-bottom: 24px;
}

.footer-logo {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.3rem;
  color: #fff;
  letter-spacing: 0.02em;
}

.footer-logo span {
  font-weight: 500;
  color: var(--footer-muted);
}

.footer-top-links {
  list-style: none;
  display: flex;
  gap: 32px;
  margin: 0;
  padding: 0;
  flex-wrap: wrap;
}

.footer-top-links a {
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #fff;
  transition: color 0.2s ease;
}

.footer-top-links a:hover {
  color: var(--footer-accent);
}

/* --- Dotted section dividers --- */

.footer-divider {
  border: none;
  border-top: 1px dotted var(--footer-border);
  margin: 0;
}

/* --- 5-column sitemap grid --- */

.footer-cols {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 32px;
  padding: 28px 0;
}

.footer-col-heading {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1rem;
  color: var(--footer-accent);
  margin-bottom: 14px;
}

.footer-link-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.footer-link-list li {
  margin-bottom: 10px;
}

.footer-link-list a {
  font-size: 0.88rem;
  color: var(--footer-text);
  transition: color 0.2s ease, padding-left 0.2s ease;
}

.footer-link-list a:hover {
  color: var(--footer-accent);
  padding-left: 3px;
}

@media (max-width: 992px) {
  .footer-cols {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 560px) {
  .footer-cols {
    grid-template-columns: 1fr;
  }
}

/* --- Disclaimer --- */

.footer-disclaimer {
  padding: 24px 0;
}

.footer-disclaimer h4 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.1rem;
  color: #fff;
  margin-bottom: 12px;
}

.footer-disclaimer p {
  font-size: 0.88rem;
  color: var(--footer-muted);
  max-width: 900px;
  margin-bottom: 14px;
}

.footer-disclaimer ul {
  list-style: disc;
  padding-left: 20px;
  margin: 0;
}

.footer-disclaimer li {
  font-size: 0.85rem;
  color: var(--footer-muted);
  margin-bottom: 8px;
  max-width: 900px;
}

/* --- Bottom bar: socials + copyright + legal links --- */

.footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px;
  padding-top: 24px;
}

.footer-socials {
  display: flex;
  gap: 10px;
}

.footer-social-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1px solid var(--footer-accent);
  color: var(--footer-accent);
  transition: background 0.2s ease, color 0.2s ease, transform 0.15s ease;
}

.footer-social-icon:hover {
  background: var(--footer-accent-gradient);
  border-color: transparent;
  color: #fff;
  box-shadow: 0 8px 20px rgba(200, 30, 58, 0.32);
  transform: translateY(-2px);
}

.footer-copyright {
  font-size: 0.85rem;
  color: var(--footer-muted);
  margin: 0;
  text-align: center;
}

.footer-copyright a {
  color: var(--footer-accent);
  font-weight: 600;
  transition: opacity 0.2s ease;
}

.footer-copyright a:hover {
  opacity: 0.8;
}

.footer-legal-links {
  list-style: none;
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  padding: 0;
}

.footer-legal-links a {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #fff;
  transition: color 0.2s ease;
}

.footer-legal-links a:hover {
  color: var(--footer-accent);
}

.footer-legal-divider {
  color: var(--footer-muted);
  font-size: 0.78rem;
}

@media (max-width: 700px) {
  .footer-bottom {
    flex-direction: column;
    text-align: center;
  }
}

/**start get msg**/
.get-msg {
  position: relative;
  margin-left: 1.5%;
}

.get-msg .get-msg-call {
  position: fixed;
  bottom: 2%;
  width: 221px;
  height: 65px;
  background-color: #fff;
  border-radius: 100px;
  line-height: 21px;
  border: none;
  padding: 0 0 0 11px;
  display: flex;
  text-align: left;
  letter-spacing: 0.5px;
  z-index: 99999;
  color: #000;
  font-size: 0.6em;
  align-items: center;
  left: 14px;
}

.get-msg .order-call-icon {
  margin-right: 6%;
  width: 49px;
  height: 49px;
  border-radius: 100px;
  background-color: #30a447;
  text-align: center;
  line-height: 62px;
}

.get-msg .order-call-icon i {


  color: #fff;
  font-size: 28px;
}

.get-msg h6 {
  font-size: 1.3em;
  font-family: 'Karla', sans-serif;
  font-weight: 800;
  margin-bottom: 2px;
}

.get-msg p {
  font-size: 11px;
  margin-top: 0;
  line-height: 15px;
  margin-bottom: 0;
  font-family: 'Karla', sans-serif;
  font-weight: 600;
  color: #424040;
  text-transform: uppercase;

}



.modal-dialog {
  margin: 0 0 0 1.5%;
  position: fixed;
  bottom: 18%;
  text-align: center;

}

.modal-header {
  padding: 0;
}

.modal-header .close {
  padding: 1rem;
  margin: -1rem -1rem -1rem auto;
  position: absolute;
  right: 11px;
  top: 5px;
}

.close {
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1;
  color: #fff;
  text-shadow: 0 1px 0 #fff;
}

.modal-title {
  color: #000;
  font-weight: 600;
  font-size: 0.9em;
}

.modal-header {
  border: none;
  padding-bottom: 0;
  background-color: #095e54;
  border-radius: 11px;
}

.get-msg .form-control:focus {
  color: #495057;
  background-color: #fff;
  border-color: transparent;
  outline: none;
  box-shadow: none;
  border-top: 1px solid #f5111b;
  border-left: 1px solid #f5111b;
  border-bottom: 1px solid #f5111b;
  border-right: 1px solid #f5111b !important;
}

.get-msg .input-group-text {
  border-right: 1px solid #fff !important;
  border-top: 1px solid #f5111b !important;
  border-bottom: 1px solid #f5111b !important;
  border-left: 1px solid #f5111b !important;
  background-color: transparent;
  padding: 0 0 0 11px;
  border-radius: 13px 0 0 13px;
}

.get-msg .input-group>.form-control {
  border-top: 1px solid #f5111b;
  border-left: 1px solid transparent !important;
  border-bottom: 1px solid #f5111b;
  border-right: 1px solid #f5111b;
  border-radius: 0 13px 13px 0;
}

.get-msg .call-me {
  font-size: 14px;
  line-height: 41px;
  color: #fff;
  text-transform: uppercase;
  font-weight: 700;
  height: 42px;
  padding: 0 29px;
  border-radius: 4px;
  -moz-border-radius: 4px;
  -webkit-border-radius: 4px;
  display: inline-block;
  letter-spacing: 1.5px;
  width: 100%;
  border-radius: 34px;
  background-color: #30a447;
  border: none;
}

.get-msg .call-me:hover {
  background-color: #34c751;
}

.modal-content {
  border-radius: 1em;
}

.modal-dialog {
  max-width: 400px;
}

.modal-body i {
  transform: rotate(90deg);
  color: #f5111b;
}

.get-msg select {
  width: 50px;
  background-color: transparent;
  border-right: none !important;
  border-top: 1px solid #f5111b !important;
  border-bottom: 1px solid #f5111b !important;
  border-left: none !important;
  font-size: 16px;
}



.wrap button {
  box-shadow: 0 0 20px 0px #0000003d;

}

.modal-header .close {
  padding: 1rem;
  margin: -1rem -1rem -1rem auto;
  position: absolute;
  right: 11px;
  top: 5px;
}

/* ===== lp-crypto.css ===== */
/* ==========================================================================
   lp-crypto.css
   India Crypto Market-Entry — funnel landing pages (Stage 1 / 2 / 3)

   LOAD ORDER (matters — later files override earlier ones on shared class
   names like .site-footer and .btn-outline-custom):

     1. bootstrap.min.css
     2. fiu-styles.css      (design tokens + most page components — reused as-is)
     3. header-nav.css      (standalone header / mega-menu component)
     4. footer.css          (standalone footer component)
     5. lp-crypto.css       (this file — new sections + two intentional overrides)

   WHAT THIS FILE DOES NOT DO: it does not redefine anything that already
   exists and works in fiu-styles.css (cards, timeline, accordion, trust
   bar, tables, testimonials, CTA banners). Those are reused directly in
   the HTML. This file only adds what the funnel actually needs on top:
   a no-image hero system, a lead-magnet form, an engagement/pricing
   block, a booking/scheduling widget, an advisor trust card, and a
   distraction-free mode for the Stage 3 page.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Two intentional overrides, documented up front:

   1. fiu-styles.css defines .btn-outline-custom as a solid-green WhatsApp
      button (#25d366) for its own page. header-nav.css's own comments
      describe .btn-outline-custom as a transparent/red OUTLINE button,
      meant for the header's secondary nav CTA. Both are valid in their
      own context, so rather than fight the cascade globally, the outline
      look is restored *scoped to the header nav only* — the WhatsApp
      button elsewhere on the page is untouched.
   2. .btn-sm-custom is referenced in header-nav.css's dependency comment
      block but never defined anywhere — defined here, small and unopinionated.
   -------------------------------------------------------------------------- */
.main-nav-ctas .btn-outline-custom {
  background: #ffffff;
  color: var(--red);
  border: 1px solid var(--red);
  box-shadow: none;
}

.main-nav-ctas .btn-outline-custom:hover {
  background: var(--red);
  color: #fff;
  transform: translateY(-2px);
}

.btn-sm-custom {
  padding: 8px 18px;
  font-size: 0.85rem;
}

/* --------------------------------------------------------------------------
   Mobile overflow fix: flex items with min-width:auto (the CSS default)
   refuse to shrink below their content's intrinsic width, which can push
   a badge or top-bar link wider than a narrow viewport. fiu-styles.css's
   .file-tag and header-nav.css's .top-bar-link are both inline-flex with a
   text child, so the label text here is wrapped in its own <span> in the
   HTML and given min-width: 0 — the standard fix — rather than patched
   with a global override that could affect unrelated flex layouts.
   -------------------------------------------------------------------------- */
.file-tag .ft-label,
.top-bar-link>span {
  min-width: 0;
}

.file-tag {
  max-width: 100%;
  flex-wrap: wrap;
  row-gap: 2px;
}

/* ==========================================================================
   Hero system — no background images anywhere (none were supplied), built
   entirely from the token system. Light surface, matching the rest of the
   page, with the red accent doing the work instead of a dark band. Three
   tone variants, one per funnel stage, so the visitor can feel which stage
   they're in.
   ========================================================================== */
.lp-hero {
  position: relative;
  overflow: hidden;
  padding: calc(var(--nav-h) + 1.5rem) 0 3.5rem;
  background: radial-gradient(900px 420px at 12% -10%, rgba(220, 38, 38, 0.07), transparent 60%),
    linear-gradient(160deg, var(--surface) 0%, var(--surface-alt) 100%);
  color: var(--muted);
  border-bottom: 1px solid var(--border);
}

.lp-hero::after {
  /* faint document-grid texture, pure CSS, echoes the "dossier" motif used
     for .stamp / .file-tag elsewhere on the site */
  content: "";
  position: absolute;
  inset: 0;
  background-image: linear-gradient(rgba(11, 15, 20, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(11, 15, 20, 0.035) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.9), transparent 75%);
  pointer-events: none;
}

.lp-hero .container {
  position: relative;
  z-index: 1;
}

.lp-hero h1 {
  color: var(--ink);
  font-weight: 900;
  font-size: clamp(2.3rem, 4.6vw, 3.5rem);
  line-height: 1.1;
  max-width: 22ch;
  margin-bottom: 1.5rem;
}

.lp-hero .lp-sub {
  color: var(--muted);
  font-size: clamp(0.98rem, 1.5vw, 1.12rem);
  max-width: 58ch;
  margin-bottom: 2.25rem;
}

.lp-hero .lp-sub strong {
  color: var(--ink);
  font-weight: 600;
}

.lp-hero .eyebrow {
  margin-bottom: 1.1rem;
}

/* .trust-bar / .trust-item already look right on a light surface as
   authored in fiu-styles.css — only the top margin and max-width need a
   small hero-context adjustment, no color overrides required. */
.lp-hero .trust-bar {
  max-width: 100%;
  margin-top: 2.25rem;
}

.lp-hero .trust-item {
  padding: 0.9rem 1rem;
}

/* Stage-specific hero tone: 1 = deep authority, 2 = slightly warmer
   (consideration), 3 = tight and urgent-but-calm (booking) — all light,
   differentiated by padding rhythm and accent placement rather than by
   going dark. */
.lp-hero--awareness {
  padding-bottom: 4.5rem;
}

.lp-hero--services {
  padding: 3.5rem 0 3rem;
}

.lp-hero--booking {
  padding: 3rem 0 2.5rem;
  background: radial-gradient(700px 320px at 85% -20%, rgba(220, 38, 38, 0.1), transparent 60%),
    linear-gradient(160deg, var(--surface) 0%, var(--surface-alt) 100%);
}

.lp-hero--booking h1 {
  max-width: 26ch;
}

/* Small "you are here" funnel indicator, reused across all three pages so
   the visitor can orient themselves — three dots + labels, not a numbered
   process (this isn't a sequence the visitor performs, it's a map of where
   they are), so plain state dots rather than 01/02/03 markers. */
.lp-funnel-track {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 1.5rem;
}

.lp-funnel-track .seg {
  width: 34px;
  height: 4px;
  border-radius: 2px;
  background: var(--border);
}

.lp-funnel-track .seg.done {
  background: var(--red);
}

.lp-funnel-track span.lbl {
  font-family: var(--font-body);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
  margin-left: 4px;
}

/* ==========================================================================
   Stage 1 — Lead-magnet card (gated guide download)
   ========================================================================== */
.lead-magnet {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 2.25rem;
  box-shadow: 0 20px 44px rgba(11, 15, 20, 0.08);
  margin-top: 11%;
}

.lead-magnet-icon {
  width: 52px;
  height: 52px;
  border-radius: 10px;
  background: #fdeded;
  color: var(--red);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  margin-bottom: 1.1rem;
}

.lead-magnet h2 {
  font-size: 1.4rem;
  margin-bottom: 0.5rem;
}

.lead-magnet .lede {
  margin-bottom: 1.5rem;
  font-size: 0.9rem;
}

.lp-form .form-label {
  font-family: var(--font-body);
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--ink);
  margin-bottom: 0.35rem;
}

.lp-form .form-control {
  border: 1px solid var(--border);
  border-radius: 8px;

  font-size: 0.92rem;
  color: var(--ink);
  padding: 1.5rem 0.9rem;

}

.lp-form .form-select {
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 0.92rem;
  color: var(--ink);
  padding: 1.0rem 0.9rem;
  line-height: 17px;
  height: auto;
}

.lp-form .form-control:focus,
.lp-form .form-select:focus {
  border-color: var(--red);
  box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.12);
}

.lp-form textarea {
  height: 100px !important;
  padding-top: 15px !important;
}

/* Phone field with an attached country-code dropdown — reusable on any
   .lp-form. Bootstrap's .input-group handles the flex layout. Built as
   a custom button+menu (not a native <select>) for two reasons a native
   select can't do: real flag icon images (emoji flags don't render on
   Windows — falls back to plain letters), and a closed state that shows
   only flag+code while the open list shows the full country name. */
.lp-phone-code-dropdown {
  position: relative;
  flex: 0 0 auto;
}

.lp-phone-code-btn {
  display: flex;
  align-items: center;
  gap: 6px;
  height: 100%;
  border: 1px solid var(--border);
  border-right: none;
  border-radius: 8px 0 0 8px;
  background: #ffffff;
  padding: 0.65rem 0.7rem;
  font-size: 0.92rem;
  color: var(--ink);
  cursor: pointer;
}

.lp-phone-code-btn:hover {
  background: var(--surface-alt);
}

.lp-phone-code-btn:focus,
.lp-phone-code-btn[aria-expanded="true"] {
  outline: none;
  border-color: var(--red);
  box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.12);
  position: relative;
  z-index: 3;
}

.lp-phone-code-btn i {
  font-size: 0.7rem;
  color: var(--muted);
  margin-left: 1px;
}

.lp-phone-flag {
  width: 20px;
  height: 15px;
  object-fit: cover;
  border-radius: 2px;
  flex-shrink: 0;
}

.lp-phone-code-label {
  font-weight: 600;
  white-space: nowrap;
}

.lp-phone-code-menu {
  min-width: 240px;
  max-height: 280px;
  overflow-y: auto;
  padding: 0.4rem;
  border: 1px solid var(--border);
  border-radius: 10px;
  box-shadow: 0 16px 36px rgba(11, 15, 20, 0.14);
}

.lp-phone-code-menu .dropdown-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0.5rem 0.6rem;
  border-radius: 6px;
  font-size: 0.88rem;
  color: var(--ink);
}

.lp-phone-code-menu .dropdown-item img {
  width: 20px;
  height: 15px;
  object-fit: cover;
  border-radius: 2px;
  flex-shrink: 0;
}

.lp-phone-code-menu .dropdown-item i.bi-globe2 {
  width: 20px;
  text-align: center;
  color: var(--muted);
}

.lp-phone-code-menu .dropdown-item span:first-of-type {
  flex: 1 1 auto;
}

.lp-phone-code-menu-code {
  color: var(--muted);
  font-size: 0.8rem;
}

.lp-phone-code-menu .dropdown-item:hover,
.lp-phone-code-menu .dropdown-item:focus {
  background: var(--surface-alt);
}

.lp-phone-code-menu .dropdown-item.active {
  background: #fdeded;
  color: var(--ink);
}

.lp-phone-field .form-control {
  border-radius: 0 8px 8px 0;
}

.lp-form-note {
  font-size: 0.76rem;
  color: var(--muted);
  margin-top: 0.85rem;
  display: flex;
  align-items: flex-start;
  gap: 6px;
}

.btn-lp-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.95rem;
  color: #ffffff;
  background: linear-gradient(135deg, #ff5f5f 0%, #e63946 55%, #c81e3a 100%);
  border: 1px solid #c81e3a;
  border-radius: 8px;
  padding: 0.85rem 1.5rem;
  transition: filter 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease;
}

.btn-lp-primary:hover {
  filter: brightness(0.94);
  box-shadow: 0 10px 24px rgba(200, 30, 58, 0.32);
  transform: translateY(-2px);
  color: #ffffff;
}

.lp-secondary-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.88rem;
  color: var(--blue);
}

.lp-secondary-link:hover {
  color: var(--blue-dark);
}

/* ==========================================================================
   Stage 2 — Engagement / transparency block
   ========================================================================== */
.engagement-block {
  background: var(--surface-alt);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 2.5rem;
}

.engagement-block .lp-included li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 0.85rem;
  font-size: 0.92rem;
  color: var(--ink);
}

.engagement-block .lp-included li i {
  color: var(--red);
  margin-top: 3px;
  flex-shrink: 0;
}

.engagement-card {
  background: var(--ink);
  border-radius: 10px;
  padding: 1.75rem;
  color: #fff;
  height: 100%;
}

.engagement-card .tag {
  font-family: var(--font-body);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #fca5a5;
  margin-bottom: 0.6rem;
  display: block;
}

.engagement-card p {
  color: #c9d0d9;
  font-size: 0.9rem;
}

.engagement-card .fee-note {
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: 700;
  color: #fff;
  margin-bottom: 0.4rem;
}

/* Case study / anonymised outcome card */
.case-study {
  background: var(--surface);
  border: 1px solid var(--border);
  border-left: 3px solid var(--red);
  border-radius: 10px;
  padding: 1.75rem 2rem;
}

.case-study .tag {
  font-family: var(--font-body);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--red);
  margin-bottom: 0.6rem;
  display: block;
}

.case-study .outcome {
  display: flex;
  gap: 2rem;
  margin-top: 1.1rem;
  flex-wrap: wrap;
}

.case-study .outcome .v {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.3rem;
  color: var(--ink);
  display: block;
}

.case-study .outcome .k {
  font-size: 0.76rem;
  color: var(--muted);
}

/* Consultation form (Stage 2 primary CTA — 4 fields) */
.consult-form {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 2.25rem;
  box-shadow: 0 20px 44px rgba(11, 15, 20, 0.08);
}

/* ==========================================================================
   Stage 3 — Booking layout: form + scheduling widget side by side
   ========================================================================== */
.booking-panel {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 24px 56px rgba(11, 15, 20, 0.1);
}

.booking-panel .booking-form-col {
  padding: 2.25rem;
}

.booking-panel .booking-schedule-col {
  background: var(--surface-alt);
  padding: 2.25rem;
  border-left: 1px solid var(--border);
}

@media (max-width: 767.98px) {
  .booking-panel .booking-schedule-col {
    border-left: none;
    border-top: 1px solid var(--border);
  }
}

.schedule-widget h3 {
  font-size: 1rem;
  margin-bottom: 1.1rem;
  font-family: "Geist", sans-serif !important;
}

.schedule-days {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 1.25rem;
}

.schedule-day {
  flex: 1 1 calc(25% - 6px);
  min-width: 64px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 0.6rem 0.4rem;
  text-align: center;
  cursor: pointer;
  transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.schedule-day .dow {
  display: block;
  font-size: 0.66rem;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.schedule-day .dom {
  display: block;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.05rem;
  color: var(--ink);
}

.schedule-day:hover {
  border-color: var(--red);
}

.schedule-day.selected {
  background: linear-gradient(135deg, #ff5f5f 0%, #e63946 55%, #c81e3a 100%);
  border-color: #c81e3a;
}

.schedule-day.selected .dow,
.schedule-day.selected .dom {
  color: #fff;
}

.schedule-slots {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.schedule-slot {
  flex: 1 1 calc(50% - 4px);
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 0.55rem 0.5rem;
  text-align: center;
  font-family: var(--font-body);
  font-size: 0.84rem;
  font-weight: 600;
  color: var(--ink);
  cursor: pointer;
  transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.schedule-slot:hover {
  border-color: var(--red);
  color: var(--red);
}

.schedule-slot.selected {
  background: var(--ink);
  border-color: var(--ink);
  color: #fff;
}

.schedule-slot[disabled] {
  opacity: 0.35;
  cursor: not-allowed;
}

/* Advisor trust card — single named handoff */
.advisor-card {
  display: flex;
  align-items: center;
  gap: 14px;
  background: var(--surface-alt);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 1rem 1.25rem;
  margin-top: 1.5rem;
}

.advisor-card .avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  flex-shrink: 0;
  background: linear-gradient(135deg, #ff5f5f 0%, #e63946 55%, #c81e3a 100%);
  border: 1px solid #c81e3a;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.95rem;
}

.advisor-card .name {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.92rem;
  color: var(--ink);
  display: block;
}

.advisor-card .role {
  font-size: 0.78rem;
  color: var(--muted);
  display: block;
}

.lp-reassurance {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 0.82rem;
  color: var(--muted);
  margin-top: 0.9rem;
  text-align: center;
}

.lp-reassurance i {
  color: #1f7a3d;
}

/* ==========================================================================
   Distraction-free mode — Stage 3 only. Hides secondary navigation and
   sitemap so the booking panel is the page's only real job, per the
   landing-page brief's cross-stage rule for the hot-remarketing page.
   Logo, phone (for reassurance) and legal disclosures stay.
   ========================================================================== */
body.lp-focus .main-nav-links,
body.lp-focus .main-nav-ctas,
body.lp-focus .top-bar-pages {
  display: none !important;
}

body.lp-focus .footer-top-links,
body.lp-focus .footer-cols,
body.lp-focus .footer-divider:nth-of-type(1),
body.lp-focus .footer-divider:nth-of-type(2) {
  display: none !important;
}

/* ==========================================================================
   "How we help" pillar cards (Stage 1) — v2, soft pastel background per
   card, a white icon badge + heading/description header, and a floating
   white "preview" panel bleeding off the bottom edge, modeled on a SaaS
   product-card reference the client supplied. Each preview panel shows a
   small illustrative stat/status snippet relevant to that pillar — not a
   real dashboard, just an at-a-glance visual, built from plain HTML/CSS
   (no images). The small uppercase kicker label is kept from the previous
   version, per the client's note, just restyled for a light background.
   ========================================================================== */
.pillar-card {
  position: relative;
  overflow: hidden;
  border-radius: 20px;
  border: 1px solid rgba(11, 15, 20, 0.07);
  padding: 1.6rem 1.6rem 0;
  height: 100%;
  min-height: 360px;
  display: flex;
  flex-direction: column;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.pillar-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 36px rgba(11, 15, 20, 0.1);
}

.pillar-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: radial-gradient(rgba(11, 15, 20, 0.05) 1px, transparent 1px);
  background-size: 14px 14px;
  mask-image: linear-gradient(180deg, black 0%, transparent 60%);
  -webkit-mask-image: linear-gradient(180deg, black 0%, transparent 60%);
}

.pillar-card>* {
  position: relative;
  z-index: 1;
}

.pillar-icon {
  width: 42px;
  height: 42px;
  border-radius: 11px;
  background: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.15rem;
  color: var(--red);
  box-shadow: 0 2px 8px rgba(11, 15, 20, 0.08);
  margin-bottom: 1rem;
}

.pillar-badge {
  display: block;
  font-family: var(--font-body);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--red);
  margin-bottom: 0.4rem;
}

.pillar-card h3 {
  font-family: "Geist", sans-serif !important;
  font-weight: 800;
  font-size: 1.12rem;
  color: var(--ink);
  line-height: 1.3;
  margin-bottom: 0.5rem;
}

.pillar-card p {
  font-size: 0.85rem;
  color: var(--muted);
  line-height: 1.5;
  margin-bottom: 1.1rem;
}

/* Floating preview panel — bleeds past the card's own bottom edge; the
   parent's overflow:hidden + border-radius crops it, producing the
   "peeking from below" look in the reference. */
.pillar-preview {
  margin-top: auto;
  background: #ffffff;
  border: 1px solid var(--border);
  border-bottom: none;
  border-radius: 14px 14px 0 0;
  box-shadow: 0 -10px 24px rgba(11, 15, 20, 0.07);
  padding: 0.95rem 1.05rem 1.6rem;
}

.pillar-preview-label {
  font-family: var(--font-body);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 0.5rem;
}

/* Preview type: big stat + sub-stats row (cards 1 & 4) */
.pillar-preview-stat {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 1.55rem;
  color: var(--ink);
  line-height: 1;
  margin-bottom: 0.15rem;
}

.pillar-preview-stat span {
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 0.72rem;
  color: var(--muted);
  margin-left: 4px;
}

.pillar-preview-substats {
  display: flex;
  gap: 0.9rem;
  margin-top: 0.6rem;
  padding-top: 0.6rem;
  border-top: 1px solid var(--border);
}

.pillar-preview-substats>div {
  display: flex;
  flex-direction: column;
  gap: 2px;
  text-align: left;
}

.pillar-preview-substats strong {
  font-family: var(--font-display);
  font-size: 0.82rem;
  color: var(--ink);
}

.pillar-preview-substats span {
  font-size: 0.66rem;
  color: var(--muted);
}

/* Preview type: labelled progress bars (card 2) */
.pillar-bar-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 0.55rem;
}

.pillar-bar-row:last-child {
  margin-bottom: 0;
}

.pillar-bar-row span {
  flex: 0 0 68px;
  font-size: 0.68rem;
  color: var(--muted);
}

.pillar-bar-row .bar {
  flex: 1;
  height: 6px;
  background: var(--surface-alt);
  border-radius: 999px;
  overflow: hidden;
}

.pillar-bar-row .bar i {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, #ff5f5f, #c81e3a);
  border-radius: 999px;
}

/* Preview type: status list (card 3) */
.pillar-status-row {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.78rem;
  color: var(--ink);
  margin-bottom: 0.5rem;
}

.pillar-status-row:last-child {
  margin-bottom: 0;
}

.pillar-status-row strong {
  margin-left: auto;
  font-size: 0.68rem;
  font-weight: 700;
}

.pillar-status-row .dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

.pillar-status-row .dot.done {
  background: #1f7a3d;
}

.pillar-status-row .dot.active {
  background: #ef9c1f;
}

/* Pastel background variants */
.pillar-card--amber {
  background: linear-gradient(160deg, #fef3e0 0%, #fbe6c4 100%);
}

.pillar-card--blush {
  background: linear-gradient(160deg, #fdeef1 0%, #f8e2e8 100%);
}

.pillar-card--sky {
  background: linear-gradient(160deg, #eaf1fe 0%, #e2ecfb 100%);
}

.pillar-card--peach {
  background: linear-gradient(160deg, #fdf1e6 0%, #fbe7d5 100%);
}

.pillar-card--mint {
  background: linear-gradient(160deg, #eafaf1 0%, #ddf3e8 100%);
}


/* ==========================================================================
   Full-bleed CTA hero banner (Stage 1 mid-page) — badge + heading + dual
   CTA buttons + social-proof avatar row, modeled on an e-commerce banner
   reference the client supplied. White outer frame with an inset colored
   panel (matches the reference's card-in-card look); brand red gradient
   in place of the reference's orange, white/outline button pair kept as-is.
   ========================================================================== */
.cta-hero-wrap {
  background: #ffffff;
  border-radius: 26px;
  padding: 10px;
  box-shadow: 0 20px 44px rgba(11, 15, 20, 0.1);
}

.cta-hero-banner {
  position: relative;
  overflow: hidden;
  border-radius: 18px;
  padding: 2.25rem 2.5rem;
  background: radial-gradient(600px 260px at 90% 110%, rgba(255, 255, 255, 0.14), transparent 60%),
    linear-gradient(135deg, #ff5f5f 0%, #e63946 55%, #c81e3a 100%);
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 2rem;
}

.cta-hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: radial-gradient(circle at 96% 8%, rgba(255, 255, 255, 0.16) 0%, transparent 12%),
    radial-gradient(circle at 88% 92%, rgba(255, 255, 255, 0.12) 0%, transparent 14%),
    radial-gradient(circle at 6% 90%, rgba(255, 255, 255, 0.08) 0%, transparent 16%);
}

.cta-hero-banner>* {
  position: relative;
  z-index: 1;
}

.cta-hero-content {
  max-width: 480px;
}

.cta-hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(255, 255, 255, 0.2);
  color: #ffffff;
  font-family: var(--font-body);
  font-size: 0.74rem;
  font-weight: 700;
  padding: 5px 12px 5px 6px;
  border-radius: 999px;
  margin-bottom: 1rem;
}

.cta-hero-badge .check {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #ffffff;
  color: var(--red);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.62rem;
  flex-shrink: 0;
}

.cta-hero-content h2 {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 1.85rem;
  color: #ffffff;
  line-height: 1.2;
  margin-bottom: 0.6rem;
}

.cta-hero-content p {
  color: rgba(255, 255, 255, 0.92);
  font-size: 0.95rem;
  line-height: 1.5;
  margin-bottom: 0;
}

.cta-hero-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem;
}

.cta-hero-buttons {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.btn-cta-white {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #ffffff;
  color: var(--red);
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.9rem;
  padding: 0.75rem 1.4rem;
  border-radius: 8px;
  white-space: nowrap;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.btn-cta-white:hover {
  color: var(--red-dark);
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(11, 15, 20, 0.18);
}

.btn-cta-outline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.55);
  color: #ffffff;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.9rem;
  padding: 0.75rem 1.4rem;
  border-radius: 8px;
  white-space: nowrap;
  transition: background 0.2s ease, transform 0.2s ease;
}

.btn-cta-outline:hover {
  background: rgba(255, 255, 255, 0.12);
  color: #ffffff;
  transform: translateY(-2px);
}

.cta-hero-social {
  display: flex;
  align-items: center;
  gap: 10px;
}

.cta-hero-avatars {
  display: flex;
}

.cta-hero-avatars span {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: 2px solid transparent;
  background-color: #f5f7fa;
  background-image:
    linear-gradient(135deg, #ffffff 0%, #f5f7fa 100%),
    linear-gradient(135deg, #e63946 0%, #f2b25c 50%, #1d4ed8 100%);
  background-origin: padding-box, border-box;
  background-clip: padding-box, border-box;
  background-size: cover, auto;
  background-position: center;
  display: block;
  margin-left: -13px;
}

.cta-hero-avatars span:first-child {
  margin-left: 0;
}

/* Distinct background per avatar — scoped to body.scv-page only, since
   .cta-hero-avatars is shared with stage-1-guide.html, which keeps the
   uniform white style. */
body.scv-page .cta-hero-avatars span:nth-child(1) {
  background: linear-gradient(135deg, #ffd7d7 0%, #ff8a8a 100%);
  color: #7a1220;
}

body.scv-page .cta-hero-avatars span:nth-child(2) {
  background: linear-gradient(135deg, #ffe6c2 0%, #f2b25c 100%);
  color: #6b3d0a;
}

body.scv-page .cta-hero-avatars span:nth-child(3) {
  background: linear-gradient(135deg, #cfe0fb 0%, #7ea8f0 100%);
  color: #17335e;
}

.cta-hero-social-text {
  font-size: 0.8rem;
  color: rgba(255, 255, 255, 0.92);
}


/* ==========================================================================
   Hero quote rotator wrapper — plain layout wrapper only (no background/
   border/padding of its own). The actual card look (background, shadow,
   rounded corners) lives on each .lp-quote-slide instead, so the whole
   card transitions as one unit when rotating. Dots sit below the card in
   normal flow. This is the only way .lp-pull-quote is used site-wide.
   ========================================================================== */
.lp-pull-quote {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  background: transparent;
  border: none;
  padding: 0;
  box-shadow: none;
}

.lp-pull-quote .stars {
  font-size: 1.15rem;
  letter-spacing: 2px;
  margin-bottom: 0.5rem;
}

.lp-pull-quote blockquote {
  font-size: 0.88rem;
  color: var(--ink);
  font-style: normal;
  line-height: 1.55;
  margin: 0 0 0.5rem;
}

.lp-pull-quote .testimonial-author {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
}

.lp-pull-quote .testimonial-author .avatar {
  width: 40px;
  height: 40px;
  font-size: 0.7rem;
  background-size: cover;
  background-position: center;
  flex-shrink: 0;
}

.lp-pull-quote .testimonial-author .name {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 0.8rem;
}

.lp-pull-quote .testimonial-author .role {
  font-size: 0.72rem;
}

/* Auto-rotating quote slider — 4 full cards cycling in place, sized to
   the same footprint the single static quote used to take. Cards are
   stacked via position:absolute + a 3D flip (rotateY), with a fixed
   min-height on the stage sized for the tallest card so rotating
   doesn't cause a layout jump. Dots (outside the stage, in normal flow)
   show progress and are clickable to jump directly to a card. */
.lp-quote-slides {
  position: relative;
  min-height: 148px;
  perspective: 1200px;
}

.lp-quote-slide {
  position: absolute;
  inset: 0;
  background: #ffffff;
  border-radius: 18px;
  padding: 1.5rem 1.5rem 1.25rem;
  box-shadow: 0 10px 28px rgba(11, 15, 20, 0.08);
  opacity: 0;
  visibility: hidden;
  transform: rotateY(-90deg);
  transform-origin: center;
  backface-visibility: hidden;
  transition: transform 0.55s ease, opacity 0.4s ease, visibility 0s linear 0.55s;
}

.lp-quote-slide.active {
  position: relative;
  opacity: 1;
  visibility: visible;
  transform: rotateY(0deg);
  transition: transform 0.55s ease, opacity 0.4s ease;
}

.lp-quote-dots {
  display: flex;
  justify-content: center;
  align-self: center;
  gap: 6px;
}

.lp-quote-dots .dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--border);
  cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease;
}

.lp-quote-dots .dot.active {
  background: var(--red);
  transform: scale(1.2);
}

/* ==========================================================================
   Guide-contents card (Stage 1) — soft cream card with a subtle gradient
   border, a decorative blob graphic in the hero section, and a plain
   (non-color-blocked) checklist below — modeled on a referral-card
   reference the client supplied. The blob is built entirely from layered
   CSS radial-gradients + a clip-path sparkle, not an image file, so there's
   no external asset dependency; colors pull from the site's red/gold
   gradient rather than the reference's blue/pink to stay on-brand.
   ========================================================================== */
.lp-guide-card {
  padding: 2px;
  border-radius: 22px;
  background: linear-gradient(135deg, rgba(255, 95, 95, 0.55) 0%, rgba(230, 57, 70, 0.35) 50%, rgba(255, 178, 50, 0.35) 100%);
  box-shadow: 0 20px 44px rgba(11, 15, 20, 0.1);
}

.lp-guide-card-inner {
  background: #fbf7f2;
  border-radius: 20px;
  overflow: hidden;
  padding: 1rem;
}

.lp-guide-card-hero {
  position: relative;
  overflow: hidden;
  background: #f5e9e2;
  border-radius: 14px;
  padding: 1.75rem 1.75rem 2rem;
  margin-bottom: 1.5rem;
}

.lp-guide-card-pill {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  background: #ffffff;
  border: 1px solid rgba(11, 15, 20, 0.08);
  border-radius: 999px;
  padding: 6px 14px;
  font-family: var(--font-body);
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--ink);
}

.lp-guide-card-hero h3 {
  position: relative;
  z-index: 1;
  font-family: "Geist", sans-serif !important;
  font-weight: 800;
  font-size: 1.7rem;
  color: var(--ink);
  margin: 0.9rem 0 0.3rem;
  max-width: 65%;
  line-height: 1.2;
}

.lp-guide-card-hero .sub {
  position: relative;
  z-index: 1;
  font-size: 0.92rem;
  color: var(--muted);
  max-width: 65%;
  margin: 0;
}

.lp-guide-card-blob {
  position: absolute;
  top: -34px;
  right: -34px;
  width: 155px;
  height: 155px;
  border-radius: 50%;
  background:
    radial-gradient(circle at 30% 30%, rgba(255, 95, 95, 0.95), transparent 60%),
    radial-gradient(circle at 68% 22%, rgba(230, 57, 70, 0.9), transparent 55%),
    radial-gradient(circle at 75% 72%, rgba(200, 30, 58, 0.85), transparent 55%),
    radial-gradient(circle at 25% 72%, rgba(255, 178, 50, 0.75), transparent 55%);
  filter: blur(1px);
}

.lp-guide-card-blob .spark {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 24px;
  height: 24px;
  background: #ffffff;
  clip-path: polygon(50% 0%, 61% 39%, 100% 50%, 61% 61%, 50% 100%, 39% 61%, 0% 50%, 39% 39%);
  transform: translate(-50%, -50%);
  box-shadow: 0 0 14px rgba(255, 255, 255, 0.85);
}

.lp-guide-card-list-label {
  font-family: var(--font-body);
  font-size: 0.8rem;
  color: var(--muted);
  margin: 0 0 1rem;
  padding: 0 0.5rem;
}

.lp-guide-card-grid {
  display: flex;
  flex-direction: column;
  gap: 1.15rem;
  padding: 0 0.5rem 0.5rem;
}

.lp-guide-card-item {
  display: flex;
  align-items: center;
  gap: 14px;
  font-size: 1.02rem;
  color: var(--ink);
  line-height: 1.4;
}

.lp-guide-card-item i {
  color: var(--red);
  font-size: 1.35rem;
  width: 1.35rem;
  text-align: center;
  flex-shrink: 0;
}

.lp-guide-card-item span {
  min-width: 0;
}

.lp-guide-card-item strong {
  font-weight: 700;
}

/* Modifier for longer lists (10+ items) — 2 columns on wider screens
   instead of one long single column. Reusable on any page. */
.lp-guide-card-grid.lp-guide-card-grid--cols-2 {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.15rem 1.5rem;
}

@media (min-width: 576px) {
  .lp-guide-card-grid.lp-guide-card-grid--cols-2 {
    grid-template-columns: 1fr 1fr;
  }
}

/* ==========================================================================
   GDPR consent checkboxes — used on every form. Two separate checks:
   one required (contact consent, tied to submitting the enquiry) and one
   optional (marketing consent), per GDPR's requirement that consent to be
   contacted about an enquiry and consent to marketing communications are
   not bundled into a single opt-in.
   ========================================================================== */
.lp-consent {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-top: 1rem;
}

.lp-consent input[type="checkbox"] {
  width: 17px;
  height: 17px;
  margin-top: 3px;
  flex-shrink: 0;
  accent-color: var(--red);
  cursor: pointer;
}

.lp-consent label {
  font-size: 0.8rem;
  color: var(--muted);
  line-height: 1.5;
  cursor: pointer;
}

.lp-consent label a {
  color: #1d4ed8;
}

.lp-consent label a:hover {
  color: var(--blue-dark);
}

.lp-consent .req-mark {
  color: var(--red);
}

/* ==========================================================================
   Confirmation / thank-you pages
   ========================================================================== */
.confirm-hero {
  padding: 4.5rem 0 3.5rem;
  text-align: center;
  background: linear-gradient(160deg, var(--surface) 0%, var(--surface-alt) 100%);
  border-bottom: 1px solid var(--border);
}

.confirm-icon {
  width: 68px;
  height: 68px;
  border-radius: 50%;
  background: #eaf7ee;
  border: 2px solid #1f7a3d;
  color: #1f7a3d;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  margin: 0 auto 1.5rem;
}

.confirm-hero h1 {
  font-size: clamp(1.7rem, 3.2vw, 2.4rem);
  max-width: 32ch;
  margin: 0 auto 0.85rem;
}

.confirm-hero .lp-sub {
  max-width: 52ch;
  margin: 0 auto;
}

.confirm-detail-card {
  max-width: 560px;
  margin: 2rem auto 0;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1.75rem 2rem;
  text-align: left;
}

.confirm-detail-card .fact-row .k {
  max-width: none;
}

.confirm-next-steps {
  max-width: 640px;
  margin: 0 auto;
  text-align: left;
}


.lp-section {
  padding: 3.5rem 0;
}

.lp-section-tight {
  padding: 2.5rem 0;
}

.lp-kicker-divider {
  border: none;
  border-top: 1px solid var(--border);
  margin: 0;
}

@media (max-width: 767.98px) {
  .schedule-day {
    flex-basis: calc(33.333% - 6px);
  }

  .booking-panel .booking-form-col,
  .booking-panel .booking-schedule-col,
  .engagement-block,
  .lead-magnet,
  .consult-form {
    padding: 1.5rem;
  }
}

/* ==========================================================================
   Marquee strip (start-crypto-venture page, below hero) — infinite
   horizontal scroll of short credibility keywords separated by a sparkle
   glyph, modeled on a dark ticker-strip reference the client supplied.
   Dark ink background + red accent sparkle to match the site's palette
   (reference used green).

   The scroll distance is driven by --marquee-distance, a CSS custom
   property set at runtime by initMarquee() in lp-crypto.js, which measures
   the actual rendered width of one content block and clones as many extra
   copies as the current viewport needs. This replaces an earlier CSS-only
   version that duplicated the content a fixed number of times and guessed
   a percentage-based scroll distance — correct only for the viewport
   widths it happened to be tested at. Measuring at runtime is exact for
   any content length or screen width. Before JS runs (or with JS
   disabled), --marquee-distance defaults to 0px, so the strip simply sits
   static on the first content block rather than showing a broken scroll.
   ========================================================================== */
.marquee-strip {
  background: var(--ink);
  overflow: hidden;
  padding: 1.1rem 0;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.marquee-track {
  display: flex;
  flex-wrap: nowrap;
  width: max-content;
  --marquee-distance: 0px;
  animation-name: marquee-scroll;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
  animation-duration: 20s;
}

.marquee-content {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 5rem;
  padding-right: 2.5rem;
  flex-shrink: 0;
}

.marquee-content .item {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.05rem;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: #ffffff;
  white-space: nowrap;
}

.marquee-content .spark {
  color: var(--red);
  font-size: 1.35rem;
  line-height: 1;
  flex-shrink: 0;
}

@keyframes marquee-scroll {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(calc(-1 * var(--marquee-distance)));
  }
}

@media (prefers-reduced-motion: reduce) {
  .marquee-track {
    animation: none;
  }
}

/* ==========================================================================
   "Is your crypto business model ready?" question cards
   (start-crypto-venture page, below the marquee) — centered headline +
   description above a 3-column bento-style grid, modeled on a stats-grid
   reference the client supplied (which had 4 boxes: one photo box, one
   light box, two more in a split column). This section only has 3 content
   items, so it's simplified to 3 equal columns: one dark "photo-style"
   card (built from a CSS gradient + faint grid texture, not a real image
   — see the component's own comment below) and two light pastel cards,
   reusing the pastel background classes already defined for the pillar
   cards (.pillar-card--blush / .pillar-card--sky) rather than duplicating
   new gradient values.
   ========================================================================== */
.qsection-head {
  max-width: 640px;
  margin: 0 auto 2.5rem;
}

/* Wider variant — for sections whose h2 is a longer sentence-style
   heading (rather than a short label) and needs more room to break
   into 2 lines instead of 3. Reusable on any page. */
.qsection-head--wide {
  max-width: 860px;
}

.qsection-eyebrow {
  display: block;
  font-family: var(--font-body);
  font-weight: 800;
  font-size: 0.85rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--red);
  margin-bottom: 0.9rem;
}

.qsection-head h2 {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(2rem, 3.6vw, 2.7rem);
  color: var(--ink);
  line-height: 1.22;
  margin-bottom: 0.85rem;
}

.qsection-head p {
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.6;
  margin: 0;
}

/* ==========================================================================
   "Approach" section photo — plain single image, left column, paired with
   a text column. Reusable on any page (generic class, not tied to one
   page's content).
   ========================================================================== */
.approach-photo {
  position: relative;
  overflow: hidden;
  border-radius: 20px;
  min-height: 480px;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-color: var(--surface-alt);
}

.approach-photo::after {
  content: "";
  position: absolute;
  top: 0;
  left: -75%;
  width: 45%;
  height: 100%;
  background: linear-gradient(115deg, transparent 0%, rgba(255, 255, 255, 0.5) 50%, transparent 100%);
  transform: skewX(-20deg);
  transition: left 0.75s ease;
  pointer-events: none;
}

.approach-photo:hover::after {
  left: 125%;
}

@media (prefers-reduced-motion: reduce) {
  .approach-photo::after {
    transition: none;
  }
}

@media (max-width: 767.98px) {
  .approach-photo {
    min-height: 300px;
  }
}


.qcard {
  position: relative;
  overflow: hidden;
  border-radius: 20px;
  padding: 2rem 1.75rem;
  min-height: 280px;
  height: 100%;
  display: flex;
  flex-direction: column;
  border: 1px solid rgba(11, 15, 20, 0.06);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.qcard:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 36px rgba(11, 15, 20, 0.12);
}

.qcard-num {
  font-family: "Geist", sans-serif !important;
  font-weight: 800;
  font-size: 2.4rem;
  line-height: 1;
  color: var(--red);
  margin-bottom: 1.4rem;
}

.qcard h3 {
  font-family: "Geist", sans-serif !important;
  font-weight: 800;
  font-size: 1.18rem;
  color: var(--ink);
  line-height: 1.32;
  margin-bottom: 0.65rem;
}

.qcard p {
  font-size: 0.9rem;
  line-height: 1.55;
  color: var(--muted);
  margin: 0;
}

/* Dark "photo-style" card — CSS gradient + a faint grid texture fading
   from the bottom, evoking a photographic mood without an actual image
   asset (avoids sourcing/licensing a real stock photo for a client site). */
.qcard--dark {
  background: radial-gradient(520px 280px at 100% 0%, rgba(220, 38, 38, 0.28), transparent 60%),
    linear-gradient(165deg, #0b0f14 0%, #1e2732 100%);
  border-color: transparent;
}

.qcard--dark::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 55%;
  background-image: linear-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.05) 1px, transparent 1px);
  background-size: 22px 22px;
  mask-image: linear-gradient(0deg, black 0%, transparent 100%);
  -webkit-mask-image: linear-gradient(0deg, black 0%, transparent 100%);
  pointer-events: none;
}

.qcard--dark .qcard-num {
  color: #ff8a8a;
  position: relative;
  z-index: 1;
}

.qcard--dark h3 {
  color: #ffffff;
  position: relative;
  z-index: 1;
  font-family: "Geist", sans-serif !important;
}

.qcard--dark p {
  color: rgba(255, 255, 255, 0.75);
  position: relative;
  z-index: 1;
}

/* Bottom-right decorative icon on the two light cards (02, 03) — large,
   with a soft colored glow behind it, and allowed to bleed past the
   card's own right/bottom edge (cropped by the card's overflow:hidden)
   for the same "big graphic peeking out of the corner" feel as the
   reference. Anchored via margin-top:auto + flex justify-content:flex-end
   on the wrapper rather than absolute positioning, so it still sits
   correctly regardless of how much the heading/description text wraps.
   Not added to card 01 (dark/photo-style), which keeps its own visual
   language. */
.qcard-icon-wrap {
  margin-top: auto;
  padding-top: 1.25rem;
  display: flex;
  justify-content: flex-end;
}

.qcard-icon {
  position: relative;
  width: 84px;
  height: 84px;
  margin: -0.5rem 0.4rem 0.3rem 0;
  border-radius: 22px;
  background: linear-gradient(160deg, #ffffff 0%, #fdeef1 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.5rem;
  color: var(--red);
  box-shadow: 0 12px 28px rgba(220, 38, 38, 0.16);
}

.qcard-icon::before {
  content: "";
  position: absolute;
  inset: -14px;
  z-index: -1;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(220, 38, 38, 0.14) 0%, transparent 70%);
}

/* Icon badge tinted to match each card's own pastel background, rather
   than the same pink/red badge on every card regardless of context. */
.pillar-card--sky .qcard-icon {
  background: linear-gradient(160deg, #ffffff 0%, #d9e6fb 100%);
  color: var(--blue);
  box-shadow: 0 12px 28px rgba(29, 78, 216, 0.16);
}

.pillar-card--sky .qcard-icon::before {
  background: radial-gradient(circle, rgba(29, 78, 216, 0.14) 0%, transparent 70%);
}

/* ==========================================================================
   "Which Stage Are You At?" — 3 clickable qcard-style triggers + one
   shared detail panel below that swaps content per stage. Reusable/
   generic (not tied to VARA/Dubai content specifically). JS: see "Stage
   selector" in finjuris-lp.js.
   ========================================================================== */
.stage-select {
  background: var(--surface-alt);
}

/* ==========================================================================
   Compact icon + title + description card — for grids of many short items
   (e.g. licensed-activity categories) where the full qcard component is
   too large. Generic/reusable, not tied to any one page's content.
   ========================================================================== */
/* ==========================================================================
   Optional section background image — reusable on any <section>. Set the
   image directly as an inline background-image (NOT via a CSS custom
   property — a var() containing url() resolves relative to the
   stylesheet that reads it, not the page, which silently breaks
   relative image paths):
     <section class="lp-section section-bg-image" style="background-image:url('assets/images/sections/whatever.jpg');">
   If the property isn't set (or the file 404s), the section just shows
   its normal background — same graceful-fallback pattern used elsewhere
   on this page. A light overlay sits between the image and the content
   so heading/body text stays legible regardless of what photo is used;
   adjust the overlay opacity below if a given image needs it lighter or
   darker, or remove the ::before entirely for a section that doesn't
   need one.
   ========================================================================== */
.section-bg-image {
  position: relative;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  isolation: isolate;
}

.section-bg-image::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.88);
  z-index: 0;
}

.section-bg-image>.container {
  position: relative;
  z-index: 1;
}

/* ==========================================================================
   "From Crypto Business Idea to Full VASP License" — a row of step cards
   that expand sideways when clicked (flex-grow driven, no JS width math).
   One is always active. Below 768px this becomes a normal stacked
   accordion instead, since a 6-way horizontal expand doesn't work on
   narrow screens. JS: see "Journey selector" in finjuris-lp.js.
   ========================================================================== */
.journey-row {
  display: flex;
  gap: 1rem;
  align-items: stretch;
  height: 460px;
}

/* Dark section wrapper — reuses the same "black for authority" treatment
   as .doc-section.section-dark elsewhere, scoped here since this section
   uses the centered .qsection-head pattern instead of the left-aligned
   .eyebrow/.lede one that .section-dark targets. */
.journey-dark-section {
  background: radial-gradient(900px 380px at 85% -10%, rgba(220, 38, 38, 0.12), transparent 60%),
    linear-gradient(160deg, #0b0f14 0%, #15191f 100%);
}

.journey-dark-section .qsection-eyebrow {
  color: var(--red);
}

.journey-dark-section .qsection-head h2 {
  color: #ffffff;
}

.journey-dark-section .qsection-head p {
  color: #c9d0d9;
}

.journey-card {
  position: relative;
  flex: 1 1 0%;
  min-width: 0;
  overflow: hidden;
  border: none;
  border-radius: 20px;
  padding: 1.75rem 1.5rem;
  background: var(--surface-alt);
  cursor: pointer;
  text-align: left;
  transition: flex-grow 0.5s cubic-bezier(0.4, 0, 0.2, 1), background 0.4s ease;
}

/* Photo + overlay scrim — both only apply to the active/expanded card.
   The gradient here is a fallback (e.g. before JS runs); the real photo
   is set as an inline background-image directly by JS when a card
   becomes active (see "Journey selector" in finjuris-lp.js) — not via a
   CSS custom property, since a var() containing url() resolves relative
   to the STYLESHEET that reads it, not the page, which silently breaks
   relative image paths. Setting it via JS/inline style resolves exactly
   like every other image on this page. */
.journey-card.is-active {
  background-image: linear-gradient(135deg, rgba(255, 95, 95, 0.92) 0%, rgba(230, 57, 70, 0.92) 55%, rgba(200, 30, 58, 0.92) 100%);
  background-size: cover;
  background-position: center;
  background-color: #1e2732;
}

.journey-card>* {
  position: relative;
  z-index: 1;
}

.journey-card.is-active {
  flex-grow: 6;
}

.journey-card-num {
  display: block;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 1.3rem;
  color: var(--red);
}

.journey-card.is-active .journey-card-num {
  color: rgba(255, 255, 255, 0.75);
}

.journey-card-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: #ffffff;
  color: var(--red);
  font-size: 1.1rem;
  margin-top: 1rem;
}

.journey-card.is-active .journey-card-icon {
  background: rgba(255, 255, 255, 0.16);
  color: #ffffff;
}

/* Collapsed-state label: vertical spine text, only visible when the card
   is narrow. Fades out as the card expands. */
.journey-card-collapsed-title {
  position: absolute;
  left: 1.75rem;
  bottom: 1.5rem;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.95rem;
  color: var(--ink);
  white-space: nowrap;
  opacity: 1;
  transition: opacity 0.25s ease;
}

.journey-card.is-active .journey-card-collapsed-title {
  opacity: 0;
  pointer-events: none;
}

/* Expanded-state body: hidden (0 width via opacity/visibility) until the
   card is active, then fades in once the flex-grow transition has room. */
.journey-card-body {
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.25s ease 0.15s;
  margin-top: 1.5rem;
  max-width: 420px;
}

.journey-card.is-active .journey-card-body {
  opacity: 1;
  visibility: visible;
}

.journey-card-body h3 {
  font-family: "Geist", sans-serif !important;
  font-weight: 800;
  font-size: 1.4rem;
  color: #ffffff;
  margin-bottom: 0.75rem;
}

.journey-card-body p {
  font-size: 0.92rem;
  color: rgba(255, 255, 255, 0.85);
  margin-bottom: 0.75rem;
}

.journey-card-outcome {
  padding-top: 0.75rem;
  border-top: 1px solid rgba(255, 255, 255, 0.25);
}

.journey-card-outcome strong {
  color: #ffffff;
}

@media (max-width: 767.98px) {
  .journey-row {
    flex-direction: column;
    height: auto;
    gap: 0.75rem;
  }

  /* Closed state (default): one compact row — number, icon, title —
     nothing else. The existing click handler (finjuris-lp.js) already
     toggles .is-active on click; this media query is the only thing
     that needs to change for mobile to behave as a true accordion. */
  .journey-card {
    flex-grow: 1 !important;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0.85rem;
    padding: 1rem 1.25rem;
    min-height: 0;
  }

  .journey-card-num {
    margin: 0;
    font-size: 1.1rem;
  }

  .journey-card-icon {
    margin-top: 0;
    width: 34px;
    height: 34px;
    font-size: 0.95rem;
    flex-shrink: 0;
  }

  .journey-card-collapsed-title {
    position: static;
    writing-mode: horizontal-tb;
    transform: none;
    white-space: normal;
    font-size: 0.92rem;
    flex: 1;
  }

  .journey-card-body {
    display: none;
    margin-top: 1.25rem;
    max-width: none;
    transition: none;
  }

  .journey-card-body h3 {
    color: var(--ink);
  }

  .journey-card-body p {
    color: var(--muted);
  }

  .journey-card-outcome {
    border-top-color: rgba(11, 15, 20, 0.12);
  }

  .journey-card-outcome strong {
    color: var(--ink);
  }

  /* Open state — switch to a full vertical card (matching the desktop
     expanded look), collapsed row hidden, full body shown. */
  .journey-card.is-active {
    flex-direction: column;
    align-items: flex-start;
    padding: 1.5rem;
  }

  .journey-card.is-active .journey-card-collapsed-title {
    display: none;
  }

  .journey-card.is-active .journey-card-body {
    display: block;
  }

  .journey-card.is-active .journey-card-body h3,
  .journey-card.is-active .journey-card-body p {
    color: #ffffff;
  }

  .journey-card.is-active .journey-card-outcome {
    border-top-color: rgba(255, 255, 255, 0.25);
  }

  .journey-card.is-active .journey-card-outcome strong {
    color: #ffffff;
  }
}

@media (prefers-reduced-motion: reduce) {
  .journey-card {
    transition: none;
  }
}

/* ==========================================================================
   Feature card with a bleeding illustration on one side — heading +
   description text constrained to ~58% width so it never overlaps the
   art. Generic/reusable (not tied to any one page's content). Variants:
   --dark (ink gradient), --light (surface-alt), --red (brand gradient).
   ========================================================================== */
.feature-image-card {
  position: relative;
  border-radius: 20px;
  padding: 2.25rem 2.25rem;
  min-height: 230px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100%;
}

.feature-image-card::after {
  content: "";
  position: absolute;
  top: 0;
  left: -75%;
  width: 45%;
  height: 100%;
  background: linear-gradient(115deg, transparent 0%, rgba(255, 255, 255, 0.35) 50%, transparent 100%);
  transform: skewX(-20deg);
  transition: left 0.75s ease;
  pointer-events: none;
  z-index: 2;
}

.feature-image-card:hover::after {
  left: 125%;
}

@media (prefers-reduced-motion: reduce) {
  .feature-image-card::after {
    transition: none;
  }
}

.feature-image-card h3 {
  font-family: "Geist", sans-serif !important;
  font-weight: 800;
  font-size: 1.3rem;
  max-width: 58%;
  margin-bottom: 0.75rem;
  position: relative;
  z-index: 1;
}

.feature-image-card p {
  font-size: 0.92rem;
  max-width: 58%;
  margin: 0;
  position: relative;
  z-index: 1;
}

.feature-image-card--dark {
  background: linear-gradient(155deg, #0b0f14 0%, #1e2732 100%);
  color: #ffffff;
}

.feature-image-card--dark h3 {
  color: #ffffff;
}

.feature-image-card--dark p {
  color: rgba(255, 255, 255, 0.8);
}

.feature-image-card--light {
  background: var(--surface-alt);
  color: var(--ink);
}

.feature-image-card--sky {
  background: linear-gradient(160deg, #eaf1fe 0%, #e2ecfb 100%);
  color: var(--ink);
}

.feature-image-card--sky p {
  color: var(--muted);
}

.feature-image-card--light p {
  color: var(--muted);
}

.feature-image-card--red {
  background: linear-gradient(155deg, #ff5f5f 0%, #c81e3a 100%);
  color: #ffffff;
}

.feature-image-card--red h3 {
  color: #ffffff;
}

.feature-image-card--red p {
  color: rgba(255, 255, 255, 0.85);
}

.feature-image-card-art {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 48%;
  background-size: cover;
  background-position: center;
  -webkit-mask-image: linear-gradient(to left, #000 55%, transparent 100%);
  mask-image: linear-gradient(to left, #000 55%, transparent 100%);
  opacity: 0.92;
}

@media (max-width: 767.98px) {

  .feature-image-card h3,
  .feature-image-card p {
    max-width: 100%;
  }

  .feature-image-card {
    justify-content: flex-start;
  }

  .feature-image-card-art {
    position: static;
    width: 100%;
    height: 180px;
    margin-top: 1.25rem;
    border-radius: 14px;
    -webkit-mask-image: none;
    mask-image: none;
    opacity: 1;
  }

  .feature-image-card--dark .feature-image-card-art,
  .feature-image-card--red .feature-image-card-art {
    background-color: rgba(255, 255, 255, 0.08);
  }

  .feature-image-card--light .feature-image-card-art {
    background-color: rgba(11, 15, 20, 0.06);
  }
}

/* ==========================================================================
   "What VARA Will Expect" — dotted/network background texture (echoing a
   reference layout's node-grid backdrop) behind a scattered, slightly
   rotated card arrangement instead of a rigid grid. Generic/reusable.
   ========================================================================== */
.readiness-scatter-section {
  position: relative;
  overflow: hidden;
}

.readiness-scatter-section::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(11, 15, 20, 0.1) 1.4px, transparent 1.4px);
  background-size: 26px 26px;
  -webkit-mask-image: radial-gradient(ellipse 70% 60% at 50% 45%, #000 40%, transparent 85%);
  mask-image: radial-gradient(ellipse 70% 60% at 50% 45%, #000 40%, transparent 85%);
  pointer-events: none;
  z-index: 0;
}

.readiness-scatter-section>.container {
  position: relative;
  z-index: 1;
}

/* Hub + satellite orbit — a central status card with N compact category
   cards absolutely positioned around it, on faint concentric orbit rings
   (not spoke lines) echoing a reference layout's dotted-ring backdrop.
   Coordinates below are hand-placed against a 1160x800 reference frame;
   adjust card positions if item count changes. Desktop only (≥992px) —
   .readiness-orbit-fallback carries the same content as a plain readable
   grid for narrower screens. */
.readiness-orbit {
  position: relative;
  min-height: 800px;
  margin: 2rem 0 1rem;
}

.readiness-orbit-rings {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 0;
  pointer-events: none;
}

.readiness-orbit-rings span {
  position: absolute;
  top: 50%;
  left: 50%;
  border-radius: 50%;
  border: 1px dashed rgba(220, 38, 38, 0.22);
  transform: translate(-50%, -50%);
}

.readiness-orbit-rings span:nth-child(1) {
  width: 420px;
  height: 420px;
}

.readiness-orbit-rings span:nth-child(2) {
  width: 640px;
  height: 640px;
}

.readiness-orbit-rings span:nth-child(3) {
  width: 860px;
  height: 860px;
}

.readiness-orbit-hub {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 320px;
  background: #ffffff;
  border-radius: 22px;
  box-shadow: 0 20px 44px rgba(11, 15, 20, 0.16);
  overflow: hidden;
  z-index: 2;
}

.readiness-orbit-hub-banner {
  position: relative;
  height: 100px;
  background: linear-gradient(115deg, #ffb4b4 0%, #ff5f5f 45%, #c81e3a 100%);
}

.readiness-orbit-hub-badge {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.9);
  color: var(--red);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.9rem;
}

.readiness-orbit-hub-avatar {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: #ffffff;
  border: 5px solid #ffffff;
  box-shadow: 0 6px 16px rgba(11, 15, 20, 0.18);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--red);
  font-size: 1.75rem;
  margin: -40px auto 0;
  position: relative;
}

.readiness-orbit-hub-body {
  padding: 0.6rem 1.75rem 1.75rem;
  text-align: center;
}

.readiness-orbit-hub h3 {
  font-family: "Geist", sans-serif !important;
  font-weight: 800;
  font-size: 1.3rem;
  color: var(--ink);
  margin-bottom: 0.4rem;
}

.readiness-orbit-hub-status {
  font-size: 0.86rem;
  color: var(--muted);
  margin-bottom: 1.1rem;
}

.readiness-orbit-progress-row {
  display: flex;
  align-items: center;
  gap: 0.6rem;
}

.readiness-orbit-progress-label {
  font-size: 0.75rem;
  color: var(--muted);
  flex-shrink: 0;
}

.readiness-orbit-progress {
  flex: 1;
  height: 7px;
  border-radius: 999px;
  background: var(--surface-alt);
  overflow: hidden;
}

.readiness-orbit-progress span {
  display: block;
  height: 100%;
  width: 62%;
  background: linear-gradient(90deg, #ff5f5f, #c81e3a);
  border-radius: 999px;
}

.readiness-orbit-callout {
  position: absolute;
  top: calc(50% + 145px);
  left: 50%;
  transform: translateX(-50%);
  background: #ffffff;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 0.65rem 1.1rem;
  font-size: 0.78rem;
  color: var(--ink);
  box-shadow: 0 10px 24px rgba(11, 15, 20, 0.08);
  max-width: 230px;
  text-align: center;
  z-index: 2;
}

.readiness-orbit-callout::before {
  content: "";
  position: absolute;
  top: -6px;
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
  width: 12px;
  height: 12px;
  background: #ffffff;
  border-left: 1px solid var(--border);
  border-top: 1px solid var(--border);
}

.readiness-orbit-item {
  position: absolute;
  width: 230px;
  background: #ffffff;
  border-radius: 14px;
  border: 1px solid var(--border);
  box-shadow: 0 10px 24px rgba(11, 15, 20, 0.07);
  padding: 0.75rem 0.9rem;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  z-index: 1;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.readiness-orbit-item:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 32px rgba(11, 15, 20, 0.14);
  z-index: 3;
}

.readiness-orbit-item-icon {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  flex-shrink: 0;
}

.readiness-orbit-item-icon--red {
  background: var(--red);
}

.readiness-orbit-item-icon--blue {
  background: var(--blue);
}

.readiness-orbit-item-icon--amber {
  background: #e08a2b;
}

.readiness-orbit-item-icon--dark {
  background: #1e2732;
}

.readiness-orbit-item-text {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}

.readiness-orbit-item-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.84rem;
  color: var(--ink);
  line-height: 1.25;
}

.readiness-orbit-item-meta {
  font-size: 0.74rem;
  color: var(--muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.readiness-orbit-fallback {
  display: none;
}

@media (max-width: 991.98px) {
  .readiness-orbit {
    display: none;
  }

  .readiness-orbit-fallback {
    display: block;
    margin-top: 1rem;
  }
}

/* Pill variant of the primary button, for CTAs styled after a fully
   rounded reference button. */
.btn-primary-custom--pill {
  border-radius: 999px;
}

/* ==========================================================================
   Cal.com embed wrapper — just a card shell (matches the site's card
   language: white, rounded, shadow) around the third-party embed, which
   renders its own UI inside. Generic/reusable on any page.
   ========================================================================== */
.cal-embed-card {
  max-width: 920px;
  min-height: 650px;
  margin: 3rem auto 0;
  background: #ffffff;
  border-radius: 24px;
  box-shadow: 0 24px 60px rgba(11, 15, 20, 0.14);
  overflow: hidden;
  padding: 1rem;
}

@media (max-width: 767.98px) {
  .cal-embed-card {
    min-height: 560px;
    margin-top: 2rem;
    border-radius: 18px;
    padding: 0.5rem;
  }
}

/* ==========================================================================
   Meeting scheduler card — live calendar (left) + time slots and a
   confirm form (right). Front-end only, no backend; generic/reusable —
   see "Meeting scheduler" in finjuris-lp.js, which auto-initialises any
   .scheduler-card found on the page.
   ========================================================================== */
.scheduler-card {
  max-width: 920px;
  margin: 3rem auto 0;
  background: #ffffff;
  border-radius: 24px;
  box-shadow: 0 24px 60px rgba(11, 15, 20, 0.14);
  display: flex;
  overflow: hidden;
  text-align: left;
}

.scheduler-card-calendar {
  flex: 1 1 55%;
  padding: 2rem;
  border-right: 1px solid var(--border);
}

.scheduler-cal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.25rem;
}

.scheduler-cal-month {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 1.05rem;
  color: var(--ink);
}

.scheduler-nav-btn {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1px solid var(--border);
  background: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ink);
  cursor: pointer;
  transition: background 0.15s ease;
}

.scheduler-nav-btn:hover {
  background: var(--surface-alt);
}

.scheduler-cal-weekdays {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  text-align: center;
  font-size: 0.7rem;
  font-weight: 700;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.02em;
  margin-bottom: 0.5rem;
}

.scheduler-cal-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
}

.scheduler-cal-day {
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--ink);
  background: none;
  border: none;
  cursor: pointer;
}

.scheduler-cal-day.is-empty {
  visibility: hidden;
  cursor: default;
}

.scheduler-cal-day.is-past,
.scheduler-cal-day.is-unavailable {
  color: #c7ccd2;
  cursor: not-allowed;
}

.scheduler-cal-day.is-unavailable {
  text-decoration: line-through;
}

.scheduler-cal-day.is-available:hover {
  background: var(--surface-alt);
}

.scheduler-cal-day.is-today {
  box-shadow: inset 0 0 0 1.5px var(--red);
}

.scheduler-cal-day.is-selected,
.scheduler-cal-day.is-selected:hover {
  background: var(--red);
  color: #ffffff;
}

.scheduler-cal-legend {
  margin-top: 1.25rem;
  font-size: 0.75rem;
  color: var(--muted);
}

.scheduler-cal-legend i {
  font-size: 0.5rem;
  margin: 0 4px 0 10px;
}

.scheduler-cal-legend i:first-child {
  margin-left: 0;
  color: var(--red);
}

.scheduler-card-slots {
  flex: 1 1 45%;
  padding: 2rem;
  display: flex;
  flex-direction: column;
}

.scheduler-slots-head {
  display: flex;
  gap: 0.85rem;
  margin-bottom: 1.25rem;
}

.scheduler-slots-icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: rgba(220, 38, 38, 0.08);
  color: var(--red);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 1.05rem;
}

.scheduler-slots-head h3 {
  font-family: "Geist", sans-serif !important;
  font-weight: 800;
  font-size: 1rem;
  color: var(--ink);
  margin: 0 0 0.2rem;
}

.scheduler-slots-head p {
  font-size: 0.78rem;
  color: var(--muted);
  margin: 0;
}

.scheduler-slot-list {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  overflow-y: auto;
  max-height: 280px;
  margin-bottom: 1rem;
}

.scheduler-slot-placeholder {
  font-size: 0.88rem;
  color: var(--muted);
}

.scheduler-slot-btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.7rem 1rem;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #ffffff;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--ink);
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}

.scheduler-slot-btn:hover {
  border-color: var(--red);
}

.scheduler-slot-btn.is-selected {
  background: var(--red);
  border-color: var(--red);
  color: #ffffff;
}

.scheduler-slot-btn i {
  opacity: 0;
}

.scheduler-slot-btn.is-selected i {
  opacity: 1;
}

.scheduler-confirm-form {
  border-top: 1px solid var(--border);
  padding-top: 1.25rem;
  margin-top: auto;
}

.scheduler-summary {
  background: var(--surface-alt);
  border-radius: 10px;
  padding: 0.75rem 1rem;
  font-size: 0.85rem;
  color: var(--ink);
  margin-bottom: 1rem;
  font-weight: 600;
}

@media (max-width: 767.98px) {
  .scheduler-card {
    flex-direction: column;
    margin-top: 2rem;
    border-radius: 18px;
  }

  .scheduler-card-calendar {
    border-right: none;
    border-bottom: 1px solid var(--border);
    padding: 1.5rem;
  }

  .scheduler-card-slots {
    padding: 1.5rem;
  }
}

/* ==========================================================================
   Full-bleed photo section with heading/intro top-left and a floating
   white card bottom-right — modeled on a reference layout the client
   supplied. Generic/reusable (not tied to any one page's content).
   ========================================================================== */
.photo-banner-section {
  position: relative;
  min-height: 780px;
  background-size: cover;
  background-position: center;
  background-color: #1e2732;
  display: flex;
  align-items: center;
  overflow: hidden;
}

.photo-banner-section>.container {
  position: relative;
  z-index: 1;
  height: 100%;
  min-height: 780px;
  padding-top: 3.5rem;
  padding-bottom: 3.5rem;
}

.photo-banner-content {
  max-width: 480px;
}

.photo-banner-content h2 {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(1.7rem, 2.8vw, 2.2rem);
  line-height: 1.3;
  color: #ffffff;
  margin-bottom: 1.25rem;
}

.photo-banner-content p {
  font-size: 0.95rem;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.82);
  margin-bottom: 0.9rem;
}

.photo-banner-card {
  position: absolute;
  right: 2rem;
  bottom: 2rem;
  width: 500px;
  max-width: calc(100% - 2rem);
  background: #ffffff;
  border-radius: 20px;
  box-shadow: 0 24px 48px rgba(11, 15, 20, 0.28);
  padding: 1.5rem;
  display: flex;
  gap: 1.25rem;
  align-items: stretch;
  z-index: 2;
}

.photo-banner-card-media {
  flex: 0 0 120px;
  width: 120px;
  border-radius: 14px;
  background-size: cover;
  background-position: center;
  background-color: var(--surface-alt);
}

.photo-banner-card-body {
  flex: 1;
  min-width: 0;
}

.photo-banner-card h3 {
  font-family: "Geist", sans-serif !important;
  font-weight: 800;
  font-size: 1.1rem;
  color: var(--ink);
  margin-bottom: 0.6rem;
}

.photo-banner-card p {
  font-size: 0.88rem;
  color: var(--muted);
  margin-bottom: 0.5rem;
}

.photo-banner-card .btn-primary-custom {
  margin-top: 0.6rem;
}

@media (max-width: 767.98px) {
  .photo-banner-section {
    min-height: 0;
    padding-bottom: 2rem;
  }

  .photo-banner-section::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(11, 15, 20, 0.35) 0%, rgba(11, 15, 20, 0.85) 55%, #0b0f14 100%);
    z-index: 0;
  }

  .photo-banner-section>.container {
    min-height: 0;
    padding-top: 3rem;
    padding-bottom: 1rem;
    display: flex;
    flex-direction: column;
  }

  .photo-banner-content {
    max-width: 100%;
  }

  .photo-banner-card {
    position: static;
    width: 100%;
    max-width: 100%;
    margin-top: 1.5rem;
    flex-direction: column;
  }

  .photo-banner-card-media {
    width: 100%;
    height: 160px;
    flex: 0 0 auto;
  }
}

.activity-card {
  background: linear-gradient(160deg, #ffffff 0%, #fdf3f3 100%);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 1.75rem;
  height: 100%;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.activity-card:hover {
  box-shadow: 0 14px 30px rgba(11, 15, 20, 0.08);
  transform: translateY(-2px);
}

.activity-card-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: rgba(220, 38, 38, 0.08);
  color: var(--red);
  font-size: 1.3rem;
  margin-bottom: 1rem;
}

.activity-card h3 {
  font-family: "Geist", sans-serif !important;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 0.5rem;
}

.activity-card p {
  font-size: 0.9rem;
  color: var(--muted);
  margin: 0;
}

.stage-card {
  width: 100%;
  text-align: left;
  cursor: pointer;
  font-family: inherit;
}

.stage-card:focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 3px;
}

.stage-card.is-active {
  background: linear-gradient(155deg, #ff5f5f 0%, #c81e3a 100%);
  box-shadow: 0 18px 36px rgba(200, 30, 58, 0.28);
}

.stage-card.is-active h3 {
  color: #ffffff;
}

.stage-card.is-active p {
  color: rgba(255, 255, 255, 0.85);
}

.stage-card.is-active .stage-card-icon {
  background: rgba(255, 255, 255, 0.2);
  color: #ffffff;
}

.stage-card.is-active .stage-card-cta {
  color: #ffffff;
}

.stage-card-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: auto;
  padding-top: 1.25rem;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.8rem;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--red);
  transition: transform 0.2s ease;
}

.stage-card.is-active .stage-card-cta i {
  transform: translateX(3px);
}

.stage-card-cta i {
  transition: transform 0.2s ease;
}

/* Icon badge replacing the 01/02/03 number on each stage-select box. */
.stage-card-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
  border-radius: 14px;
  background: #ffffff;
  color: var(--red);
  font-size: 1.4rem;
  box-shadow: 0 8px 20px rgba(11, 15, 20, 0.08);
  margin-bottom: 1.4rem;
}

.stage-card-stack {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  height: 100%;
}

.stage-card-stack .qcard {
  min-height: 0;
  flex: 1 1 auto;
}

.stage-panels {
  position: relative;
  height: 100%;
}

.stage-panel {
  display: none;
  height: 100%;
}

.stage-panel.show {
  display: flex;
  animation: stage-panel-fade-in 0.35s ease;
}

@keyframes stage-panel-fade-in {
  from {
    opacity: 0;
    transform: translateY(8px);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .stage-panel.show {
    animation: none;
  }
}

.stage-panel-inner {
  border-radius: 20px;
  padding: 2.5rem;
  width: 100%;
  overflow-y: auto;
}

.stage-panel-inner--amber {
  background: linear-gradient(160deg, #fdeef1 0%, #f8e2e8 100%);
}

.stage-panel-inner--blush {
  background: linear-gradient(160deg, #fdeef1 0%, #f8e2e8 100%);
}

.stage-panel-inner--sky {
  background: linear-gradient(160deg, #fdeef1 0%, #f8e2e8 100%);
}

.stage-panel-intro {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.25rem;
  color: var(--ink);
  margin-bottom: 0.75rem;
}

.stage-panel-inner p {
  color: var(--muted);
}

.stage-panel-label {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--ink);
  margin: 1.5rem 0 1rem;
}

.stage-panel-closing {
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(11, 15, 20, 0.1);
  font-size: 0.98rem;
}

.stage-workstream-list {
  display: flex;
  flex-direction: column;
  gap: 1.4rem;
}

.stage-workstream-item {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
}

.stage-workstream-num {
  flex-shrink: 0;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 1.1rem;
  color: var(--red);
  width: 2.2rem;
}

.stage-workstream-item h4 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1rem;
  color: var(--ink);
  margin: 0 0 0.35rem;
}

.stage-workstream-item p {
  font-size: 0.9rem;
  margin: 0;
}

.stage-check-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem 1.5rem;
}

@media (min-width: 576px) {


  .stage-check-grid {
    grid-template-columns: 1fr 1fr;
  }
}

/* Force single column regardless of width — for narrower contexts (e.g.
   a sidebar-style detail panel) where 2 columns would cramp the text. */
.stage-check-grid.stage-check-grid--1col {
  grid-template-columns: 1fr;
}

.stage-check-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 0.92rem;
  color: var(--ink);
}

.stage-check-item i {
  color: var(--red);
  font-size: 1rem;
  margin-top: 2px;
  flex-shrink: 0;
}

@media (max-width: 767.98px) {
  .stage-panel-inner {
    padding: 1.75rem;
  }

  .form-img img:nth-last-of-type(2) {
    width: auto;
    height: 38px !important;
    margin-right: 8px;
    border-radius: 3px;
  }

  .form-img img:nth-last-of-type(1) {
    width: auto;
    height: 55px !important;
    margin-right: 8px;
    border-radius: 3px;
  }

  .form-img {
    margin-top: -2px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .stage-panel {
    transition: none;
  }
}

/* Mobile-only: collapse the 3 stage-select cards into a compact tab bar
   (icon/description/"click to learn more" hidden, just the title) so
   the expanded panel appears right below the tabs instead of after 3
   full-height cards. Desktop (≥992px, where the two-column layout
   applies) is completely unaffected by this block. */
@media (max-width: 991.98px) {
  .stage-card-stack {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 0.6rem;
    height: auto;
    margin-bottom: 0.5rem;
  }

  .stage-card-stack .qcard {
    flex: 1 1 0;
    height: 96px;
  }

  .stage-card {
    padding: 0.6rem 0.5rem;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
  }

  .stage-card-icon,
  .stage-card p,
  .stage-card-cta {
    display: none;
  }

  .stage-card h3 {
    font-size: 0.82rem;
    line-height: 1.25;
    margin: 0;
  }
}


/* "Regulatory reality" section (start-crypto-venture) — overrides
   fiu-styles.css's .bg-white-section, which ships with a 1px border
   around the whole block. Border dropped; background kept plain
   (transparent, blends into the page) rather than the light gradient
   tried earlier — client preferred the plainer look. */
.doc-section.bg-gradient-section {
  background: transparent;
  border: none;
}

/* Increased inter-section spacing — scoped to body.scv-page only (see the
   body class set in assemble.py for start-crypto-venture.html), since
   .lp-section / .doc-section are shared classes used on every other page
   too. Widening them globally would change spacing site-wide; this only
   affects the one page that asked for more breathing room between
   sections. */
body.scv-page .lp-section {
  padding: 5.5rem 0;
}

body.scv-page .lp-section-tight {
  padding: 3.5rem 0;
}

body.scv-page .doc-section {
  margin-bottom: 3rem;
  border-radius: 0;
}

/* Main section headline size, same scoping reasoning as above — this
   covers "The regulatory reality" and "How we help", which both use
   fiu-styles.css's shared .doc-section h2 rather than a page-specific
   class. Matches the larger size just applied to the other section
   headlines on this page (qsection-head, svc-head, glass-head). */
body.scv-page .doc-section h2 {
  font-size: clamp(2rem, 3.6vw, 2.7rem);
}

/* Mobile: the wider desktop spacing above (5.5rem / 3rem) reads as too
   much empty space on small screens, where there's less horizontal
   content to balance it. Scaled back down closer to the site's original
   section rhythm on narrow viewports only. */
@media (max-width: 767.98px) {
  body.scv-page .lp-section {
    padding: 3rem 0;
  }

  body.scv-page .lp-section-tight {
    padding: 2.25rem 0;
  }

  body.scv-page .doc-section {
    margin-bottom: 2rem;
  }
}








/* ==========================================================================
   Services grid — dark section (start-crypto-venture, between "regulatory
   reality" and "How we help") — dark navy background, white cards with a
   headline + description + a round "+" button, and a colored gradient
   strip standing in for a photo at the bottom of each card. Modeled on a
   dark-section card reference the client supplied (3 cards, each with a
   distinct photographic image); adapted to 6 items as a 3x2 grid, and
   each "image" is a CSS gradient rather than a real photo, consistent
   with the rest of this page (avoids sourcing/licensing real images for
   a client site — see the earlier qcard--dark component's comment for
   the same reasoning).
   ========================================================================== */
.svc-section {
  background: var(--ink);
  padding: 5rem 0;
}

.svc-head {
  max-width: 640px;
  margin: 0 auto 3rem;
  text-align: center;
}

.svc-head h2 {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(2rem, 3.6vw, 2.7rem);
  color: #ffffff;
  line-height: 1.25;
  margin-bottom: 0.85rem;
}

.svc-head p {
  color: rgba(255, 255, 255, 0.68);
  font-size: 1rem;
  line-height: 1.6;
  margin: 0;
}

.svc-card {
  background: #ffffff;
  border-radius: 18px;
  overflow: hidden;
  height: 100%;
  display: flex;
  flex-direction: column;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.svc-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 36px rgba(0, 0, 0, 0.25);
}

.svc-card-top {
  padding: 2rem 1.65rem 2.25rem;
  min-height: 240px;
}

/* Numbered badge — sits on its own line above the heading rather than
   inline with it, sized up and given rounded corners + a drop shadow
   (plus a faint inset highlight along the top edge) for a raised,
   dimensional chip look rather than flat colored text. */
.svc-num-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
  border-radius: 16px;
  background: linear-gradient(160deg, #ff5f5f 0%, #c81e3a 100%);
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 1.3rem;
  color: #ffffff;
  box-shadow: 0 10px 20px rgba(220, 38, 38, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.3);
  margin-bottom: 1.1rem;
}

.svc-card h3 {
  font-family: "Geist", sans-serif !important;
  font-weight: 800;
  font-size: 1.05rem;
  color: var(--ink);
  line-height: 1.35;
  margin-bottom: 0.55rem;
}

.svc-card p {
  font-size: 0.84rem;
  color: var(--muted);
  line-height: 1.5;
  margin: 0;
}

/* Image area — a background-image layer (empty path for now — drop a
   real file at the path below whenever it's ready) sits over the
   existing color gradient, comma-separated as two background layers.
   If the image path 404s or is left as-is, that layer simply paints
   nothing and the gradient underneath still shows through, so the card
   never breaks or shows a missing-image icon — it just looks like the
   current placeholder until a real photo is added at that path. */
.svc-card-image {
  height: 130px;
  width: 100%;
  background-size: cover;
  background-position: center;
  margin-top: auto;
}

.svc-card-image--1 {
  background-image: url('images/services/01-regulatory-advisory.jpg'), linear-gradient(150deg, #0b0f14 0%, #1e2732 45%, var(--red) 100%);
}

.svc-card-image--2 {
  background-image: url('images/services/02-fiu-ind-registration.jpg'), linear-gradient(150deg, #ff8a8a 0%, var(--red) 55%, #7a1220 100%);
}

.svc-card-image--3 {
  background-image: url('images/services/03-aml-kyc.jpg'), linear-gradient(150deg, #eafaf1 0%, #6fcf97 55%, #1f7a3d 100%);
}

.svc-card-image--4 {
  background-image: url('images/services/04-web3-legal.jpg'), linear-gradient(150deg, #e2ecfb 0%, var(--blue) 55%, #0d2a6b 100%);
}

.svc-card-image--5 {
  background-image: url('images/services/05-tokenisation.jpg'), linear-gradient(150deg, #fdf1e6 0%, #e08a2b 55%, #8a4d0f 100%);
}

.svc-card-image--6 {
  background-image: url('images/services/06-market-entry.jpg'), linear-gradient(150deg, #0b0f14 0%, var(--blue) 55%, #7ab2f5 100%);
}

@media (max-width: 767.98px) {
  .svc-section {
    padding: 3rem 0;
  }
}

/* ==========================================================================
   "Built for serious crypto founders" — two-column section
   (start-crypto-venture, right after "Legal & compliance advisory built
   for digital assets"): headline + description + CTA on the left, a
   stack of frosted-glass pill cards with icons on the right, modeled on
   a glassmorphism reference the client supplied.

   Background is a light color for now, with a background-image layer on
   top (empty path — drop a real file at the path below whenever it's
   ready), same pattern as the services-grid cards earlier: if the image
   404s or isn't added yet, that layer simply paints nothing and the
   light gradient underneath shows through, so the section never breaks.
   The glass cards themselves use a more opaque white fill (not the
   thinner dark-on-dark version from the first draft), so they stay
   readable both against today's plain light background and against
   whatever photo eventually goes here — light or dark.
   ========================================================================== */
.glass-section {
  position: relative;
  overflow: hidden;
  padding: 5.5rem 0;
}

.glass-section-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  background-image: url('images/sections/founders-hero.jpg');
  background-size: cover;
  background-position: center;
  background-color: transparent;
}

.glass-section::before {
  /* light gradient fallback, sits behind glass-section-bg's image layer
     via stacking order (this pseudo-element is painted first) */
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(160deg, #fdf3f0 0%, #fdeef1 55%, #f5e9f0 100%);
}

.glass-section .container {
  position: relative;
  z-index: 1;
}

.glass-head h2 {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(2.1rem, 4vw, 2.9rem);
  color: var(--ink);
  line-height: 1.22;
  margin-bottom: 1rem;
}

.glass-head p {
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.65;
  margin-bottom: 1.75rem;
  max-width: 46ch;
}

.glass-cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: linear-gradient(135deg, #ff5f5f 0%, #e63946 55%, #c81e3a 100%);
  color: #ffffff;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.82rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 0.95rem 1.75rem;
  border-radius: 8px;
  box-shadow: 0 10px 24px rgba(200, 30, 58, 0.32);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.glass-cta:hover {
  color: #ffffff;
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(200, 30, 58, 0.4);
}

.glass-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.glass-item {
  position: relative;
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 1.1rem 1.5rem;
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.85), rgba(255, 255, 255, 0.6));
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border: 1px solid rgba(255, 255, 255, 0.7);
  box-shadow: 0 10px 26px rgba(11, 15, 20, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.6);
  transition: transform 0.2s ease, background 0.2s ease;
}

.glass-item:hover {
  transform: translateX(4px);
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.95), rgba(255, 255, 255, 0.72));
}

.glass-item-icon {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: rgba(220, 38, 38, 0.12);
  border: 1px solid rgba(220, 38, 38, 0.18);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--red);
  font-size: 1.15rem;
  flex-shrink: 0;
}

.glass-item span {
  color: var(--ink);
  font-weight: 600;
  font-size: 0.96rem;
}

@media (max-width: 991.98px) {
  .glass-section .row>div:first-child {
    margin-bottom: 2.5rem;
  }
}

/* ==========================================================================
   "From business idea to compliance roadmap" — minimal editorial process
   section (start-crypto-venture, after "How we help"): centered eyebrow +
   two-line headline (second line in accent color), a divider, then 3
   columns separated by vertical rules, each with a large numeral and a
   heading/description. Modeled on a clean divider-based reference the
   client supplied — kept in the site's own Archivo/Inter type system and
   brand red accent rather than the reference's serif display font and
   gold, to stay visually consistent with the rest of the page.
   ========================================================================== */
.roadmap-section {
  padding: 5.5rem 0;
  background: var(--surface);
}

.roadmap-head {
  text-align: center;
  margin-bottom: 2.5rem;
}

.roadmap-eyebrow {
  display: block;
  font-family: var(--font-body);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--red);
  margin-bottom: 1rem;
}

.roadmap-head h2 {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(2rem, 3.6vw, 2.7rem);
  color: var(--ink);
  line-height: 1.25;
  margin: 0;
}

.roadmap-head h2 .accent {
  color: var(--red);
}

.roadmap-divider {
  border-top: 1px solid var(--border);
}

.roadmap-grid {
  display: flex;
  flex-wrap: wrap;
}

/* The "How we help" pillar cards used to be their own separate section
   before "From business idea to compliance roadmap" — moved here, below
   the 3-step grid, so both live under one combined section instead of
   two adjacent ones. */
.roadmap-pillars {
  margin-top: 4rem;
}

.roadmap-pillars-head {
  text-align: center;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(1.15rem, 1.6vw, 1.4rem);
  color: var(--ink);
  line-height: 1.3;
  margin-bottom: 2.5rem;
}

.roadmap-col {
  flex: 1 1 0;
  min-width: 260px;
  display: flex;
  gap: 1.25rem;
  padding: 2.5rem 2rem;
  border-bottom: 1px solid var(--border);
}

.roadmap-col:not(:first-child) {
  border-left: 1px solid var(--border);
}

.roadmap-num {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 2.1rem;
  color: var(--red);
  line-height: 1;
  flex-shrink: 0;
}

.roadmap-col-text h3 {
  font-family: "Geist", sans-serif !important;
  font-weight: 800;
  font-size: 1.08rem;
  color: var(--ink);
  line-height: 1.3;
  margin-bottom: 0.5rem;
}

.roadmap-col-text p {
  font-size: 0.88rem;
  color: var(--muted);
  line-height: 1.55;
  margin: 0;
}

@media (max-width: 767.98px) {
  .roadmap-section {
    padding: 3rem 0;
  }

  .roadmap-col {
    flex: 1 1 100%;
    padding: 1.75rem 0;
  }

  .roadmap-col:not(:first-child) {
    border-left: none;
  }
}

/* Full-width mid-page CTA banner — scoped to body.scv-page only, since
   .cta-hero-banner is shared with stage-1-guide.html, which keeps the
   card/white-frame version. Here the colored background sits outside
   .container so it bleeds edge-to-edge, while .cta-hero-inner (new,
   holding the flex row that used to live directly on .cta-hero-banner)
   stays inside .container so text and buttons keep the same reading
   width as the rest of the page. */
body.scv-page .cta-hero-banner {
  border-radius: 0;
  padding: 3.5rem 0;
}

body.scv-page .cta-hero-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 2rem;
}



/* ==========================================================================
   FAQ section (start-crypto-venture, after mid-page CTA) — pill badge,
   two-line headline with an accent second line, and rounded card-style
   accordion items with a circular chevron toggle, modeled on a reference
   the client supplied. New .faq-accordion class rather than reusing
   .dossier-accordion (used on Stage 2), since the visual style here
   (rounded gray cards, circular chevron) is deliberately different from
   the thin-divider accordion used elsewhere — this stays scoped to this
   one section and doesn't touch Stage 2's FAQ.
   ========================================================================== */
.faq-section {
  padding: 5.5rem 0;
  background: none !important;
}

.faq-badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: #fdeded;
  color: var(--red);
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.78rem;
  padding: 7px 15px;
  border-radius: 999px;
  margin-bottom: 1.4rem;
}

.faq-head h2 {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(2rem, 3.6vw, 2.7rem);
  color: var(--ink);
  line-height: 1.2;
  margin-bottom: 1rem;
}

.faq-head h2 .accent {
  color: var(--red);
}

.faq-head p {
  color: var(--muted);
  font-size: 0.98rem;
  line-height: 1.65;
  max-width: 42ch;
}

/* Rounded card accordion */
.faq-accordion .accordion-item {
  background: var(--surface-alt);
  border: none;
  border-radius: 14px;
  overflow: hidden;
  margin-bottom: 1rem;
}

.faq-accordion .accordion-item:last-child {
  margin-bottom: 0;
}

.faq-accordion .accordion-header {
  margin: 0;
}

.faq-accordion .accordion-button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  width: 100%;
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 1.25rem 1.4rem;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1rem;
  color: var(--ink);
  text-align: left;
}

.faq-accordion .accordion-button::after {
  display: none;
  content: none;
}

.faq-accordion .faq-chevron {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: linear-gradient(135deg, #ff5f5f 0%, #c81e3a 100%);
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.faq-accordion .faq-chevron i {
  transition: transform 0.2s ease;
}

.faq-accordion .accordion-button:not(.collapsed) .faq-chevron i {
  transform: rotate(180deg);
}

.faq-accordion .accordion-body {
  padding: 0 1.4rem 1.5rem;
  color: var(--muted);
  font-size: 0.9rem;
  line-height: 1.6;
}


/* ==========================================================================
   Client logo marquee (start-crypto-venture, before FAQ) — headline above
   a horizontal infinite-scroll strip of client logos. Reuses the exact
   same .marquee-strip/.marquee-track/.marquee-content infrastructure (and
   JS in lp-crypto.js, now generalized to support more than one marquee
   per page) as the text ticker below the hero — only the visual theme
   differs via the .logo-marquee-strip modifier (light background instead
   of dark ink) and .logo-marquee-item (instead of .item/.spark text).

   Logo files don't exist yet — each item is a background-image layer
   over a plain placeholder box, same graceful-fallback pattern as the
   services-grid cards and the "Built for serious founders" section:
   if the image path 404s or isn't added yet, the box just shows as a
   muted placeholder rectangle rather than a broken-image icon.
   ========================================================================== */
.logo-section {
  padding: 2.5rem 0;
}

.logo-section-head {
  text-align: center;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(1.3rem, 2.2vw, 1.7rem);
  color: var(--ink);
  line-height: 1.35;
  margin-bottom: 2.75rem;
}

.marquee-strip.logo-marquee-strip {
  background: transparent;
  border-top: none;
  border-bottom: none;
  padding: 0;
}

.logo-marquee-item {
  width: 150px;
  height: 88px;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  flex-shrink: 0;
  filter: grayscale(100%);
  opacity: 0.7;
  transition: opacity 0.2s ease, filter 0.2s ease;
}

.logo-marquee-item:hover {
  opacity: 1;
  filter: grayscale(0%);
}

/* ==========================================================================
   "Let's discuss your crypto venture" — closing lead-capture section
   (start-crypto-venture, after FAQ), rebuilt as a single bounded rounded
   card split into a dark left panel and a light right panel, modeled on
   a login-card reference the client supplied. No photo this time (an
   earlier photo-overlay version was tried and reverted over text
   legibility/placement) — the left panel is a plain dark gradient with a
   brand tag, headline, description, and two small trust-feature boxes
   at the bottom, mirroring the reference's "Predictive Flow / Enterprise
   Shield" mini-cards but with content relevant to a legal advisory.
   ========================================================================== */
.discuss-section {
  padding: 5.5rem 0;
}

.discuss-card {
  display: flex;
  flex-wrap: wrap;
  border-radius: 24px;
  overflow: hidden;
  background: #ffffff;
  box-shadow: 0 30px 60px rgba(11, 15, 20, 0.14);
}

.discuss-card-left {
  position: relative;
  flex: 1 1 46%;
  min-width: 320px;
  display: flex;
  flex-direction: column;
  padding: 2.5rem;
  background: radial-gradient(700px 360px at 15% 0%, rgba(255, 95, 95, 0.22), transparent 60%),
    linear-gradient(165deg, #1c2024 0%, #101316 100%);
}

.discuss-card-brand {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #ffffff;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.98rem;
}

.discuss-card-brand i {
  color: var(--red);
  font-size: 1.1rem;
}

.discuss-card-left-content {
  display: flex;
  flex-direction: column;
  padding: 0 0 2.5rem;
}

.discuss-card-left-content h2 {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(1.7rem, 2.8vw, 2.3rem);
  color: #ffffff;
  line-height: 1.25;
  margin-bottom: 0.85rem;
}

.discuss-card-left-content p {
  color: rgba(255, 255, 255, 0.65);
  font-size: 0.95rem;
  line-height: 1.6;
  margin: 0;
  max-width: 38ch;
}

.discuss-card-features {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  margin-top: auto;
  padding-top: 2.5rem;
}

.discuss-feature {
  flex: 1 1 150px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 12px;
  padding: 1rem 1.1rem;
}

.discuss-feature i {
  color: var(--red);
  font-size: 1.1rem;
  margin-bottom: 0.6rem;
  display: block;
}

.discuss-feature strong {
  display: block;
  color: #ffffff;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.86rem;
  margin-bottom: 0.3rem;
}

.discuss-feature span {
  display: block;
  color: rgba(255, 255, 255, 0.55);
  font-size: 0.76rem;
  line-height: 1.4;
}

.discuss-card-right {
  flex: 1 1 54%;
  min-width: 340px;
  padding: 3rem;
}

.discuss-card-right h3 {
  font-family: "Geist", sans-serif !important;
  font-weight: 800;
  font-size: 1.35rem;
  color: var(--ink);
  margin-bottom: 0.5rem;
}

.discuss-card-right>p {
  color: var(--muted);
  font-size: 0.94rem;
  line-height: 1.6;
  margin-bottom: 1.5rem;
}

.btn-lp-primary.btn-lp-uppercase {
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 0.88rem;
}

/* Named advisor — avatar beside a single flowing sentence (name bolded,
   then role + a line on how they can help). Now sits on the dark left
   panel below the headline/description, instead of the light right
   panel. Avatar is a background-image layer over a colored gradient +
   initials fallback (empty image path for now — same graceful-fallback
   pattern as the logo marquee and services cards). Note: unlike those
   other placeholders, the "RK" initials text is a real child element,
   not something a missing image automatically hides — remove the
   <span>RK</span> from the HTML once a real photo is added at the path
   below, or the initials will sit on top of the photo. */
.discuss-advisor {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  margin-top: 4rem;
}

.discuss-advisor-avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: url('images/testimonials/advisor-rhea-kapoor.jpg') center/cover no-repeat,
    linear-gradient(135deg, #ff5f5f 0%, #c81e3a 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.discuss-advisor-avatar span {
  color: #ffffff;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.92rem;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
}

.discuss-advisor-text {
  font-size: 0.86rem;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.62);
  margin: 0;
}

.discuss-advisor-text strong {
  color: #ffffff;
  font-weight: 700;
}

@media (max-width: 767.98px) {

  .discuss-card-left,
  .discuss-card-right {
    padding: 2rem;
  }

  .discuss-card-left-content {
    padding: 1.75rem 0;
  }
}






/* Hero checklist (start-crypto-venture) — short inline trust row between
   the CTA buttons and the stats bar. */
/* ==========================================================================
   Simple hero social-proof block — overlapping avatar photos + a short
   trust line + stars. Reusable on any page (generic, not tied to VARA
   content).
   ========================================================================== */
.hero-social-proof {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.hero-social-proof-avatars {
  display: flex;
}

.hero-social-proof-avatars span {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  border: 3px solid #ffffff;
  background-color: var(--surface-alt);
  background-image: linear-gradient(135deg, #ffffff 0%, #f5f7fa 100%);
  background-size: cover;
  background-position: center;
  box-shadow: 0 4px 10px rgba(11, 15, 20, 0.1);
  margin-left: -16px;
}

.hero-social-proof-avatars span:first-child {
  margin-left: 0;
}

.hero-social-proof-text {
  text-align: left;
}

.hero-social-proof-title {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 1.05rem;
  color: var(--ink);
  margin: 0;
}

.hero-social-proof-sub {
  font-size: 0.88rem;
  color: var(--muted);
  margin: 0 0 0.3rem;
}

.hero-social-proof .stars {
  font-size: 1.25rem;
  letter-spacing: 1px;
  margin-bottom: 0;
}

@media (max-width: 767.98px) {
  .hero-social-proof {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.65rem;
  }

  .hero-social-proof-sub {
    margin-bottom: 0.5rem;
  }

  /* Centered-hero pages (e.g. meeting-scheduler.php) — center the whole
     social-proof block and its text, instead of the left-aligned default
     used by the VARA page's 2-column hero. */
  .dlg-hero--centered .hero-social-proof {
    align-items: center;
  }

  .dlg-hero--centered .hero-social-proof-text {
    text-align: center;
  }
}

.lp-hero-checklist {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.5rem;
  margin-top: 1.35rem;
}

.lp-hero-checklist span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--ink);
}

.lp-hero-checklist i {
  color: #1f7a3d;
  font-size: 0.98rem;
  flex-shrink: 0;
}

/* Scroll offset fix for anchors on nested elements (not top-level
   sections) — #consultation-form (hero's lead-magnet card), #guide (the
   bottom discuss-card-right panel), and #services/#stage-select/
   #process/#readiness (plain sections with no natural top clearance of
   their own). Other top-level section anchors (#faqs, etc.) already
   clear the sticky nav fine via their own natural padding; these don't,
   so the sticky nav overlapped their top edge when scrolled to directly. */
#consultation-form,
#guide,
#services,
#stage-select,
#process,
#readiness {
  scroll-margin-top: calc(var(--nav-h) + 16px);
}

/* ==========================================================================
   Testimonials (start-crypto-venture, before FAQ) — 6 cards, mix of
   Indian and international founders, modeled on a pastel-card reference
   the client supplied: small context tag, quote, optional star rating, a
   large decorative quote mark, and an avatar/name/role footer. A blue
   verified badge sits next to each name. Reuses the existing pastel
   background classes (.pillar-card--blush/sky/peach/mint) rather than
   duplicating new gradient values, cycling through them across 6 cards.
   ========================================================================== */
.testi-section {
  padding: 5.5rem 0;
}

.testi-head {
  max-width: 640px;
  margin: 0 auto 2.5rem;
}

.testi-head h2 {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(2rem, 3.6vw, 2.7rem);
  color: var(--ink);
  line-height: 1.22;
  margin-bottom: 0.85rem;
}

.testi-head p {
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.6;
  margin: 0;
}

.testi-card {
  position: relative;
  overflow: hidden;
  border-radius: 18px;
  padding: 1.6rem 1.6rem 1.75rem;
  height: 100%;
  min-height: 230px;
  display: flex;
  flex-direction: column;
}

.testi-tag {
  font-family: var(--font-body);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 0.85rem;
}

.testi-quote {
  font-size: 0.96rem;
  font-weight: 600;
  color: var(--ink);
  line-height: 1.5;
  margin-bottom: 0.75rem;
  max-width: 88%;
}

.testi-stars {
  color: #f2a33d;
  font-size: 0.85rem;
  letter-spacing: 1px;
  margin-bottom: 0.5rem;
}

.testi-mark {
  position: absolute;
  right: 1.4rem;
  bottom: 4.6rem;
  font-size: 2.2rem;
  color: rgba(11, 15, 20, 0.14);
  line-height: 1;
}

.testi-footer {
  margin-top: auto;
  padding-top: 1.25rem;
  display: flex;
  align-items: center;
  gap: 12px;
}

/* Photo layered over a gradient fallback — same pattern as the advisor
   avatar and logo marquee elsewhere on this page. Each card sets its own
   two-layer background (photo url + gradient) via an inline style in the
   HTML, since every avatar needs a different image; if a photo path
   doesn't exist yet, that layer paints nothing and the gradient +
   initials show through underneath, so nothing breaks before real
   photos are added. This class only sets the structural properties
   (size, shape, sizing/position) — the actual background-image comes
   from each avatar's own inline style. */
.testi-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-size: cover;
  background-position: center;
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.8rem;
  flex-shrink: 0;
}

.testi-name {
  display: flex;
  align-items: center;
  gap: 5px;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.86rem;
  color: var(--ink);
}

.testi-verified {
  color: #1d9bf0;
  font-size: 0.86rem;
}

.testi-role {
  display: block;
  font-size: 0.74rem;
  color: var(--muted);
}

/* Hero pull-quote avatars are now set per-slide via inline style (each
   of the 4 rotating quotes has its own photo), since a single shared
   CSS rule can't point at 4 different images — the old single-avatar
   rule that lived here has been removed. */

/* ==========================================================================
   Trust stats strip (start-crypto-venture, right after hero) — full-width
   dark bar with 4 stats, modeled on a reference the client supplied: dark
   navy background, faint dot-grid texture, bold white numbers, muted
   blue-gray labels. Moved here from inside the hero's left column, where
   it was competing for space with the headline/description/CTAs/quote.
   ========================================================================== */
.stats-strip {
  background: var(--ink);
  background-image: radial-gradient(rgba(255, 255, 255, 0.06) 1px, transparent 1px);
  background-size: 16px 16px;
  padding: 2.25rem 0;
}

.stats-strip-row {
  display: flex;
  flex-wrap: wrap;
}

.stats-strip-item {
  flex: 1 1 0;
  min-width: 150px;
  text-align: center;
  padding: 0.5rem 1rem;
  border-left: 1px solid rgba(255, 255, 255, 0.1);
}

.stats-strip-item:first-child {
  border-left: none;
}

.stats-strip-item .v {
  display: block;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 1.6rem;
  color: #ffffff;
  margin-bottom: 0.3rem;
}

.stats-strip-item .k {
  display: block;
  font-size: 0.82rem;
  color: rgba(255, 255, 255, 0.55);
}

@media (max-width: 767.98px) {
  .stats-strip-item {
    flex: 1 1 50%;
    border-left: none;
    margin-bottom: 1.25rem;
  }
}

/* Verified pill badge, top-right corner of each hero quote card
   (separate from the small inline checkmark next to the name). */
.lp-quote-verified-pill {
  position: absolute;
  top: 1rem;
  right: 1.25rem;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: rgba(31, 122, 61, 0.1);
  color: #1f7a3d;
  font-family: var(--font-body);
  font-size: 0.68rem;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 999px;
}

/* Verified pill, top-right corner of each testimonial card (replaced an
   earlier shield-icon version per client feedback), same style as the
   hero quote cards' verified pill. */
.testi-verified-pill {
  position: absolute;
  top: 1.1rem;
  right: 1.1rem;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: rgba(31, 122, 61, 0.1);
  color: #1f7a3d;
  font-family: var(--font-body);
  font-size: 0.68rem;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 999px;
  z-index: 2;
}

/* ==========================================================================
   "Start Your FIU-IND Registration" CTA banner (start-crypto-venture,
   closing section) — replaces the earlier "discuss-card" split-panel
   design. Full-width dark gradient banner, centered content, a pill
   badge, headline, description, a row of feature pills, two CTA buttons,
   and a small trust line — modeled on a reference the client supplied,
   with their blue gradient swapped for the site's dark red/ink gradient
   for brand consistency. No form here — both buttons link elsewhere
   (see the HTML comment above this section for exactly where).
   ========================================================================== */
.cta-banner-section {
  padding: 5rem 0;
}

.cta-banner-inner {
  position: relative;
  overflow: hidden;
  border-radius: 28px;
  padding: 3.5rem 2.5rem;
  text-align: center;
  background: radial-gradient(900px 480px at 85% 100%, rgba(255, 95, 95, 0.35), transparent 60%),
    linear-gradient(155deg, #0b0f14 0%, #3d0a12 55%, #7a1220 100%);
}

/* Optional background-image variant — set the photo directly as part of
   the inline background-image (combined with the tint gradient in the
   SAME declaration), not via a CSS custom property: a var() containing
   url() resolves relative to the stylesheet that reads it, not the
   page, which silently breaks relative image paths. Example:
     <div class="cta-banner-inner cta-banner-inner--bg-image"
          style="background-image: linear-gradient(155deg, rgba(11,15,20,.88) 0%, rgba(61,10,18,.85) 55%, rgba(122,18,32,.82) 100%), url('assets/images/sections/whatever.jpg');">
   The gradient layer keeps the same brand-red tint/legibility as the
   flat-color version, just tinting a photo instead of nothing. If no
   inline background-image is set (or the file 404s), this class alone
   changes nothing — the base .cta-banner-inner background still shows. */
.cta-banner-inner--bg-image {
  background-size: cover;
  background-position: center;
}

.cta-banner-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.25);
  color: #ffffff;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.8rem;
  padding: 8px 18px;
  border-radius: 999px;
  margin-bottom: 1.5rem;
}

.cta-banner-inner h2 {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(1.8rem, 3.4vw, 2.5rem);
  color: #ffffff;
  line-height: 1.25;
  max-width: 36ch;
  margin: 0 auto 1.25rem;
}

.cta-banner-inner>p {
  color: rgba(255, 255, 255, 0.7);
  font-size: 0.98rem;
  line-height: 1.65;
  max-width: 78ch;
  margin: 0 auto 2rem;
}

.cta-banner-features {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem;
  margin-bottom: 2rem;
}

.cta-banner-features span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(11, 15, 20, 0.35);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.18);
  color: #ffffff;
  font-size: 0.82rem;
  font-weight: 600;
  padding: 8px 16px;
  border-radius: 999px;
}

.cta-banner-features i {
  color: #6fcf97;
}

.cta-banner-buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.85rem;
  margin-bottom: 1.75rem;
}

.cta-banner-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.92rem;
  padding: 0.9rem 1.75rem;
  border-radius: 10px;
}

.cta-banner-btn--primary {
  background: #1f7a3d;
  color: #ffffff;
}

.cta-banner-btn--primary:hover {
  background: #195f30;
  color: #ffffff;
}

.cta-banner-btn--secondary {
  background: #ffffff;
  color: var(--ink);
}

.cta-banner-btn--secondary:hover {
  background: #f2f2f2;
  color: var(--ink);
}

/* Red-gradient variant — used where a second CTA should carry the same
   visual weight/urgency as the primary brand button, rather than the
   plain white --secondary style. */
.cta-banner-btn--red {
  background: linear-gradient(135deg, #ff5f5f 0%, #e63946 55%, #c81e3a 100%);
  color: #ffffff;
}

.cta-banner-btn--red:hover {
  filter: brightness(0.92);
  color: #ffffff;
}

.cta-banner-trust {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5rem 1.5rem;
}

.cta-banner-trust span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.8rem;
  color: #c9d3f5;
}

.cta-banner-trust i {
  color: #6fcf97;
  font-size: 0.75rem;
}

/* ==========================================================================
   Split variant — left content / right actions, side by side (instead of
   the centered single-column layout .cta-banner-inner uses). Reuses the
   same .cta-banner-section background, .cta-banner-pill, .cta-banner-btn
   and .cta-hero-avatars/.cta-hero-social components as-is.
   ========================================================================== */
.cta-banner-split {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 2.5rem;
}

/* Full-width, edge-to-edge variant — background moves to the section
   itself (no container constraint, no rounded corners), .cta-banner-split
   becomes a plain flex layout wrapper instead of its own card. */
.cta-banner-section--full {
  padding: 4rem 0;
  background: radial-gradient(900px 480px at 85% 100%, rgba(255, 95, 95, 0.35), transparent 60%),
    linear-gradient(155deg, #0b0f14 0%, #3d0a12 55%, #7a1220 100%);
}

.cta-banner-split-content {
  flex: 1 1 380px;
  max-width: 560px;
}

.cta-banner-split-content .cta-banner-pill {
  margin-bottom: 1.25rem;
}

.cta-banner-split-content h2 {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(1.8rem, 3vw, 2.3rem);
  color: #ffffff;
  line-height: 1.25;
  margin-bottom: 0.75rem;
}

.cta-banner-split-content p {
  color: rgba(255, 255, 255, 0.7);
  font-size: 0.95rem;
  line-height: 1.6;
  margin: 0;
}

.cta-banner-split-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.1rem;
  flex: 0 0 auto;
}

.cta-banner-split-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.cta-banner-btn--outline {
  background: transparent;
  color: #ffffff;
  border: 1px solid rgba(255, 255, 255, 0.5);
}

.cta-banner-btn--outline:hover {
  background: rgba(255, 255, 255, 0.1);
  color: #ffffff;
}

@media (max-width: 991.98px) {
  .cta-banner-split-actions {
    align-items: flex-start;
  }
}

@media (max-width: 767.98px) {
  .cta-banner-section--full {
    padding: 2.5rem 0;
  }

  .cta-banner-split {
    flex-direction: column;
    align-items: flex-start;
  }

  .cta-banner-split-content {
    flex: 0 0 auto;
    max-width: 100%;
  }
}

@media (max-width: 767.98px) {
  .cta-banner-inner {
    padding: 2.5rem 1.5rem;
  }
}

.top-bar-contact a {
  color: #D0253D;
}

.top-bar-contact a:hover {
  color: #000;
  transition: all 0.3s linear;
}

/* ==========================================================================
   Minimal footer (start-crypto-venture only) — replaces the full
   sitemap/disclosures footer used on every other page with just a logo,
   copyright line, and Privacy/Terms links, per client request. Lives in
   its own _footer-scv.html file rather than editing the shared
   _footer.html, so every other page keeps the full footer untouched.
   ========================================================================== */
.site-footer-minimal {
  background: var(--ink);
  padding: 2.5rem 0;
}

.site-footer-minimal p {
  font-size: 14px;
  color: #ffffffa2;
  margin-top: 20px;
  letter-spacing: 0.4px;
}



.footer-social-vara {
  display: flex;
  gap: 10px;
  margin: 30px 0 40px 0;
  padding: 0;
}

.footer-social-vara li {
  list-style: none;
  width: 40px;
  height: 40px;
  border: 1px solid #fff;
  text-align: center;
  line-height: 40px;
  border-radius: 50px;
  transition: opacity 0.25s ease, transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
}



.footer-social-vara li:hover {
  filter: brightness(0.95);
  color: #ffffff;
  transform: translateY(-4px) scale(1.06);
  box-shadow: 0 16px 32px rgba(200, 30, 58, 0.4);
  background: linear-gradient(135deg, #ff5f5f 0%, #e63946 55%, #c81e3a 100%);
  border: none
}

.footer-social-vara a {
  color: #fff;
}



.site-footer-minimal li {
  list-style: none;
}

.site-footer-minimal-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.footer-social-nav h4 {
  color: #fff;
  font-size: 16px;
  font-weight: 800;
  margin-bottom: 10px;
}

.footer-social-nav a {
  color: #ffffff8b;
  font-size: 14px;
  font-weight: 400;
  line-height: 40px;
  letter-spacing: 0.4px;
}

.footer-social-nav a:hover {
  color: #ff5f5f;
  margin-left: 2px;
  transition: all 0.3s ease-in;
}

.footer-social-nav ul {
  margin: 0;
  padding: 0;
}

.site-footer-minimal-logo {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 1.05rem;
  color: #ffffff;
}

.site-footer-minimal-logo span {
  color: var(--red);
}

.site-footer-minimal-copy {
  color: rgba(255, 255, 255, 0.55);
  font-size: 0.85rem;
  margin: 0;
}

.site-footer-minimal-links {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.85rem;
}

.site-footer-minimal-links a {
  color: rgba(255, 255, 255, 0.75);
}

.site-footer-minimal-links a:hover {
  color: #ffffff;
}

.site-footer-minimal-links span {
  color: rgba(255, 255, 255, 0.35);
}

@media (max-width: 575.98px) {
  .site-footer-minimal-inner {
    flex-direction: column;
    text-align: center;
  }
}

/* ==========================================================================
   guide-download.html — a new, separate, minimal standalone page: a
   transparent floating nav (logo + one button, no menu), a hero with
   marketing text on the left and the guide-download form on the right
   (reusing .lead-magnet/.lp-form as-is), and the existing logo marquee
   below. Nothing else on this page — no footer. Background reuses
   .lp-hero's existing light grid + red radial texture from
   start-crypto-venture's hero, so it stays visually consistent even
   though this is a separate file.
   ========================================================================== */
.minimal-nav {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 10;
  background: transparent;
  padding: 1.75rem 0;
}

.minimal-nav-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.minimal-nav-logo {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 1.15rem;
  color: var(--ink);
}

.minimal-nav-logo span {
  color: var(--red);
}

.minimal-nav-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--ink);
  color: #ffffff;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.88rem;
  padding: 0.7rem 1.4rem;
  border-radius: 999px;
  transition: background 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
}

.minimal-nav-btn i {
  transition: transform 0.25s ease;
}

.minimal-nav-btn:hover {
  background: var(--red);
  color: #ffffff;
  transform: translateY(-2px) scale(1.03);
  box-shadow: 0 10px 20px rgba(220, 38, 38, 0.28);
}

.minimal-nav-btn:hover {
  transform: translate(2px, -2px);
}

/* Hero needs extra top padding on this page since the nav floats over
   it (position:absolute) instead of taking up its own space in flow. */
.dlg-hero {
  padding-top: 7.5rem;
}

.dlg-list {
  list-style: none;
  margin: 1.75rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.dlg-list li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 0.95rem;
  color: var(--muted);
}

.dlg-list li i {
  color: #1f7a3d;
  font-size: 1.05rem;
  margin-top: 2px;
  flex-shrink: 0;
}

.dlg-list li strong {
  color: var(--ink);
  font-weight: 700;
}

@media (max-width: 767.98px) {
  .dlg-hero {
    padding-top: 6rem;
  }
}

/* Logo marquee moved inside the hero itself on guide-download.html
   (was previously its own separate section below the hero, with its
   own heading — both removed per client feedback). */
.dlg-hero-marquee {
  margin-top: 4rem;
}

/* Logo placeholder boxes need real contrast here, since they now sit
   inside .lp-hero, whose own background is nearly the same light gray
   as .logo-marquee-item's default placeholder fill — nearly invisible
   until real logos are added. White fill + a visible border fixes that
   regardless of what's behind them. */
.dlg-hero-marquee .logo-marquee-item {
  background-color: #ffffff;
  border: 1px solid rgba(11, 15, 20, 0.1);
  box-shadow: 0 2px 6px rgba(11, 15, 20, 0.05);
}

/* Dots hidden on both pages that use this rotator component
   (start-crypto-venture.html and guide-download.html) — .lp-quote-dots
   is shared between them, so hiding it directly here affects both
   rather than needing the page-specific scoping used elsewhere. */
.lp-quote-dots {
  display: none;
}

/* ==========================================================================
   guide-download-2.html — second variant of the guide-download page.
   Same transparent nav + minimal footer as guide-download.html, but a
   different flow: centered hero (heading/description/button, no form),
   an avatar-stack social-proof strip, the logo marquee, a standalone
   testimonial rotator section, then a final image+form card at the
   bottom as the actual conversion point.
   ========================================================================== */
.dlg-hero--centered {
  text-align: center;
}

.dlg-hero-centered {
  max-width: 700px;
  margin: 0 auto;
}

.dlg-hero-centered .lp-sub {
  margin-left: auto;
  margin-right: auto;
}

.dlg-hero-centered .btn-primary-custom {
  display: inline-flex;
}

/* Avatar-stack social proof, modeled on a reference the client supplied */
.dlg-social-proof {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  margin-top: 2.5rem;
  text-align: left;
}

.dlg-avatar-stack {
  display: flex;
}

.dlg-stack-avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 3px solid #ffffff;
  background-size: cover;
  background-position: center;
  margin-left: -14px;
  box-shadow: 0 2px 6px rgba(11, 15, 20, 0.1);
}

.dlg-stack-avatar:first-child {
  margin-left: 0;
}

.dlg-social-proof-text p {
  font-size: 0.92rem;
  color: var(--muted);
  margin: 0 0 0.3rem;
}

.dlg-social-proof-text strong {
  color: var(--ink);
  font-weight: 700;
}

.dlg-social-stars {
  color: #f2a33d;
  font-size: 0.9rem;
  letter-spacing: 2px;
}

/* Standalone testimonial rotator section (not inside the hero's 2-column
   row this time — its own centered section further down the page) */
.dlg-testi-section {
  background: #f7f9fb;
}

.dlg-final-section {
  background: #f7f9fb;
  padding-top: 1rem;
}

.dlg-testi-wrap {
  max-width: 820px;
  margin: 0 auto;
}

/* Bigger card specifically on this page's standalone testimonial
   section — scoped here rather than changing .lp-quote-slide globally,
   since that same component also sits inside the (narrower) hero
   columns on start-crypto-venture.html and guide-download.html, where
   more padding/larger text would overflow. */
.dlg-testi-wrap .lp-quote-slide {
  padding: 2.5rem 2.75rem;
}

.dlg-testi-wrap .lp-quote-slides {
  min-height: 200px;
}

.dlg-testi-wrap .lp-pull-quote .stars {
  font-size: 1.4rem;
}

.dlg-testi-wrap .lp-pull-quote blockquote {
  font-size: 1.15rem;
  line-height: 1.6;
}

.dlg-testi-wrap .lp-pull-quote .testimonial-author .avatar {
  width: 52px;
  height: 52px;
  font-size: 0.95rem;
}

.dlg-testi-wrap .lp-pull-quote .testimonial-author .name {
  font-size: 1rem;
}

.dlg-testi-wrap .lp-pull-quote .testimonial-author .role {
  font-size: 0.86rem;
}

.dlg-testi-wrap .lp-quote-verified-pill {
  font-size: 0.78rem;
  padding: 5px 12px;
}

/* Final image + form card */
.dlg-final-card {
  display: flex;
  flex-wrap: wrap;
  border-radius: 24px;
  overflow: hidden;
  background: #ffffff;
  box-shadow: 0 30px 60px rgba(11, 15, 20, 0.12);
}

.dlg-final-card-image {
  position: relative;
  flex: 1 1 26%;
  min-width: 280px;
  min-height: 560px;
  display: flex;
  flex-direction: column;
  padding: 1.75rem;
  /* Image link to add later — drop the real photo at this exact path
     and it'll appear automatically (same graceful-fallback pattern used
     everywhere else on this site: paints nothing if missing, so the
     dark gradient underneath shows through until then). */
  background: url('images/sections/guide-final-cta.jpg') center/cover no-repeat,
    linear-gradient(160deg, #0b0f14 0%, #3d0a12 55%, #7a1220 100%);
}

.dlg-final-card-testi {
  position: relative;
  z-index: 1;
  margin-top: auto;
}

.dlg-final-card-image-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(11, 15, 20, 0.35) 0%, rgba(11, 15, 20, 0.05) 100%);
}

.dlg-final-card-form {
  flex: 1 1 38%;
  min-width: 320px;
  display: flex;
  align-items: center;
}

.dlg-final-card-form .lead-magnet {
  border: none;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  width: 100%;
  padding: 2.5rem;
}

@media (max-width: 767.98px) {
  .dlg-final-card {
    flex-direction: column;
  }

  .dlg-final-card-image {
    min-height: 220px;
    flex: 1 1 auto;
  }

  .dlg-final-card-form {
    flex: 1 1 auto;
  }

  .dlg-final-card-form .lead-magnet {
    padding: 2rem;
  }

  .dlg-final-card-included {
    flex: 1 1 auto;
  }
}

/* guide-download-2.html specific adjustments */

/* 1. H1 was wrapping to 3 lines because the shared .lp-hero h1 rule caps
   width at 22ch — too narrow for this page's wider centered layout.
   Widen it here so it settles into 2 lines instead. */
.dlg-hero--centered .dlg-hero-centered h1 {
  max-width: 100% !important;
  margin-left: auto;
  margin-right: auto;
  font-size: 2.2rem !important;
  line-height: 1.25 !important;
}

/* 2. Logo marquee hidden on guide-download-2.html only (this class is
   also used by guide-download.html, which should keep its marquee) */
body.dlg2-page .dlg-hero-marquee {
  display: none;
}

/* 3. Social proof restructured into 3 stacked lines (name count, then
   sub-line, then stars — was previously one wrapped paragraph + stars). */
.dlg-social-proof-text p {
  margin: 0;
}

.dlg-social-proof-text .dlg-social-line1,
.dlg-social-proof-text .dlg-social-line2 {
  display: block;
  font-size: 0.92rem;
  color: var(--muted);
}

.dlg-social-proof-text .dlg-social-line1 strong {
  color: var(--ink);
  font-weight: 700;
}

/* 4. Bigger stars and avatars */
.dlg-social-stars {
  font-size: 1.3rem;
  margin-top: 0.35rem;
}

.dlg-stack-avatar {
  width: 56px;
  height: 56px;
  margin-left: -18px;
}

/* Third column added to the final card — "What's Included?" heading +
   checklist, reusing .dlg-list (same styling already used in
   guide-download.html's hero) rather than a new list component. */
.dlg-final-card-included {
  flex: 1 1 36%;
  min-width: 260px;
  padding: 2.5rem 2rem;
  background: #f7f9fb;
  border-right: 1px solid var(--border);
}

.dlg-final-card-included h2 {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 1.9rem;
  line-height: 1.25;
  color: var(--ink);
  margin-bottom: 1.5rem;
}

/* Image link to add later — drop the real photo/illustration at this
   exact path and it'll appear automatically (same graceful-fallback
   pattern used everywhere else on this page: paints nothing if missing,
   so the gradient underneath shows through until then). */
.dlg-final-card-included-image {
  height: 280px;
  border-radius: 14px;
  margin-bottom: 1.75rem;
  background: url('images/sections/guide-included-preview.jpg') center/cover no-repeat,
    linear-gradient(160deg, #ff5f5f 0%, #c81e3a 100%);
}

.dlg-final-card-included h3 {
  font-family: "Geist", sans-serif !important;
  font-weight: 800;
  font-size: 1.1rem;
  color: var(--ink);
  margin-bottom: 1.25rem;
}

.dlg-final-card-included .dlg-list {
  margin-top: 0;
  gap: 0.5rem;
}

.dlg-final-card-included .dlg-list li {
  font-size: 0.88rem;
}

@media (max-width: 991.98px) {
  .dlg-final-card-included {
    border-right: none;
    border-top: none;
    border-bottom: 1px solid var(--border);
  }
}

/* Wider container for the 3-column final card specifically — the
   standard Bootstrap .container caps at 1320px, which felt cramped once
   a third column was added. */
.dlg-final-container {
  max-width: 1500px;
}

/* Different pastel background per testimonial slide, on this page's
   final-card rotator only — .dlg-testi-wrap doesn't exist anywhere
   else, so this is naturally scoped without touching the hero rotators
   on start-crypto-venture.html or guide-download.html, which stay white. */
.dlg-testi-wrap .lp-quote-slide:nth-child(1) {
  background: #fdeef1;
}

.dlg-testi-wrap .lp-quote-slide:nth-child(2) {
  background: #eaf2fd;
}

.dlg-testi-wrap .lp-quote-slide:nth-child(3) {
  background: #fdf3e6;
}

.dlg-testi-wrap .lp-quote-slide:nth-child(4) {
  background: #e9f7ef;
}

.dlg-testi-wrap .lp-quote-slide:nth-child(5) {
  background: #f1eefc;
}

.dlg-testi-wrap .lp-quote-slide:nth-child(6) {
  background: #fdeee6;
}

/* Hero bottom border removed for the centered dlg-hero variant — scoped
   via the .dlg-hero--centered class already on the section (not a body
   class), so any page using this hero pattern gets it automatically. */
.lp-hero.dlg-hero--centered {
  border-bottom: none;
}

/* guide-download.html restructure: hero's right column now holds an
   image card (was the guide form) instead, and the social proof block
   (reused from guide-download-2.html) needed left-alignment here since
   this hero is a normal 2-column layout, not the centered one that
   component was originally built for. Scoped to dlg1-page so
   guide-download-2.html's centered version is untouched. */
body.dlg1-page .dlg-social-proof {
  justify-content: flex-start;
  margin-left: 0;
}

/* Hero image card, replacing the guide form on the right side */
.dlg-hero-image-card {
  min-height: 600px;
  border-radius: 20px;
  background: url('images/sections/guide-hero-preview.jpg') center/cover no-repeat,
    linear-gradient(160deg, #7a1220 0%, #3d0a12 55%, #17070a 100%);
  box-shadow: 0 30px 60px rgba(11, 15, 20, 0.14);
}

/* Testimonial (left) + form (right) section below the hero */
.dlg-testi-form-section {
  background: #f7f9fb;
}

@media (max-width: 767.98px) {
  .dlg-hero-image-card {
    min-height: 260px;
  }
}

/* guide-download.html testimonial+form section — big heading above the
   testimonial card, matching the "less weight, bigger size" treatment
   used for the heading in guide-download-2.html's final card. Scoped to
   .dlg-testi-form-section, which only exists on this page. */
.dlg-testi-col-heading {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 1.9rem;
  line-height: 1.25;
  color: var(--ink);
  margin-bottom: 1.5rem;
}

/* Bigger testimonial card + a different pastel background per slide,
   scoped to this page's testimonial+form section only (the identical
   rotator component embedded elsewhere — start-crypto-venture.html's
   hero, guide-download-2.html's final card — stays as it was). */
.dlg-testi-form-section .lp-quote-slides {
  min-height: 260px;
}

.dlg-testi-form-section .lp-quote-slide {
  padding: 2.5rem 2.75rem;
}

.dlg-testi-form-section .lp-pull-quote .stars {
  font-size: 1.4rem;
}

.dlg-testi-form-section .lp-pull-quote blockquote {
  font-size: 1.15rem;
  line-height: 1.6;
}

.dlg-testi-form-section .lp-pull-quote .testimonial-author .avatar {
  width: 52px;
  height: 52px;
  font-size: 0.95rem;
}

.dlg-testi-form-section .lp-pull-quote .testimonial-author .name {
  font-size: 1rem;
}

.dlg-testi-form-section .lp-pull-quote .testimonial-author .role {
  font-size: 0.86rem;
}

.dlg-testi-form-section .lp-quote-slide:nth-child(1) {
  background: #fdeef1;
}

.dlg-testi-form-section .lp-quote-slide:nth-child(2) {
  background: #eaf2fd;
}

.dlg-testi-form-section .lp-quote-slide:nth-child(3) {
  background: #fdf3e6;
}

.dlg-testi-form-section .lp-quote-slide:nth-child(4) {
  background: #e9f7ef;
}

.dlg-testi-form-section .lp-quote-slide:nth-child(5) {
  background: #f1eefc;
}

.dlg-testi-form-section .lp-quote-slide:nth-child(6) {
  background: #fdeee6;
}


/* ==========================================================================
   Back-to-top floating button — bottom-right, fixed, fades in once the
   page has scrolled down. Hover lifts/scales it and reveals a top-
   positioned speech-bubble tooltip. Generic/reusable on any page.
   ========================================================================== */
.back-to-top-btn {
  position: fixed;
  right: 3.5rem;
  bottom: 2.75rem;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #ff5f5f 0%, #e63946 55%, #c81e3a 100%);
  color: #ffffff;
  font-size: 1.35rem;
  box-shadow: 0 10px 24px rgba(200, 30, 58, 0.32);
  z-index: 999;
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity 0.25s ease, transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
}

.back-to-top-btn.is-visible {
  opacity: 1;
  visibility: visible;
  transform: none;
}

.back-to-top-btn:hover {
  filter: brightness(0.95);
  color: #ffffff;
  transform: translateY(-4px) scale(1.06);
  box-shadow: 0 16px 32px rgba(200, 30, 58, 0.4);
}

.back-to-top-btn i {
  transition: transform 0.2s ease;
}

.back-to-top-btn:hover i {
  transform: translateY(-2px);
}

/* CSS-only tooltip, no extra markup beyond the data-tooltip attribute.
   Speech-bubble style: white bubble above the button, a small rotated
   square peeking out from behind its bottom edge as the pointer. */
.back-to-top-btn::after {
  content: attr(data-tooltip);
  position: absolute;
  bottom: calc(100% + 16px);
  left: 50%;
  transform: translateX(-50%) translateY(4px);
  background: #ffffff;
  color: var(--muted);
  font-family: var(--font-body);
  font-size: 0.95rem;
  font-weight: 500;
  white-space: nowrap;
  padding: 14px 22px;
  border-radius: 16px;
  box-shadow: 0 16px 32px rgba(11, 15, 20, 0.14);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease, transform 0.2s ease;
  z-index: 1;
}

.back-to-top-btn::before {
  content: "";
  position: absolute;
  bottom: calc(100% + 6px);
  left: 50%;
  width: 16px;
  height: 16px;
  background: #ffffff;
  border-radius: 3px;
  box-shadow: 3px 3px 6px rgba(11, 15, 20, 0.06);
  transform: translateX(-50%) translateY(12px) rotate(45deg);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease, transform 0.2s ease;
  z-index: 0;
}

.back-to-top-btn:hover::after,
.back-to-top-btn:hover::before {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

.back-to-top-btn:hover::before {
  transform: translateX(-50%) translateY(0) rotate(45deg);
}

@media (max-width: 767.98px) {
  .back-to-top-btn {
    right: 1.5rem;
    bottom: 1.5rem;
    width: 42px;
    height: 42px;
    font-size: 1rem;
  }

  /* Tooltips don't make sense on touch devices with no hover state. */
  .back-to-top-btn::after,
  .back-to-top-btn::before {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {

  .back-to-top-btn,
  .back-to-top-btn i {
    transition: none;
  }
}

.logo-track {
  width: 100%;
  overflow: hidden;
  position: relative;
}

.logo-slide {
  display: flex;
  align-items: center;
  gap: 80px;
  width: max-content;
  animation: marquee 25s linear infinite;
}

.logo-slide img {
  height: 80px;
  width: 150px;
  opacity: 0.8;
  transition: 0.3s;
  object-fit: contain;
}

.form-img img:nth-last-of-type(2) {
  width: auto;
  height: 47px;
  margin-right: 8px;
  border-radius: 3px;
}

.form-img img:nth-last-of-type(1) {
  width: auto;
  height: 71px;
  margin-right: 8px;
  border-radius: 3px;
}

.form-img {
  margin-top: -14px;
}

.site-footer-minimal-logo img {
  width: 94px;
}


/* Phone Country Code Start */

.lp-phone-code-menu {
  max-height: 320px;
  overflow-y: auto;
  width: 280px;
}

.lp-phone-search-wrap {
  position: sticky;
  top: 0;
  background: #fff;
  z-index: 1;
  padding-top: .5rem;
}

.lp-phone-code-menu .dropdown-item img {
  width: 20px;
  margin-right: .5rem;
}

.lp-phone-code-menu-code {
  margin-left: auto;
  color: #888;
  font-size: .85em;
}

.lp-phone-code-menu .dropdown-item {
  display: flex;
  align-items: center;
}

/* Phone Country Code Ends */

/* Form Messgae Display CSS START */

.form-success-message {
  text-align: center;
  padding: 40px 25px;
  margin-top: 20px;
  border: 1px solid #dfe5e1;
  border-radius: 12px;
  background: #f8faf9;
}

.form-success-message .success-icon {
  width: 56px;
  height: 56px;
  margin: 0 auto 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #198754;
  color: #fff;
  font-size: 28px;
  font-weight: 600;
}

.form-success-message h3 {
  margin-bottom: 12px;
  font-size: 24px;
}

.form-success-message p {
  max-width: 500px;
  margin: 0 auto;
  line-height: 1.7;
  color: #555;
}

#form-message {
  padding: 20px;
  border-radius: 10px;
  margin-top: 20px;
  font-size: 15px;
  line-height: 1.6;
}

#form-message.success {
  background: #f0f9f4;
  border: 1px solid #b7dfc5;
  color: #176b3a;
}

#form-message.error {
  background: #fff5f5;
  border: 1px solid #f1b8b8;
  color: #a52828;
}

/* Form Messgae Display CSS END */
/* ==========================================================================
   finjuris-home.css
   Page-specific stylesheet for the Home page ONLY.
   Loaded AFTER finjuris-lp.css (shared design system) — reuses existing
   tokens (--ink, --red, --surface, --muted, --border, --nav-h, fonts) and
   shared utility classes (.btn-primary-custom, .reveal, .eyebrow) instead
   of redefining them. Every new class here is prefixed fj-home- so it
   can never collide with the shared stylesheet or other pages.
   ========================================================================== */

/* ==========================================================================
   Hero
   ========================================================================== */
.fj-home-hero {
  position: relative;
  overflow: hidden;
  padding: calc(var(--nav-h) + 0.1rem) 0 4rem;
  text-align: center;
  color: var(--muted);
  background-color: var(--surface-alt);
  /* background-image (photo + light gradient wash for text contrast) is set
     inline on the <section> tag in the HTML — swap the url() there when the
     asset is ready, no CSS edit needed. background-size/position below are
     fallbacks in case the inline style is ever removed. */
  background-size: cover;
  background-position: center;
}

.fj-home-flag-bg {
  width: 100%;
  height: 100%;
  background: url(../assets/images/home/banner-bg.png) left bottom no-repeat;
  background-size: cover;
  position: absolute;
}

.fj-home-hero .container {
  position: relative;
  z-index: 1;
}

/* Faint diamond/argyle grid texture across the hero — two crossing sets of
   diagonal lines, sits above the background photo/gradient but below the
   content. Very light so it reads as texture, not a pattern that competes
   with the heading/body text. Masked so it fades out behind the heading
   and description (roughly the upper-center of the hero) and stays fully
   visible toward the edges and lower down. */

.fj-home-hero-inner {
  max-width: 800px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* Eyebrow-style badge pill, e.g. "Law for What's Next" */
.fj-home-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0.55rem 1.15rem;
  border-radius: 999px;
  background: linear-gradient(135deg, #ffffff 0%, #fdeceb 100%);
  border: 1px solid var(--border);
  box-shadow: 0 2px 12px rgba(11, 15, 20, 0.06);
  font-family: var(--font-body);
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  color: var(--ink);
  margin-bottom: 1.75rem;
}

.fj-home-badge i {
  color: var(--red);
  font-size: 0.95rem;
}

.fj-home-hero h1 {
  font-size: clamp(2.1rem, 4.4vw, 3.4rem);
  line-height: 1.14;
  font-weight: 800;
  color: var(--ink);
  max-width: 34ch;
  margin-bottom: 1.5rem;
}

.fj-home-hero-sub {
  font-family: "Inter", sans-serif !important;
  font-size: clamp(1rem, 1.4vw, 1.15rem);
  color: #434952;
  max-width: 78ch;
  margin: 0 auto 2.5rem;
  font-weight: 400;
}

.fj-home-hero-cta {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem;
}

/* Secondary CTA — transparent/ink outline, fills solid ink on hover.
   Pairs with the shared .btn-primary-custom (solid red gradient) so the
   two hero buttons read as primary vs. secondary, not two competing CTAs. */
.fj-home-btn-secondary {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.92rem;
  color: var(--ink);
  background: #ffffff;
  border: 1px solid #b8bec7;
  border-radius: 6px;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.fj-home-btn-secondary:hover {
  background: var(--ink);
  border-color: var(--ink);
  color: #ffffff;
  transform: translateY(-2px);
}

/* Circular flag row under the hero CTAs */
.fj-home-flags-label {
  margin-top: 2.75rem;
  margin-bottom: 1rem;
  font-family: var(--font-body);
  font-size: 0.80rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-weight: 600;
  color: #000;
}

.fj-home-flags {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.9rem;
}

.fj-home-flag {
  display: block;
  width: 43px;
  height: 43px;
  border-radius: 50%;
  overflow: hidden;
  background: #ffffff;
  border: 1px solid var(--border);
  box-shadow: 0 2px 8px rgba(11, 15, 20, 0.08);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.fj-home-flag img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.fj-home-flag:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 18px rgba(11, 15, 20, 0.16);
}

/* ==========================================================================
   Services marquee — two rows, opposite directions, infinite loop.
   Lives inside the hero, below the flag row, so it's scoped there for
   spacing rather than being its own padded section.
   ========================================================================== */
.fj-home-hero .fj-home-marquee-belt {
  position: relative;
  z-index: 1;
  margin-top: 3.5rem;
  overflow-x: hidden;
}

/* Each row fades out at the left/right edges so cards don't hard-cut.
   overflow-x hides the looping track's horizontal overflow; overflow-y is
   left visible (with a little vertical padding) so card box-shadows and
   the hover lift aren't clipped at the top/bottom edge of the row. */
.fj-home-marquee-row {
  overflow-x: hidden;
  overflow-y: visible;
  padding: 0.6rem 0;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}

.fj-home-marquee-row+.fj-home-marquee-row {
  margin-top: 1.1rem;
}

.fj-home-marquee-track {
  display: flex;
  width: max-content;
  gap: 1rem;
  will-change: transform;
}

.fj-home-marquee-track.fj-home-marquee-left {
  animation: fjHomeMarqueeLeft 38s linear infinite;
}

.fj-home-marquee-track.fj-home-marquee-right {
  animation: fjHomeMarqueeRight 38s linear infinite;
}

/* Pause both rows together when the whole belt is hovered */
.fj-home-marquee-belt:hover .fj-home-marquee-track {
  animation-play-state: paused;
}

@keyframes fjHomeMarqueeLeft {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(-50%);
  }
}

@keyframes fjHomeMarqueeRight {
  from {
    transform: translateX(-50%);
  }

  to {
    transform: translateX(0);
  }
}

.fj-home-service-card {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.9rem;
  width: 168px;
  padding: 1.6rem 1rem;
  background: #ffffff;
  border: 1px solid var(--border);
  border-radius: 16px;
  box-shadow: 0 4px 16px rgba(11, 15, 20, 0.05);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.fj-home-service-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 26px rgba(11, 15, 20, 0.1);
  border-color: rgba(220, 38, 38, 0.35);
}

.fj-home-service-icon {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.35rem;
}

/* Rotate icon-circle tone through the palette instead of one flat color */
.fj-home-service-card:nth-child(3n+1) .fj-home-service-icon {
  background: rgba(220, 38, 38, 0.1);
  color: var(--red);
}

.fj-home-service-card:nth-child(3n+2) .fj-home-service-icon {
  background: rgba(29, 78, 216, 0.1);
  color: var(--blue);
}

.fj-home-service-card:nth-child(3n) .fj-home-service-icon {
  background: rgba(11, 15, 20, 0.06);
  color: var(--ink);
}

.fj-home-service-label {
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.85rem;
  color: var(--ink);
  text-align: center;
  line-height: 1.3;
}

@media (max-width: 767.98px) {
  .fj-home-hero {
    padding: calc(var(--nav-h) + 0rem) 0 2.5rem
  }

  .fj-home-hero h1 {
    max-width: 100%;
  }

  .fj-home-hero .fj-home-marquee-belt {
    margin-top: 2.5rem;
  }

  .fj-home-hero::before {
    background-image:
      repeating-linear-gradient(45deg, rgba(11, 15, 20, 0.04) 0, rgba(11, 15, 20, 0.04) 1px, transparent 1px, transparent 56px),
      repeating-linear-gradient(-45deg, rgba(11, 15, 20, 0.04) 0, rgba(11, 15, 20, 0.04) 1px, transparent 1px, transparent 56px);
    -webkit-mask-image: radial-gradient(ellipse 320px 380px at 50% 30%, transparent 0%, transparent 40%, #000 85%);
    mask-image: radial-gradient(ellipse 320px 380px at 50% 30%, transparent 0%, transparent 40%, #000 85%);
  }

  .fj-home-service-card {
    width: 140px;
    padding: 1.3rem 0.85rem;
  }

  .fj-home-marquee-track.fj-home-marquee-left,
  .fj-home-marquee-track.fj-home-marquee-right {
    animation-duration: 26s;
  }
}

/* ==========================================================================
   Intro statement — dark, two columns. Flat charcoal background (distinct
   from the red-tinted near-black of .fj-home-global) so the two dark
   sections don't blend into each other.
   ========================================================================== */
.fj-home-intro {
  position: relative;
  padding: 4.5rem 0;
  background: var(--surface-alt);
}

.fj-home-intro-inner {
  position: relative;
  z-index: 1;
}

.fj-home-intro-inner {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 2rem;
}

.fj-home-intro-text {
  max-width: 780px;
}

.fj-home-intro-text h2 {
  font-size: clamp(1.9rem, 3.4vw, 2.7rem);
  font-weight: 500;
  line-height: 1.3;
  color: var(--ink);
  margin-bottom: 1.25rem;
}

.fj-home-intro-text h2 .is-muted {
  color: var(--muted);
}

.fj-home-intro-text h2 .is-red-text {
  color: var(--red);
}

.fj-home-hero h1 .is-red-text {
  color: var(--red);
}

.fj-home-intro-text p {
  font-family: var(--font-body);
  font-size: 1rem;
  color: #9aa2ab;
  line-height: 1.6;
  max-width: 60ch;
  margin: 0;
}

.fj-home-intro-tags {
  flex-shrink: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.6rem;
  max-width: 460px;
}

.fj-home-intro-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0.5rem 0.9rem;
  border-radius: 999px;
  border: 1px solid;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.82rem;
  white-space: nowrap;
  cursor: default;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.fj-home-intro-tag:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 18px rgba(11, 15, 20, 0.14);
  color: #ffffff;
}

.fj-home-intro-tag:hover i {
  color: #ffffff;
}

.fj-home-intro-tag.is-orange {
  background: rgba(245, 158, 11, 0.12);
  border-color: rgba(245, 158, 11, 0.4);
  color: #b45309;
}

.fj-home-intro-tag.is-blue {
  background: rgba(59, 130, 246, 0.12);
  border-color: rgba(59, 130, 246, 0.4);
  color: #1d4ed8;
}

.fj-home-intro-tag.is-purple {
  background: rgba(168, 85, 247, 0.12);
  border-color: rgba(168, 85, 247, 0.4);
  color: #7e22ce;
}

.fj-home-intro-tag.is-green {
  background: rgba(34, 197, 94, 0.12);
  border-color: rgba(34, 197, 94, 0.4);
  color: #15803d;
}

.fj-home-intro-tag.is-amber {
  background: rgba(234, 179, 8, 0.12);
  border-color: rgba(234, 179, 8, 0.4);
  color: #a16207;
}

.fj-home-intro-tag.is-cyan {
  background: rgba(6, 182, 212, 0.12);
  border-color: rgba(6, 182, 212, 0.4);
  color: #0e7490;
}

.fj-home-intro-tag.is-red {
  background: rgba(239, 68, 68, 0.12);
  border-color: rgba(239, 68, 68, 0.4);
  color: #b91c1c;
}

.fj-home-intro-tag.is-gray {
  background: rgba(156, 163, 175, 0.12);
  border-color: rgba(156, 163, 175, 0.35);
  color: #4b5563;
}

.fj-home-intro-tag.is-teal {
  background: rgba(20, 184, 166, 0.12);
  border-color: rgba(20, 184, 166, 0.4);
  color: #0f766e;
}

.fj-home-intro-tag.is-pink {
  background: rgba(236, 72, 153, 0.12);
  border-color: rgba(236, 72, 153, 0.4);
  color: #be185d;
}

.fj-home-intro-tag.is-indigo {
  background: rgba(99, 102, 241, 0.12);
  border-color: rgba(99, 102, 241, 0.4);
  color: #4338ca;
}

.fj-home-intro-tag.is-lime {
  background: rgba(132, 204, 22, 0.12);
  border-color: rgba(132, 204, 22, 0.4);
  color: #4d7c0f;
}

/* Hover — solid fill using each tone's own color, white text/icon */
.fj-home-intro-tag.is-orange:hover {
  background: #b45309;
  border-color: #b45309;
  color: #ffffff;
}

.fj-home-intro-tag.is-blue:hover {
  background: #1d4ed8;
  border-color: #1d4ed8;
  color: #ffffff;
}

.fj-home-intro-tag.is-purple:hover {
  background: #7e22ce;
  border-color: #7e22ce;
  color: #ffffff;
}

.fj-home-intro-tag.is-green:hover {
  background: #15803d;
  border-color: #15803d;
  color: #ffffff;
}

.fj-home-intro-tag.is-amber:hover {
  background: #a16207;
  border-color: #a16207;
  color: #ffffff;
}

.fj-home-intro-tag.is-cyan:hover {
  background: #0e7490;
  border-color: #0e7490;
  color: #ffffff;
}

.fj-home-intro-tag.is-red:hover {
  background: #b91c1c;
  border-color: #b91c1c;
  color: #ffffff;
}

.fj-home-intro-tag.is-gray:hover {
  background: #4b5563;
  border-color: #4b5563;
  color: #ffffff;
}

.fj-home-intro-tag.is-teal:hover {
  background: #0f766e;
  border-color: #0f766e;
  color: #ffffff;
}

.fj-home-intro-tag.is-pink:hover {
  background: #be185d;
  border-color: #be185d;
  color: #ffffff;
}

.fj-home-intro-tag.is-indigo:hover {
  background: #4338ca;
  border-color: #4338ca;
  color: #ffffff;
}

.fj-home-intro-tag.is-lime:hover {
  background: #4d7c0f;
  border-color: #4d7c0f;
  color: #ffffff;
}

@media (max-width: 767.98px) {
  .fj-home-intro {
    padding: 3rem 0;
  }

  .fj-home-intro-inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 1.5rem;
  }
}

/* ==========================================================================
   Stats bar — dark, 4 columns with dividers. Warm charcoal vignette
   background (radial glow toward center, darker at the edges) with a
   subtle dot-grid texture.
   ========================================================================== */
.fj-home-stats-bar {
  position: relative;
  overflow: hidden;
  padding: 2.75rem 0;
  background: radial-gradient(1000px 600px at 40% 30%, #a10208 0%, #8b0107 70%);
}

.fj-home-stats-bar::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: radial-gradient(rgba(255, 255, 255, 0.12) 1px, transparent 1px);
  background-size: 16px 16px;
}

.fj-home-stats-bar-row {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

.fj-home-stats-bar-item {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.35rem;
  padding: 0 1.5rem;
  border-right: 1px solid rgba(255, 255, 255, 0.1);
}

.fj-home-stats-bar-item:last-child {
  border-right: none;
}

.fj-home-stats-bar-num {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(1.3rem, 2vw, 1.7rem);
  color: #ffffff;
}

.fj-home-stats-bar-label {
  font-family: var(--font-body);
  font-size: 0.82rem;
  color: rgba(255, 255, 255, 0.85);
  text-align: center;
}

@media (max-width: 767.98px) {
  .fj-home-stats-bar {
    padding: 2rem 0;
  }

  .fj-home-stats-bar-row {
    flex-wrap: wrap;
    row-gap: 1.5rem;
  }

  .fj-home-stats-bar-item {
    flex: 0 0 50%;
    border-right: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    padding-bottom: 1rem;
  }

  .fj-home-stats-bar-item:nth-last-child(-n+2) {
    border-bottom: none;
  }
}

/* ==========================================================================
   About / intro — two columns: text left, video card right
   ========================================================================== */
.fj-home-about {
  padding: 5.5rem 0;
  background: var(--surface);
}

.fj-home-about-text h2 {
  font-size: clamp(1.8rem, 4.2vw, 3.0rem);
  font-weight: 800;
  line-height: 1.2;
  margin-bottom: 1.5rem;
}

.fj-home-about-text .lede {
  margin-bottom: 1.25rem;
  font-weight: 400;
}

.fj-home-about-text p {
  margin-bottom: 1.25rem;
}

.fj-home-about-text p:last-of-type {
  margin-bottom: 1.75rem;
}

.fj-home-about-text strong {
  color: var(--ink);
  font-weight: 700;
}

/* Red arrow text-link — reads as the on-brand accent CTA, distinct from
   the shared .lp-secondary-link (which is blue, used elsewhere on site) */
.fj-home-link-arrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.95rem;
  color: var(--red);
}

.fj-home-link-arrow i {
  transition: transform 0.2s ease;
}

.fj-home-link-arrow:hover {
  color: var(--red-dark);
}

.fj-home-link-arrow:hover i {
  transform: translateX(4px);
}

/* Video card — 16:9-ish frame, poster image + play button until clicked,
   at which point finjuris-home.js swaps in a real <video>. Sized to fill
   its column rather than a fixed max-width, since it now sits beside the
   text instead of spanning full width below it. */
.fj-home-video-frame {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3.6;
  border-radius: 28px;
  overflow: hidden;
  background: var(--surface-alt);
  border: 1px solid var(--border);
  box-shadow: 0 2px 4px rgba(16, 24, 40, 0.06),
    0 16px 32px rgba(16, 24, 40, 0.1),
    0 48px 80px rgba(16, 24, 40, 0.16),
    inset 0 1px 0 rgba(255, 255, 255, 0.6);
}

.fj-home-video-trigger {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
}

.fj-home-video-poster {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.fj-home-video-trigger::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(11, 15, 20, 0.28);
  transition: background 0.2s ease;
}

.fj-home-video-trigger:hover::after {
  background: rgba(11, 15, 20, 0.38);
}

.fj-home-video-play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 76px;
  height: 76px;
  border-radius: 50%;
  background: var(--red);
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.6rem;
  box-shadow: 0 10px 26px rgba(220, 38, 38, 0.4);
  transition: transform 0.2s ease, background 0.2s ease;
  z-index: 1;
}

.fj-home-video-play i {
  /* optical nudge — play glyph reads off-center in a true circle */
  margin-left: 3px;
}

.fj-home-video-trigger:hover .fj-home-video-play {
  transform: translate(-50%, -50%) scale(1.08);
  background: var(--red-dark);
}

.fj-home-video-player {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
}

@media (max-width: 991.98px) {
  .fj-home-about-video {
    margin-top: 3rem;
  }
}

@media (max-width: 767.98px) {
  .fj-home-about {
    padding: 3.5rem 0;
  }

  .fj-home-video-play {
    width: 60px;
    height: 60px;
    font-size: 1.3rem;
  }
}

/* ==========================================================================
   Press / "As Featured In" logo marquee — single row, grayscale text
   logotypes that color in on hover. No real brand logo assets were
   provided, so these are styled text wordmarks as a placeholder — swap in
   official SVG/PNG logos when available (each brand's usage guidelines
   should be checked before publishing real logos).
   ========================================================================== */
.fj-home-press {
  padding: 3.5rem 0;
  background: var(--surface-alt);
  overflow: hidden;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

.fj-home-press-label {
  text-align: center;
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 600;
  color: #000;
  margin-bottom: 2rem;
}

.fj-home-press-row {
  overflow-x: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}

.fj-home-press-track {
  display: flex;
  align-items: center;
  width: max-content;
  gap: 3.5rem;
  animation: fjHomePressLeft 32s linear infinite;
}

.fj-home-press-row:hover .fj-home-press-track {
  animation-play-state: paused;
}

@keyframes fjHomePressLeft {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(-50%);
  }
}

.fj-home-press-logo {
  flex: 0 0 auto;
  display: block;
  width: 164px;
  height: auto;
  object-fit: contain;
  filter: grayscale(1);
  opacity: 0.55;
  transition: filter 0.2s ease, opacity 0.2s ease;
}

.fj-home-press-logo:hover {
  filter: grayscale(0);
  opacity: 1;
}

@media (max-width: 767.98px) {
  .fj-home-press {
    padding: 2.5rem 0;
  }

  .fj-home-press-logo {
    width: 122px;
    height: auto;
  }
}

/* ==========================================================================
   Practice areas / services grid — 6 cards shown, rest revealed on click
   ========================================================================== */
.fj-home-svc {
  padding: 5.5rem 0;
  background-color: var(--surface-alt);
  /* Background photo (optional) is set inline on the <section> tag in the
     HTML — see the comment there. These are just the fallback rules so it
     covers/centers correctly if an image is added. */
  background-size: cover;
  background-position: center;
}

.fj-home-svc-head {
  text-align: center;
  max-width: 660px;
  margin: 0 auto 3.25rem;
}

.fj-home-svc-head .eyebrow {
  justify-content: center;
  margin-bottom: 1rem;
}

.fj-home-svc-head h2 {
  font-size: clamp(1.9rem, 3.2vw, 2.5rem);
  font-weight: 800;
  color: var(--red);
  margin-bottom: 0.9rem;
}

.fj-home-svc-head p {
  font-family: var(--font-body);
  font-size: 1rem;
  max-width: 54ch;
  margin: 0 auto;
}

.fj-home-svc-card {
  position: relative;
  overflow: hidden;
  height: 100%;
  display: flex;
  flex-direction: column;
  border: 1px solid rgba(17, 17, 17, 0.06);
  border-radius: 20px;
  padding: 2rem;
  box-shadow: 0 2px 4px rgba(16, 24, 40, 0.04), 0 12px 24px rgba(16, 24, 40, 0.06);
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.3s ease;
}

.fj-home-svc-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 16px rgba(16, 24, 40, 0.08), 0 28px 48px rgba(16, 24, 40, 0.14);
}

/* Soft light "wave" glow that fades in behind the content on hover */
.fj-home-svc-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: radial-gradient(120% 120% at 15% 115%, rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0) 60%);
  opacity: 0;
  transition: opacity 0.35s ease;
}

.fj-home-svc-card:hover::before {
  opacity: 1;
}

/* Diagonal glare sweep across the card on hover */
.fj-home-svc-card::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 55%;
  height: 100%;
  z-index: 0;
  pointer-events: none;
  background: linear-gradient(115deg, transparent 20%, rgba(255, 255, 255, 0.55) 50%, transparent 80%);
  transform: translateX(-160%) skewX(-15deg);
  transition: transform 0.75s ease;
}

.fj-home-svc-card:hover::after {
  transform: translateX(220%) skewX(-15deg);
}

/* Keep real content above the glare/wave pseudo-elements */
.fj-home-svc-badge,
.fj-home-svc-icon,
.fj-home-svc-title,
.fj-home-svc-desc,
.fj-home-svc-link {
  position: relative;
  z-index: 1;
}

/* "Popular" badge — top-right corner on select cards */
.fj-home-svc-badge {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 0.3rem 0.65rem;
  border-radius: 999px;
  background: linear-gradient(135deg, #fbbf24 0%, #f59e0b 100%);
  color: #ffffff;
  font-family: var(--font-body);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  box-shadow: 0 4px 10px rgba(245, 158, 11, 0.35);
}

.fj-home-svc-badge i {
  font-size: 0.62rem;
}

.fj-home-svc-icon {
  width: 54px;
  height: 54px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  color: #ffffff;
  margin-bottom: 1.5rem;
  box-shadow: 0 8px 16px rgba(11, 15, 20, 0.16);
}

/* Four light gradient card tones, each with a matching saturated-gradient
   icon badge; hover deepens the card gradient a shade for feedback. */
.fj-home-svc-card--red {
  background: linear-gradient(160deg, #fff5f5 0%, #ffe1e4 100%);
}

.fj-home-svc-card--red:hover {
  background: linear-gradient(160deg, #ffe7e8 0%, #ffc9ce 100%);
}

.fj-home-svc-card--red .fj-home-svc-icon {
  background: linear-gradient(135deg, #ff5f5f 0%, #c81e3a 100%);
}

.fj-home-svc-card--blue {
  background: linear-gradient(160deg, #f2f6ff 0%, #dde8ff 100%);
}

.fj-home-svc-card--blue:hover {
  background: linear-gradient(160deg, #e3ebff 0%, #c3d6ff 100%);
}

.fj-home-svc-card--blue .fj-home-svc-icon {
  background: linear-gradient(135deg, #60a5fa 0%, #1d4ed8 100%);
}

.fj-home-svc-card--ink {
  background: linear-gradient(160deg, #f7f8fa 0%, #e7e9ec 100%);
}

.fj-home-svc-card--ink:hover {
  background: linear-gradient(160deg, #ebedf0 0%, #d5d9de 100%);
}

.fj-home-svc-card--ink .fj-home-svc-icon {
  background: linear-gradient(135deg, #4b5563 0%, #0b0f14 100%);
}

.fj-home-svc-card--amber {
  background: linear-gradient(160deg, #fffaf0 0%, #ffedc7 100%);
}

.fj-home-svc-card--amber:hover {
  background: linear-gradient(160deg, #fff2d9 0%, #ffdf9e 100%);
}

.fj-home-svc-card--amber .fj-home-svc-icon {
  background: linear-gradient(135deg, #fbbf24 0%, #b45309 100%);
}

.fj-home-svc-title {
  font-size: 1.12rem;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 0.65rem;
  font-family: "Geist", sans-serif !important;
}

.fj-home-svc-desc {
  font-family: var(--font-body);
  font-size: 0.92rem;
  color: var(--muted);
  line-height: 1.55;
  margin-bottom: 1.5rem;
  flex-grow: 1;
  font-weight: 400;
}

.fj-home-svc-link {
  margin-top: auto;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  /* Fixed to fit "Get Started" + the arrow circle at rest — the label text
     is identical on every card, so this width is safe across all of them.
     Hovering the card animates it out to 100%, which is what actually
     slides the arrow over to the right edge. */
  width: 165px;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.9rem;
  color: var(--red);
  padding: 0.35rem 0.35rem 0.35rem 1rem;
  border-radius: 999px;
  background: transparent;
  box-shadow: none;
  transition: width 0.35s ease, background 0.25s ease, box-shadow 0.25s ease, color 0.25s ease, padding 0.25s ease;
}

/* Arrow sits in a circular badge that darkens on hover */
.fj-home-svc-link-arrow {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: transparent;
  color: inherit;
  transition: background 0.25s ease, box-shadow 0.25s ease, color 0.25s ease;
}

.fj-home-svc-card:hover .fj-home-svc-link {
  width: 100%;
  justify-content: space-between;
  color: var(--ink);
  background: rgba(255, 255, 255, 0.85);
  box-shadow: 0 6px 16px rgba(16, 24, 40, 0.12);
  padding: 0.35rem 0.35rem 0.35rem 1.25rem;
}

.fj-home-svc-card:hover .fj-home-svc-link-arrow {
  background: var(--ink);
  color: #ffffff;
  box-shadow: 0 4px 10px rgba(16, 24, 40, 0.2);
}

/* Extra cards (beyond the first 6) stay hidden until "See All Services"
   is clicked, which adds .is-expanded to the section wrapper */
.fj-home-svc-extra {
  display: none;
}

.fj-home-svc.is-expanded .fj-home-svc-extra {
  display: block;
}

.fj-home-svc-toggle-wrap {
  text-align: center;
  margin-top: 3rem;
}

.fj-home-svc-toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: none;
  border: 0;
  padding: 0;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.95rem;
  color: var(--red);
  cursor: pointer;
}

.fj-home-svc-toggle i {
  transition: transform 0.2s ease;
}

.fj-home-svc-toggle:hover {
  color: var(--red-dark);
}

.fj-home-svc-toggle:hover i {
  transform: translateX(4px);
}

@media (max-width: 767.98px) {
  .fj-home-svc {
    padding: 3.5rem 0;
  }

  .fj-home-svc-card {
    padding: 1.6rem;
  }
}

/* ==========================================================================
   Global Reach — dark section, text+stats left / dotted globe right.
   Background reuses the same radial red-glow + dark navy gradient as the
   shared stylesheet's .journey-dark-section, for consistency with the
   rest of the site's dark sections.
   ========================================================================== */
.fj-home-global {
  position: relative;
  overflow: hidden;
  padding: 6rem 0;
  background: radial-gradient(650px 650px at 8% 45%, rgba(200, 30, 30, 0.4) 0%, transparent 62%),
    radial-gradient(650px 650px at 92% 55%, rgba(200, 30, 30, 0.34) 0%, transparent 62%),
    linear-gradient(180deg, #241010 0%, #3a1414 50%, #241010 100%);
}

/* Subtle film-grain texture over the gradient */
.fj-home-global::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: 0.5;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  background-repeat: repeat;
}

.fj-home-global-inner {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 2rem;
  max-width: 1600px;
  margin: 0 auto;
}

.fj-home-global-text {
  flex: 1 1 0;
  min-width: 0;
  padding: 1rem clamp(2rem, 4vw, 3.5rem) 1rem clamp(2.5rem, 6vw, 5rem);
}

.fj-home-global-text .fj-home-badge {
  margin-bottom: 1rem;
}

.fj-home-global-text h2 {
  font-size: clamp(1.9rem, 3.2vw, 2.5rem);
  font-weight: 800;
  color: #ffffff;
  line-height: 1.2;
  margin-bottom: 1rem;
}

.fj-home-global-text p {
  font-family: var(--font-body);
  font-size: 0.95rem;
  color: #c9d0d9;
  line-height: 1.6;
  margin-bottom: 1.5rem;
  font-weight: 400;
}

.fj-home-global-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.9rem;
  color: #ffffff;
  margin-bottom: 3.5rem;
}

.fj-home-global-link i {
  color: #fff;
  transition: transform 0.2s ease;
}

.fj-home-global-link:hover {
  color: var(--red);
}

.fj-home-global-link:hover i {
  transform: translateX(4px);
}

/* 4 pillar cards inside the left column, below the link */
.fj-home-global-features {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
}

.fj-home-global-feature {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;
  padding: 0.9rem 1rem;
  transition: background 0.3s ease, border-color 0.3s ease, transform 0.25s ease, box-shadow 0.3s ease;
}

.fj-home-global-feature:hover {
  background: rgba(220, 38, 38, 0.1);
  border-color: rgba(220, 38, 38, 0.4);
  transform: translateY(-4px);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.3);
}

/* Diagonal glare sweep on hover */
.fj-home-global-feature::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 55%;
  height: 100%;
  z-index: 0;
  pointer-events: none;
  background: linear-gradient(115deg, transparent 20%, rgba(255, 255, 255, 0.16) 50%, transparent 80%);
  transform: translateX(-160%) skewX(-15deg);
  transition: transform 0.75s ease;
}

.fj-home-global-feature:hover::after {
  transform: translateX(220%) skewX(-15deg);
}

.fj-home-global-feature-head {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 0.4rem;
}

.fj-home-global-feature-icon {
  flex-shrink: 0;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.1);
  color: #ffffff;
  font-size: 0.85rem;
  transition: background 0.3s ease, color 0.3s ease;
}

.fj-home-global-feature:hover .fj-home-global-feature-icon {
  background: var(--red);
  color: #ffffff;
}

.fj-home-global-feature-title {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.85rem;
  color: #ffffff;
  line-height: 1.3;
}

.fj-home-global-feature-desc {
  position: relative;
  z-index: 1;
  font-family: var(--font-body);
  font-size: 0.78rem;
  line-height: 1.45;
  color: rgba(255, 255, 255, 0.65);
  margin: 0;
}

@media (max-width: 480px) {
  .fj-home-global-features {
    grid-template-columns: 1fr;
  }
}

.fj-home-global-stats {
  flex: 1 1 0;
  min-width: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: stretch;
  gap: 1rem;
  padding: 0 clamp(1.5rem, 4vw, 3rem);
}

.fj-home-global-stat-box {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  background: #eceef1;
  border-radius: 18px;
  padding: 1.25rem 1.4rem;
  min-width: 120px;
  flex: 1 1 0;
}

/* Glare sweep on hover — only the photo and solid-color boxes */
.fj-home-global-stat-box.is-photo,
.fj-home-global-stat-box.is-solid {
  position: relative;
  overflow: hidden;
}

.fj-home-global-stat-box.is-photo::after,
.fj-home-global-stat-box.is-solid::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 55%;
  height: 100%;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(115deg, transparent 20%, rgba(255, 255, 255, 0.45) 50%, transparent 80%);
  transform: translateX(-160%) skewX(-15deg);
  transition: transform 0.75s ease;
}

.fj-home-global-stat-box.is-photo:hover::after,
.fj-home-global-stat-box.is-solid:hover::after {
  transform: translateX(220%) skewX(-15deg);
}

.fj-home-global-stat-box.is-photo .fj-home-global-stat-num,
.fj-home-global-stat-box.is-photo .fj-home-global-stat-desc,
.fj-home-global-stat-box.is-solid .fj-home-global-stat-label,
.fj-home-global-stat-box.is-solid .fj-home-global-stat-num,
.fj-home-global-stat-box.is-solid .fj-home-global-stat-desc {
  position: relative;
  z-index: 2;
}

.fj-home-global-stat-box.is-featured {
  position: relative;
  overflow: hidden;
  padding-top: 1.4rem;
}

.fj-home-global-tag-cloud {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  margin: -0.1rem -1.4rem 1.2rem -1.4rem;
  padding: 0 0.6rem;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 14%, #000 86%, transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0%, #000 14%, #000 86%, transparent 100%);
}

.fj-home-global-tag-row {
  overflow: hidden;
}

.fj-home-global-tag-row.is-offset {
  margin-left: 1.6rem;
}

.fj-home-global-tag-track {
  display: flex;
  gap: 0.5rem;
  width: max-content;
  animation: fjHomeTagMarqueeLeft 16s linear infinite;
}

.fj-home-global-tag-row.is-offset .fj-home-global-tag-track {
  animation-name: fjHomeTagMarqueeRight;
  animation-duration: 14s;
}

@keyframes fjHomeTagMarqueeLeft {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(-50%);
  }
}

@keyframes fjHomeTagMarqueeRight {
  from {
    transform: translateX(-50%);
  }

  to {
    transform: translateX(0);
  }
}

.fj-home-global-tag {
  flex: 0 0 auto;
  background: #ffffff;
  border-radius: 999px;
  padding: 0.35rem 0.85rem;
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--ink);
  white-space: nowrap;
  box-shadow: 0 2px 6px rgba(11, 15, 20, 0.08);
}

.fj-home-global-stat-label {
  font-family: var(--font-body);
  font-size: 0.8rem;
  color: var(--muted);
}

.fj-home-global-stat-num {
  font-family: var(--font-display);
  font-size: clamp(1.7rem, 1.9vw, 2.2rem);
  font-weight: 800;
  color: var(--ink);
}

/* Photo variant — image background, white text pinned to the bottom over
   a dark gradient wash for legibility. */
.fj-home-global-stat-box.is-photo {
  justify-content: flex-end;
  min-height: 260px;
  background-color: #1a1c20;
}

.fj-home-global-stat-box.is-photo .fj-home-global-stat-num {
  color: #ffffff;
}

.fj-home-global-stat-desc {
  font-family: var(--font-body);
  font-size: 0.85rem;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.85);
}

/* Solid-color variant — bright flat background, dark ink text spread
   label/number/description top-to-bottom. Spans the full row since it's
   the lone third box on its own grid row. */
.fj-home-global-stat-box.is-solid {
  justify-content: space-between;
  gap: 1.5rem;
  min-height: 200px;
  background: linear-gradient(160deg, #ffd166 0%, #f5a623 100%);
}

.fj-home-global-stat-box.is-solid .fj-home-global-stat-label {
  color: rgba(11, 15, 20, 0.65);
}

.fj-home-global-stat-box.is-solid .fj-home-global-stat-num {
  color: var(--ink);
}

.fj-home-global-stat-box.is-solid .fj-home-global-stat-desc {
  color: rgba(11, 15, 20, 0.75);
}

/* Transparent social-proof box — no background/border, blends into the
   dark section rather than reading as a card. */
.fj-home-global-stat-box.is-transparent {
  background: transparent;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 1.25rem 1rem;
}

.fj-home-global-avatars {
  display: flex;
  justify-content: center;
  margin-bottom: 0.75rem;
}

.fj-home-global-avatar {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid #15191f;
  margin-left: -14px;
}

.fj-home-global-avatar:first-child {
  margin-left: 0;
}

.fj-home-global-social-title {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.95rem;
  color: #ffffff;
  margin-bottom: 0.2rem;
}

.fj-home-global-social-sub {
  font-family: var(--font-body);
  font-size: 0.8rem;
  color: rgba(255, 255, 255, 0.6);
  margin-bottom: 0.6rem;
}

.fj-home-global-social-stars {
  color: #f5a623;
  font-size: 0.85rem;
  letter-spacing: 2px;
}

@media (max-width: 991.98px) {
  .fj-home-global-inner {
    flex-direction: column;
    align-items: stretch;
  }

  .fj-home-global-text {
    width: 100%;
    padding: 0 clamp(1.5rem, 5vw, 3rem);
  }

  .fj-home-global-stats {
    padding: 0 clamp(1.5rem, 5vw, 3rem);
  }
}

@media (max-width: 767.98px) {
  .fj-home-global {
    padding: 3.5rem 0;
  }

  .fj-home-global-stats {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
}

/* ==========================================================================
   Testimonials — one new class needed on top of the shared .testi-*
   system in finjuris-lp.css: the top-right green "Verified" pill.
   ========================================================================== */
.testi-verified-pill {
  position: absolute;
  top: 1.4rem;
  right: 1.4rem;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 0.3rem 0.65rem;
  border-radius: 999px;
  background: rgba(34, 197, 94, 0.15);
  color: #15803d;
  font-family: var(--font-body);
  font-size: 0.72rem;
  font-weight: 700;
}

.testi-verified-pill i {
  font-size: 0.7rem;
}

.testi-avatar {
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.testi-card {
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.testi-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 16px 32px rgba(11, 15, 20, 0.14);
}

/* ==========================================================================
   Regulators We Work With — logo marquee. Same single-row, seamless-loop
   mechanics as .fj-home-press, own classes since it's a distinct section
   with its own content (regulator bodies, not media outlets).
   ========================================================================== */
.fj-home-regulators {
  padding: 1.5rem 0 3.5rem;
  overflow: hidden;
}

.fj-home-regulators-label {
  text-align: center;
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 600;
  color: #000;
  margin-bottom: 2rem;
}

.fj-home-regulators-row {
  overflow-x: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}

.fj-home-regulators-track {
  display: flex;
  align-items: center;
  width: max-content;
  gap: 3.5rem;
  animation: fjHomeRegulatorsLeft 45s linear infinite;
}

.fj-home-regulators-row:hover .fj-home-regulators-track {
  animation-play-state: paused;
}

@keyframes fjHomeRegulatorsLeft {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(-50%);
  }
}

.fj-home-regulators-logo {
  flex: 0 0 auto;
  display: block;
  width: 117px;
  height: auto;
  object-fit: contain;
  filter: grayscale(1);
  opacity: 0.90;
  transition: filter 0.2s ease, opacity 0.2s ease;
}

.fj-home-regulators-logo:hover {
  filter: grayscale(0);
  opacity: 1;
}

@media (max-width: 767.98px) {
  .fj-home-regulators {
    padding: 2.5rem 0;
  }

  .fj-home-regulators-logo {
    width: 100 px;
    height: auto;
  }
}

/* ==========================================================================
   Final CTA — reuses the same red/black gradient + noise as
   .fj-home-global for brand consistency.
   ========================================================================== */
.fj-home-cta {
  position: relative;
  overflow: hidden;
  padding: 5rem 0;
  background: #14171c;
}

.fj-home-cta-inner {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: nowrap;
  gap: 2.5rem;
}

.fj-home-cta-text {
  flex: 1 1 380px;
  max-width: 480px;
}

.fj-home-cta-text .fj-home-badge {
  margin-bottom: 1.25rem;
}

.fj-home-cta-text h2 {
  font-size: clamp(1.9rem, 3.2vw, 2.4rem);
  font-weight: 800;
  color: #ffffff;
  margin-bottom: 0.75rem;
}

.fj-home-cta-text p {
  font-family: var(--font-body);
  font-size: 0.95rem;
  color: #c9d0d9;
  line-height: 1.6;
  margin: 0 0 1.75rem;
}

.fj-home-cta-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.fj-home-cta-btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: linear-gradient(135deg, #ff5f5f 0%, #c81e3a 100%);
  color: #ffffff;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.9rem;
  padding: 0.85rem 1.4rem;
  border-radius: 8px;
  border: 1px solid transparent;
  transition: filter 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.fj-home-cta-btn-primary:hover {
  filter: brightness(0.92);
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(200, 30, 58, 0.4);
  color: #ffffff;
}

.fj-home-cta-btn-secondary {
  display: inline-flex;
  align-items: center;
  background: transparent;
  color: #ffffff;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.9rem;
  padding: 0.85rem 1.4rem;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.35);
  transition: background 0.2s ease, border-color 0.2s ease;
}

.fj-home-cta-btn-secondary:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.6);
  color: #ffffff;
}

/* Image column */
.fj-home-cta-media {
  flex: 1 1 700px;
  max-width: none;
  margin-left: auto;
}

.fj-home-cta-media img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 16px;
}

@media (max-width: 767.98px) {
  .fj-home-cta {
    padding: 3.5rem 0;
  }

  .fj-home-cta-inner {
    flex-direction: column;
    align-items: flex-start;
  }

  .fj-home-cta-media {
    flex: 0 0 auto;
    max-width: 100%;
    margin-left: 0;
    width: 100%;
  }
}

/* ==========================================================================
   Why Founders Choose Finjuris Counsel — numbered credibility list
   (large red numbers, bold lead phrase + supporting sentence per row).
   ========================================================================== */
.fj-home-why-founders {
  padding: 5.5rem 0;
  background: var(--surface);
}

.fj-home-why-founders-head {
  text-align: center;
  max-width: 700px;
  margin: 0 auto 3rem;
}

.fj-home-why-founders-head .eyebrow {
  justify-content: center;
  margin-bottom: 1rem;
}

.fj-home-why-founders-head h2 {
  font-size: clamp(1.9rem, 3.2vw, 2.5rem);
  font-weight: 800;
  margin: 0;
}

.fj-home-why-founders-list {
  max-width: 900px;
  margin: 0 auto;
}

.fj-home-why-founders-item {
  display: flex;
  align-items: flex-start;
  gap: 1.75rem;
  padding: 1.75rem 0;
  border-bottom: 1px solid var(--border);
}

.fj-home-why-founders-item:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.fj-home-why-founders-item:first-child {
  padding-top: 0;
}

.fj-home-why-founders-num {
  flex-shrink: 0;
  width: 76px;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 2.1rem;
  color: var(--red);
}

.fj-home-why-founders-text p {
  margin: 0;
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.65;
  color: var(--muted);
}

.fj-home-why-founders-text strong {
  color: var(--ink);
}

@media (max-width: 767.98px) {
  .fj-home-why-founders {
    padding: 3.5rem 0;
  }

  .fj-home-why-founders-item {
    gap: 1rem;
  }

  .fj-home-why-founders-num {
    width: 50px;
    font-size: 1.6rem;
  }
}

/* ==========================================================================
   Why Clients Choose Us — only the section wrapper/head needs styling;
   the cards themselves reuse .feature-image-card as-is from the shared
   stylesheet, no new card CSS required.
   ========================================================================== */
.fj-home-features {
  padding: 5.5rem 0;
  background: var(--surface);
  border-top: 1px solid var(--border);
}

.fj-home-features-head {
  text-align: center;
  max-width: 620px;
  margin: 0 auto 3rem;
}

.fj-home-features-head .eyebrow {
  justify-content: center;
  margin-bottom: 1rem;
}

.fj-home-features-head h2 {
  font-size: clamp(1.9rem, 3.2vw, 2.5rem);
  font-weight: 800;
  margin-bottom: 0.9rem;
}

.fj-home-features-head p {
  font-family: var(--font-body);
  font-size: 1rem;
  max-width: 54ch;
  margin: 0 auto;
}

@media (max-width: 767.98px) {
  .fj-home-features {
    padding: 3.5rem 0;
  }
}

/* ==========================================================================
   Testimonials — mobile-only swipeable carousel (one card per view,
   scroll-snap) with synced dot indicators. Desktop grid is untouched.
   ========================================================================== */
.fj-home-testi-dots {
  display: none;
}

@media (max-width: 767.98px) {
  #fjHomeTestiRow {
    flex-wrap: nowrap;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 0.25rem;
    /* hide scrollbar */
    scrollbar-width: none;
  }

  #fjHomeTestiRow::-webkit-scrollbar {
    display: none;
  }

  #fjHomeTestiRow>[class*="col-"] {
    flex: 0 0 100%;
    max-width: 100%;
    scroll-snap-align: center;
  }

  .fj-home-testi-dots {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 1.5rem;
  }

  .fj-home-testi-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    border: none;
    padding: 0;
    background: var(--border);
    transition: background 0.2s ease, transform 0.2s ease;
  }

  .fj-home-testi-dot.is-active {
    background: var(--red);
    transform: scale(1.3);
  }
}

/* ==========================================================================
   Guide downloads — red vignette background (sampled from reference:
   #8b0107 edges, #a10208 center), heading positioned on the right, 2
   guide cards below (image left, text right in each).
   ========================================================================== */

/* ==========================================================================
   Who We Work With — 6 client-segment cards, minimalist line-icon style,
   2-column grid with a bottom divider under each card.
   ========================================================================== */
.fj-home-audience {
  padding: 5.5rem 0;
  background: var(--surface-alt);
}

/* Scoped override (not editing the shared .testi-section rule directly,
   since that class is used site-wide) — adds a top divider line only
   where it follows "Who We Work With" on this page. */
.fj-home-audience+.testi-section {
  border-top: 1px solid var(--border);
}

.fj-home-audience-head {
  text-align: center;
  max-width: 640px;
  margin: 0 auto 3.5rem;
}

.fj-home-audience-head .fj-home-badge {
  margin-bottom: 1rem;
}

.fj-home-audience-head h2 {
  font-size: clamp(1.9rem, 3.2vw, 2.5rem);
  font-weight: 800;
  color: var(--red);
  margin-bottom: 0.9rem;
}

.fj-home-audience-head p {
  font-family: var(--font-body);
  font-size: 1rem;
  max-width: 54ch;
  margin: 0 auto;
}

.fj-home-audience .row {
  --bs-gutter-x: 4.5rem;
}

.fj-home-audience-card {
  height: 100%;
  display: flex;
  align-items: flex-start;
  gap: 1.1rem;
  padding-bottom: 1.75rem;
  border-bottom: 1px solid #d8d0bc5e;
}

.fj-home-audience-icon {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 88px;
  height: 88px;
  border-radius: 16px;
  border: 1px solid #d8d0bc5e;
  color: var(--ink);
  font-size: 2.5rem;
}

.fj-home-audience-card h3 {
  font-family: "Inter", sans-serif !important;
  font-weight: 700;
  font-size: 1.2rem;
  color: var(--ink);
  margin-bottom: 0.6rem;
}

.fj-home-audience-card p {
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.6;
  color: var(--muted);
  margin: 0;
  font-weight: 400;
}

@media (max-width: 767.98px) {
  .fj-home-audience {
    padding: 3.5rem 0;
  }
}

.fj-home-guides {
  position: relative;
  overflow: hidden;
  padding: 5.5rem 0;
  background: radial-gradient(1000px 600px at 40% 30%, #a10208 0%, #8b0107 70%);
}

.fj-home-guides-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 2rem;
  margin-bottom: 3.5rem;
}

.fj-home-guides-heading-block {
  margin-left: auto;
  max-width: 620px;
  text-align: left;
}

.fj-home-guides-heading-block h2 {
  font-size: clamp(1.9rem, 3.4vw, 2.6rem);
  font-weight: 800;
  line-height: 1.25;
  color: #ffffff;
  margin-bottom: 1rem;
}

.fj-home-guides-heading-block h2 .is-script {
  font-family: Georgia, "Times New Roman", serif;
  font-style: italic;
  font-weight: 400;
}

.fj-home-guides-heading-block p {
  font-family: var(--font-body);
  font-size: 0.95rem;
  color: rgba(255, 255, 255, 0.8);
  line-height: 1.6;
  margin: 0;
}

.fj-home-guide-card {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: stretch;
  gap: 1.25rem;
  height: 100%;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 16px;
  padding: 1.25rem;
  transition: transform 0.2s ease, background 0.2s ease;
}

.fj-home-guide-card:hover {
  transform: translateY(-4px);
  background: rgba(255, 255, 255, 0.1);
}

.fj-home-guide-card-media {
  flex-shrink: 0;
  width: 220px;
  aspect-ratio: 1 / 1;
  align-self: flex-start;
  border-radius: 10px;
  background-size: cover;
  background-position: center;
  background-color: rgba(255, 255, 255, 0.15);
}

.fj-home-guide-card-text h3 {
  font-family: "Geist", sans-serif !important;
  font-weight: 700;
  font-size: 1.05rem;
  color: #ffffff;
  margin-bottom: 0.5rem;
}

.fj-home-guide-card-text p {
  font-family: var(--font-body);
  font-size: 0.85rem;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.75);
  margin-bottom: 0.85rem;
}

.fj-home-guide-card-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.85rem;
  color: #ffffff;
}

.fj-home-guide-card-link i {
  transition: transform 0.2s ease;
}

.fj-home-guide-card:hover .fj-home-guide-card-link i {
  transform: translateY(2px);
}

@media (max-width: 767.98px) {

  .fj-home-videos-head {
    margin: 0 auto 1.5rem !important;
  }

  .fj-home-guides {
    padding: 3.5rem 0;
  }

  .fj-home-guides-top {
    flex-direction: column;
    gap: 1rem;
    margin-bottom: 2.5rem;
  }

  .fj-home-guides-heading-block {
    margin-left: 0;
    max-width: 100%;
  }

  .fj-home-guide-card {
    flex-direction: column;
  }

  .fj-home-guide-card-media {
    width: 100%;
    aspect-ratio: 1 / 1;
    height: auto;
  }
}

/* ==========================================================================
   Blog — horizontal scroll-snap row (4 cards visible on desktop), with
   dot navigation for the rest. Uses the same scroll-position-sync
   mechanism as the mobile testimonials carousel (generalized in JS).
   ========================================================================== */
.fj-home-blog {
  padding: 5.5rem 0;
  background: var(--surface-alt);
}

.fj-home-blog-head {
  text-align: center;
  max-width: 620px;
  margin: 0 auto 3rem;
}

.fj-home-blog-head .fj-home-badge {
  display: inline-flex;
}

.fj-home-blog-head h2 {
  font-size: clamp(1.9rem, 3.2vw, 2.5rem);
  font-weight: 800;
  margin: 0.25rem 0 0.9rem;
}

.fj-home-blog-head p {
  font-family: var(--font-body);
  font-size: 1rem;
  max-width: 54ch;
  margin: 0 auto;
}

.fj-home-blog-container {
  /* No custom padding needed here anymore — now a regular .container
     (constrained width, centered), so Bootstrap's own default gutter
     padding applies. This class is kept in case section-specific
     spacing is needed later. */
}

.fj-home-blog-row {
  display: flex;
  flex-wrap: nowrap;
  overflow-x: auto;
  gap: 1.25rem;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 0.5rem;
  scrollbar-width: none;
  cursor: grab;
  user-select: none;
}

.fj-home-blog-row.is-dragging {
  scroll-snap-type: none;
  scroll-behavior: auto;
  cursor: grabbing;
}

.fj-home-blog-row::-webkit-scrollbar {
  display: none;
}

.fj-home-blog-card {
  flex: 0 0 calc(25% - 0.94rem);
  scroll-snap-align: start;
  background: #ffffff;
  border: 1px solid var(--border);
  border-radius: 18px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.fj-home-blog-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 10px rgba(11, 15, 20, 0.06);
  color: inherit;
}

.fj-home-blog-card-media {
  position: relative;
  height: 221px;
  background-size: cover;
  background-position: center;
  background-color: var(--surface-alt);
}

.fj-home-blog-card-media::before {
  content: "";
  position: absolute;
  inset: 0;
}



.fj-home-blog-card-pin {
  position: absolute;
  top: 0.9rem;
  right: 0.9rem;
  z-index: 1;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.85);
  color: var(--ink);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.8rem;
  display: none;
}

.fj-home-blog-card-body {
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}

.fj-home-blog-tag {
  align-self: flex-start;
  background: var(--surface-alt);
  color: var(--red);
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.72rem;
  padding: 0.3rem 0.65rem;
  border-radius: 999px;
  margin-bottom: 0.75rem;
}

.fj-home-blog-card-body h3 {
  font-family: "Geist", sans-serif !important;
  font-weight: 700;
  font-size: 1.02rem;
  line-height: 1.35;
  color: var(--ink);
  margin-bottom: 0.6rem;
}

.fj-home-blog-card-body p {
  font-family: var(--font-body);
  font-size: 0.85rem;
  line-height: 1.5;
  color: var(--muted);
  margin-bottom: 1.25rem;
  flex-grow: 1;
  font-weight: 400;
}

.fj-home-blog-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border);
  font-family: var(--font-body);
  font-size: 0.75rem;
  color: var(--muted);
}

.fj-home-blog-card-author,
.fj-home-blog-card-date {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  white-space: nowrap;
}

.fj-home-blog-card-author i {
  font-size: 1.1rem;
  color: #c3c8cf;
}

.fj-home-blog-scroller {
  position: relative;
}

.fj-home-blog-arrow {
  position: absolute;
  top: 42%;
  transform: translateY(-50%);
  z-index: 4;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid var(--border);
  background: #ffffff;
  color: var(--ink);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  box-shadow: 0 8px 20px rgba(11, 15, 20, 0.14);
  transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.fj-home-blog-arrow:hover {
  background: var(--red);
  color: #ffffff;
}

.fj-home-blog-arrow.is-prev {
  left: -56px;
}

.fj-home-blog-arrow.is-next {
  right: -56px;
}

.fj-home-blog-arrow:disabled {
  opacity: 0.35;
  pointer-events: none;
}

@media (max-width: 767.98px) {
  .fj-home-blog-arrow {
    display: none;
  }
}

.fj-home-blog-cta {
  text-align: center;
  margin-top: 2.5rem;
}

@media (max-width: 991.98px) {
  .fj-home-blog-card {
    flex: 0 0 calc(46% - 0.7rem);
  }
}

@media (max-width: 767.98px) {
  .fj-home-blog {
    padding: 3.5rem 0;
  }

  .fj-home-blog-card {
    flex: 0 0 85%;
  }
}

/* ==========================================================================
   Videos — stacked/layered card effect (echoing the fanned-card reference),
   click to open a modal with the YouTube embed.
   ========================================================================== */
.fj-home-videos {
  padding: 5.5rem 0;
  background: var(--surface-alt);
}

.fj-home-videos-head {
  text-align: center;
  max-width: 600px;
  margin: 0 auto 3.5rem;
}

.fj-home-videos-head .fj-home-badge {
  margin-bottom: 1rem;
}

.fj-home-videos-head h2 {
  font-size: clamp(1.9rem, 3.2vw, 2.5rem);
  font-weight: 800;
  margin-bottom: 0.9rem;
}

.fj-home-videos-head p {
  font-family: var(--font-body);
  font-size: 1rem;
  max-width: 52ch;
  margin: 0 auto;
}

.fj-home-videos-scroller {
  position: relative;
}

.fj-home-videos-arrow {
  position: absolute;
  top: 42%;
  transform: translateY(-50%);
  z-index: 4;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid var(--border);
  background: #ffffff;
  color: var(--ink);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  box-shadow: 0 8px 20px rgba(11, 15, 20, 0.14);
  transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.fj-home-videos-arrow:hover {
  background: var(--red);
  color: #ffffff;
}

.fj-home-videos-arrow.is-prev {
  left: -56px;
}

.fj-home-videos-arrow.is-next {
  right: -56px;
}

.fj-home-videos-arrow:disabled {
  opacity: 0.35;
  pointer-events: none;
}

@media (max-width: 767.98px) {
  .fj-home-videos-arrow {
    display: none;
  }
}

.fj-home-videos-row {
  display: flex;
  flex-wrap: nowrap;
  gap: 1.5rem;
  overflow-x: auto;
  overflow-y: visible;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  padding: 1.5rem 0.25rem 2rem;
  scrollbar-width: none;
  cursor: grab;
  user-select: none;
}

.fj-home-videos-row.is-dragging {
  scroll-snap-type: none;
  scroll-behavior: auto;
  cursor: grabbing;
}

.fj-home-videos-row::-webkit-scrollbar {
  display: none;
}

.fj-home-video-card {
  flex: 0 0 calc(33.333% - 1rem);
  scroll-snap-align: start;
  position: relative;
  display: block;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
  text-align: left;
}

.fj-home-videos-cta {
  text-align: center;
  margin-top: 3.5rem;
}

/* Two rotated layers peeking out behind the front card */
.fj-home-video-card-layer {
  position: absolute;
  top: 14px;
  left: 6%;
  right: 6%;
  bottom: -10px;
  border-radius: 18px;
  transition: transform 0.25s ease;
}

.fj-home-video-card-layer.is-back {
  background: linear-gradient(135deg, #bfdbfe 0%, #60a5fa 100%);
  transform: rotate(-6deg);
  z-index: 1;
}

.fj-home-video-card-layer.is-mid {
  background: linear-gradient(135deg, #fecaca 0%, #f87171 100%);
  transform: rotate(4deg);
  z-index: 2;
}

.fj-home-video-card:hover .fj-home-video-card-layer.is-back {
  transform: rotate(-9deg) translateY(-3px);
}

.fj-home-video-card:hover .fj-home-video-card-layer.is-mid {
  transform: rotate(7deg) translateY(-3px);
}

.fj-home-video-card-front {
  position: relative;
  z-index: 3;
  display: block;
  background: #ffffff;
  border-radius: 18px;
  padding: 0.9rem;
  box-shadow: 0 2px 6px rgba(11, 15, 20, 0.06);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.fj-home-video-card:hover .fj-home-video-card-front {
  transform: translateY(-4px);
  box-shadow: 0 4px 10px rgba(11, 15, 20, 0.06);
}

.fj-home-video-thumb {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 12px;
  background-color: var(--surface-alt);
  background-size: cover;
  background-position: center;
  margin-bottom: 0.9rem;
}

.fj-home-video-play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: var(--red);
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.3rem;
  box-shadow: 0 8px 20px rgba(220, 38, 38, 0.4);
  transition: transform 0.2s ease, background 0.2s ease;
}

.fj-home-video-play i {
  margin-left: 3px;
}

.fj-home-video-card:hover .fj-home-video-play {
  transform: translate(-50%, -50%) scale(1.1);
  background: var(--red-dark);
}

.fj-home-video-title {
  display: block;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.95rem;
  color: var(--ink);
  line-height: 1.4;
}

/* Modal */
.fj-home-video-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 2000;
  align-items: center;
  justify-content: center;
  padding: 2rem;
}

.fj-home-video-modal.is-open {
  display: flex;
}

.fj-home-video-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(11, 15, 20, 0.85);
}

.fj-home-video-modal-dialog {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 900px;
}

.fj-home-video-modal-close {
  position: absolute;
  top: -44px;
  right: 0;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 0;
  background: rgba(255, 255, 255, 0.15);
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
}

.fj-home-video-modal-frame {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 12px;
  overflow: hidden;
  background: #000000;
}

.fj-home-video-modal-frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

@media (max-width: 991.98px) {
  .fj-home-video-card {
    flex: 0 0 calc(50% - 0.75rem);
  }
}

@media (max-width: 767.98px) {
  .fj-home-videos {
    padding: 3.5rem 0;
  }

  .fj-home-video-card {
    flex: 0 0 82%;
  }
}

/* ==========================================================================
   Book a consultation — two-panel form card (colored info panel left,
   form right), modeled on the reference's split layout. Panel color
   adapted to brand red gradient instead of the reference's blue.
   ========================================================================== */
.fj-home-consult {
  padding: 5.5rem 0;
  background-color: var(--surface);
  /* Background photo (optional) is set inline on the <section> tag in the
     HTML — see the comment there. These are just the fallback rules so it
     covers/centers correctly if an image is added. */
  background-size: cover;
  background-position: center;
}

.fj-home-consult-card {
  display: flex;
  max-width: 1080px;
  margin: 0 auto;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 24px 56px rgba(11, 15, 20, 0.14);
}

.fj-home-consult-panel {
  flex: 0 0 42%;
  padding: 3rem 2.5rem;
  background: radial-gradient(1000px 600px at 40% 30%, #a10208 0%, #8b0107 70%);
  color: #ffffff;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.fj-home-consult-panel h2 {
  font-size: clamp(1.6rem, 2.6vw, 2rem);
  font-weight: 800;
  color: #ffffff;
  margin-bottom: 0.9rem;
}

.fj-home-consult-panel>p {
  font-family: var(--font-body);
  font-size: 0.95rem;
  color: rgba(255, 255, 255, 0.9);
  line-height: 1.6;
  margin-bottom: 1.5rem;
}

.fj-home-consult-checklist {
  list-style: none;
  padding: 0;
  margin: 0 0 2.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

.fj-home-consult-checklist li {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.88rem;
  color: #ffffff;
}

.fj-home-consult-checklist i {
  color: rgba(255, 255, 255, 0.85);
}

.fj-home-consult-note {
  font-family: var(--font-body);
  font-size: 0.8rem;
  color: rgba(255, 255, 255, 0.7);
  margin: 0;
}

.fj-home-consult-form {
  flex: 1 1 auto;
  background: #ffffff;
  padding: 2.75rem;
}

@media (max-width: 767.98px) {
  .fj-home-consult {
    padding: 3.5rem 0;
  }

  .fj-home-consult-card {
    flex-direction: column;
  }

  .fj-home-consult-panel {
    flex: 0 0 auto;
    padding: 2.25rem;
  }

  .fj-home-consult-form {
    padding: 2rem;
  }
}

/* Remove the small dash before eyebrow text on this page only (override,
   not edited in the shared finjuris-lp.css portion above, so other pages
   using that file keep the dash) */
.eyebrow::before {
  display: none;
}

.contact-icon i {
  width: 40px;
  height: 40px;

  background-color: #fffbd6;
  border-radius: 10px;
  color: #090909;
  text-align: center;
  line-height: 40px;
  font-size: 0.9em;
  display: inline-flex;
  text-align: center;
  justify-content: center;
  align-content: center;
  align-items: center;
  box-shadow: 0 8px 16px rgba(11, 15, 20, 0.16)
}

.contact-icon a {
  margin-bottom: 20px;
  display: block;
  font-size: 1.4em;
  font-weight: 700;
  letter-spacing: 0.5px;
  /* justify-content: center; */
  align-items: center;
  display: flex;
  gap: 10px;
  font-family: "Inter", sans-serif !important;
  color: #fff;
}

.contact-icon a:hover {
  color: #fff;
}

.nice-select {
  box-shadow: none !important;
}

.nice-select::after {
  display: none !important;
}

/*menu start*/

.drop-menu-forex {
  max-height: 370px;
  /* Apni requirement ke hisab se change karein */
  overflow-y: auto;
  overflow-x: hidden;
}

.single-brand2 img {
  width: 100%;
}

.home-contact-info {
  border-bottom: 1px solid #ccc;
  text-align: right;
  padding-top: 4px;
  margin-bottom: 0.5%;
  padding-bottom: 0.5%;
}

.home-contact-info a {
  padding: 0px;
  color: black;
  font-weight: 500;
  margin-left: 1%;
  letter-spacing: 0.5px;
}

.home-contact-info a i {
  margin-right: 5px;
  color: #d8042a;
}

.nav-item a {
  color: #000 !important;
  font-weight: 600;
}


/**start mega menu **/


/* Submenu */
.dropdown-submenu>.dropdown-menu {
  position: absolute !important;
  top: 50px;
  left: 100%;
  width: 300px;
  padding: 5% 0;
  /* animation */
  opacity: 0;
  visibility: hidden;
  display: block !important;
  /* override bootstrap */
  z-index: 99999;
  transition: opacity 0.1s ease-in-out;
}

.dropdown-item-stable .dropdown-menu {

  top: 120px !important;
  left: 92% !important;

}

.dropdown-item-virtual .dropdown-menu {
  top: 190px !important;
  left: 92% !important;
}

.dropdown-item-dao .dropdown-menu {
  top: 210px !important;
  left: 92% !important;
}

.dropdown-item .nav-item a {
  padding-left: 0;
}

.dropdown-submenu>.dropdown-menu {
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.1s ease-in-out;
}

.dropdown-submenu:hover>.dropdown-menu {
  opacity: 1;
  visibility: visible;
  transition: opacity 0.3s ease-in-out;
}

.dropdown-submenu .dropdown-menu a {}


/* Arrow */
.dropdown-submenu>a::after {
  content: "▶";
  float: right;
  font-size: 10px;

  border-top: none !important;
}

/* Mobile */
@media(max-width:991px) {

  .dropdown-submenu .dropdown-menu {
    background-color: #f1f1f1 !important;
    padding: 2%;
    border: none;
  }

  .dropdown-submenu>.dropdown-menu {
    position: static !important;
    transform: translateY(-10px);

  }

  .dropdown-submenu:hover>.dropdown-menu {
    transform: translateY(0);
  }

  .dropdown-submenu>.dropdown-menu {
    opacity: 1 !important;
    visibility: visible !important;
    display: block !important;
    position: static !important;
    transform: none !important;
    margin-left: 9%;
  }

  .dropdown-submenu>a::after {
    content: "▼";
    float: none;
    font-size: 11px;
    margin-top: 6px;
  }



}

.navbar {
  position: sticky;
  top: 0;
  z-index: 999999;
  /* ensures it stays above dropdowns & content */
  background: #fff;
  padding-top: 0;
  padding-bottom: 0;
  box-shadow: 1px 3px 4px 0 #adadad33;

  font-size: 1em;
}

.navbar-light .navbar-brand {
  color: #2196F3;
}

.navbar-light .navbar-nav .nav-link {
  color: #000000;
}

.navbar-light .navbar-brand:focus,
.navbar-light .navbar-brand:hover {
  color: #1ebdc2;
}

.navbar-light .navbar-nav .nav-link:focus,
.navbar-light .navbar-nav .nav-link:hover {
  color: #fff;
}

.navbar-light .navbar-nav .nav-link {
  padding: 10px 15px 15px 15px;
  transition: 0.3s;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.7px;
  font-family: "Roboto", sans-serif !important;

}

.navbar-light .navbar-nav .nav-link:focus,
.navbar-light .navbar-nav .nav-link:hover {

  transition: 0.3s;
  color: #c61000 !important
}

.dropdown-item:focus,
.dropdown-item:hover {
  color: #fff;
  text-decoration: none;
  background-color: #1ebdc2 !important;
}

.sm-menu {
  border-radius: 0px;
  border: 0px;
  top: 97%;
  box-shadow: rgba(173, 173, 173, 0.2) 1px 3px 4px 0px;
}

.dropdown-item {
  color: #3c3c3c;
  font-size: 14px;
}

.dropdown-item.active,
.dropdown-item:active {
  color: #fff;
  text-decoration: none;
  background-color: #2196F3;
}

.navbar-toggler {
  outline: none !important;
}

.navbar-tog {
  color: #1ebdc2;
}

.megamenu-li {
  position: static;
}

.megamenu {
  position: absolute;
  width: 70%;
  left: 10%;
  right: 0;

}

.megamenu h6 {
  margin-left: 21px;
}

.megamenu i {
  width: 20px;
}

.navbar-light .navbar-toggler {
  float: inline-end;
  margin-top: 2%;
  margin-bottom: 8px;
}

.dropdown-menu h6 {
  color: #c61000;
  font-size: 16px;
  margin-bottom: 5px;
}

.dropdown-menu {
  padding-top: 0;
  padding-bottom: 0;
}

.menu-bg {
  padding: 3% 0 0 1.2%;
  width: 30%;
  background-image: linear-gradient(to bottom, #d8042a, #bd0528, #a20725, #870a22, #6d0b1d);
}

.menu-bg a {
  color: #fff !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  font-family: "Montserrat", sans-serif !important;
  text-transform: capitalize;
  margin-bottom: 2%;
}

.nav-item a {
  font-size: 14.0px;
  font-weight: 400;
  color: #0e0e0e;
  font-family: "Roboto", sans-serif;
  letter-spacing: 0.5px;

}

.nav-item a {
  background: url(../img/bahrain-crypto-license/right.png)top left no-repeat !important;
  padding-left: 9.5%;
}

.dropdown-item:focus,
.dropdown-item:hover {
  background-color: transparent !important;
  margin-left: 1%;
  transition: all 0.5s linear;
  color: #596c85;
}


.home-contact-info a {
  padding: 0px;
  color: black;
  font-weight: 500;
  margin-left: 1%;
  letter-spacing: 0.5px;
}

.minimal-nav-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: #dc2626;
  color: #ffffff !important;
  font-size: 0.88rem;
  padding: 0 20px;
  border-radius: 6px;
  transition: background 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
  text-decoration: none;
  height: 40px;
  margin-bottom: 5px;
  text-transform: capitalize;


}

.minimal-nav-btn:hover {
  background-color: #030303;

  transform: translateY(-1px) scale(1.03);
}

.minimal-nav-btn .nav-link a:hover {
  color: #fff !important;
}

.minimal-nav-btn .nav-link {
  padding: 0 !important;
}

.minimal-nav-btn a {
  color: #fff !important;
  background: none !important;
  text-transform: capitalize;
  font-family: "Roboto", sans-serif !important;
  font-weight: 700 !important;
}

/*end menu*/


/* start footer-menu*/

.footer-menu {
  margin-bottom: 4%;
  border-bottom: 1px solid #202d50;
  padding-top: 3%;
  padding-bottom: 3%;
  font-family: "Inter", sans-serif !important;

}

.footer-menu p {
  font-size: 0.85em;
  margin-bottom: 5%;
  color: #fff;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  font-family: "Inter", sans-serif !important;

  font-weight: 700;
  line-height: 19px;
}

.copyright {
  color: #ffffff9d !important;
}

.footer-menu li {
  margin-bottom: 4%;
  line-height: 17px;
}

.footer-menu ul {
  padding: 0;
  margin: 0;
}

.footer-menu a {
  color: #d0d0d0b2;
  letter-spacing: 0.6px;
  display: block;
  font-size: 0.79em;
  font-family: "Inter", sans-serif !important;

}

.footer-menu a:hover {
  color: #8d99af;
  padding-left: 1%;

  transition: all 0.3s linear;
}

/* end footer-menu*/

/*cookies-popup*/
.cookies-popup {
  position: fixed;
  bottom: 5px;
  width: 400px;
  background: rgb(251, 248, 231);
  color: #fff;
  padding: 20px;
  text-align: center;
  z-index: 9999;
  left: 35%;
  border-radius: 20px;
  box-shadow: 0 0 30px #0000009e;
}

.cookies-popup i {
  color: #000;
  font-size: 30px;
  margin-bottom: 10px;
  display: block;
}

.cookies-popup p {
  padding: 0 50px;
}

#accept-btn {
  background: green;
  color: #fff;
  font-weight: 800;
  border: none;
  width: 150px;
  padding: 5px 0;
  border-radius: 5px;
}

#accept-btn:hover,
#decline-btn:hover {
  background-color: #000;
  transition: all 0.3s linear;
  color: #fff;
}

#decline-btn {
  background: var(--red);
  color: #fff;
  font-weight: 800;
  border: none;
  width: 150px;
  padding: 5px 0;
  border-radius: 5px;
}

.cookies-popup img {
  width: 10%;
  margin-bottom: 15px;
}


@media(max-width: 480px) {
  .cookies-popup {

    left: 9%;
    width: 300px;
  }

  #accept-btn {
    margin-bottom: 10px;
  }
}

@media screen and (max-width: 1920px) and (min-width: 1800px) {
  .cookies-popup {
    position: fixed;
    bottom: 0;
    width: 400px;
    background: rgb(251, 248, 231);
    color: #fff;
    padding: 20px;
    text-align: center;
    z-index: 9999;
    left: 42%;
    border-radius: 20px;
  }

  /*cookies-popup*/