/* ==========================================================================
   Focus Singh Media - site.css
   Pure hand-crafted typography, brand tokens, and design studio finish.
   ========================================================================== */

/* 1. Self-hosted Fonts */
@font-face {
  font-family: 'Archivo';
  src: url('fonts/ArchivoX-SB.woff2') format('woff2'),
       url('fonts/ArchivoX-SB.ttf') format('truetype');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Archivo';
  src: url('fonts/ArchivoX-XB.woff2') format('woff2'),
       url('fonts/ArchivoX-XB.ttf') format('truetype');
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Geist';
  src: url('fonts/Geist-R.woff2') format('woff2'),
       url('fonts/Geist-R.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Geist';
  src: url('fonts/Geist-SB.woff2') format('woff2'),
       url('fonts/Geist-SB.ttf') format('truetype');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Geist Mono';
  src: url('fonts/GeistMono-R.woff2') format('woff2'),
       url('fonts/GeistMono-R.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* 2. Map Site Tokens onto Site Kit */
[data-fsk-page] {
  --ink: #0F0F12;
  --paper: #F3F1EC;
  --signal: #FF4A1C;
  --signal-hover: #E53B0F;
  --text-red: #C8341B;
  --ultra: #4B4BFF;
  --muted: #6E6D68;
  --rule: #DAD7CF;
  --surface: #E8E5DD;
  --card-dark: #17171C;

  /* kit mappings */
  --fsk-bg: var(--paper);
  --fsk-surface: var(--surface);
  --fsk-text: var(--ink);
  --fsk-muted: var(--muted);
  --fsk-line: var(--rule);
  --fsk-accent: var(--signal);
  --fsk-on-accent: var(--ink); /* Hard rule: Ink text on Signal buttons */
  --fsk-accent-hover: var(--signal-hover);
  --fsk-link: var(--ink);
  --fsk-focus: var(--ultra); /* Hard rule: Ultramarine only focus rings */
  --fsk-header-bg: var(--paper);
  --fsk-header-text: var(--ink);
  --fsk-bar-bg: var(--ink);
  --fsk-bar-text: var(--paper);
  --fsk-wa: #128C3C;
  --fsk-on-wa: #FFFFFF;
  --fsk-font-body: 'Geist', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --fsk-font-display: 'Archivo', sans-serif;
  --fsk-container: 1200px;
  --fsk-radius: 4px;
}

/* Hard Rule: Signal is NEVER text on light backgrounds */
a, span, p, h1, h2, h3, h4, h5, h6 {
  color: inherit;
}
.fsm-text-signal {
  color: var(--text-red); /* safe readable red on light backgrounds */
}

/* Typography styles */
.fsm-font-mono {
  font-family: 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  letter-spacing: 0.04em;
}
.fsm-font-heading {
  font-family: 'Archivo', sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

/* Full stop dot */
.fsm-dot {
  color: var(--signal);
  display: inline-block;
  font-weight: 900;
}

/* Tap Target Guard (G9: >=44px) */
@media (max-width: 1023.98px) {
  .fsm-hero-switch button {
    min-height: 44px;
    min-width: 44px;
    padding: 8px 12px;
  }
  .fsm-select-tier-btn,
  .fsm-flip-btn {
    min-height: 44px !important;
    min-width: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
  [data-fsm-filter] {
    min-height: 44px !important;
    min-width: 44px !important;
    padding: 10px 16px !important;
  }
  [data-fsm-cat-tab] {
    min-height: 44px !important;
    min-width: 44px !important;
    padding: 10px 18px !important;
  }
  #fsm-step-pages-minus,
  #fsm-step-pages-plus {
    width: 44px !important;
    height: 44px !important;
  }
  .fsk-nav a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    min-width: 44px;
    padding: 10px 14px;
  }
  footer a {
    display: inline-block;
    min-height: 44px;
    line-height: 44px;
    padding-inline: 4px;
  }
  .fsm-card a:not(.fsk-btn) {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }
  .fsm-grid-2 a.fsm-card {
    min-height: 48px;
    padding: 14px 20px;
  }
}

/* Viewfinder Frame corners */
.fsm-frame {
  position: relative;
}
.fsm-frame::before,
.fsm-frame::after {
  content: '';
  position: absolute;
  width: 14px;
  height: 14px;
  pointer-events: none;
  border-color: currentColor;
  border-style: solid;
  z-index: 2;
  transition: transform 0.3s ease;
}
.fsm-frame-tl-br::before {
  top: 8px; left: 8px;
  border-width: 2px 0 0 2px;
}
.fsm-frame-tl-br::after {
  bottom: 8px; right: 8px;
  border-width: 0 2px 2px 0;
}

.fsm-frame-tr-bl::before {
  top: 8px; right: 8px;
  border-width: 2px 2px 0 0;
}
.fsm-frame-tr-bl::after {
  bottom: 8px; left: 8px;
  border-width: 0 0 2px 2px;
}

/* Dark Section / Band */
.fsm-ink-band {
  background: var(--ink);
  color: var(--paper);
}
.fsm-ink-band .fsk-btn--ghost {
  color: var(--paper);
  border-color: var(--paper);
}
.fsm-ink-band .fsk-btn--ghost:hover {
  background: var(--paper);
  color: var(--ink);
}

/* Section Header standard */
.fsm-sec-head {
  margin-bottom: clamp(24px, 4vw, 40px);
  border-bottom: 1px solid var(--rule);
  padding-bottom: 16px;
}
.fsm-sec-head--dark {
  border-bottom-color: rgba(255,255,255,0.15);
}
.fsm-sec-eyebrow {
  font-family: 'Geist Mono', monospace;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--muted);
  display: flex;
  align-items: center;
  gap: 8px;
}
.fsm-ink-band .fsm-sec-eyebrow {
  color: rgba(255,255,255,0.6);
}
.fsm-sec-title {
  font-family: 'Archivo', sans-serif;
  font-size: clamp(28px, 5vw, 44px);
  font-weight: 700;
  text-transform: uppercase;
  margin-top: 6px;
  line-height: 1.1;
}

/* ============ HERO COMPONENT (FIX PASS 3 - Section 1) ============ */
#fsm-hero-a {
  position: relative;
  background: var(--ink);
  overflow: hidden;
  isolation: isolate;
  min-height: calc(100svh - var(--fsk-header-h, 64px) - 56px);
  padding-block: clamp(24px, 3.5vh, 48px);
  display: flex;
  align-items: center;
  box-sizing: border-box;
}

/* Background grid, glow, and corners */
.fsm-hero-grid {
  position: absolute;
  inset: 0;
  z-index: -2;
  background-image: linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
                    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size: 64px 64px;
  -webkit-mask-image: radial-gradient(ellipse 70% 65% at 70% 45%, #000 30%, transparent 75%);
  mask-image: radial-gradient(ellipse 70% 65% at 70% 45%, #000 30%, transparent 75%);
  pointer-events: none;
}
.fsm-hero-glow {
  position: absolute;
  z-index: -1;
  width: 720px;
  height: 720px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,74,28,.18), rgba(255,74,28,0) 65%);
  right: -120px;
  top: -60px;
  animation: fsmGlowDrift 14s ease-in-out infinite alternate;
  pointer-events: none;
}
@keyframes fsmGlowDrift {
  to { transform: translate(-100px, 60px) scale(1.1); }
}

.fsm-corner {
  position: absolute;
  width: 22px;
  height: 22px;
  border-color: rgba(243,241,236,.35);
  z-index: 1;
  pointer-events: none;
}
.fsm-corner-tl {
  top: 24px;
  left: 24px;
  border-top: 2px solid;
  border-left: 2px solid;
}
.fsm-corner-br {
  bottom: 24px;
  right: 24px;
  border-bottom: 2px solid;
  border-right: 2px solid;
}

/* Container & 2-column layout (>= 961px) */
.fsm-hero-container {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 40px;
  align-items: center;
  position: relative;
  width: 100%;
}
.fsm-hero-copy {
  position: relative;
  z-index: 3;
}

/* Live pill in eyebrow */
.fsm-hero-live-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 8px;
  border: 1px solid rgba(255,255,255,.14);
  color: #CFCBC2;
  font-size: 11px;
  letter-spacing: .08em;
  margin-left: 10px;
  vertical-align: middle;
  text-transform: uppercase;
}
.fsm-hero-live-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #25D366;
  box-shadow: 0 0 0 0 rgba(37,211,102,.6);
  animation: fsmLivePing 2s infinite;
}
@keyframes fsmLivePing {
  70% { box-shadow: 0 0 0 6px rgba(37,211,102,0); }
  100% { box-shadow: 0 0 0 0 rgba(37,211,102,0); }
}

