/* LeadsFortress standard pages: about, results, contact.
   Loads on top of engine.css, which supplies the shared chrome:
   tokens, nav, footer, buttons, sections, FAQ, and the mock visuals.
   Only components that do not already exist there are defined below. */

/* Answer-first block. Directly under an H2, self-contained, 40-60 words.
   Built to be liftable verbatim into featured snippets and AI overviews,
   so keep the paragraph standalone and do not split it. */
.answer-block{max-width:760px;margin:0 auto;background:#F6F9FC;border-left:4px solid var(--gold);border-radius:0 14px 14px 0;padding:26px 30px;}
.answer-block h2{font-size:21px;color:var(--navy);margin-bottom:10px;}
.answer-block p{font-size:16px;color:#3D4A5C;line-height:1.75;}
.answer-block p:last-child{margin-bottom:0;}
.dark-section .answer-block{background:rgba(255,255,255,0.05);}
.dark-section .answer-block h2{color:#fff;}
.dark-section .answer-block p{color:#cdd9ea;}

/* Objection cards. Two-up on the about page. */
.objection-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;max-width:960px;margin:0 auto;}
.objection-card{background:#fff;border:1px solid var(--gray-200);border-radius:16px;padding:28px;}
.objection-card h3{font-size:18px;color:var(--navy);margin-bottom:12px;}
.objection-card p{font-size:14.5px;color:#3D4A5C;line-height:1.75;margin-bottom:12px;}
.objection-card p:last-child{margin-bottom:0;}

/* Good fit / poor fit. */
.fit-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;max-width:900px;margin:0 auto;}
.fit-card{border-radius:16px;padding:26px 28px;}
.fit-card h3{font-size:17px;margin-bottom:16px;}
.fit-card ul{list-style:none;padding:0;margin:0;}
.fit-card li{font-size:14.5px;line-height:1.6;padding:9px 0 9px 28px;position:relative;}
.fit-card li + li{border-top:1px solid rgba(255,255,255,0.08);}
.fit-yes{background:rgba(5,150,105,0.10);border:1px solid rgba(5,150,105,0.35);}
.fit-yes h3{color:#4ADE9A;}
.fit-yes li{color:#cdd9ea;}
.fit-yes li::before{content:'\2713';position:absolute;left:0;top:9px;color:#4ADE9A;font-weight:700;}
.fit-no{background:rgba(239,68,68,0.08);border:1px solid rgba(239,68,68,0.30);}
.fit-no h3{color:#FCA5A5;}
.fit-no li{color:#cdd9ea;}
.fit-no li::before{content:'\2715';position:absolute;left:0;top:9px;color:#FCA5A5;font-weight:700;}

/* Case study layout. */
.case-wrap{max-width:960px;margin:0 auto 44px;}
.case-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:34px;}
.metric-card{background:#fff;border:1px solid var(--gray-200);border-radius:14px;padding:22px 18px;text-align:center;}
.metric-num{display:block;font-family:'Sora',sans-serif;font-weight:800;font-size:25px;color:var(--navy);margin-bottom:6px;line-height:1.15;}
.metric-label{display:block;font-size:12.5px;color:var(--gray-600);line-height:1.45;}
.case-body{background:#fff;border:1px solid var(--gray-200);border-radius:16px;padding:34px 38px;}
.case-body h3{font-size:18px;color:var(--navy);margin:26px 0 10px;}
.case-body h3:first-child{margin-top:0;}
.case-body p{font-size:15px;color:#3D4A5C;line-height:1.75;margin-bottom:14px;}
.case-body p:last-child{margin-bottom:0;}
.case-list{list-style:none;padding:0;margin:0 0 14px;}
.case-list li{font-size:15px;color:#3D4A5C;line-height:1.75;padding:12px 0 12px 22px;position:relative;border-bottom:1px solid var(--gray-100);}
.case-list li:last-child{border-bottom:none;}
.case-list li::before{content:'';position:absolute;left:0;top:20px;width:8px;height:8px;border-radius:50%;background:var(--gold);}
.case-list strong{color:var(--navy);}

/* Data table. AI parsers read tables cleanly, so keep data here
   rather than in prose. */
.case-table-wrap{max-width:760px;margin:0 auto;}
.lf-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--gray-200);border-radius:14px;overflow:hidden;}
.lf-table th{background:var(--navy);color:#fff;font-family:'Sora',sans-serif;font-size:13.5px;font-weight:700;text-align:left;padding:14px 18px;}
.lf-table td{font-size:14.5px;color:#3D4A5C;padding:14px 18px;border-top:1px solid var(--gray-100);}
.lf-table tbody tr:nth-child(even){background:#F8FAFC;}
.lf-table td:first-child{color:var(--navy);font-weight:600;}

/* Contact form shell. */
.form-shell{max-width:720px;margin:0 auto;background:#fff;border:1px solid var(--gray-200);border-radius:18px;padding:14px;box-shadow:0 18px 46px rgba(13,43,78,0.07);}
.form-fallback{padding:34px 28px;text-align:center;}
.form-fallback p{font-size:14.5px;color:#3D4A5C;line-height:1.75;margin-bottom:12px;}
.form-fallback p:last-child{margin-bottom:0;}
.form-fallback code{background:var(--gray-100);border-radius:6px;padding:3px 8px;font-size:13px;color:var(--navy);}

/* Inline links inside body copy. Underlined at rest, colour change on
   hover. No hover underline anywhere on this site. */
.answer-block a,.case-body a,.inc-card a,.objection-card a{color:var(--blue);text-decoration:underline;text-underline-offset:2px;}
.answer-block a:hover,.case-body a:hover,.inc-card a:hover,.objection-card a:hover{color:var(--gold-dark);text-decoration:underline;}
.cta-bg a:hover{text-decoration:none;}

@media(max-width:900px){
  .objection-grid{grid-template-columns:1fr;}
  .fit-grid{grid-template-columns:1fr;}
  .case-metrics{grid-template-columns:1fr 1fr;}
  .case-body{padding:26px 22px;}
  .answer-block{padding:22px 22px;}
}
@media(max-width:600px){
  .case-metrics{grid-template-columns:1fr;}
  .lf-table th,.lf-table td{padding:11px 12px;font-size:13.5px;}
}

/* ------------------------------------------------------------------
   Growth Accelerator + Visibility Engine spec list.
   Added with the /growth-accelerator build. Loads on both the engine
   and standard templates, since standard.css is enqueued by both.
   ------------------------------------------------------------------ */

/* Accelerator hero badge. Blue rather than gold, so the paid layer does
   not read as a sixth engine at a glance. */
.eh-badge-accel{background:rgba(46,141,232,0.16);border-color:rgba(46,141,232,0.42);color:#8CC8F5;}

/* Hero stack diagram: rented layer above, owned layer below. */
.accel-stack{padding:22px;}
.as-layer{border-radius:12px;padding:14px 16px;}
.as-paid{background:linear-gradient(135deg,#FFF6E8,#FFEFD6);border:1px dashed var(--gold);}
.as-owned{background:var(--navy);border:1px solid var(--navy);}
.as-label{font-family:'Sora',sans-serif;font-size:12.5px;font-weight:800;color:var(--navy);margin-bottom:10px;display:flex;align-items:center;gap:8px;}
.as-owned .as-label{color:#fff;}
.as-label span{font-size:10px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;padding:3px 9px;border-radius:999px;background:rgba(13,43,78,0.10);color:var(--navy);}
.as-owned .as-label span{background:rgba(245,166,35,0.20);color:var(--gold);}
.as-chips{display:flex;flex-wrap:wrap;gap:6px;}
.as-chips span{font-size:11.5px;font-weight:600;background:#fff;border:1px solid var(--gray-200);border-radius:999px;padding:5px 11px;color:#3D4A5C;}
.as-owned .as-chips span{background:rgba(255,255,255,0.10);border-color:rgba(255,255,255,0.20);color:#dce7f5;}
.as-arrow{text-align:center;font-size:11.5px;color:var(--gray-600);padding:10px 0;position:relative;}
.as-arrow::before{content:'\2193';display:block;font-size:16px;color:var(--gold-dark);line-height:1;margin-bottom:3px;}

/* Narrow prose column for sections that are argument rather than grid. */
.prose-narrow{max-width:760px;margin:0 auto;}
.prose-narrow p{font-size:16px;color:#3D4A5C;line-height:1.8;margin-bottom:18px;}
.prose-narrow p:last-child{margin-bottom:0;}
.prose-narrow strong{color:var(--navy);}
.prose-dark p{color:#c3d0e2;}
.prose-dark strong{color:#fff;}
.prose-narrow a{color:var(--blue);text-decoration:underline;text-underline-offset:2px;}
.prose-narrow a:hover{color:var(--gold-dark);text-decoration:underline;}
.prose-dark a{color:#8CC8F5;}
.prose-dark a:hover{color:var(--gold);}

/* Three channel cards carry more copy than the standard include grid. */
.accel-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));max-width:1020px;}
.accel-grid .inc-card{padding:26px 24px;}
.accel-grid .inc-card h3{font-size:16px;margin-bottom:9px;}
.accel-grid .inc-card p{font-size:14px;line-height:1.7;}
.accel-foot{max-width:760px;margin:26px auto 0;text-align:center;font-size:14.5px;color:var(--gray-600);line-height:1.7;}

/* Scope-card lists sit tighter than the case study lists they inherit. */
.objection-card .case-list li{font-size:14.5px;padding:11px 0 11px 22px;}
.objection-card .case-list li::before{top:19px;}

/* Long-form callout card, used for the Local Services Ads notice. */
.accel-callout{max-width:820px;margin:0 auto;}
.accel-callout h3{font-size:16px;color:var(--navy);margin:24px 0 10px;}

/* ------------------------------------------------------------------
   Deliverables specification list.
   This is the highest-value block on the Visibility Engine page, so it
   is styled to read like a specification sheet rather than a bullet list.
   ------------------------------------------------------------------ */
.spec{max-width:880px;margin:0 auto;}
.spec-group{background:#fff;border:1px solid var(--gray-200);border-radius:16px;padding:4px 30px 20px;margin-bottom:18px;}
.spec-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:22px 0 12px;border-bottom:2px solid var(--navy);}
.spec-head h3{font-size:17px;color:var(--navy);margin:0;}
.spec-when{font-family:'Sora',sans-serif;font-size:11px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:var(--gold-dark);white-space:nowrap;}
.spec-sub{font-family:'Sora',sans-serif;font-size:11px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:var(--gray-600);padding:20px 0 4px;}
.spec-item{display:grid;grid-template-columns:36px 1fr;gap:14px;align-items:start;padding:11px 0;border-top:1px solid var(--gray-100);}
.spec-sub + .spec-item{border-top:none;}
.spec-n{font-family:'Sora',sans-serif;font-size:12px;font-weight:800;color:var(--navy);background:var(--gray-100);border-radius:8px;text-align:center;padding:5px 0;line-height:1.35;}
.spec-t{font-size:14.5px;color:#3D4A5C;line-height:1.65;}
.spec-t strong{color:var(--navy);}
.spec-t a{color:var(--blue);text-decoration:underline;text-underline-offset:2px;}
.spec-t a:hover{color:var(--gold-dark);text-decoration:underline;}
.spec-excl .spec-head{border-bottom-color:var(--gray-400);}
.spec-excl .spec-head h3{color:var(--gray-600);}
.spec-excl .spec-when{color:var(--gray-400);}
.spec-excl .spec-n{background:rgba(239,68,68,0.08);color:#DC5555;}

@media(max-width:900px){
  .accel-stack{padding:16px;}
  .prose-narrow p{font-size:15.5px;}
  .spec-group{padding:4px 20px 16px;}
  .spec-head{flex-direction:column;gap:4px;}
}
@media(max-width:600px){
  .spec-item{grid-template-columns:30px 1fr;gap:11px;}
  .spec-t{font-size:14px;}
}

/* Growth Accelerator sits below the five engines in the nav dropdown,
   separated by a rule so the paid layer reads as distinct from the System. */
.nav-dropdown-menu .ndm-accel{border-top:1px solid var(--gray-100);margin-top:6px;padding-top:12px;padding-left:40px;position:relative;}
.nav-dropdown-menu .ndm-accel::before{content:'+';position:absolute;left:18px;top:12px;color:var(--gold-dark);font-family:'Sora',sans-serif;font-weight:800;}

/* Nav dropdown grouping. The System menu now separates the five owned
   engines from the paid layer; Industries is its own menu. */
.nav-dropdown-menu .ndm-group{font-family:'Sora',sans-serif;font-size:10px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--gray-400);padding:14px 18px 6px;pointer-events:none;}
.nav-dropdown-menu .ndm-note{font-size:11.5px;color:var(--gray-600);line-height:1.5;padding:0 18px 12px 40px;pointer-events:none;}
.nav-dropdown-menu .ndm-soon{font-size:14px;color:var(--gray-400);padding:7px 18px;pointer-events:none;}
.nav-dropdown-menu .ndm-badge{display:inline-block;font-family:'Sora',sans-serif;font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#0F7B4A;background:#D1FAE5;border-radius:999px;padding:3px 8px;margin-left:6px;vertical-align:2px;}
.nav-dd-narrow{min-width:236px;}

/* ==================================================================
   GROWTH ACCELERATOR PAGE
   Rebuilt to the layered mockup: hero stack diagram, channel cards
   with icons, two-column include/control block, reporting table.
   Channel marks are custom SVG in platform-adjacent colours rather
   than the actual Google and Meta logos, which have their own brand
   usage rules and should not be redrawn by hand.
   ================================================================== */

.ga-channels-line{font-family:'Sora',sans-serif;font-size:16px;font-weight:800;color:var(--gold);margin:18px 0 12px;}
.ga-hero-lines{font-size:16px;color:#c3d0e2;line-height:1.75;margin-bottom:26px;}
.ga-note{display:flex;gap:9px;align-items:flex-start;line-height:1.6;}
.ga-tick{display:inline-flex;align-items:center;justify-content:center;flex:0 0 18px;width:18px;height:18px;border-radius:50%;background:rgba(52,199,123,0.18);color:#4ADE80;font-size:11px;margin-top:1px;}

/* ---- hero stack diagram ---- */
.ga-visual{padding:20px 20px 14px;}
.ga-layer{border-radius:14px;padding:16px 16px 14px;}
.ga-layer-paid{background:linear-gradient(150deg,#EAF4FD,#F4F9FE);border:1.5px solid #C5DFF6;}
.ga-layer-owned{background:linear-gradient(150deg,#FFF9EF,#FFF2DD);border:1.5px solid #F2C879;}
.ga-layer-head{display:flex;align-items:center;justify-content:center;gap:8px;font-family:'Sora',sans-serif;font-size:14.5px;font-weight:800;color:var(--navy);margin-bottom:12px;}
.ga-layer-owned .ga-layer-head{color:var(--navy);}
.ga-ic-rocket{display:inline-flex;width:18px;height:18px;color:var(--blue);}
.ga-ic-rocket svg{width:100%;height:100%;}
.ga-chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;}
.ga-chip{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;background:#fff;border:1px solid var(--gray-200);border-radius:10px;padding:8px 12px;color:#3D4A5C;}
.ga-layer-owned .ga-chip{background:#fff;border-color:#F0DCB4;color:#3D4A5C;padding:7px 11px;font-size:12px;}
.ga-dot{width:9px;height:9px;border-radius:50%;flex:0 0 9px;}
.ga-dot-google{background:#4285F4;}
.ga-dot-meta{background:#0A7CFF;}
.ga-dot-retarget{background:#E24C4C;}
.ga-dot-lsa{background:#34A853;}
.ga-arrow{display:flex;justify-content:center;color:var(--gold-dark);padding:8px 0;}
.ga-arrow svg{width:20px;height:26px;}
.ga-visual-cap{text-align:center;font-size:12.5px;font-weight:600;color:var(--navy);margin-top:14px;}

/* ---- shared section furniture ---- */
.ga-tint{background:#F6F9FC;}
.ga-h2{font-size:29px;line-height:1.22;color:var(--navy);margin:10px 0 16px;}
.dark-section .ga-h2{color:#fff;}
.ga-p{font-size:17px;line-height:1.8;color:#3D4A5C;margin-bottom:16px;}
.dark-section .ga-p{color:#c3d0e2;}
.ga-p a{color:var(--blue);text-decoration:none;border-bottom:1px solid rgba(26,111,191,0.28);padding-bottom:1px;transition:color .2s,border-color .2s;}
.ga-p a:hover{color:var(--gold-dark);border-bottom-color:var(--gold-dark);}
.ga-split{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:start;}
.ga-split-right{padding-top:38px;}
.ga-callout{background:#FFF8EC;border-left:3px solid var(--gold);border-radius:0 10px 10px 0;padding:16px 20px;font-size:15px;font-weight:600;color:var(--navy);line-height:1.6;}

/* ---- the rule ---- */
.ga-split-rule{align-items:center;}
.ga-checks{list-style:none;padding:0 0 0 40px;margin:0;border-left:1px solid rgba(255,255,255,0.14);}
.ga-checks li{position:relative;padding:13px 0 13px 36px;font-size:17px;color:#e2eaf5;font-weight:600;}
.ga-checks li::before{content:'';position:absolute;left:0;top:12px;width:22px;height:22px;border-radius:50%;background:var(--blue-light);}
.ga-checks li::after{content:'';position:absolute;left:7px;top:19px;width:8px;height:4px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg);}

/* ---- channel cards ---- */
.ga-channel-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;max-width:1180px;margin:0 auto;}
.ga-channel{background:#fff;border:1px solid var(--gray-200);border-left:4px solid #C7D3E0;border-radius:14px;padding:24px 20px;transition:transform .18s,box-shadow .18s,border-left-color .22s;display:flex;flex-direction:column;}
.ga-channel:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(13,43,78,0.10);border-left-color:var(--blue);}
.ga-ch-ic{width:64px;height:64px;margin-bottom:14px;}
.ga-ch-ic img{width:64px;height:64px;display:block;object-fit:contain;}
.ga-ch-ic svg{width:100%;height:100%;}
.ga-channel h3{font-size:16px;color:var(--navy);margin-bottom:8px;line-height:1.35;}
.ga-channel p{font-size:15px;line-height:1.65;color:#3D4A5C;}







/* ---- included / control ---- */
.ga-split-inc{gap:46px;grid-template-columns:1.15fr 1fr;}
.ga-items{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.ga-item{background:#fff;border:1px solid var(--gray-200);border-radius:12px;padding:16px 16px 15px;}
.ga-item-ic{display:inline-flex;width:22px;height:22px;color:var(--blue);margin-bottom:9px;}
.ga-item-ic svg{width:100%;height:100%;}
.ga-item b{display:block;font-family:'Sora',sans-serif;font-size:14.5px;color:var(--navy);margin-bottom:4px;line-height:1.4;}
.ga-item span{display:block;font-size:14.5px;color:var(--gray-600);line-height:1.6;}
.ga-control{display:flex;flex-direction:column;gap:14px;}
.ga-ctrl{display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:start;background:#fff;border:1px solid var(--gray-200);border-radius:12px;padding:18px;}
.ga-ctrl-ic{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:11px;background:#EAF4FD;color:var(--blue);}
.ga-ctrl-ic svg{width:22px;height:22px;}
.ga-ctrl b{display:block;font-family:'Sora',sans-serif;font-size:15px;color:var(--navy);margin-bottom:4px;line-height:1.45;}
.ga-ctrl span{display:block;font-size:15px;color:var(--gray-600);line-height:1.65;}

/* ---- reporting ---- */
.ga-table td:first-child{white-space:nowrap;}
.ga-report-note{max-width:860px;margin:26px auto 0;background:#F6F9FC;border:1px solid var(--gray-200);border-radius:12px;padding:18px 22px;font-size:16px;line-height:1.75;color:#3D4A5C;text-align:center;}

/* ---- closing band ---- */
.ga-cta{background:linear-gradient(120deg,#1A6FBF,#2E8DE8);padding:60px 0 44px;color:#fff;}
.ga-cta-inner{display:grid;grid-template-columns:64px 1.15fr 1fr auto;gap:26px;align-items:center;}
.ga-cta-ic{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:16px;background:rgba(255,255,255,0.16);color:#fff;}
.ga-cta-ic svg{width:30px;height:30px;}
.ga-cta-copy h2{font-size:25px;line-height:1.3;color:#fff;margin:0;}
.ga-cta-sub{font-size:15.5px;line-height:1.7;color:rgba(255,255,255,0.88);}
.ga-cta-foot{margin-top:32px;padding-top:22px;border-top:1px solid rgba(255,255,255,0.22);text-align:center;font-size:14px;line-height:1.7;color:rgba(255,255,255,0.9);}

@media(max-width:980px){
  .ga-split,.ga-split-inc{grid-template-columns:1fr;gap:34px;}
  .ga-split-right{padding-top:0;}
  .ga-checks{padding-left:0;border-left:none;}
  .ga-channel-grid{grid-template-columns:repeat(2,1fr);}
  .ga-cta-inner{grid-template-columns:1fr;text-align:center;justify-items:center;gap:18px;}
  .ga-h2{font-size:25px;}
}
@media(max-width:600px){
  .ga-items{grid-template-columns:1fr;}
  .ga-visual{padding:16px 14px 12px;}
  .ga-chip{font-size:12px;padding:7px 10px;}
}

/* Founder Partner terms beneath the standard closing CTA. */
.cta-bg .cta-foot{max-width:760px;margin:26px auto 0;padding-top:20px;border-top:1px solid rgba(255,255,255,0.18);font-size:13.5px;line-height:1.7;color:rgba(255,255,255,0.82);}

/* ------------------------------------------------------------------
   Who it is for, light variant.
   standard.css styles .fit-yes / .fit-no for dark sections, and About
   still uses those, so the light treatment is scoped to .ga-fit rather
   than changing the shared rules. Palette matches the homepage fit
   cards so the two pages read as the same component.
   ------------------------------------------------------------------ */
.ga-fit{background:#F6F9FC;}
.ga-fit .fit-card{border-radius:18px;padding:30px 32px;}
.ga-fit .fit-yes{background:#F0FAF5;border:1.5px solid #BBE5CD;}
.ga-fit .fit-no{background:#FDF3F2;border:1.5px solid #F5CBC7;}
.ga-fit .fit-card h3{font-size:18px;margin-bottom:16px;}
.ga-fit .fit-yes h3{color:#0B6E44;}
.ga-fit .fit-no h3{color:#B0362C;}
.ga-fit .fit-card li{color:#3D4A5C;font-size:16.5px;}
.ga-fit .fit-card li + li{border-top:1px solid rgba(13,43,78,0.08);}
.ga-fit .fit-yes li::before{color:#0B6E44;}
.ga-fit .fit-no li::before{color:#B0362C;}

@media(max-width:600px){.ga-channel-grid{grid-template-columns:1fr;}}

/* ==================================================================
   VISIBILITY ENGINE PAGE
   Two-column sections, SERP mock with a stats strip, horizontal
   timeline and a side-by-side deliverables / exclusions block.
   ================================================================== */

/* ---- hero SERP mock ---- */
.ve-visual{padding:18px;}
.ve-serp{display:grid;grid-template-columns:1.35fr 1fr;gap:10px;margin-top:10px;}
.ve-rows{display:flex;flex-direction:column;gap:8px;}
.ve-visual .mv-row{margin-bottom:0;align-items:center;font-size:12.5px;line-height:1.45;}
.ve-pos{display:inline-flex;align-items:center;justify-content:center;width:19px;height:19px;border-radius:50%;background:var(--gray-100);color:var(--navy);font-size:11px;font-weight:800;margin-right:7px;font-family:'Sora',sans-serif;}
.ve-visual .mv-row.win .ve-pos{background:var(--gold);color:#fff;}
.ve-pin{font-size:15px;}
.ve-map{background:linear-gradient(150deg,#EAF1E6,#DDE9F2);border-radius:10px;position:relative;min-height:118px;overflow:hidden;}
.ve-map::before{content:'';position:absolute;inset:0;background:
  linear-gradient(90deg,transparent 46%,rgba(255,255,255,.85) 46%,rgba(255,255,255,.85) 52%,transparent 52%),
  linear-gradient(0deg,transparent 60%,rgba(255,255,255,.85) 60%,rgba(255,255,255,.85) 66%,transparent 66%);}
.ve-map-pin{position:absolute;top:38%;left:52%;transform:translate(-50%,-50%);font-size:24px;}
.ve-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--gray-100);}
.ve-stat{display:flex;flex-direction:column;gap:2px;text-align:center;}
.ve-stat-l{font-size:10.5px;color:var(--gray-400);}
.ve-stat-v{font-family:'Sora',sans-serif;font-size:13px;font-weight:800;color:var(--navy);}

/* ---- shared two-column layout ---- */
.ve-split{display:grid;grid-template-columns:1fr 1.25fr;gap:48px;align-items:start;}
.ve-split-problem{grid-template-columns:1fr 1.15fr;gap:52px;align-items:center;}
.ve-split-context{grid-template-columns:1.1fr 1fr;align-items:center;gap:44px;}

/* ---- quick answer ---- */
.ve-answer{border-left:3px solid var(--gold);padding-left:26px;}
.ve-answer h2{font-size:26px;line-height:1.25;color:var(--navy);margin-bottom:14px;}
.ve-answer p{font-size:16px;line-height:1.8;color:#3D4A5C;margin-bottom:14px;}
.ve-answer p:last-child{margin-bottom:0;}
.ve-cite{font-size:13.5px;color:var(--gray-600);margin-top:14px;line-height:1.7;}
.ve-cite a{color:var(--blue);text-decoration:none;border-bottom:1px solid rgba(26,111,191,.28);}
.ve-cite a:hover{color:var(--gold-dark);border-bottom-color:var(--gold-dark);}

/* ---- the problem ---- */
.ve-points{display:flex;flex-direction:column;gap:22px;}
.ve-point{display:grid;grid-template-columns:44px 1fr;gap:16px;align-items:start;}
.ve-point-ic{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:rgba(255,255,255,.08);color:var(--gold);}
.ve-point-ic svg{width:21px;height:21px;}
.ve-point p{font-size:16px;line-height:1.75;color:#c3d0e2;}
.ve-point-key .ve-point-ic{background:rgba(245,166,35,.18);}
.ve-point-key p strong{color:#fff;}

/* ---- two halves ---- */
.ve-halves{display:grid;grid-template-columns:1fr auto 1fr;gap:20px;align-items:stretch;max-width:1000px;margin:0 auto;}
.ve-half{display:grid;grid-template-columns:52px 1fr;gap:16px;background:#fff;border:1px solid var(--gray-200);border-radius:16px;padding:24px;align-items:start;}
.ve-half-ic{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:14px;background:var(--blue);color:#fff;}
.ve-half-ic svg{width:24px;height:24px;}
.ve-half h3{font-size:17px;color:var(--navy);margin-bottom:7px;}
.ve-half p{font-size:15px;line-height:1.7;color:#3D4A5C;}
.ve-plus{display:flex;align-items:center;justify-content:center;font-family:'Sora',sans-serif;font-size:22px;font-weight:800;color:var(--blue);}
.ve-halves-note{margin-top:30px;text-align:center;}

/* ---- deliverables + exclusions ---- */
.ve-deliver{display:grid;grid-template-columns:1.55fr 1fr;gap:24px;align-items:start;max-width:1150px;margin:0 auto;}
.ve-deliver .spec{max-width:none;}
.ve-excl{background:#fff;border:1px solid var(--gray-200);border-radius:16px;padding:26px 26px 22px;position:sticky;top:100px;}
.ve-excl h3{font-size:17px;color:var(--navy);padding-bottom:12px;border-bottom:2px solid var(--gray-200);margin-bottom:6px;}
.ve-ex{display:grid;grid-template-columns:26px 1fr;gap:12px;align-items:start;padding:13px 0;border-top:1px solid var(--gray-100);}
.ve-ex:first-of-type{border-top:none;}
.ve-ex-x{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:8px;background:rgba(239,68,68,.08);color:#DC5555;font-size:12px;font-weight:800;}
.ve-ex p{font-size:14.5px;line-height:1.65;color:#3D4A5C;}
.ve-ex strong{color:var(--navy);}
.ve-ex a{color:var(--blue);text-decoration:none;border-bottom:1px solid rgba(26,111,191,.28);}
.ve-ex a:hover{color:var(--gold-dark);border-bottom-color:var(--gold-dark);}

/* ---- timeline ---- */
.ve-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;max-width:1080px;margin:0 auto;}
.ve-step{position:relative;padding-top:6px;}
.ve-step:not(:last-child)::after{content:'';position:absolute;top:22px;right:-19px;width:12px;border-top:2px dotted rgba(255,255,255,.28);}
.ve-step-n{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--blue-light);color:#fff;font-family:'Sora',sans-serif;font-size:17px;font-weight:800;margin-bottom:15px;}
.ve-step h3{font-size:16.5px;color:#fff;margin-bottom:8px;}
.ve-step p{font-size:15.5px;line-height:1.75;color:#c3d0e2;}

/* ---- proof ---- */
.ve-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:26px;}
.ve-metric{background:#fff;border:1px solid var(--gray-200);border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:5px;}
.ve-metric-ic{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:11px;background:#EAF4FD;color:var(--blue);margin-bottom:6px;}
.ve-metric-ic svg{width:19px;height:19px;}
.ve-metric-n{font-family:'Sora',sans-serif;font-size:21px;font-weight:800;color:var(--navy);line-height:1.2;}
.ve-metric-l{font-size:13px;color:var(--gray-600);line-height:1.5;}
.ve-case{max-width:none;}

/* ---- system context ---- */
.ve-context-right{display:flex;flex-direction:column;align-items:flex-start;gap:22px;}
.ve-split-context .sys-pills{margin:0;}

/* ---- faq in two columns ---- */
.ve-faq{max-width:1100px;display:grid;grid-template-columns:1fr 1fr;gap:14px 20px;align-content:start;}
.ve-faq .faq-item{margin-bottom:0;height:fit-content;}

@media(max-width:980px){
  .ve-split,.ve-split-problem,.ve-split-context{grid-template-columns:1fr;gap:32px;}
  .ve-deliver{grid-template-columns:1fr;}
  .ve-excl{position:static;}
  .ve-halves{grid-template-columns:1fr;}
  .ve-plus{padding:2px 0;}
  .ve-steps{grid-template-columns:1fr;gap:22px;}
  .ve-step:not(:last-child)::after{display:none;}
  .ve-metrics{grid-template-columns:repeat(2,1fr);}
  .ve-faq{grid-template-columns:1fr;}
}
@media(max-width:600px){
  .ve-serp{grid-template-columns:1fr;}
  .ve-metrics{grid-template-columns:1fr;}
  .ve-answer{padding-left:18px;}
  .ve-answer h2{font-size:22px;}
}

/* ==================================================================
   LOCAL VISIBILITY CASE STUDY
   ================================================================== */
.cs-hero{max-width:1000px;}
.cs-hero h1{margin-bottom:16px;}
.cs-hero .sub{max-width:760px;}
.cs-meta{display:flex;flex-wrap:wrap;gap:10px;margin:26px 0 30px;}
.cs-meta div{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:11px;padding:10px 15px;display:flex;flex-direction:column;gap:3px;}
.cs-meta span{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.55);font-family:'Sora',sans-serif;font-weight:700;}
.cs-meta b{font-family:'Sora',sans-serif;font-size:13.5px;color:#fff;font-weight:700;}
.cs-heads{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.cs-head{background:#fff;border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:4px;}
.cs-head-n{font-family:'Sora',sans-serif;font-size:23px;font-weight:800;color:var(--navy);line-height:1.15;}
.cs-head-l{font-family:'Sora',sans-serif;font-size:12.5px;font-weight:700;color:var(--navy);}
.cs-head-s{font-size:12.5px;color:var(--gray-600);line-height:1.5;}

.cs-quote{margin:22px 0 0;padding:18px 22px;background:#FFF8EC;border-left:3px solid var(--gold);border-radius:0 10px 10px 0;font-family:'Sora',sans-serif;font-size:16px;font-weight:700;color:var(--navy);line-height:1.55;}
.dark-section .cs-quote{background:rgba(245,166,35,.10);color:#fff;}

.cs-panel{background:#fff;border:1px solid var(--gray-200);border-radius:16px;padding:26px 28px 22px;}
.cs-panel h3{font-size:16px;color:var(--navy);padding-bottom:12px;border-bottom:2px solid var(--navy);margin-bottom:4px;}
.cs-row{display:flex;justify-content:space-between;gap:16px;align-items:baseline;padding:11px 0;border-top:1px solid var(--gray-100);}
.cs-row:first-of-type{border-top:none;}
.cs-row span{font-size:14.5px;color:var(--gray-600);}
.cs-row b{font-family:'Sora',sans-serif;font-size:14px;color:var(--navy);text-align:right;}

.cs-insight{margin-top:22px;background:rgba(46,141,232,.12);border:1px solid rgba(46,141,232,.32);border-radius:14px;padding:20px 22px;}
.cs-insight-l{display:block;font-family:'Sora',sans-serif;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#8CC8F5;margin-bottom:8px;}
.cs-insight p{font-size:16px;line-height:1.7;color:#fff;}

.cs-tracks{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;max-width:1060px;margin:0 auto;}
.cs-track{background:#fff;border:1px solid var(--gray-200);border-radius:16px;padding:26px 26px 24px;}
.cs-track-n{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:11px;background:var(--navy);color:var(--gold);font-family:'Sora',sans-serif;font-size:14px;font-weight:800;margin-bottom:14px;}
.cs-track h3{font-size:17px;color:var(--navy);margin-bottom:9px;}
.cs-track p{font-size:15.5px;line-height:1.7;color:#3D4A5C;}

.cs-maps{display:grid;grid-template-columns:1fr 1fr;gap:26px;max-width:1240px;margin:0 auto;}
.cs-map{margin:0;background:#fff;border:1px solid var(--gray-200);border-radius:18px;padding:16px;box-shadow:0 14px 34px rgba(13,43,78,0.07);}
.cs-map img{width:100%;height:auto;display:block;border-radius:10px;}
.cs-map figcaption{display:flex;flex-direction:column;gap:3px;padding:14px 4px 4px;}
.cs-map figcaption b{font-family:'Sora',sans-serif;font-size:16px;color:var(--navy);}
.cs-map figcaption span{font-size:15px;color:var(--gray-600);}
.cs-legend{display:flex;justify-content:center;flex-wrap:wrap;gap:22px;margin-top:22px;}
.cs-legend span{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;color:var(--gray-600);}
.cs-dot{width:11px;height:11px;border-radius:50%;display:inline-block;}
.cs-dot-1{background:#22A45D;}
.cs-dot-2{background:#F5A623;}
.cs-dot-3{background:#DC5555;}

.cs-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;max-width:1000px;margin:0 auto;}
.cs-action{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:22px;text-align:center;}
.cs-action-n{display:block;font-family:'Sora',sans-serif;font-size:30px;font-weight:800;color:var(--gold);line-height:1.1;margin-bottom:5px;}
.cs-action-l{font-size:14px;color:#c3d0e2;}
.cs-actions-note{max-width:800px;margin:26px auto 0;text-align:center;font-size:16px;line-height:1.75;color:#c3d0e2;}
.cs-actions-note strong{color:#fff;}

.cs-takes{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;max-width:1060px;margin:0 auto;}
.cs-take{background:#F6F9FC;border:1px solid var(--gray-200);border-radius:16px;padding:24px 26px;}
.cs-take h3{font-size:16.5px;color:var(--navy);margin-bottom:9px;line-height:1.35;}
.cs-take p{font-size:15.5px;line-height:1.7;color:#3D4A5C;}
.cs-disclosure{max-width:860px;margin:26px auto 0;text-align:center;font-size:14px;line-height:1.75;color:var(--gray-600);}
.cta-bg .cta-foot a{color:var(--gold);text-decoration:none;border-bottom:1px solid rgba(245,166,35,.4);}
.cta-bg .cta-foot a:hover{color:#fff;border-bottom-color:#fff;}

@media(max-width:980px){
  .cs-heads{grid-template-columns:repeat(2,1fr);}
  .cs-tracks,.cs-takes,.cs-maps{grid-template-columns:1fr;}
  .cs-actions{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:560px){
  .cs-heads{grid-template-columns:1fr;}
  .cs-actions{grid-template-columns:1fr;}
}

.ve-caselink{background:#fff;border:1px solid var(--gray-200);border-radius:16px;padding:30px 32px;text-align:center;max-width:760px;margin:0 auto;}
.ve-caselink p{font-size:17px;line-height:1.75;color:#3D4A5C;margin-bottom:20px;}
.ve-caselink-note{display:block;margin-top:18px;font-size:14px;line-height:1.7;color:var(--gray-600);}

/* Case study hero spacing: the pill sat too far from the headline. */
.cs-hero .eh-badge{margin-bottom:12px;}
.cs-hero h1{font-size:clamp(28px,3.4vw,40px);line-height:1.16;color:#fff;font-weight:800;margin:0 0 12px;}
.cs-hero h1 em{font-style:normal;background:linear-gradient(90deg,var(--gold),#FFD580,var(--gold));background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.cs-hero .sub{font-size:16.5px;color:#cdd9ea;line-height:1.65;max-width:720px;margin:0;}
.cs-meta{margin:22px 0 22px;}
#maps .wrap{max-width:1300px;}

/* Footer intro: constrain the measure so the brand column matches
   the link columns rather than running edge to edge. */
.footer-brand p{max-width:70%;padding-right:24px;}
@media(max-width:900px){.footer-brand p{max-width:100%;padding-right:0;}}

/* ------------------------------------------------------------------
   Compact deliverables. The numbered spec sheet read like a proposal,
   so on the Visibility page the same list runs as short scannable
   lines in two columns. Nothing removed, only condensed.
   ------------------------------------------------------------------ */
.spec-compact .spec-group{padding:4px 24px 18px;margin-bottom:16px;}
.spec-compact .spec-head{padding:18px 0 10px;border-bottom-width:1.5px;}
.spec-compact .spec-head h3{font-size:15.5px;}
.spec-compact .spec-sub{padding:14px 0 2px;font-size:10.5px;}
.spec-compact .spec-items{column-count:2;column-gap:30px;}
.spec-compact .spec-item{display:block;padding:6px 0 6px 17px;position:relative;border-top:none;break-inside:avoid;-webkit-column-break-inside:avoid;page-break-inside:avoid;}
.spec-compact .spec-item::before{content:'';position:absolute;left:0;top:15px;width:5px;height:5px;border-radius:50%;background:var(--gold);}
.spec-compact .spec-n{display:none;}
.spec-compact .spec-t{font-size:14px;line-height:1.55;}
@media(max-width:760px){.spec-compact .spec-items{column-count:1;}}

/* Hero secondary button. The default .btn-ghost is transparent with a
   backdrop-filter, so it picks up the blurred blue and gold orbs behind it and
   reads purple. Solid brand blue instead, glowing on hover like .btn-gold. */
.eng-hero .btn-ghost,.cs-hero .btn-ghost{background:linear-gradient(135deg,var(--blue),var(--blue-light));border:1.5px solid transparent;color:#fff;backdrop-filter:none;box-shadow:0 4px 20px rgba(26,111,191,.35);}
.eng-hero .btn-ghost:hover,.cs-hero .btn-ghost:hover{background:linear-gradient(135deg,var(--blue),var(--blue-light));border-color:transparent;transform:translateY(-2px);box-shadow:0 8px 30px rgba(26,111,191,.55);}

/* Automatic cluster (silo) links. */
.lf-silo{background:#F6F9FC;}
.lf-silo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;max-width:1000px;margin:0 auto;}
.lf-silo-card{display:block;background:#fff;border:1px solid var(--gray-200);border-radius:14px;padding:20px 22px;text-decoration:none;transition:transform .22s,box-shadow .22s,border-color .22s;}
.lf-silo-card:hover{transform:translateY(-3px);box-shadow:0 14px 32px rgba(13,43,78,.10);border-color:var(--blue);}
.lf-silo-card span{display:block;font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;font-weight:700;color:var(--gray-600);margin-bottom:7px;}
.lf-silo-card h3{font-size:16px;line-height:1.4;color:var(--navy);margin:0;}
.lf-silo-pillar{background:var(--navy);border-color:var(--navy);}
.lf-silo-pillar span{color:var(--gold);}
.lf-silo-pillar h3{color:#fff;}
@media(max-width:900px){.lf-silo-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:600px){.lf-silo-grid{grid-template-columns:1fr;}}

.lf-byline-sec{padding:46px 0 56px;}
.lf-byline-sec .lf-author{margin-top:0;}

/* nav-cta hover fix.
   engine.css has .nav-cta:hover{color:#fff} at specificity 0,2,0 but
   .nav-links a:hover{color:var(--blue)} is 0,2,1 and wins, turning the label
   dark blue on a dark blue button. Raise specificity and add a hover glow to
   match .btn-gold. */
.nav-links a.nav-cta,.nav-links a.nav-cta:link,.nav-links a.nav-cta:visited,.nav-links a.nav-cta:hover,.nav-links a.nav-cta:focus,.nav-links a.nav-cta:active{color:#fff;}
.nav-links a.nav-cta{transition:transform .25s,box-shadow .25s;}
.nav-links a.nav-cta:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(26,111,191,.45);}
.mobile-menu a.mm-cta,.mobile-menu a.mm-cta:hover{color:#fff;}

/* Readability. Review flagged body text as small against the whitespace. */
.inc-card p{font-size:14.5px;line-height:1.65;}
.inc-card h3{font-size:15.5px;}
.lf-table td{font-size:15.5px;line-height:1.6;}
.lf-table th{font-size:14px;}
.answer-block p{font-size:16.5px;}
.faq-a-inner{font-size:15.5px;line-height:1.75;}
.faq-q h3{font-size:15.5px;}

/* Tighten vertical rhythm ~13% on industry pages only. */
body.page-template-industry section{padding:64px 0;}
body.page-template-industry .section-head{margin-bottom:32px;}
@media(max-width:768px){body.page-template-industry section{padding:48px 0;}}

.lf-topline{font-size:14px;color:#A8BED8;margin:-6px 0 22px;}
.lf-topline a{color:var(--gold);font-weight:700;text-decoration:none;}
.lf-topline a:hover{text-decoration:underline;}
.lf-topline span{opacity:.5;margin:0 4px;}

/* Hero heading styles for templates that do NOT load blog.css.
   engine.css only colours .eh-inner h1, so a .lf-post-head hero on the
   standard template rendered dark text on a dark background. */
.lf-post-head h1{font-size:clamp(28px,3.6vw,42px);line-height:1.16;color:#fff;font-weight:800;margin-bottom:16px;}
.lf-post-head h1 em{font-style:normal;background:linear-gradient(90deg,var(--gold),#FFD580,var(--gold));background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.lf-post-head p.sub{font-size:16.5px;color:#cdd9ea;line-height:1.65;max-width:640px;}
.lf-post-head .breadcrumb,.lf-post-head .breadcrumb a{color:#A8BED8;}

/* Response-time pill */
.lf-sla{display:inline-flex;align-items:center;gap:9px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:9px 18px;margin-top:20px;}
.lf-sla b{color:var(--gold);font-size:14px;font-family:'Sora',sans-serif;}
.lf-sla span{color:#cdd9ea;font-size:14px;}
.lf-sla-dot{width:8px;height:8px;border-radius:50%;background:#4ADE9A;box-shadow:0 0 0 4px rgba(74,222,154,.18);}

/* Solo hero: no right-hand visual. */
.eh-inner.lf-hero-solo{grid-template-columns:1fr;}
.eh-inner.lf-hero-solo p.sub{max-width:660px;}
/* Breathing room between the SLA pill and the buttons. */
.lf-sla{margin-bottom:26px;}
.lf-sla + .eh-cta-row{margin-top:0;}
/* Citation strip, so it never renders as a bare white band between sections. */
.lf-cite{padding:28px 0;background:#F6F9FC;}
.lf-cite p{font-size:13.5px;color:var(--gray-600);text-align:center;max-width:760px;margin:0 auto;line-height:1.7;}
.lf-cite a{color:var(--blue);text-decoration:underline;}

.lf-form-alt{text-align:center;font-size:14.5px;color:var(--gray-600);margin:18px auto 0;max-width:720px;}
.lf-form-alt a{color:var(--blue);text-decoration:underline;font-weight:600;}

/* Desktop-only line break in hero headings. Hidden on mobile, where the
   heading wraps naturally and a forced break looks wrong. */
.lf-br{display:none;}
@media(min-width:901px){.lf-br{display:block;}}
