/* ==========================================================================
   FIRST BASE — Premium design layer
   Loaded LAST on every public page (partials/head-end.php).
   Same black / gold / white identity, refined for a more premium,
   distinctive and conversion-focused look. Safe to remove to roll back.
   ========================================================================== */

:root{
  --gold:#c9a24a;
  --gold-dark:#a8842f;
  --gold-light:#e8cf8a;
  --gold-soft:#f6efdd;
  --ink:#0a0a0a;
  --ink-2:#141414;
  --ink-3:#1c1a16;
  --muted:#5b5b5b;
  --line:#ece6da;
  --cream:#faf7f1;
  --grad-gold:linear-gradient(135deg,#e8cf8a 0%,#c9a24a 45%,#a8842f 100%);
  --shadow-sm:0 2px 10px rgba(10,10,10,.06);
  --shadow-md:0 18px 40px -18px rgba(10,10,10,.25);
  --shadow-lg:0 40px 80px -30px rgba(10,10,10,.35);
  --ease:cubic-bezier(.2,.8,.2,1);
  --header-h:88px;
}

/* ---------- Base polish ---------- */
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{ -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; text-rendering:optimizeLegibility; }
h1,h2,h3{ text-wrap:balance; }
p{ text-wrap:pretty; }
::selection{ background:var(--gold); color:var(--ink); }
[id]{ scroll-margin-top:110px; }
a, button{ -webkit-tap-highlight-color:transparent; }
:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; border-radius:6px; }
img{ height:auto; }
/* Scroll-lock for the mobile menu. Lock the <html> element only — putting
   overflow:hidden on <body> turns it into its own scroll container, which
   breaks the sticky header and makes it (and the menu) jump to the page top. */
html.menu-open{ overflow:hidden; }

.text-gold{
  background:var(--grad-gold);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:var(--gold);
}

.skip-link{
  position:absolute; left:12px; top:-60px; z-index:10000;
  background:var(--gold); color:var(--ink); font-weight:700;
  padding:10px 16px; border-radius:8px; text-decoration:none;
  transition:top .2s ease;
}
.skip-link:focus{ top:12px; }

/* ---------- Eyebrow ---------- */
.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  background:rgba(201,162,74,.08);
  border:1px solid rgba(201,162,74,.35);
  color:var(--gold-dark);
  padding:8px 16px; border-radius:999px;
  font-size:12px; font-weight:700; letter-spacing:1.4px; text-transform:uppercase;
  margin-bottom:18px;
}
.hero .eyebrow, .calc-page-banner .eyebrow, .commitment .eyebrow, .testimonials .eyebrow,
.jurisdictions .eyebrow, .bento-dark .eyebrow, .cta-band .eyebrow, .svc-calc-intro .eyebrow, .legal-banner .eyebrow{
  background:rgba(255,255,255,.05); color:var(--gold); border-color:rgba(201,162,74,.4);
}
.eyebrow::before{
  content:""; width:6px; height:6px; border-radius:50%; background:var(--gold); flex-shrink:0;
}
.eyebrow-dot::before{ box-shadow:0 0 0 0 rgba(201,162,74,.7); animation:fbPulse 2.2s infinite; }
@keyframes fbPulse{ 0%{box-shadow:0 0 0 0 rgba(201,162,74,.6)} 70%{box-shadow:0 0 0 9px rgba(201,162,74,0)} 100%{box-shadow:0 0 0 0 rgba(201,162,74,0)} }

/* ---------- Buttons ---------- */
.btn-gold, .btn-ghost-light, .btn-dark-custom, .btn-book, .ss-cta{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-weight:600 !important; letter-spacing:.1px; text-decoration:none;
  border-radius:999px; line-height:1.2;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s ease, color .25s ease, border-color .25s ease;
}
.btn-gold{
  background:var(--grad-gold); color:var(--ink) !important;
  padding:12px 22px; font-size:15px; border:0;
  box-shadow:0 10px 24px -10px rgba(201,162,74,.7), inset 0 1px 0 rgba(255,255,255,.35);
}
.btn-gold:hover{ transform:translateY(-2px); box-shadow:0 16px 30px -12px rgba(201,162,74,.8), inset 0 1px 0 rgba(255,255,255,.4); color:var(--ink); }
.btn-ghost-light{
  background:rgba(255,255,255,.04); color:#fff !important;
  border:1px solid rgba(255,255,255,.28); padding:12px 22px; font-size:15px;
  backdrop-filter:blur(6px);
}
.btn-ghost-light:hover{ border-color:var(--gold); color:var(--gold) !important; background:rgba(201,162,74,.08); }
.btn-lg-pill{ padding:16px 28px; font-size:16px; }
.btn-dark-custom{ font-size:16px !important; padding:14px 26px !important; }
.btn-dark-custom:hover{ transform:translateY(-2px); box-shadow:0 14px 28px -14px rgba(10,10,10,.5); }
.btn-gold span, .btn-dark-custom span, .ss-cta span{ transition:transform .25s var(--ease); }
.btn-gold:hover span, .btn-dark-custom:hover span, .ss-cta:hover span{ transform:translateX(4px); }