/* Headline animated underline */
.fsm-u-reveal {
  position: relative;
  white-space: nowrap;
}
.fsm-u-reveal::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0.02em;
  height: 0.08em;
  background: var(--signal);
  transform-origin: left;
  animation: fsmUnderline 9s cubic-bezier(.2,.7,.2,1) infinite;
}
@keyframes fsmUnderline {
  0%, 6% { transform: scaleX(0); }
  22%, 100% { transform: scaleX(1); }
}

/* Proof items */
.fsm-hero-proof {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  margin-top: 20px;
  font: 500 12px/1.4 var(--mono, monospace);
  color: var(--muted);
  letter-spacing: .04em;
}
.fsm-hero-proof span::before {
  content: "✓ ";
  color: var(--signal);
}

/* Visual Right Column (desktop >= 961px) */
.fsm-hero-vis {
  position: relative;
  height: 520px;
  perspective: 1600px;
}
.fsm-hero-tilt {
  position: absolute;
  inset: 0;
  transform-style: preserve-3d;
  transition: transform 0.15s ease-out;
}
.fsm-hero-float {
  position: absolute;
  inset: 0;
  animation: fsmHeroBob 8s ease-in-out infinite;
  transform-style: preserve-3d;
}
@keyframes fsmHeroBob {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
}

