
:root {
  --fm-navy: #14202e;
  --fm-blue: #1d2e42;
  --fm-gold: #d6a84f;
  --fm-gold-dark: #b8892c;
  --fm-cream: #f7f3ed;
  --fm-ink: #243141;
  --fm-muted: #5d6875;
  --fm-line: rgba(20, 32, 46, .12);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: "Open Sans", Arial, sans-serif;
  color: var(--fm-ink);
  background: #fff;
  text-rendering: optimizeLegibility;
}
a { color: var(--fm-blue); }
a:hover { color: var(--fm-gold-dark); }
.fm-topbar { background: var(--fm-navy); color: #fff; font-size: .92rem; }
.fm-topbar a { color: #fff; text-decoration: none; }
.fm-topbar .fm-hours { white-space: nowrap; display: inline-flex; gap: .45rem; align-items: center; }
.fm-topbar .fm-dot { width: 5px; height: 5px; border-radius: 50%; background: var(--fm-gold); display: inline-block; }
.navbar { background: var(--fm-blue); box-shadow: 0 12px 24px rgba(0,0,0,.12); }
.navbar-brand img { width: 58px; height: auto; }
.nav-link, .dropdown-item { font-weight: 600; letter-spacing: .01em; }
.navbar-dark .navbar-nav .nav-link { color: rgba(255,255,255,.9); }
.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link.active { color: var(--fm-gold); }
.dropdown-menu { background: var(--fm-navy); border: 1px solid rgba(255,255,255,.12); border-radius: 0; padding: .6rem; box-shadow: 0 16px 40px rgba(0,0,0,.25); }
.dropdown-item { color: #fff; padding: .65rem .85rem; }
.dropdown-item:hover, .dropdown-item:focus, .dropdown-item.active { background: rgba(214,168,79,.16); color: #fff; }
.navbar-toggler { background: #f0c35c; border: 2px solid #fff; border-radius: 3px; padding: .45rem .6rem; box-shadow: 0 0 0 2px rgba(0,0,0,.15); }
.navbar-toggler:focus { box-shadow: 0 0 0 .2rem rgba(214,168,79,.45); }
.navbar-toggler-icon { filter: brightness(0) saturate(100%); }
.btn-fm, .btn-fm:visited { background: var(--fm-gold); color: #111; border: 0; border-radius: 0; font-weight: 700; padding: .82rem 1.2rem; text-decoration: none; display: inline-block; }
.btn-fm:hover { background: #e6bd67; color: #111; }
.btn-fm-outline, .btn-fm-outline:visited { border: 1px solid rgba(255,255,255,.75); color: #fff; background: transparent; border-radius: 0; font-weight: 700; padding: .76rem 1.15rem; text-decoration: none; display: inline-block; }
.btn-fm-outline:hover { border-color: var(--fm-gold); color: var(--fm-gold); }
.fm-section { padding: clamp(3.25rem, 7vw, 6.25rem) 0; }
.fm-section-tight { padding: clamp(2.25rem, 5vw, 4rem) 0; }
.fm-eyebrow { text-transform: uppercase; letter-spacing: .14em; color: var(--fm-gold-dark); font-weight: 800; font-size: .79rem; margin-bottom: .75rem; }
h1, h2, h3, h4 { color: var(--fm-navy); }
h1, h2 { font-family: "Cormorant", Georgia, serif; }
h1 { font-size: clamp(2.65rem, 6.5vw, 5.9rem); line-height: .95; letter-spacing: .005em; }
h2 { font-size: clamp(2.15rem, 4.5vw, 3.9rem); line-height: 1; }
h3 { font-size: clamp(1.2rem, 2vw, 1.55rem); }
p, li { line-height: 1.72; }
.lead { font-size: clamp(1.1rem, 2vw, 1.34rem); line-height: 1.68; }
.fm-hero { min-height: 735px; display: flex; align-items: center; color: #fff; background: linear-gradient(90deg, rgba(20,32,46,.96), rgba(20,32,46,.82), rgba(20,32,46,.52)), url('../img/london-skyline-night-shutterstock_2148132111_qeyikq.avif') center / cover no-repeat; position: relative; }
.fm-hero h1, .fm-hero h2, .fm-hero h3 { color: #fff; }
.fm-hero .lead { color: rgba(255,255,255,.94); max-width: 900px; }
.fm-hero-panel { max-width: 1030px; }
.fm-trust-strip { background: #fff; margin-top: -54px; position: relative; z-index: 3; box-shadow: 0 22px 55px rgba(0,0,0,.13); }
.fm-stat { padding: 1.35rem 1.1rem; border-right: 1px solid var(--fm-line); height: 100%; }
.fm-stat strong { display: block; color: var(--fm-navy); font-size: 1.05rem; }
.fm-stat span { display: block; color: var(--fm-muted); font-size: .94rem; margin-top: .2rem; }
.fm-card { background: #fff; border: 1px solid var(--fm-line); box-shadow: 0 14px 40px rgba(20,32,46,.08); height: 100%; padding: clamp(1.35rem, 3vw, 2rem); }
.fm-card:hover { transform: translateY(-3px); transition: transform .18s ease; }
.fm-card h3 a, .fm-card h3 a:hover { color: var(--fm-navy); text-decoration: none; }
.fm-cream { background: var(--fm-cream); }
.fm-dark { background: var(--fm-navy); color: #fff; }
.fm-dark h1, .fm-dark h2, .fm-dark h3, .fm-dark h4 { color: #fff; }
.fm-dark p, .fm-dark li { color: rgba(255,255,255,.88); }
.fm-comparison { border: 1px solid var(--fm-line); overflow: hidden; background: #fff; box-shadow: 0 18px 45px rgba(20,32,46,.09); }
.fm-comparison .row { margin: 0; }
.fm-comparison .col-md-6 { padding: 0; }
.fm-compare-head { padding: 1.4rem 1.6rem; font-weight: 800; background: var(--fm-blue); color: #fff; }
.fm-compare-head.alt { background: var(--fm-gold); color: #111; }
.fm-compare-list { list-style: none; margin: 0; padding: 0; }
.fm-compare-list li { padding: 1rem 1.4rem 1rem 2.4rem; border-top: 1px solid var(--fm-line); position: relative; min-height: 58px; }
.fm-compare-list li:before { content: ''; position: absolute; left: 1.15rem; top: 1.7rem; width: 8px; height: 8px; border-radius: 50%; background: var(--fm-gold); }
.fm-process { counter-reset: process; }
.fm-process .fm-step { position: relative; padding-left: 4rem; }
.fm-process .fm-step:before { counter-increment: process; content: counter(process); position: absolute; left: 0; top: .1rem; width: 2.8rem; height: 2.8rem; display: grid; place-items: center; background: var(--fm-gold); color: #111; font-weight: 800; }
.fm-list-clean { list-style: none; padding-left: 0; margin-bottom: 0; }
.fm-list-clean li { padding-left: 1.65rem; position: relative; margin-bottom: .65rem; }
.fm-list-clean li:before { content: ''; position: absolute; left: 0; top: .75rem; width: 9px; height: 9px; background: var(--fm-gold); }
.fm-service-hero { background: linear-gradient(90deg, rgba(20,32,46,.96), rgba(20,32,46,.76)), url('../img/rpya-court-london.jpg') center / cover no-repeat; color: #fff; padding: clamp(4rem, 9vw, 7rem) 0; }
.fm-service-hero h1, .fm-service-hero p { color: #fff; }
.fm-page-hero { background: linear-gradient(90deg, rgba(20,32,46,.96), rgba(20,32,46,.72)), url('../img/Close-up-photograph-of-judge-gavel-next-to-legal-books-and-scales-of-justice-on-a-wooden-desk.webp') center / cover no-repeat; color: #fff; padding: clamp(4rem, 9vw, 7rem) 0; }
.fm-page-hero h1, .fm-page-hero p { color: #fff; }
.fm-cta-panel { background: var(--fm-blue); color: #fff; padding: clamp(2rem, 5vw, 3.25rem); }
.fm-cta-panel h2, .fm-cta-panel p { color: #fff; }
.fm-footer { background: var(--fm-navy); color: #fff; }
.fm-footer a { color: #fff; text-decoration: none; }
.fm-footer a:hover { color: var(--fm-gold); }
.fm-footer h3 { color: #fff; font-family: "Open Sans", Arial, sans-serif; font-size: 1.05rem; font-weight: 800; margin-bottom: 1rem; }
.fm-footer p, .fm-footer li { color: rgba(255,255,255,.86); font-size: .95rem; }
.fm-footer ul { list-style: none; padding-left: 0; margin: 0; }
.fm-footer li { margin-bottom: .38rem; }
.fm-footer-addresses p { margin-bottom: .8rem; line-height: 1.58; }
.fm-footer-addresses p:last-child { margin-bottom: 0; }
.fm-footer-addresses strong { display: block; color: var(--fm-gold); font-size: .86rem; letter-spacing: .08em; text-transform: uppercase; margin-bottom: .08rem; }

.fm-small { font-size: .92rem; color: var(--fm-muted); }
.fm-disclaimer { font-size: .92rem; color: rgba(255,255,255,.78); }
.fm-resource-card { display: block; height: 100%; text-decoration: none; color: inherit; }
.fm-resource-card:hover h3 { color: var(--fm-gold-dark); }
.fm-mobile-cta { display: none; }
@media (min-width: 992px) { .dropdown:hover > .dropdown-menu { display: block; } }
@media (max-width: 991.98px) {
  body { padding-bottom: 72px; }
  .fm-topbar { display: none; }
  .navbar .btn-fm { width: 100%; text-align: center; margin: .75rem 0 1rem; }
  .navbar-collapse { padding: .8rem 0 1rem; }
  .dropdown-menu { border: 0; box-shadow: none; margin: .25rem 0 .75rem; }
  .fm-hero { min-height: auto; padding: 4.25rem 0 5.25rem; background-position: center; }
  .fm-trust-strip { margin-top: 0; box-shadow: none; border-bottom: 1px solid var(--fm-line); }
  .fm-stat { border-right: 0; border-bottom: 1px solid var(--fm-line); }
  .fm-section { padding: 3rem 0; }
  .fm-mobile-cta { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1040; display: grid; grid-template-columns: 1fr; background: var(--fm-gold); color: #111; text-align: center; font-weight: 800; padding: .95rem 1rem; text-decoration: none; box-shadow: 0 -8px 28px rgba(0,0,0,.22); }
  .fm-mobile-cta:hover { color: #111; background: #e6bd67; }
}
@media (max-width: 575.98px) {
  h1 { font-size: clamp(2.35rem, 13vw, 3.6rem); }
  .lead { font-size: 1.05rem; }
  .fm-card, .fm-cta-panel { padding: 1.35rem; }
  .fm-hero .d-flex { align-items: stretch !important; }
  .fm-hero .btn-fm, .fm-hero .btn-fm-outline { width: 100%; text-align: center; }
}


/* Conversion and lead-generation upgrade */
.fm-brand-text { color:#fff; font-weight:800; letter-spacing:.01em; font-size:1.05rem; }
.nav-cta { white-space: nowrap; }
.fm-hero-conversion .lead { max-width: 760px; }
.fm-hero-subline { font-size: clamp(1.2rem, 2.4vw, 1.65rem); color: #fff; font-weight: 800; margin: 1rem 0 0; }
.fm-hero-reassurance { display:flex; flex-wrap:wrap; gap:.65rem; }
.fm-hero-reassurance span, .fm-meter-badge, .fm-card-label { background: rgba(214,168,79,.16); border: 1px solid rgba(214,168,79,.45); color: #fff; padding: .55rem .75rem; font-weight: 800; font-size: .92rem; }
.fm-meter-badge { display: table; color: var(--fm-navy); background: #fff; border-color: var(--fm-gold); box-shadow: 0 12px 30px rgba(20,32,46,.08); }
.fm-priority-card { border-top: 6px solid var(--fm-gold); }
.fm-card-label { display:inline-block; color: var(--fm-navy); background: #fff8e8; margin-bottom: .85rem; }
.fm-icon-card .fm-icon-mark { width: 48px; height: 48px; display:grid; place-items:center; background: var(--fm-gold); color:#111; font-weight:900; margin-bottom: 1rem; }
.fm-comparison-strong { border: 0; box-shadow: 0 24px 60px rgba(20,32,46,.15); }
.fm-cross-list li:before { content: 'x'; background: transparent; width:auto; height:auto; border-radius:0; top: .95rem; left: 1.05rem; font-weight:900; color:#9b2c2c; font-size: 1.25rem; }
.fm-tick-list li:before { content: '✓'; background: transparent; width:auto; height:auto; border-radius:0; top: 1rem; left: 1.05rem; font-weight:900; color: #0b6b3a; font-size: 1.05rem; }
.fm-table-wrap { overflow-x:auto; box-shadow: 0 14px 40px rgba(20,32,46,.08); }
.fm-table { width:100%; border-collapse: collapse; background:#fff; }
.fm-table th { background: var(--fm-blue); color:#fff; padding: 1rem; font-size: 1.02rem; }
.fm-table td { border: 1px solid var(--fm-line); padding: 1rem; vertical-align: top; line-height: 1.62; }
.fm-intake-form { background:#fff; border: 1px solid var(--fm-line); box-shadow: 0 18px 45px rgba(20,32,46,.09); padding: clamp(1.25rem,3vw,2rem); }
.fm-intake-form label { display:block; font-weight:800; color: var(--fm-navy); margin-bottom:.35rem; }
.fm-intake-form input, .fm-intake-form select, .fm-intake-form textarea { width:100%; border:1px solid rgba(20,32,46,.25); padding:.85rem .9rem; font: inherit; background:#fff; color: var(--fm-ink); }
.fm-intake-form input:focus, .fm-intake-form select:focus, .fm-intake-form textarea:focus { outline: 3px solid rgba(214,168,79,.35); border-color: var(--fm-gold-dark); }
.fm-check { display:flex !important; gap:.65rem; align-items:flex-start; font-weight:600 !important; }
.fm-check input { width:auto; margin-top:.25rem; }
.fm-guide-meta { color: rgba(255,255,255,.88); font-weight: 700; }
.fm-article h2 { margin-top: 2.25rem; }
.fm-sticky-card { position: sticky; top: 110px; }
.fm-mobile-cta { display:none !important; }
.fm-mobile-cta-bar { display:none; }
@media (max-width: 991.98px) {
  body { padding-bottom: 74px; }
  .fm-brand-text { display:none; }
  .fm-mobile-cta-bar { position: fixed; left:0; right:0; bottom:0; z-index:1040; display:grid; grid-template-columns:1fr 1fr; background: var(--fm-navy); box-shadow:0 -8px 28px rgba(0,0,0,.24); }
  .fm-mobile-cta-bar a, .fm-mobile-cta-bar span { color:#111; background: var(--fm-gold); text-align:center; font-weight:900; text-decoration:none; padding:.95rem .5rem; border-right:1px solid rgba(20,32,46,.25); display:flex; align-items:center; justify-content:center; line-height:1.2; }
  .fm-mobile-cta-bar a:last-child, .fm-mobile-cta-bar span:last-child { border-right:0; background:#fff; color:var(--fm-navy); }
  .fm-hero-reassurance span { flex: 1 1 100%; text-align:center; }
  .fm-sticky-card { position: static; }
}
@media (max-width: 575.98px) {
  .fm-table th, .fm-table td { min-width: 220px; }
  .fm-meter-badge { display:block; text-align:center; }
}


/* Final polish pass: responsive headings, mobile safe area, accessibility and cleaner menus */
.fm-service-hero h1,
.fm-page-hero h1 {
  max-width: 1050px;
  font-size: clamp(2.35rem, 5vw, 4.65rem);
  line-height: 1.03;
}
.fm-service-hero .lead,
.fm-page-hero .lead {
  max-width: 920px;
}
a:focus-visible,
button:focus-visible,
.btn-fm:focus-visible,
.btn-fm-outline:focus-visible,
.dropdown-item:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid var(--fm-gold);
  outline-offset: 3px;
}
.fm-intake-note {
  margin-top: 1rem;
  padding: 1rem;
  background: #fff8e8;
  border-left: 5px solid var(--fm-gold);
  color: var(--fm-ink);
}
.fm-mini-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}
.fm-mini-step {
  background: #fff;
  border: 1px solid var(--fm-line);
  box-shadow: 0 14px 35px rgba(20,32,46,.07);
  padding: 1.1rem;
}
.fm-mini-step strong {
  display:block;
  color: var(--fm-navy);
  margin-bottom: .35rem;
  font-weight: 900;
}
.fm-category-label {
  display:inline-block;
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  color: var(--fm-gold-dark);
  margin-bottom:.55rem;
}
.fm-blog-category-heading {
  margin-top: 2rem;
  padding-top: 1rem;
  border-top: 1px solid var(--fm-line);
}
@media (max-width: 991.98px) {
  body { padding-bottom: calc(74px + env(safe-area-inset-bottom)); }
  .fm-mobile-cta-bar { padding-bottom: env(safe-area-inset-bottom); }
  .dropdown-item { padding: .82rem 1rem; }
  .navbar-nav .dropdown { border-top: 1px solid rgba(255,255,255,.12); }
  .fm-mini-steps { grid-template-columns: 1fr; }
}
@media (max-width: 575.98px) {
  .fm-service-hero h1,
  .fm-page-hero h1 {
    font-size: clamp(2.05rem, 10vw, 3.15rem);
    line-height: 1.06;
  }
  .fm-service-hero,
  .fm-page-hero {
    padding-top: 3.75rem;
    padding-bottom: 4.1rem;
  }
  .fm-service-hero .d-flex,
  .fm-page-hero .d-flex {
    align-items: stretch !important;
  }
  .fm-service-hero .btn-fm,
  .fm-service-hero .btn-fm-outline,
  .fm-page-hero .btn-fm,
  .fm-page-hero .btn-fm-outline {
    width: 100%;
    text-align: center;
  }
}

/* WhatsApp urgent helpline link */
.fm-topbar .fm-whatsapp-urgent { color: #fff; font-weight: 700; }
.fm-topbar .fm-whatsapp-urgent:hover { color: var(--fm-gold); }