/* ---------- Top bar ---------- */
.topbar{
  background:#050505; color:rgba(255,255,255,.62);
  font-size:12.5px; border-bottom:1px solid rgba(255,255,255,.06);
  position:relative; z-index:101;
}
.topbar .container-1440{ min-height:38px; }
.topbar-left, .topbar-right{ display:flex; align-items:center; gap:22px; }
.topbar-left span{ display:inline-flex; align-items:center; gap:7px; }
.topbar svg{ color:var(--gold); }
.topbar a{ color:rgba(255,255,255,.7); text-decoration:none; transition:color .2s; }
.topbar a:hover{ color:var(--gold); }
.topbar-sep{ width:1px; height:14px; background:rgba(255,255,255,.15); }

/* ---------- Header ---------- */
header.site-header{
  background:rgba(0,0,0,.92);
  -webkit-backdrop-filter:saturate(160%) blur(14px); backdrop-filter:saturate(160%) blur(14px);
  border-bottom:1px solid rgba(255,255,255,.08);
  transition:background .3s ease, box-shadow .3s ease, border-color .3s ease;
}
header.site-header.is-scrolled{
  background:rgba(8,8,8,.86);
  box-shadow:0 12px 30px -12px rgba(0,0,0,.6);
  border-bottom-color:rgba(201,162,74,.22);
}
header.site-header .logo img{ height:clamp(40px, 4.4vw, 54px); width:auto; }
header.site-header nav a{
  position:relative; font-size:15px; margin:0 14px; opacity:.88; padding:6px 0;
  transition:color .2s ease, opacity .2s ease;
}
header.site-header nav a::after{
  content:""; position:absolute; left:0; right:0; bottom:-2px; height:2px; border-radius:2px;
  background:var(--grad-gold); transform:scaleX(0); transform-origin:left; transition:transform .3s var(--ease);
}
header.site-header nav a:hover::after, header.site-header nav a.active::after{ transform:scaleX(1); }
.header-right-group{ gap:22px !important; }
.header-call{ display:flex; align-items:center; gap:10px; text-decoration:none; color:#fff; margin-right:8px; }
.header-call .icon-circle{ width:38px; height:38px; border-color:rgba(201,162,74,.45); color:var(--gold); transition:background .2s, color .2s; }
.header-call:hover .icon-circle{ background:var(--gold); color:var(--ink); }
.header-call-text{ display:flex; flex-direction:column; font-size:14px; font-weight:600; line-height:1.2; white-space:nowrap; }
.header-call-text small{ font-size:11px; font-weight:500; color:rgba(255,255,255,.55); letter-spacing:.3px; }
.header-cta{ padding:11px 20px; font-size:14px; white-space:nowrap; }
@media (max-width:1280px){
  header.site-header nav a{ margin:0 9px; font-size:14.5px; }
  .header-call-text{ display:none; }
}
@media (max-width:1100px) and (min-width:992px){ .header-cta{ display:none !important; } }

/* Mobile menu */
@media (max-width:991px){
  .mobile-nav{
    /* Anchored to the bottom of the sticky header, so it always opens right
       under it wherever the page is scrolled. */
    position:absolute; left:0; right:0; top:100%; z-index:99;
    max-height:calc(100vh - var(--mnav-top, 89px)) !important;
    max-height:calc(100dvh - var(--mnav-top, 89px)) !important;
    background:rgba(5,5,5,.98); padding:14px 24px 32px; overflow-y:auto;
    overscroll-behavior:contain; -webkit-overflow-scrolling:touch;
    border-top:1px solid rgba(201,162,74,.18);
    transform:translateY(-8px); opacity:0; pointer-events:none; display:flex !important;
    transition:opacity .25s ease, transform .25s var(--ease);
  }
  .mobile-nav.open{ opacity:1; transform:none; pointer-events:auto; min-height:calc(100dvh - var(--mnav-top, 89px)); }
  /* Floating buttons shouldn't sit on top of the open menu */
  html.menu-open .wa-float, html.menu-open .to-top{ opacity:0 !important; pointer-events:none !important; }
  .mobile-nav a{ font-size:18px; padding:16px 0; }
  .mobile-nav a.active{ color:var(--gold); }
  .mobile-nav .mobile-nav-cta{ margin-top:22px; border-bottom:0 !important; padding:16px 22px !important; font-size:16px; color:var(--ink) !important; }
  header.site-header .icon-circle{ width:38px; height:38px; border-color:rgba(201,162,74,.45); color:var(--gold); }
}

/* ---------- Floating WhatsApp + back to top ---------- */
.wa-float{
  position:fixed; left:20px; bottom:22px; z-index:990;
  display:flex; align-items:center; gap:10px;
  background:#25D366; color:#fff; text-decoration:none;
  height:54px; min-width:54px; padding:0 17px; border-radius:999px;
  box-shadow:0 12px 30px -8px rgba(37,211,102,.6);
  font-weight:600; font-size:14.5px;
  transition:transform .25s var(--ease), box-shadow .25s ease;
}
.wa-float svg{ width:22px; height:22px; flex-shrink:0; }
.wa-float:hover{ color:#fff; transform:translateY(-3px); box-shadow:0 18px 36px -10px rgba(37,211,102,.7); }
.wa-float::before{
  content:""; position:absolute; inset:0; border-radius:inherit; border:2px solid #25D366;
  animation:fbRing 2.6s ease-out infinite; pointer-events:none;
}
@keyframes fbRing{ 0%{opacity:.7; transform:scale(1)} 100%{opacity:0; transform:scale(1.35)} }
@media (max-width:767px){ .wa-float-label{ display:none; } .wa-float{ padding:0; justify-content:center; left:16px; bottom:16px; } }
.to-top{
  position:fixed; right:22px; bottom:100px; z-index:980;
  width:44px; height:44px; border-radius:50%;
  border:1px solid rgba(201,162,74,.5); background:rgba(10,10,10,.85); color:var(--gold);
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  opacity:0; transform:translateY(12px); pointer-events:none;
  transition:opacity .3s ease, transform .3s var(--ease), background .2s;
}
.to-top.show{ opacity:1; transform:none; pointer-events:auto; }
.to-top:hover{ background:var(--gold); color:var(--ink); }

/* ---------- HERO v2 ---------- */
.hero-v2{ padding:150px 0 0; min-height:min(92vh, 900px); display:flex; flex-direction:column; justify-content:center; }
.hero-v2::before{
  background:
    radial-gradient(60% 70% at 85% 30%, rgba(201,162,74,.16), transparent 60%),
    linear-gradient(100deg, rgba(0,0,0,.94) 0%, rgba(0,0,0,.84) 42%, rgba(6,10,20,.55) 72%, rgba(6,10,20,.35) 100%) !important;
}
.hero-v2::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:180px; z-index:1;
  background:linear-gradient(180deg, transparent, rgba(0,0,0,.65));
}
.hero-grid-lines{
  position:absolute; inset:0; z-index:1; pointer-events:none; opacity:.5;
  background-image:linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
  background-size:72px 72px;
  -webkit-mask-image:radial-gradient(ellipse 60% 70% at 30% 40%, #000 20%, transparent 75%);
          mask-image:radial-gradient(ellipse 60% 70% at 30% 40%, #000 20%, transparent 75%);
}
.hero-v2 .hero-content{ padding-top:10px; padding-bottom:10px; }
.hero-v2 h1{
  font-size:clamp(34px, 4.6vw, 62px); line-height:1.06; letter-spacing:-1.8px; font-weight:700;
  margin-bottom:22px; max-width:760px;
}
.hero-v2 .hero-desc{ font-size:clamp(16px,1.3vw,18.5px); color:rgba(255,255,255,.74); max-width:620px; margin-bottom:32px; }
.hero-actions{ display:flex; flex-wrap:wrap; gap:14px; margin-bottom:30px; }
.hero-trust{ list-style:none; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:10px 26px; }
.hero-trust li{ display:flex; align-items:center; gap:9px; color:rgba(255,255,255,.82); font-size:14.5px; font-weight:500; }
.hero-trust svg{ width:18px; height:18px; padding:3px; border-radius:50%; background:rgba(201,162,74,.18); color:var(--gold); flex-shrink:0; }

.hero-card{
  position:relative; margin-left:auto; max-width:470px;
  background:linear-gradient(160deg, rgba(255,255,255,.10), rgba(255,255,255,.03));
  border:1px solid rgba(255,255,255,.14);
  -webkit-backdrop-filter:blur(18px); backdrop-filter:blur(18px);
  border-radius:22px; padding:26px; color:#fff;
  box-shadow:0 40px 80px -30px rgba(0,0,0,.8);
}
.hero-card::before{
  content:""; position:absolute; inset:-1px; border-radius:inherit; padding:1px; pointer-events:none;
  background:linear-gradient(140deg, rgba(232,207,138,.7), transparent 40%, transparent 60%, rgba(201,162,74,.4));
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude;
}
.hero-card-head{ display:flex; justify-content:space-between; align-items:center; margin-bottom:16px; }
.hero-card-kicker{ font-size:17px; font-weight:700; letter-spacing:-.2px; }
.hero-card-badge{ font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:1px; color:var(--ink); background:var(--grad-gold); padding:5px 10px; border-radius:999px; }
.hero-option{
  display:flex; align-items:center; gap:14px; text-decoration:none; color:#fff;
  padding:15px 14px; border-radius:14px; margin-bottom:10px;
  background:rgba(0,0,0,.28); border:1px solid rgba(255,255,255,.08);
  transition:background .25s ease, border-color .25s ease, transform .25s var(--ease);
}
.hero-option:hover{ background:rgba(201,162,74,.12); border-color:rgba(201,162,74,.5); transform:translateX(4px); color:#fff; }
.ho-icon{ width:42px; height:42px; border-radius:12px; flex-shrink:0; display:flex; align-items:center; justify-content:center; color:var(--gold); background:rgba(201,162,74,.12); border:1px solid rgba(201,162,74,.3); }
.ho-text{ display:flex; flex-direction:column; flex:1; min-width:0; }
.ho-text strong{ font-size:15.5px; font-weight:600; }
.ho-text small{ font-size:12.5px; color:rgba(255,255,255,.6); line-height:1.4; margin-top:2px; }
.ho-arrow{ color:var(--gold); font-size:18px; transition:transform .25s var(--ease); }
.hero-option:hover .ho-arrow{ transform:translateX(4px); }
.hero-card-foot{
  display:flex; align-items:center; gap:10px; margin-top:16px; padding-top:16px;
  border-top:1px dashed rgba(255,255,255,.14); color:rgba(255,255,255,.72); font-size:13.5px; text-decoration:none;
}
.hero-card-foot strong{ color:#fff; }
.hero-card-foot:hover strong{ color:var(--gold); }
.pulse-dot{ width:8px; height:8px; border-radius:50%; background:#25D366; box-shadow:0 0 0 0 rgba(37,211,102,.6); animation:fbPulseG 2s infinite; flex-shrink:0; }
@keyframes fbPulseG{ 0%{box-shadow:0 0 0 0 rgba(37,211,102,.55)} 70%{box-shadow:0 0 0 8px rgba(37,211,102,0)} 100%{box-shadow:0 0 0 0 rgba(37,211,102,0)} }

.hero-stats{
  position:relative; z-index:2; display:grid; grid-template-columns:repeat(4,1fr);
  margin-top:64px; border-top:1px solid rgba(255,255,255,.12);
}
.hs-item{ padding:26px 18px 34px 0; display:flex; flex-direction:column; gap:4px; }
.hs-item + .hs-item{ padding-left:26px; border-left:1px solid rgba(255,255,255,.08); }
.hs-item strong{ font-size:clamp(26px,2.6vw,38px); font-weight:700; letter-spacing:-1px; color:#fff; line-height:1.1; }
.hs-item strong span{ color:inherit; }
.hs-item > span{ font-size:13.5px; color:rgba(255,255,255,.6); }
@media (max-width:991px){
  .hero-v2{ padding-top:120px; min-height:auto; }
  .hero-stats{ grid-template-columns:repeat(2,1fr); margin-top:40px; }
  .hs-item{ padding:20px 12px 22px 0 !important; border-left:0 !important; }
  .hs-item:nth-child(even){ padding-left:18px !important; border-left:1px solid rgba(255,255,255,.08) !important; }
  .hs-item:nth-child(n+3){ border-top:1px solid rgba(255,255,255,.08); }
}
@media (max-width:767px){
  .hero, .calc-page-banner{ background-image:url(/assets/image/fbmc-banner-mobile.webp) !important; }
  /*.hero-v2 h1{ letter-spacing:-1px; }*/
  .hero-actions .btn-lg-pill{ width:100%; }
  .hero-trust{ flex-direction:column; }
}

/* ---------- Marquee ---------- */
.brand-marquee{ background:var(--grad-gold); overflow:hidden; padding:15px 0; position:relative; z-index:3; }
.brand-marquee-track{ display:flex; align-items:center; gap:26px; width:max-content; animation:fbMarquee 38s linear infinite; }
.brand-marquee span{ font-size:15px; font-weight:700; color:var(--ink); text-transform:uppercase; letter-spacing:1.2px; white-space:nowrap; }
.brand-marquee i{ font-style:normal; color:rgba(10,10,10,.55); font-size:13px; }
@keyframes fbMarquee{ from{transform:translateX(0)} to{transform:translateX(-50%)} }
@media (prefers-reduced-motion:reduce){ .brand-marquee-track, .eyebrow-dot::before, .wa-float::before, .pulse-dot{ animation:none !important; } }

/* ---------- Section heading rhythm ---------- */
.ss-head h2, .process-head h2, .faq-head h2, .testi-head h2, .jur-head h2, .sg-head h2,
.commitment h2, .calc-text h2, .about-mv-head h2, .about-intro-text h2{
  letter-spacing:-1px !important; font-weight:700 !important;
}
.ss-head h2, .process-head h2, .faq-head h2, .testi-head h2, .jur-head h2{ font-size:clamp(28px,3.2vw,44px) !important; line-height:1.12 !important; }

/* ---------- Welcome bento ---------- */
.welcome-bento{ padding:110px 0 100px; }
.bento-panel{ border-radius:26px; }
.bento-dark{ background:radial-gradient(120% 90% at 100% 0%, #1d1810 0%, #0a0a0a 55%); border:1px solid rgba(201,162,74,.14); }
.bento-dark h2{ font-size:clamp(26px,2.5vw,36px) !important; margin-top:6px !important; }
.bento-accent{ background:var(--grad-gold); position:relative; }
.bento-accent::after{
  content:""; position:absolute; right:-40px; bottom:-40px; width:200px; height:200px; border-radius:50%;
  border:28px solid rgba(255,255,255,.14);
}
.bento-stat{ font-size:clamp(56px,6vw,84px) !important; }
.bento-link{ margin-top:22px; font-weight:700; color:var(--ink); text-decoration:none; display:inline-flex; gap:8px; position:relative; z-index:1; border-bottom:1.5px solid rgba(10,10,10,.35); padding-bottom:2px; }
.bento-link:hover{ color:var(--ink); border-color:var(--ink); }
.bento-img{ border-radius:26px; }
.bento-img img{ transition:transform 1.2s var(--ease); }
.bento-img:hover img{ transform:scale(1.05); }

/* ---------- Jurisdictions (restored section) ---------- */
.jurisdictions-v2{
  margin-top:0 !important; padding:110px 0 !important; position:relative; overflow:hidden;
  background:radial-gradient(70% 60% at 50% 0%, rgba(201,162,74,.12), transparent 60%), var(--ink) !important;
}
.jurisdictions-v2 .jur-head{ max-width:760px; }
.jurisdictions-v2 .jur-head p{ color:rgba(255,255,255,.66); }
.jur-card h3{ position:relative; z-index:1; font-size:21px; font-weight:700; color:#fff; letter-spacing:-.2px; margin-bottom:12px; }
@media (max-width:991px){ .jurisdictions-v2{ padding:80px 0 !important; } }

/* ---------- Services slider cards ---------- */
.services-slider{ padding:110px 0 80px; }
.ss-cta{ background:var(--ink); color:#fff; padding:14px 26px; }
.ss-card{ text-decoration:none; width:320px; height:420px; border-radius:24px; box-shadow:var(--shadow-md); }
.ss-card h3{
  position:relative; z-index:1; color:#fff; font-size:23px; font-weight:700; letter-spacing:-.3px; line-height:1.22; margin:0;
  text-shadow:0 2px 10px rgba(0,0,0,.35);
}
.ss-card > div{ position:relative; z-index:1; }
.ss-desc{
  color:rgba(255,255,255,.85); font-size:14px; line-height:1.55; margin:0 0 14px;
  max-height:0; opacity:0; overflow:hidden; transition:max-height .45s var(--ease), opacity .35s ease;
}
.ss-card:hover .ss-desc, .ss-card:focus-visible .ss-desc{ max-height:120px; opacity:1; }
.ss-go{
  position:absolute; top:24px; right:22px; z-index:1; width:40px; height:40px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; color:var(--ink); background:#fff; font-size:18px;
  transform:rotate(-45deg) scale(.85); opacity:.9; transition:transform .35s var(--ease), background .25s;
}
.ss-card:hover .ss-go{ transform:rotate(0) scale(1); background:var(--gold); }
.ss-card::after{
  content:""; position:absolute; inset:0; border-radius:inherit; border:1px solid rgba(255,255,255,.08); pointer-events:none; z-index:2;
  transition:border-color .3s;
}
.ss-card:hover::after{ border-color:rgba(201,162,74,.6); }
.ss-card h3 + div{ margin-top:auto; }
@media (hover:none){ .ss-desc{ max-height:none; opacity:1; } }
@media (max-width:767px){ .ss-card{ width:270px; height:380px; } }

/* ---------- Commitment / stats ---------- */
.commitment{ position:relative; overflow:hidden; padding:110px 0; background:var(--ink); }
.commitment::before{
  content:""; position:absolute; left:-200px; bottom:-260px; width:620px; height:620px; border-radius:50%;
  background:radial-gradient(circle, rgba(201,162,74,.14), transparent 65%); pointer-events:none;
}
.commitment h2{ font-size:clamp(30px,3.4vw,46px) !important; line-height:1.12; }
.commitment .tabs{ background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); border-radius:999px; padding:5px; gap:4px; }
.commitment .tab{ border-radius:999px; font-size:15px; font-weight:600; padding:12px 16px; background:transparent; transition:background .25s ease, color .25s ease; }
.commitment .tab.active{ background:var(--grad-gold); }
.stat-card{
  position:relative; overflow:hidden; background:linear-gradient(180deg,#faf6ee,#f1eadb) !important;
  border-radius:22px !important; padding:40px 24px !important;
  transition:transform .35s var(--ease), box-shadow .35s ease;
}
.stat-card::before{ content:""; position:absolute; left:24px; right:24px; top:0; height:3px; border-radius:0 0 3px 3px; background:var(--grad-gold); }
.stat-card:hover{ transform:translateY(-6px); box-shadow:0 30px 50px -25px rgba(201,162,74,.55); }
.stat-num{ font-weight:700 !important; letter-spacing:-1.5px; font-family:inherit !important; }
.stat-label{ font-size:clamp(14px,1.5vw,19px) !important; line-height:1.35 !important; color:#333 !important; opacity:1 !important; font-weight:500 !important; }

/* ---------- Process ---------- */
.process{ background:var(--cream) !important; }
ol.process-grid{ list-style:none; padding:0; margin:0 auto; counter-reset:none; }
.process-grid{ border-radius:22px !important; box-shadow:var(--shadow-sm); }
.step-card{ padding:44px 34px 38px !important; transition:background .3s ease; }
.step-card::before{
  content:""; display:block; width:42px; height:3px; border-radius:3px; background:var(--grad-gold); margin-bottom:22px;
  transition:width .35s var(--ease);
}
.step-card:hover{ background:#fff !important; }
.step-card:hover::before{ width:72px; }
.step-card h3{ position:relative; z-index:1; font-size:19px; font-weight:700; color:var(--ink); margin:0 0 10px; letter-spacing:-.2px; }
.step-num-bg{ font-size:110px !important; top:-10px !important; }

/* ---------- Calculator CTA ---------- */
.calc-cta{ background:#fff; padding:110px 0; }
.calc-img{ position:relative; border-radius:26px; overflow:visible; box-shadow:none; }
.calc-img img{ border-radius:26px; box-shadow:var(--shadow-lg); aspect-ratio:3/2; }
.calc-img-chip{
  position:absolute; right:-14px; bottom:28px; background:var(--ink); color:#fff; border-radius:16px;
  padding:16px 20px; font-size:14px; line-height:1.35; box-shadow:var(--shadow-lg); border:1px solid rgba(201,162,74,.35);
}
.calc-img-chip strong{ color:var(--gold); font-size:22px; display:block; letter-spacing:-.5px; }
.calc-img-chip small{ color:rgba(255,255,255,.6); }
.calc-text h2{ font-size:clamp(26px,2.8vw,38px) !important; line-height:1.15 !important; }
.calc-points{ list-style:none; padding:0; margin:0 0 30px; display:grid; gap:12px; }
.calc-points li{ display:flex; align-items:center; gap:12px; font-weight:500; color:#222; }
.calc-points li::before{
  content:""; width:22px; height:22px; border-radius:50%; flex-shrink:0; background:var(--gold-soft);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a8842f' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:center; background-size:12px;
}
@media (max-width:991px){ .calc-img-chip{ right:12px; bottom:12px; } }

/* ---------- Testimonials ---------- */
.testimonials{ background:radial-gradient(80% 80% at 50% 0%, #17130c 0%, #0a0a0a 60%) !important; }
.testi-card{ margin:0; border-radius:24px !important; }
.testi-card blockquote{ margin:0; }
.testi-card p{ font-size:clamp(16px,1.6vw,20px) !important; font-weight:400 !important; }

/* ---------- FAQ ---------- */
.faq-section{ background:#fff !important; padding:110px 0 !important; }
.faq-layout{ display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:60px; align-items:start; }
.faq-layout .faq-head{ text-align:left; margin:0; position:sticky; top:130px; }
.faq-layout .faq-list{ max-width:none; margin:0; }
.faq-help{
  margin-top:30px; padding:26px; border-radius:20px; background:var(--cream); border:1px solid var(--line);
  display:flex; flex-direction:column; gap:6px; align-items:flex-start;
}
.faq-help strong{ font-size:18px; }
.faq-help span{ color:var(--muted); font-size:14.5px; margin-bottom:12px; }
.faq-h{ margin:0; font-size:inherit; font-weight:inherit; }
.faq-item{ border-radius:16px !important; }
.faq-q span.faq-q-text{ font-size:clamp(15px,1.4vw,18px) !important; }
.faq-num{ font-size:14px !important; font-weight:700 !important; background:var(--cream) !important; color:var(--gold-dark) !important; }
.faq-item.open .faq-num{ background:var(--grad-gold) !important; color:var(--ink) !important; }
@media (max-width:991px){
  .faq-layout{ grid-template-columns:1fr; gap:36px; }
  .faq-layout .faq-head{ position:static; text-align:center; }
  .faq-help{ align-items:center; text-align:center; }
}

/* ---------- CTA band (above footer, every page) ---------- */
.cta-band{ padding:0 0 0; background:linear-gradient(180deg,#fff 50%, var(--ink) 50%); }
.cta-band-inner{
  position:relative; overflow:hidden; border-radius:28px; padding:56px 60px;
  display:grid; grid-template-columns:1.4fr 1fr; gap:36px; align-items:center;
  background:
    radial-gradient(60% 120% at 100% 0%, rgba(201,162,74,.28), transparent 60%),
    linear-gradient(135deg,#15120c 0%, #0a0a0a 70%);
  border:1px solid rgba(201,162,74,.28);
  box-shadow:0 40px 80px -40px rgba(0,0,0,.6);
}
.cta-band-inner::after{
  content:""; position:absolute; right:-80px; top:-80px; width:280px; height:280px; border-radius:50%;
  border:40px solid rgba(201,162,74,.08); pointer-events:none;
}
.cta-band h2{ color:#fff; font-size:clamp(26px,3vw,40px); font-weight:700; letter-spacing:-1px; line-height:1.12; margin:0 0 14px; }
.cta-band p{ color:rgba(255,255,255,.7); font-size:16px; line-height:1.65; margin:0; max-width:560px; }
.cta-band-actions{ display:flex; flex-direction:column; gap:12px; align-items:stretch; position:relative; z-index:1; }
@media (max-width:991px){
  .cta-band-inner{ grid-template-columns:1fr; padding:40px 28px; text-align:left; }
}

/* ---------- Footer ---------- */
footer.site-footer{ background:var(--ink); padding-top:90px; position:relative; }
footer.site-footer::before{
  content:""; position:absolute; top:0; left:50%; transform:translateX(-50%); width:min(1380px,92%); height:1px;
  background:linear-gradient(90deg, transparent, rgba(201,162,74,.45), transparent);
}
.cta-band + footer.site-footer::before{ display:none; }
.footer-about .logo{ display:inline-block; }
.footer-about p{ color:rgba(255,255,255,.72) !important; }
.footer-h{
  font-size:14px; font-weight:700; color:var(--gold); letter-spacing:1.6px; text-transform:uppercase; margin-bottom:24px;
}
.footer-col ul li a{ color:rgba(255,255,255,.78) !important; font-weight:400 !important; font-size:15px !important; }
.footer-col ul li a:hover{ color:var(--gold) !important; }
.footer-col address{ font-style:normal; }
.footer-contact-item{ margin-bottom:18px !important; }
.footer-contact-item .fc-label{ color:var(--gold) !important; opacity:.85; font-size:11px !important; }
.footer-contact-item .fc-value, .footer-contact-item .fc-value a{ font-size:15.5px !important; color:#fff; }

/* ---------- Inner-page banner ---------- */
.calc-page-banner{ padding:150px 0 90px !important; }
.calc-page-banner::before{
  background:
    radial-gradient(50% 80% at 90% 20%, rgba(201,162,74,.16), transparent 60%),
    linear-gradient(100deg, rgba(0,0,0,.94) 0%, rgba(0,0,0,.82) 45%, rgba(6,10,20,.5) 100%) !important;
}
.calc-page-banner::after, .legal-banner::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:3px; background:var(--grad-gold); z-index:2;
}
.legal-banner{ position:relative; padding:150px 0 80px !important; background:radial-gradient(60% 100% at 90% 0%, rgba(201,162,74,.14), transparent 60%), #050505 !important; }
.calc-page-banner h1, .legal-banner h1{ font-size:clamp(30px,3.8vw,52px) !important; font-weight:700 !important; letter-spacing:-1.2px; line-height:1.1 !important; max-width:820px !important; }
.calc-page-banner p{ font-size:17px !important; color:rgba(255,255,255,.78) !important; max-width:640px !important; line-height:1.65; }
.calc-crumb{ display:inline-flex !important; padding:7px 14px; border-radius:999px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); margin-bottom:22px !important; }
.calc-crumb span:last-child{ color:var(--gold); }
@media (max-width:767px){ .calc-page-banner{ padding:120px 0 60px !important; } .legal-banner{ padding:120px 0 56px !important; } }

/* ---------- Services page ---------- */
.svc-intro{ display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:end; margin-bottom:56px; }
.svc-intro h2{ font-size:clamp(28px,3vw,42px); font-weight:700; letter-spacing:-1px; line-height:1.12; margin:0; }
.svc-intro p{ color:var(--muted); font-size:16.5px; line-height:1.7; margin:0; }
.svc-cards{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; }
.svc-card{
  position:relative; overflow:hidden; display:flex; flex-direction:column;
  background:#fff; border:1px solid var(--line); border-radius:24px; padding:34px 34px 30px;
  box-shadow:0 1px 2px rgba(10,10,10,.04);
  transition:transform .4s var(--ease), box-shadow .4s ease, border-color .4s ease;
}
.svc-card::before{
  content:""; position:absolute; left:0; top:0; height:3px; width:100%;
  background:var(--grad-gold); transform:scaleX(.18); transform-origin:left; transition:transform .5s var(--ease);
}
.svc-card::after{
  content:""; position:absolute; right:-120px; top:-120px; width:280px; height:280px; border-radius:50%;
  background:radial-gradient(circle, rgba(201,162,74,.14), transparent 65%); opacity:0; transition:opacity .5s ease; pointer-events:none;
}
.svc-card:hover{ transform:translateY(-6px); border-color:rgba(201,162,74,.4); box-shadow:0 30px 60px -30px rgba(10,10,10,.28); }
.svc-card:hover::before{ transform:scaleX(1); }
.svc-card:hover::after{ opacity:1; }
.svc-card-top{ display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:26px; position:relative; z-index:1; }
.svc-card-img{
  position:relative; display:block; margin:-34px -34px 26px; height:210px; overflow:hidden;
}
.svc-card-img img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s var(--ease); }
.svc-card:hover .svc-card-img img{ transform:scale(1.05); }
.svc-card-img .svc-num{
  position:absolute; right:18px; bottom:12px; font-size:40px;
  color:#fff; -webkit-text-stroke:0; text-shadow:0 2px 14px rgba(0,0,0,.5);
}
.svc-icon{
  width:60px; height:60px; border-radius:18px; display:flex; align-items:center; justify-content:center;
  background:var(--ink); color:var(--gold);
  box-shadow:inset 0 0 0 1px rgba(201,162,74,.35), 0 12px 24px -12px rgba(10,10,10,.5);
  transition:background .35s ease, color .35s ease, transform .45s var(--ease);
}
.svc-card:hover .svc-icon{ background:var(--grad-gold); color:var(--ink); transform:rotate(-6deg) scale(1.05); }
.svc-num{
  font-size:56px; font-weight:800; line-height:.9; letter-spacing:-2px;
  color:transparent; -webkit-text-stroke:1.2px rgba(168,132,47,.35);
  transition:-webkit-text-stroke-color .35s ease;
}
.svc-card:hover .svc-num{ -webkit-text-stroke-color:var(--gold); }
.svc-card h2{ position:relative; z-index:1; font-size:23px; font-weight:700; letter-spacing:-.4px; line-height:1.25; margin:0 0 12px; color:var(--ink); }
.svc-desc{ position:relative; z-index:1; color:var(--muted); font-size:15px; line-height:1.7; margin:0 0 18px; }
.svc-card .svc-tags{ position:relative; z-index:1; display:flex; flex-wrap:wrap; gap:8px; margin-bottom:24px; }
.svc-card .svc-tags span{
  background:transparent; border:1px solid rgba(201,162,74,.45); color:var(--gold-dark);
  backdrop-filter:none; font-size:12px; font-weight:600; padding:5px 12px; border-radius:999px;
}
.svc-inc{ position:relative; z-index:1; margin-top:auto; padding-top:22px; border-top:1px dashed #e2d9c6; }
.svc-inc-label{ display:block; font-size:11.5px; font-weight:700; letter-spacing:1.4px; text-transform:uppercase; color:var(--ink); margin-bottom:14px; }
.svc-includes{ list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1fr 1fr; gap:10px 18px; }
.svc-includes li{ position:relative; padding-left:26px; font-size:14px; color:#2a2a2a; line-height:1.45; }
.svc-includes li::before{
  content:""; position:absolute; left:0; top:1px; width:17px; height:17px; border-radius:50%; background:var(--gold-soft);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a8842f' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
  background-size:10px; background-repeat:no-repeat; background-position:center;
}
.svc-why{ background:var(--cream); padding:100px 0; }
.svc-why-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; margin-top:48px; }
.svc-why-item{ background:#fff; border:1px solid var(--line); border-radius:20px; padding:30px 26px; }
.svc-why-item .wi-icon{ width:48px; height:48px; border-radius:14px; display:flex; align-items:center; justify-content:center; background:var(--ink); color:var(--gold); margin-bottom:18px; }
.svc-why-item h3{ font-size:18px; font-weight:700; margin-bottom:8px; }
.svc-why-item p{ font-size:14.5px; color:var(--muted); line-height:1.6; margin:0; }
.svc-why .process-head{ margin-bottom:0; }
@media (max-width:1200px){ .svc-cards{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:991px){ .svc-cards{ grid-template-columns:1fr; } }
@media (max-width:991px){ .svc-intro{ grid-template-columns:1fr; gap:16px; } .svc-why-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){
  .svc-card{ padding:26px 22px 24px; }
  .svc-card-img{ margin:-26px -22px 20px; height:170px; }
  .svc-card-img .svc-num{ font-size:32px; }
  .svc-num{ font-size:44px; }
  .svc-includes{ grid-template-columns:1fr; }
  .svc-why-grid{ grid-template-columns:1fr; }
}

/* ---------- About / contact / blog touch-ups ---------- */
.about-mv-card, .about-value-card, .blog-card, .contact-form-card, .contact-info-card{ transition:transform .35s var(--ease), box-shadow .35s ease; }
.about-mv-card:hover, .about-value-card:hover, .blog-card:hover{ transform:translateY(-5px); box-shadow:var(--shadow-md); }
.about-intro-img img{ border-radius:24px; }
.blog-card{ border-radius:22px !important; overflow:hidden; }
.blog-card-img img{ transition:transform .8s var(--ease); }
.blog-card:hover .blog-card-img img{ transform:scale(1.05); }

/* ---------- 404 ---------- */
.nf-section{ padding:170px 0 110px; margin-top:-88px; background:radial-gradient(60% 70% at 50% 0%, rgba(201,162,74,.14), transparent 60%), var(--ink); color:#fff; text-align:center; }
.nf-code{ font-size:clamp(90px,16vw,190px); font-weight:800; letter-spacing:-6px; line-height:1; margin:0; }
.nf-section h1{ font-size:clamp(26px,3vw,40px); margin:10px 0 14px; }
.nf-section p{ color:rgba(255,255,255,.7); max-width:560px; margin:0 auto 30px; font-size:16.5px; }
.nf-actions{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.nf-links{ display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin-top:44px; }
.nf-links a{ color:rgba(255,255,255,.78); text-decoration:none; border:1px solid rgba(255,255,255,.14); padding:9px 16px; border-radius:999px; font-size:14px; }
.nf-links a:hover{ border-color:var(--gold); color:var(--gold); }

/* ---------- Print ---------- */
@media print{ .topbar, header.site-header, .wa-float, .to-top, .cta-band, .brand-marquee{ display:none !important; } }

/* ---------- Fine-tuning ---------- */
.hero-v2 h1{ font-size:clamp(34px, 4vw, 56px); }
@media (min-width:1200px){ .hero-v2 .col-lg-7{ flex:0 0 auto; width:62%; } .hero-v2 .col-lg-5{ flex:0 0 auto; width:38%; } }
.calc-crumb{ display:flex !important; width:max-content; max-width:100%; }
.faq-item.open .faq-toggle{ transform:rotate(180deg) !important; }
.footer-about .logo img{ height:55px; width:auto; }
.nf-section .nf-code{ font-size:clamp(96px,16vw,190px); font-weight:800; letter-spacing:-6px; line-height:1; margin:0 auto; max-width:none; }
.consult-card .btn-submit, .contact-section .btn-submit{
  background:var(--ink) !important; color:#fff !important; border-radius:999px !important; font-weight:600 !important;
  display:inline-flex; align-items:center; justify-content:center; gap:10px; transition:background .25s, color .25s, transform .25s var(--ease);
}
.consult-card .btn-submit:hover, .contact-section .btn-submit:hover{ background:var(--gold) !important; color:var(--ink) !important; transform:translateY(-2px); }
@media (max-width:576px){
  .commitment .tab{ font-size:13px !important; padding:11px 4px !important; word-break:normal !important; overflow-wrap:normal !important; }
}