/* Browser Frame */
.fsm-hero-browser {
  position: absolute;
  left: 0;
  top: 36px;
  width: 100%;
  max-width: 620px;
  aspect-ratio: 16 / 10;
  border-radius: 10px;
  background: var(--ink-2, #17171C);
  border: 1px solid rgba(255,255,255,0.08);
  box-shadow: 0 40px 90px -20px rgba(0,0,0,.8), 0 0 0 1px rgba(255,255,255,.07);
  transform: perspective(1400px) rotateY(-14deg) rotateX(4deg);
  transform-origin: 40% 50%;
  overflow: hidden;
}
.fsm-hero-bbar {
  height: 30px;
  display: flex;
  align-items: center;
  gap: 6px;
  padding-inline: 12px;
  background: #222229;
}
.fsm-hero-bbar b {
  width: 9px;
  height: 9px;
  border-radius: 50%;
}
.fsm-hero-bbar b:nth-child(1) { background: #ff5f57; }
.fsm-hero-bbar b:nth-child(2) { background: #febc2e; }
.fsm-hero-bbar b:nth-child(3) { background: #28c840; }
.fsm-hero-bbar em {
  margin-left: 14px;
  font: 500 11px/1 var(--mono, monospace);
  font-style: normal;
  color: #9a98a0;
  background: #15151a;
  padding: 4px 12px;
  border-radius: 20px;
}
.fsm-hero-bscreen {
  position: relative;
  height: calc(100% - 30px);
  overflow: hidden;
  background: #1b1b21;
}
.fsm-hero-bscreen img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top;
  display: block;
}

/* Phone Frame */
.fsm-hero-phone {
  position: absolute;
  right: -6px;
  bottom: 0;
  width: 30%;
  aspect-ratio: 9 / 19;
  border-radius: 22px;
  background: var(--ink, #0F0F12);
  padding: 6px;
  box-shadow: 0 30px 60px -10px rgba(0,0,0,.85), 0 0 0 1px rgba(255,255,255,.1);
  transform: perspective(1400px) rotateY(-8deg) translateZ(40px);
  overflow: hidden;
  z-index: 5;
}
.fsm-hero-pscreen {
  position: relative;
  height: 100%;
  border-radius: 18px;
  overflow: hidden;
  background: #1b1b21;
}
.fsm-hero-pscreen::before {
  content: "";
  position: absolute;
  z-index: 5;
  top: 5px;
  left: 50%;
  width: 34%;
  height: 10px;
  margin-left: -17%;
  border-radius: 10px;
  background: #0b0b0e;
}
.fsm-hero-pscreen img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top;
  display: block;
}

/* Build Reveal Layers */
.fsm-wire {
  position: absolute;
  inset: 0;
  background: #141419;
  animation: fsmWipe 9s cubic-bezier(.65,0,.35,1) infinite;
  z-index: 2;
}
.fsm-hero-pscreen .fsm-wire {
  animation-delay: 0.3s;
}
.fsm-scan {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 2px;
  background: var(--signal);
  box-shadow: 0 0 18px 3px rgba(255,74,28,.7);
  z-index: 4;
  animation: fsmScan 9s cubic-bezier(.65,0,.35,1) infinite;
}
.fsm-hero-pscreen .fsm-scan {
  animation-delay: 0.3s;
}

@keyframes fsmWipe {
  0%, 6% { clip-path: inset(0 0 0 0); }
  32.7%, 66% { clip-path: inset(0 0 0 100%); }
  83.8%, 100% { clip-path: inset(0 0 0 0); }
}

@keyframes fsmScan {
  0%, 6% { left: 0; opacity: 1; }
  32.7% { left: 100%; opacity: 1; }
  33.5%, 65% { left: 100%; opacity: 0; }
  66% { left: 100%; opacity: 1; }
  83.8% { left: 0; opacity: 1; }
  84.5%, 100% { left: 0; opacity: 0; }
}

/* Wireframe Elements */
.fsm-blk {
  position: absolute;
  border: 1.5px dashed #4a4a55;
  border-radius: 3px;
}
.fsm-blk[data-t]::after {
  content: attr(data-t);
  position: absolute;
  left: 5px;
  top: 3px;
  font: 500 9px/1 var(--mono, monospace);
  color: #6E6D68;
  letter-spacing: .08em;
}
.fsm-ln {
  position: absolute;
  height: 5px;
  border-radius: 3px;
  background: #2c2c35;
}

/* Feature Chips */
.fsm-chip {
  position: absolute;
  z-index: 6;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  background: rgba(23, 23, 28, 0.92);
  border: 1px solid rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(8px);
  font: 500 12px/1 var(--mono, monospace);
  color: var(--paper);
  letter-spacing: .03em;
  box-shadow: 0 14px 30px -12px rgba(0, 0, 0, .8);
  opacity: 0;
  animation: fsmChipAnim 9s ease infinite;
}
.fsm-chip i {
  font-style: normal;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--signal);
  color: var(--ink);
  font-size: 10px;
  font-weight: 700;
}
@keyframes fsmChipAnim {
  0%, 28% { opacity: 0; transform: translateY(8px) scale(0.96); }
  34%, 64% { opacity: 1; transform: none; }
  72%, 100% { opacity: 0; transform: translateY(-6px); }
}
.fsm-c1 { left: -20px; top: 110px; animation-delay: .1s; }
.fsm-c2 { left: 34%; top: 4px; animation-delay: .45s; }
.fsm-c3 { right: 24%; bottom: 35px; animation-delay: .8s; }
.fsm-c4 { left: 6%; bottom: 65px; animation-delay: 1.15s; }

/* Responsive: Mobile (<= 960px) */
@media (max-width: 960px) {
  #fsm-hero-a {
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    padding-block: 36px 48px !important;
    overflow: visible;
  }
  .fsm-hero-container {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }
  .fsm-hero-copy {
    order: 1;
  }
  .fsm-hero-vis {
    order: 2;
    height: 480px;
    perspective: 1100px;
    margin-top: 10px;
  }
  .fsm-hero-browser {
    display: none !important;
  }
  .fsm-hero-phone {
    position: relative !important;
    right: auto !important;
    bottom: auto !important;
    left: 50% !important;
    margin-left: -100px !important;
    width: 200px !important;
    max-width: min(62vw, 260px) !important;
    transform: rotateY(-8deg) rotateX(4deg) translateZ(10px) !important;
    z-index: 5 !important;
  }
  .fsm-chip {
    font-size: 11px !important;
    padding: 6px 10px !important;
    z-index: 10 !important;
    animation-name: fsmMobileChipAnim !important;
  }
  .fsm-c1 { left: 0 !important; top: 120px !important; }
  .fsm-c2 { left: auto !important; right: 0 !important; top: 35px !important; }
  .fsm-c3 { left: auto !important; right: 0 !important; bottom: 130px !important; }
  .fsm-c4 { left: 0 !important; bottom: 60px !important; }

  /* Mobile hero: contained overflow and centered visual */
  #fsm-hero-a {
    overflow: hidden !important;
  }

  /* Mobile hero glow: centered directly behind the phone visual, not behind headline */
  .fsm-hero-glow {
    width: 340px !important;
    height: 340px !important;
    left: 50% !important;
    top: auto !important;
    bottom: 125px !important;
    right: auto !important;
    margin-left: -170px !important;
    margin-top: 0 !important;
    opacity: 0.8 !important;
    background: radial-gradient(circle, rgba(255,74,28,.32), rgba(255,74,28,0) 65%) !important;
    animation: fsmMobileGlowDrift 8s ease-in-out infinite alternate !important;
  }
}

@keyframes fsmMobileGlowDrift {
  0% { transform: scale(0.96) translate(-6px, -6px); }
  50% { transform: scale(1.05) translate(6px, 8px); }
  100% { transform: scale(1) translate(0, 0); }
}

@keyframes fsmMobileChipAnim {
  0%, 28% { opacity: 0; transform: translateY(8px) translateZ(60px) scale(0.96); }
  34%, 64% { opacity: 1; transform: translateY(0) translateZ(60px); }
  72%, 100% { opacity: 0; transform: translateY(-6px) translateZ(60px); }
}

@media (prefers-reduced-motion: reduce) {
  .fsm-wire, .fsm-scan { display: none !important; }
  .fsm-chip { opacity: 1 !important; transform: none !important; animation: none !important; }
  .fsm-hero-float, .fsm-hero-glow, .fsm-u-reveal::after, .fsm-hero-live-dot { animation: none !important; }
}

.fsm-hero-h1 {
  font-size: clamp(32px, 3.8vw, 56px);
  font-weight: 800;
  line-height: 1.05;
  text-transform: uppercase;
  letter-spacing: 0.01em;
  margin-bottom: 16px;
}
.fsm-hero-sub {
  font-family: 'Geist Mono', monospace;
  font-size: clamp(14px, 2.2vw, 17px);
  line-height: 1.5;
  max-width: 640px;
  margin-bottom: 28px;
  opacity: 0.9;
}
.fsm-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  margin-bottom: 24px;
}
@media (max-width: 480px) {
  .fsm-hero-actions {
    flex-direction: column;
    align-items: stretch;
  }
}
.fsm-hero-micro {
  font-family: 'Geist Mono', monospace;
  font-size: 13px;
  color: var(--muted);
}
.fsm-ink-band .fsm-hero-micro {
  color: rgba(255,255,255,0.6);
}

/* Hero Switcher toggle pill */
.fsm-hero-switch {
  position: absolute;
  top: 12px;
  right: 16px;
  z-index: 10;
  display: inline-flex;
  align-items: center;
  background: rgba(0,0,0,0.6);
  padding: 4px;
  border-radius: 20px;
  border: 1px solid rgba(255,255,255,0.2);
}
.fsm-hero-switch button {
  background: transparent;
  border: 0;
  color: #fff;
  font-family: 'Geist Mono', monospace;
  font-size: 11px;
  min-height: 44px;
  min-width: 44px;
  padding: 8px 14px;
  border-radius: 14px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s, color 0.2s;
}
.fsm-hero-switch button.is-active {
  background: var(--signal);
  color: var(--ink);
  font-weight: 700;
}

/* Helper for inline card links and action chips to satisfy G9 ≥44px */
.fsm-tap-target,
.fsm-card a:not(.fsk-btn),
.fsm-timeline-card a:not(.fsk-btn),
.fsm-flip-btn {
  min-height: 44px;
  min-width: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding-block: 4px;
}

/* Checkbox tap targets in interactive builder */
input[type="checkbox"][data-fsm-addon-id] {
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  min-height: 44px !important;
  accent-color: var(--signal);
  cursor: pointer;
  margin: 0;
}

/* Hero B Split layout */
.fsm-hero-split-grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: clamp(24px, 5vw, 64px);
  align-items: center;
  width: 100%;
}
@media (max-width: 900px) {
  .fsm-hero-split-grid {
    grid-template-columns: 1fr;
  }
}

/* Phone Mockup Frame */
.fsm-phone-frame {
  width: 100%;
  max-width: 330px;
  margin-inline: auto;
  background: #000;
  border-radius: 40px;
  padding: 12px;
  box-shadow: 0 25px 60px rgba(0,0,0,0.4), inset 0 0 0 2px #333;
  position: relative;
}
.fsm-phone-notch {
  width: 110px;
  height: 20px;
  background: #000;
  position: absolute;
  top: 16px;
  left: 50%;
  transform: translateX(-50%);
  border-radius: 10px;
  z-index: 10;
}
.fsm-phone-screen {
  background: #fff;
  border-radius: 30px;
  overflow: hidden;
  aspect-ratio: 9 / 19.5;
  position: relative;
}
.fsm-phone-screen img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: opacity 0.5s ease;
}

/* Services Marquee */
.fsm-marquee-wrap {
  width: 100%;
  overflow: hidden;
  white-space: nowrap;
  background: var(--ink);
  color: var(--paper);
  padding: 14px 0;
  border-block: 1px solid rgba(255,255,255,0.12);
}
.fsm-marquee {
  display: inline-flex;
  gap: 32px;
  animation: fsm-marquee-scroll 24s linear infinite;
  font-family: 'Geist Mono', monospace;
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
@keyframes fsm-marquee-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* Grid Cards standard */
.fsm-grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(16px, 3vw, 24px);
}
@media (max-width: 1023px) {
  .fsm-grid-3 {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 680px) {
  .fsm-grid-3 {
    grid-template-columns: 1fr;
  }
}
.fsm-grid-2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(16px, 3vw, 24px);
}
@media (max-width: 768px) {
  .fsm-grid-2 {
    grid-template-columns: 1fr;
  }
}

.fsm-card {
  background: #FFFFFF;
  border: 1px solid var(--rule);
  padding: clamp(20px, 3vw, 32px);
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  box-sizing: border-box;
  transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s;
}
.fsm-card > .fsm-card-link,
.fsm-card > .fsk-btn {
  margin-top: auto;
}
.fsm-card:hover {
  transform: translateY(-2px);
  border-color: var(--ink);
  box-shadow: 0 10px 30px rgba(0,0,0,0.06);
}
.fsm-ink-band .fsm-card {
  background: var(--card-dark);
  border-color: rgba(255,255,255,0.12);
  color: var(--paper);
}
.fsm-ink-band .fsm-card:hover {
  border-color: rgba(255,255,255,0.3);
  box-shadow: 0 10px 30px rgba(0,0,0,0.4);
}

/* Highlight badge */
.fsm-badge-signal {
  position: absolute;
  top: 0;
  right: 0;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 32px 32px 0;
  border-color: transparent var(--signal) transparent transparent;
}

/* Before / After Redesign Slider */
.fsm-ba-slider {
  position: relative;
  width: 100%;
  max-width: 860px;
  margin-inline: auto;
  border-radius: 8px;
  overflow: hidden;
  user-select: none;
  touch-action: pan-y;
  background: #000;
  box-shadow: 0 20px 50px rgba(0,0,0,0.15);
  container-type: inline-size;
}
.fsm-ba-img {
  width: 100%;
  display: block;
}
.fsm-ba-after {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  overflow: hidden;
  width: 50%;
  border-right: 2px solid var(--signal);
}
.fsm-ba-after img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100cqw;
  min-width: 100%;
  height: 100%;
  object-fit: cover;
  max-width: none;
}
.fsm-ba-handle {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 44px;
  height: 44px;
  background: var(--signal);
  color: var(--ink);
  border-radius: 50%;
  display: grid;
  place-items: center;
  box-shadow: 0 4px 16px rgba(0,0,0,0.4);
  cursor: ew-resize;
  z-index: 10;
}
.fsm-ba-pill {
  position: absolute;
  bottom: 16px;
  padding: 6px 14px;
  font-family: 'Geist Mono', monospace;
  font-size: 12px;
  text-transform: uppercase;
  background: rgba(15,15,18,0.85);
  color: #fff;
  border-radius: 20px;
  pointer-events: none;
  z-index: 5;
}
.fsm-ba-pill--before { left: 16px; }
.fsm-ba-pill--after { right: 16px; border: 1px solid var(--signal); }

/* Video Filmstrip Frame */
.fsm-film-frame {
  position: relative;
  background: #000;
  border: 1px solid rgba(255,255,255,0.15);
  padding: 12px;
  border-radius: 6px;
}
.fsm-film-sprockets {
  display: flex;
  justify-content: space-between;
  padding-block: 6px;
}
.fsm-film-sprocket {
  width: 12px;
  height: 8px;
  background: rgba(255,255,255,0.2);
  border-radius: 2px;
}
.fsm-film-video {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 4px;
  background: #0F0F12;
}

/* 3D Pricing Paper Flip (Section 6) */
.fsm-flip-card {
  perspective: 1200px;
  cursor: pointer;
  position: relative;
  min-height: 480px;
  outline: none;
}
.fsm-flip-card:hover {
  transform: none !important;
}
.fsm-flip-inner {
  position: relative;
  width: 100%;
  height: 100%;
  transition: transform 600ms cubic-bezier(.2,.7,.2,1);
  transform-style: preserve-3d;
}
.fsm-flip-card.is-flipped .fsm-flip-inner {
  transform: rotateY(180deg);
}
.fsm-flip-front,
.fsm-flip-back {
  position: absolute;
  inset: 0;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  display: flex;
  flex-direction: column;
  transition: box-shadow 600ms cubic-bezier(.2,.7,.2,1);
  box-shadow: 0 4px 16px rgba(0,0,0,0.06);
}
.fsm-flip-front:hover,
.fsm-flip-back:hover {
  transform: none !important;
}
.fsm-flip-card:hover .fsm-flip-front,
.fsm-flip-card:hover .fsm-flip-back {
  box-shadow: 0 16px 36px rgba(0,0,0,0.14);
}
.fsm-flip-back {
  transform: rotateY(180deg);
  background: #FAF9F6;
  border: 1px solid var(--rule);
}
.fsm-flip-card:focus-visible {
  outline: 3px solid var(--ultra);
  outline-offset: 3px;
}

/* Service Tabs (Fix Pass 3 - Section 2) */
.fsm-service-chip-row {
  display: flex;
  gap: 10px;
  margin-bottom: 20px;
  flex-wrap: wrap;
}
.fsm-service-chip-row button,
.fsm-service-chip-row [data-fsm-cat-tab] {
  min-height: 44px;
  padding: 10px 18px;
  font-size: 14px;
  font-weight: 600;
  border-radius: 4px;
  border: 1.5px solid var(--ink);
  background: transparent;
  color: var(--ink);
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}
.fsm-service-chip-row button:hover,
.fsm-service-chip-row [data-fsm-cat-tab]:hover {
  background: rgba(15, 15, 18, 0.05);
}
.fsm-service-chip-row button.is-active,
.fsm-service-chip-row [data-fsm-cat-tab].is-active {
  background: var(--ink) !important;
  color: var(--paper) !important;
  border-color: var(--ink) !important;
}

@media (max-width: 600px) {
  .fsm-service-chip-row {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
    overflow: visible !important;
    white-space: normal !important;
    padding-bottom: 0 !important;
    margin-bottom: 20px !important;
  }
  .fsm-service-chip-row button,
  .fsm-service-chip-row [data-fsm-cat-tab] {
    width: 100% !important;
    min-height: 48px !important;
    white-space: normal !important;
    text-align: center !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 8px 10px !important;
    line-height: 1.25 !important;
    border-radius: 4px !important;
    border: 1.5px solid var(--ink) !important;
    font-size: 13.5px !important;
  }
  .fsm-service-chip-row button.is-active,
  .fsm-service-chip-row [data-fsm-cat-tab].is-active {
    background: var(--ink) !important;
    color: var(--paper) !important;
    border-color: var(--ink) !important;
  }
}

/* Mobile Pricing Tier Segmented Switch (Section 9) */
.fsm-tier-segmented-switch {
  display: none;
  background: var(--surface);
  border: 1px solid var(--rule);
  border-radius: 6px;
  padding: 4px;
  gap: 4px;
  margin-bottom: 20px;
  position: relative;
  z-index: 10;
}
.fsm-tier-segmented-switch button {
  flex: 1 1 auto;
  min-height: 44px;
  border: 0;
  background: transparent;
  font-family: 'Geist Mono', monospace;
  font-size: clamp(10.5px, 2.8vw, 13px);
  font-weight: 600;
  color: var(--muted);
  border-radius: 4px;
  cursor: pointer;
  padding: 6px 6px;
  text-align: center;
  white-space: nowrap;
  text-transform: uppercase;
  transition: background 0.2s, color 0.2s;
  pointer-events: auto;
  user-select: none;
}
.fsm-tier-segmented-switch button.is-active {
  background: var(--ink);
  color: var(--paper);
}

@keyframes fsmCardFadeIn {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 860px) {
  .fsm-tier-segmented-switch {
    display: flex;
  }
  .fsm-flip-card,
  [data-fsm-tier-panel] > .fsm-card {
    display: none;
    min-height: auto !important;
    height: auto !important;
  }
  .fsm-flip-card.is-mobile-active,
  [data-fsm-tier-panel] > .fsm-card.is-mobile-active {
    display: block !important;
    animation: fsmCardFadeIn 200ms cubic-bezier(.2,.7,.2,1) forwards;
  }
  .fsm-flip-inner {
    min-height: 380px;
    height: auto;
  }
  .fsm-flip-front,
  .fsm-flip-back {
    position: relative;
    min-height: 380px;
    height: auto;
  }
  .fsm-flip-back {
    position: absolute;
    inset: 0;
  }
}

/* Comparison tables: hidden on mobile in favor of stacked tier cards */
.fsm-table-mobile-cards {
  display: none;
}
@media (max-width: 860px) {
  .fsk-table-wrap {
    display: none !important;
  }
  .fsm-table-mobile-cards {
    display: grid !important;
    gap: 16px;
    margin-bottom: 28px;
  }
  .fsm-table-card {
    background: #FFFFFF;
    border: 1px solid var(--rule);
    border-radius: 6px;
    padding: 20px;
  }
  .fsm-table-card-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    padding-block: 8px;
    border-bottom: 1px solid rgba(0,0,0,0.06);
    font-size: 13.5px;
  }
  .fsm-table-card-row:last-child {
    border-bottom: none;
  }
}

/* Receipt Line Items */
.fsm-receipt {
  background: #FFFFFF;
  border: 1px dashed var(--rule);
  padding: 24px;
  font-family: 'Geist Mono', monospace;
  font-size: 14px;
}
.fsm-receipt-row {
  display: flex;
  justify-content: space-between;
  padding-block: 8px;
  border-bottom: 1px dotted var(--rule);
}
.fsm-receipt-section-title {
  font-size: 11px;
  text-transform: uppercase;
  color: var(--muted);
  letter-spacing: 0.08em;
  padding-top: 10px;
  padding-bottom: 4px;
  border-top: 1px solid var(--rule);
  margin-top: 8px;
}
.fsm-receipt-total {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-size: 18px;
  font-weight: 700;
  padding-top: 14px;
  font-variant-numeric: tabular-nums;
  border-top: 2px solid var(--ink);
}

/* 4:3 Consistent Work Card Cover (Section 8) */
.fsm-work-cover-4-3 {
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: 4px;
  overflow: hidden;
  position: relative;
  margin-bottom: 16px;
  border: 1px solid var(--rule);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: clamp(14px, 3vw, 24px);
  box-sizing: border-box;
}
.fsm-work-cover__left {
  flex: 1;
  padding-right: 12px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.fsm-work-cover__right {
  flex-shrink: 0;
  width: clamp(100px, 30%, 130px);
  height: clamp(150px, 85%, 200px);
}
.fsm-cover-phone-frame {
  width: 100%;
  height: 100%;
  background: #000;
  border-radius: 16px;
  padding: 3px;
  box-shadow: 0 10px 24px rgba(0,0,0,0.3);
  position: relative;
  overflow: hidden;
  box-sizing: border-box;
}
.fsm-cover-phone-screen {
  width: 100%;
  height: 100%;
  border-radius: 13px;
  overflow: hidden;
  background: #fff;
}
.fsm-cover-phone-screen img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top;
  display: block;
}

/* Ensure even grid on work.html */
.fsm-work-wall {
  align-items: stretch;
}
.fsm-work-wall .fsm-card {
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}
.fsm-work-wall .fsm-card > div:last-child {
  margin-top: auto;
}

/* Build It Live Sticky Section (How It Works) */
.fsm-build-sticky-stage {
  min-height: 280vh;
  position: relative;
}
.fsm-build-sticky-view {
  position: sticky;
  top: calc(var(--fsk-header-h) + 16px);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  align-items: center;
  height: calc(100svh - var(--fsk-header-h) - 32px);
}
@media (max-width: 860px) {
  .fsm-build-sticky-stage {
    min-height: auto !important;
  }
  .fsm-build-sticky-view {
    position: static !important;
    height: auto !important;
    grid-template-columns: 1fr !important;
  }
}

/* Harjot Timeline Single Column Layout (Fix Pass 5 & 6) */
.fsm-timeline-3d-stage {
  min-height: auto;
  position: relative;
}
.fsm-timeline-3d-view {
  position: static;
  height: auto;
  perspective: none;
  padding-block: 24px;
  display: block;
  overflow: visible;
}
.fsm-timeline-progress-track {
  display: none !important;
}
.fsm-timeline-bg-year {
  display: none !important;
}
.fsm-timeline-depth-wrap {
  position: relative;
  width: 100%;
  max-width: 640px;
  margin-inline: auto;
  height: auto;
  display: flex;
  flex-direction: column;
  gap: 20px;
  transform-style: flat;
  z-index: 2;
}
@media (min-width: 861px) {
  .fsm-timeline-depth-wrap::before {
    content: "";
    position: absolute;
    left: -28px;
    top: 0;
    bottom: 0;
    width: 2px;
    background: var(--rule);
    z-index: 1;
  }
}
.fsm-timeline-depth-card {
  position: relative;
  background: #FFFFFF;
  border: 1px solid var(--rule);
  padding: 32px;
  border-radius: 6px;
  box-shadow: 0 15px 40px rgba(0,0,0,0.08);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transform-origin: center top;
  will-change: transform, opacity;
  min-height: auto;
}
@media (min-width: 861px) {
  .fsm-timeline-depth-card::before {
    content: "";
    position: absolute;
    left: -33px;
    top: 36px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--signal);
    z-index: 2;
  }
}

/* Dark section Download CV button fix (Fix Pass 5 §4c - strictly on dark backgrounds) */
.fsm-cta-last [style*="var(--ink)"] .fsk-btn--ghost,
.fsm-cta-last [style*="#0F0F12"] .fsk-btn--ghost {
  color: #FFFFFF !important;
  border: 1.5px solid #FFFFFF !important;
  background: transparent !important;
}
.fsm-cta-last [style*="var(--ink)"] .fsk-btn--ghost:hover,
.fsm-cta-last [style*="#0F0F12"] .fsk-btn--ghost:hover {
  background: #FFFFFF !important;
  color: #0F0F12 !important;
  border-color: #FFFFFF !important;
}

/* Light CTA card Email us button styling */
.fsm-cta-last [style*="var(--paper)"] .fsk-btn--ghost {
  color: var(--ink) !important;
  border: 1.5px solid var(--ink) !important;
  background: transparent !important;
}
.fsm-cta-last [style*="var(--paper)"] .fsk-btn--ghost:hover {
  background: var(--ink) !important;
  color: var(--paper) !important;
  border-color: var(--ink) !important;
}

/* /harjot single big year & connect section (Section 11) */
.fsm-timeline-card-year {
  font-family: 'Geist Mono', monospace;
  font-size: clamp(72px, 12vw, 110px);
  font-weight: 800;
  line-height: 1;
  color: rgba(15, 15, 18, 0.08); /* Ink 8% */
  position: absolute;
  top: 8px;
  right: 16px;
  pointer-events: none;
  user-select: none;
  z-index: 0;
}
.fsm-harjot-connect-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}
@media (max-width: 860px) {
  .fsm-harjot-connect-grid {
    grid-template-columns: 1fr;
  }
}
.fsm-harjot-connect-card {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  padding: 24px !important;
  min-height: 130px !important;
  box-sizing: border-box !important;
  gap: 8px !important;
  color: var(--ink) !important;
  text-decoration: none !important;
  transition: color 0.18s, border-color 0.18s;
}
.fsm-harjot-connect-card:hover {
  color: var(--text-red) !important;
}
.fsm-harjot-connect-card svg {
  width: 24px !important;
  height: 24px !important;
  fill: currentColor !important;
  flex: none;
}

/* Social Icons (Section 5) */
.fsm-social-row {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}
@media (max-width: 860px) {
  .fsm-social-row {
    justify-content: center;
  }
}
.fsm-social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  width: 44px;
  height: 44px;
  padding: 10px;
  border-radius: 4px;
  text-decoration: none;
  transition: color 0.18s, transform 0.18s;
  box-sizing: border-box;
}
.fsm-social-link svg,
.fsm-social-row svg,
.fsm-social-icons-only svg,
footer svg,
[data-fsk-footer] svg {
  width: 20px !important;
  height: 20px !important;
  fill: currentColor !important;
  flex: none;
}
/* On Ink (footer, dark bands): Paper at 80%, hover Signal */
.fsm-ink-band .fsm-social-link,
footer .fsm-social-link,
[data-fsk-footer] .fsm-social-link,
.fsm-social-icons-only .fsm-social-link {
  color: rgba(243, 241, 236, 0.8) !important;
}
.fsm-ink-band .fsm-social-link:hover,
footer .fsm-social-link:hover,
[data-fsk-footer] .fsm-social-link:hover,
.fsm-social-icons-only .fsm-social-link:hover {
  color: var(--signal) !important;
  transform: translateY(-1px);
}
/* On Paper: Ink, hover Text red */
.fsm-social-link:not(.fsm-ink-band *):not(footer *):not([data-fsk-footer] *):not(.fsm-social-icons-only *) {
  color: var(--ink);
}
.fsm-social-link:not(.fsm-ink-band *):not(footer *):not([data-fsk-footer] *):not(.fsm-social-icons-only *):hover {
  color: var(--text-red);
  transform: translateY(-1px);
}
.fsm-social-icons-only {
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: center;
}

/* Contact Page Social Grid */
.fsm-contact-social-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
@media (max-width: 480px) {
  .fsm-contact-social-grid {
    grid-template-columns: 1fr;
  }
}
.fsm-contact-social-item {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  color: var(--ink);
  font-family: 'Geist Mono', monospace;
  font-size: 13.5px;
  text-decoration: none;
  transition: color 0.18s;
}
.fsm-contact-social-item:hover {
  color: var(--text-red);
}
.fsm-contact-social-item svg {
  width: 20px !important;
  height: 20px !important;
  fill: currentColor !important;
  flex: none;
}

/* 4:3 Work Covers (Section 6) */
.fsm-work-cover-4-3 {
  aspect-ratio: 4 / 3;
  width: 100%;
  position: relative;
  overflow: hidden;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  margin-bottom: 16px;
}
.fsm-work-cover-4-3::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 50% 35%, rgba(255, 255, 255, 0.22), transparent 70%);
  pointer-events: none;
  z-index: 1;
}
.fsm-work-phone-mock {
  width: 156px;
  height: 250px;
  border-radius: 18px;
  border: 6px solid #0F0F12;
  background: #0F0F12;
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.35);
  overflow: hidden;
  transform: rotate(-4deg) translateY(32px);
  position: relative;
  flex: none;
  z-index: 2;
}
.fsm-work-phone-mock img {
  width: 100%;
  height: auto;
  display: block;
  transform: translateY(-46px);
}
.fsm-card-link {
  font-family: 'Geist Mono', monospace;
  font-size: 13px;
  font-weight: 600;
  color: var(--ink);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  transition: color 0.2s;
  margin-top: auto;
}
.fsm-card-link:hover {
  color: var(--text-red);
}

/* Spacing and Clearance (Section 4) */
main {
  padding-bottom: 64px;
}
@media (min-width: 861px) {
  main {
    padding-bottom: 96px;
  }
}
main > section:last-child,
main > section:last-of-type,
main > div:last-child,
.fsm-cta-last {
  margin-bottom: 64px !important;
}
@media (min-width: 861px) {
  main > section:last-child,
  main > section:last-of-type,
  main > div:last-child,
  .fsm-cta-last {
    margin-bottom: 96px !important;
  }
}
footer[data-fsk-footer],
footer {
  padding-bottom: 48px;
  padding-block-end: 48px;
}

@media (max-width: 860px) {
  footer[data-fsk-footer],
  footer {
    padding-bottom: calc(var(--fsk-bar-h, 60px) + env(safe-area-inset-bottom, 0px) + 16px) !important;
    padding-block-end: calc(var(--fsk-bar-h, 60px) + env(safe-area-inset-bottom, 0px) + 16px) !important;
  }
}

/* Mobile Menu Scroll Lock */
html.fsk-lock,
body.fsk-lock,
html.fsk-lock body {
  overflow: hidden !important;
  touch-action: none;
}

/* Respect prefers-reduced-motion (Hard requirement) */
@media (prefers-reduced-motion: reduce) {
  .fsm-marquee { animation: none !important; }
  .fsm-cursor-dot { display: none !important; }
  .fsm-build-sticky-stage { min-height: auto !important; }
  .fsm-build-sticky-view { position: static !important; height: auto !important; }
  .fsm-timeline-3d-stage { min-height: auto !important; }
  .fsm-timeline-3d-view { position: static !important; height: auto !important; }
  .fsm-flip-inner { transition: none !important; }
  .fsm-timeline-depth-card { transform: none !important; opacity: 1 !important; }
}

/* Responsive Comparison Tables & Stacked Mobile Cards */
.fsk-table-wrap {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.fsk-table-wrap table {
  width: 100%;
  border-collapse: collapse;
}

@media (max-width: 860px) {
  .fsm-desktop-table {
    display: none !important;
  }
  .fsm-table-mobile-cards {
    display: flex !important;
    flex-direction: column;
    gap: 16px;
    margin-bottom: 24px;
  }
}
@media (min-width: 861px) {
  .fsm-desktop-table {
    display: block !important;
  }
  .fsm-table-mobile-cards {
    display: none !important;
  }
}

.fsm-table-card {
  background: #ffffff;
  border: 1px solid var(--rule);
  padding: 16px;
  border-radius: 4px;
}
.fsm-table-card-head {
  border-bottom: 1px solid var(--rule);
  padding-bottom: 10px;
  margin-bottom: 10px;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
}
.fsm-table-card-tier {
  font-family: 'Archivo Expanded', sans-serif;
  font-weight: 700;
  font-size: 15px;
  color: var(--ink);
}
.fsm-table-card-price {
  font-family: 'Geist Mono', monospace;
  font-weight: 600;
  font-size: 14px;
  color: var(--text-red);
}
.fsm-table-card-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 6px 0;
  border-bottom: 1px solid rgba(0,0,0,0.04);
  font-size: 13px;
  line-height: 1.4;
}
.fsm-table-card-row:last-child {
  border-bottom: none;
}
.fsm-table-card-feature {
  color: var(--muted);
  flex: 1;
  padding-right: 12px;
}
.fsm-table-card-val {
  color: var(--ink);
  font-weight: 500;
  text-align: right;
}

/* Contact Page Social 2-Column Grid */
.fsm-contact-social-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
@media (max-width: 480px) {
  .fsm-contact-social-grid {
    grid-template-columns: 1fr;
  }
}
.fsm-contact-social-item {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  color: var(--ink);
  text-decoration: none;
  font-size: 13.5px;
}
.fsm-contact-social-item svg {
  width: 20px;
  height: 20px;
  min-width: 20px;
  min-height: 20px;
  flex: none;
  fill: currentColor !important;
}
.fsm-contact-social-item:hover {
  color: var(--text-red);
}


/* Footer Logo (Fix Pass 3 - Section 3) */
.fsm-footer-logo-link {
  display: inline-block;
  margin-bottom: 20px;
}
.fsm-footer-logo {
  display: block;
  width: 240px;
  height: auto;
  max-width: 100%;
}
@media (max-width: 600px) {
  .fsm-footer-logo {
    width: 190px;
  }
}

/* ============ FIX PASS 4 ADDITIONS ============ */
/* Clickable full-card wrapper */
.fsm-card-link-wrap {
  text-decoration: none !important;
  color: inherit !important;
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.fsm-card-link-wrap:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 36px -12px rgba(0, 0, 0, 0.15);
  border-color: var(--signal);
}
.fsm-card-link-wrap:hover .fsm-card-link {
  color: var(--signal);
}

/* Bhaskar Pant Section Readability (Fix Pass 4 - Section 1) */
.fsm-bhaskar-section,
.fsm-bhaskar-section h2,
.fsm-bhaskar-section p {
  opacity: 1 !important;
  transform: none !important;
}
.fsm-bhaskar-section h2 {
  color: #0F0F12 !important;
}
.fsm-bhaskar-section p {
  color: #3A3935 !important;
}

/* Mobile Hero Corners & Eyebrow (Fix Pass 4 - Section 2) */
@media (max-width: 960px) {
  .fsm-corner,
  .fsm-corner-tl,
  .fsm-corner-br {
    display: none !important;
  }
  .fsm-hero-copy .fsm-sec-eyebrow {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 8px !important;
  }
  .fsm-hero-live-pill {
    margin-left: 0 !important;
  }
}
