/*
Theme Name: Law Ops Forge
Theme URI: https://lawopsforge.com/
Author: Law Ops Forge
Author URI: https://lawopsforge.com/
Description: A self-contained, SEO/AIO-engineered WordPress theme for Law Ops Forge, the client-intake engine for law firm owners: staffing, training, Google Local Services Ads, and legal technology in one accountable partner.
Version: 1.0.0
Requires at least: 6.2
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: lawopsforge
Tags: custom-menu, custom-logo, featured-images, translation-ready, accessibility-ready, block-styles, wide-blocks, threaded-comments
*/

/* ==========================================================================
   0. Design tokens. Change values here, not the rules below.
   ========================================================================== */
:root{
  /* Brand ink */
  --lof-navy-950:#02112B;
  --lof-navy-900:#051A3B;
  --lof-navy-800:#0A2350;
  --lof-navy-700:#123268;
  --lof-navy-100:#E7EDF8;

  /* Brand blue (existing identity, kept) */
  --lof-blue-600:#0B57CC;
  --lof-blue-500:#2E86FF;
  --lof-blue-400:#5FA3FF;
  --lof-blue-100:#DCE9FF;

  /* Copper accent: warm, classic-chambers counterweight to the blue */
  --lof-copper-700:#9C4A2E;
  --lof-copper-500:#C4693F;
  --lof-copper-300:#E0A17C;
  --lof-copper-100:#FBE9DE;

  /* Neutrals */
  --lof-ink:#101828;
  --lof-body:#3B4759;
  --lof-muted:#667085;
  --lof-line:#E3E8F0;
  --lof-paper:#FFFFFF;
  --lof-paper-alt:#F6F8FC;

  /* Semantic tokens (sections switch between these two palettes) */
  --lof-bg:var(--lof-paper);
  --lof-bg-alt:var(--lof-paper-alt);
  --lof-fg:var(--lof-ink);
  --lof-fg-muted:var(--lof-muted);
  --lof-border:var(--lof-line);
  --lof-accent:var(--lof-blue-500);
  --lof-accent-2:var(--lof-copper-500);

  /* Type */
  --lof-font-display:'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --lof-font-body:'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --lof-font-mono:'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;

  /* Rhythm */
  --lof-radius-sm:10px;
  --lof-radius-md:16px;
  --lof-radius-lg:28px;
  --lof-gap:clamp(1.5rem, 2vw + 1rem, 3rem);
  --lof-shadow-sm:0 1px 2px rgba(16,24,40,.06), 0 1px 3px rgba(16,24,40,.08);
  --lof-shadow-md:0 8px 24px rgba(10,35,80,.12);
  --lof-shadow-lg:0 24px 60px rgba(2,17,43,.22);
  --lof-container:1640px;
}

/* Dark sections (hero, CTA bands, footer) flip the semantic tokens */
.lof-section--dark, .lof-dark, .lof-hero, .lof-footer{
  --lof-bg:var(--lof-navy-950);
  --lof-bg-alt:var(--lof-navy-900);
  --lof-fg:#F6F8FC;
  --lof-fg-muted:#9FB0CE;
  --lof-border:rgba(255,255,255,.12);
}

/* ==========================================================================
   1. Reset / base
   ========================================================================== */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
body{margin:0;background:var(--lof-paper);color:var(--lof-ink);font-family:var(--lof-font-body);font-size:1.0625rem;line-height:1.65;-webkit-font-smoothing:antialiased}
img,svg{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
ul,ol{margin:0;padding:0;list-style:none}
button{font:inherit;cursor:pointer}
input,textarea,select{font:inherit}
h1,h2,h3,h4,h5,h6{font-family:var(--lof-font-display);font-weight:600;line-height:1.15;margin:0 0 .5em;color:var(--lof-fg)}
p{margin:0 0 1.1em;color:var(--lof-fg-muted)}
:focus-visible{outline:3px solid var(--lof-blue-400);outline-offset:2px}

.lof-skip-link{position:absolute;left:-999px;top:0;background:var(--lof-navy-950);color:#fff;padding:.9rem 1.4rem;z-index:200;border-radius:0 0 10px 0}
.lof-skip-link:focus{left:0}

/* ==========================================================================
   2. Layout helpers
   ========================================================================== */
.lof-container{max-width:var(--lof-container);margin-inline:auto;padding-inline:clamp(1.25rem,4vw,2.5rem)}
.lof-section{background:var(--lof-bg);color:var(--lof-fg);padding-block:clamp(3.5rem,7vw,6.5rem);position:relative}
.lof-section--tight{padding-block:clamp(2.5rem,4vw,4rem)}
.lof-section--alt{background:var(--lof-bg-alt)}

/* A pulse line dropped between a dark section and the light one that follows
   it (or vice versa), so the seam reads as a heartbeat instead of a hard cut
   from navy to white. Tiled SVG so it repeats cleanly at any width. */
@keyframes lofHeartbeatScroll{from{background-position:0 center}to{background-position:-84px center}}
@keyframes lofHeartbeatScrollReverse{from{background-position:0 center}to{background-position:84px center}}
@keyframes lofHeartbeatGlow{0%,100%{opacity:.55}50%{opacity:1}}
.lof-divider{height:22px;border:0;margin:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='84' height='22' viewBox='0 0 84 22'%3E%3Cpath d='M0,11 L28,11 L33,11 L37,3 L42,19 L46,11 L50,11 L54,15 L57,11 L84,11' fill='none' stroke='%232E86FF' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:repeat-x;background-position:0 center;position:relative;z-index:1;animation:lofHeartbeatScrollReverse 1.1s linear infinite,lofHeartbeatGlow 1.1s ease-in-out infinite}
.lof-section--dark+.lof-divider,.lof-divider+.lof-section--dark{filter:brightness(1.15)}

/* Every dark page-hero gets the same pulse line automatically at its lower
   edge, so interior pages breathe the same way the home page's manual
   dividers do. */
.lof-hero,.lof-page-hero.lof-section--dark{position:relative}
.lof-hero::after,.lof-page-hero.lof-section--dark::after{content:"";position:absolute;left:0;right:0;bottom:0;height:22px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='84' height='22' viewBox='0 0 84 22'%3E%3Cpath d='M0,11 L28,11 L33,11 L37,3 L42,19 L46,11 L50,11 L54,15 L57,11 L84,11' fill='none' stroke='%235FA3FF' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:repeat-x;background-position:0 center;animation:lofHeartbeatScroll 1.1s linear infinite,lofHeartbeatGlow 1.1s ease-in-out infinite}
.lof-grid{display:grid;gap:var(--lof-gap)}
/* Explicit, deterministic column counts per breakpoint instead of auto-fit:
   auto-fit computes track count from the minimum size alone, so a container
   wide enough for 5 tracks but holding only 4 items leaves the row visually
   short of full width instead of stretching evenly. Fixed counts always
   fill the container. */
.lof-grid--2,.lof-grid--3,.lof-grid--4{grid-template-columns:1fr}
@media (min-width:640px){
  .lof-grid--2,.lof-grid--3,.lof-grid--4{grid-template-columns:repeat(2,1fr)}
}
@media (min-width:940px){
  .lof-grid--3,.lof-grid--4{grid-template-columns:repeat(3,1fr)}
}
@media (min-width:1180px){
  .lof-grid--4{grid-template-columns:repeat(4,1fr)}
}
.lof-grid--sidebar{grid-template-columns:1fr;align-items:start}
@media (min-width:900px){.lof-grid--sidebar{grid-template-columns:2fr 1fr}}
.lof-grid--sidebar-wide{grid-template-columns:1fr}
@media (min-width:900px){.lof-grid--sidebar-wide{grid-template-columns:1.2fr 1fr}}
.lof-flex{display:flex;align-items:center;gap:.75rem}
.lof-visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}

/* ==========================================================================
   3. Type components
   ========================================================================== */
.lof-eyebrow{display:inline-flex;align-items:center;font-family:var(--lof-font-mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--lof-accent-2);margin-bottom:1.1rem}
.lof-section--dark .lof-eyebrow{color:var(--lof-blue-400)}
.lof-h1{font-size:clamp(2.3rem,4vw + 1rem,3.6rem);letter-spacing:-.01em}
.lof-h2{font-size:clamp(1.8rem,2.4vw + 1rem,2.6rem);letter-spacing:-.01em}
.lof-h3{font-size:clamp(1.25rem,1vw + 1rem,1.5rem)}
.lof-lede{font-size:1.2rem;color:var(--lof-fg-muted);max-width:62ch}
.lof-accent-text{color:var(--lof-accent)}
.lof-section--dark .lof-accent-text{background:linear-gradient(90deg,var(--lof-blue-400),var(--lof-copper-300));-webkit-background-clip:text;background-clip:text;color:transparent}

/* ==========================================================================
   4. Buttons
   ========================================================================== */
.lof-btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;padding:.95rem 1.6rem;border-radius:999px;font-weight:700;font-size:.98rem;border:1px solid transparent;transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease,color .18s ease;white-space:nowrap}
.lof-btn:hover{transform:translateY(-1px)}
.lof-btn--primary{background:linear-gradient(135deg,var(--lof-blue-500),var(--lof-blue-600));color:#fff;box-shadow:var(--lof-shadow-md)}
.lof-btn--primary:hover{box-shadow:0 14px 32px rgba(11,87,204,.32)}
.lof-btn--ghost{background:transparent;border-color:var(--lof-border);color:var(--lof-fg)}
.lof-section--dark .lof-btn--ghost{border-color:rgba(255,255,255,.28)}
.lof-btn--ghost:hover{border-color:var(--lof-accent)}
.lof-btn--copper{background:linear-gradient(135deg,var(--lof-copper-300),var(--lof-copper-500));color:var(--lof-navy-950)}
.lof-btn--sm{padding:.6rem 1.1rem;font-size:.88rem}
.lof-btn--block{width:100%}

/* ==========================================================================
   5. Header / nav
   ========================================================================== */
.lof-topbar{background:var(--lof-navy-950);color:#B9C6E4;font-family:var(--lof-font-mono);font-size:.76rem;letter-spacing:.04em}
.lof-topbar .lof-container{display:flex;justify-content:space-between;align-items:center;padding-block:.55rem;gap:1rem;flex-wrap:wrap}
.lof-topbar a{color:var(--lof-blue-400)}

.lof-header{position:sticky;top:0;z-index:100;background:rgba(2,17,43,.92);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.08)}
.lof-header .lof-container{display:flex;align-items:center;justify-content:space-between;padding-block:.75rem;gap:2rem}
.lof-brand{display:flex;align-items:center;gap:.75rem;font-family:var(--lof-font-display);font-weight:600;font-size:1rem;color:#fff}
.lof-brand .lof-brand-mark{width:54px;height:54px;flex:none;object-fit:contain}
.lof-brand-accent{background:linear-gradient(90deg,var(--lof-blue-400),var(--lof-copper-300));-webkit-background-clip:text;background-clip:text;color:transparent}

.lof-nav{display:none}
.lof-nav>ul{display:flex;align-items:center;gap:2.1rem}
.lof-nav a{color:#D7E1F5;font-size:1.02rem;font-weight:500;transition:color .15s ease;display:flex;align-items:center;gap:.3rem;white-space:nowrap}
.lof-nav a:hover,.lof-nav a[aria-current="page"]{color:#fff}
.lof-nav li.menu-item-has-children{position:relative}
.lof-nav li.menu-item-has-children>a::after{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-top:-3px;opacity:.7}
.lof-nav .sub-menu{list-style:none;margin:0;padding:.6rem;display:none;position:absolute;top:100%;left:50%;transform:translateX(-50%);min-width:220px;background:var(--lof-navy-900);border:1px solid rgba(255,255,255,.1);border-radius:14px;margin-top:.75rem;box-shadow:var(--lof-shadow-lg);flex-direction:column;gap:0}
.lof-nav li.menu-item-has-children:hover .sub-menu,.lof-nav li.menu-item-has-children:focus-within .sub-menu,.lof-nav li.menu-item-has-children.is-open .sub-menu{display:flex}
.lof-nav .sub-menu a{display:block;padding:.6rem .75rem;border-radius:8px;font-size:.88rem}
.lof-nav .sub-menu a:hover{background:rgba(255,255,255,.06)}

.lof-header-cta{display:flex;align-items:center;gap:1.5rem}
.lof-header-cta .lof-btn{display:none}
.lof-header-phone{display:none;align-items:center;gap:.45rem;color:#fff;font-weight:700;font-family:var(--lof-font-body);font-size:1.1rem}
.lof-header-phone svg{width:18px;height:18px;color:var(--lof-blue-400);flex:none}
.lof-brand span{white-space:nowrap}
.lof-nav-toggle{display:inline-flex;background:none;border:1px solid rgba(255,255,255,.25);border-radius:10px;padding:.5rem;color:#fff}
.lof-nav-toggle svg{width:22px;height:22px}

.lof-mobile-nav{position:fixed;inset:0;background:var(--lof-navy-950);z-index:150;padding:1.5rem;transform:translateY(-100%);transition:transform .25s ease;overflow-y:auto}
.lof-mobile-nav.is-open{transform:translateY(0)}
.lof-mobile-nav ul{display:flex;flex-direction:column;gap:.25rem}
.lof-mobile-nav a{display:block;padding:.9rem .25rem;color:#fff;font-size:1.1rem;border-bottom:1px solid rgba(255,255,255,.08)}
.lof-mobile-nav .lof-mobile-close{margin-left:auto;display:flex}

@media (min-width:560px){
  .lof-header-cta .lof-btn{display:inline-flex}
  .lof-brand{font-size:1.2rem}
}
@media (min-width:1180px){
  .lof-nav{display:block}
  .lof-header-phone{display:flex}
  .lof-nav-toggle{display:none}
}
@media (min-width:1450px){
  .lof-nav>ul{gap:2.5rem}
  .lof-header-cta{gap:2rem}
}

/* ==========================================================================
   6. Hero
   ========================================================================== */
.lof-hero{background:radial-gradient(120% 140% at 15% -10%,rgba(46,134,255,.28),transparent 55%),radial-gradient(90% 90% at 100% 0%,rgba(200,155,60,.18),transparent 60%),var(--lof-navy-950);color:#fff;padding-block:clamp(3rem,7vw,6rem);overflow:hidden}
.lof-hero-grid{display:grid;grid-template-columns:1fr;gap:3rem;align-items:center}
@media (min-width:1000px){.lof-hero-grid{grid-template-columns:1.1fr .9fr}}
.lof-hero h1{color:#fff}
.lof-hero .lof-lede{color:#C3D1EC}
.lof-hero-actions{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2rem}
.lof-hero-stats{display:flex;flex-wrap:wrap;gap:.85rem 1.5rem;margin-top:2rem;font-size:.86rem;color:#B9C6E4}
.lof-hero-stats li{display:flex;align-items:center;gap:.5rem;white-space:nowrap}
.lof-hero-stats .lof-dot{width:7px;height:7px;border-radius:50%;background:var(--lof-blue-400)}

.lof-hero-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.14);border-radius:var(--lof-radius-lg);padding:1.6rem;backdrop-filter:blur(6px);display:flex;flex-direction:column;height:100%}
.lof-hero-card-cta{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;text-align:center;border:1px dashed rgba(95,163,255,.4);border-radius:var(--lof-radius-md);margin-top:1.25rem;padding:1.5rem 1.25rem;color:#fff;font-family:var(--lof-font-display);font-weight:600;font-size:1.02rem;transition:background .2s ease,border-color .2s ease}
.lof-hero-card-cta:hover{background:rgba(95,163,255,.1);border-color:rgba(95,163,255,.7)}
.lof-hero-card-cta svg{width:20px;height:20px;color:var(--lof-blue-400)}
.lof-hero-card-head{display:flex;justify-content:space-between;align-items:center;font-family:var(--lof-font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:#93A5CC;margin-bottom:1rem}
.lof-hero-live{display:inline-flex;align-items:center;gap:.4rem;color:var(--lof-blue-400);padding:.3rem .7rem;border-radius:999px;animation:lofLiveFlash 1.8s ease-in-out infinite}
.lof-hero-live::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--lof-blue-400);animation:lofPulse 1.8s infinite}
@keyframes lofPulse{0%,100%{opacity:1}50%{opacity:.35}}
@keyframes lofLiveFlash{0%,100%{background:rgba(95,163,255,.1);box-shadow:0 0 0 0 rgba(95,163,255,.4)}50%{background:rgba(95,163,255,.22);box-shadow:0 0 0 5px rgba(95,163,255,0)}}
.lof-hero-lead{background:rgba(255,255,255,.05);border-radius:var(--lof-radius-md);padding:1rem;display:flex;gap:.85rem;align-items:flex-start}
.lof-hero-lead-badge{width:38px;height:38px;border-radius:10px;background:linear-gradient(135deg,var(--lof-blue-500),var(--lof-blue-600));display:flex;align-items:center;justify-content:center;font-family:var(--lof-font-mono);font-weight:700;font-size:.78rem;color:#fff;flex:none}
.lof-hero-lead strong{color:#fff;display:block;font-size:.96rem;transition:opacity .2s ease}
.lof-hero-lead span{color:#9FB0CE;font-size:.82rem;transition:opacity .2s ease}
#lof-live-demo.is-refreshing .lof-hero-lead strong,
#lof-live-demo.is-refreshing .lof-hero-lead span,
#lof-live-demo.is-refreshing .lof-hero-metric b{opacity:.35}
.lof-hero-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-top:1.2rem}
.lof-hero-metric{text-align:center;background:rgba(255,255,255,.04);border-radius:12px;padding:.85rem .5rem}
.lof-hero-metric b{display:block;font-family:var(--lof-font-mono);font-size:1.3rem;color:#fff;transition:opacity .2s ease}
.lof-hero-metric span{font-size:.72rem;color:#93A5CC;letter-spacing:.04em}

/* ==========================================================================
   7. Cards
   ========================================================================== */
.lof-card{display:flex;flex-direction:column;background:var(--lof-paper);border:1px solid var(--lof-border);border-radius:var(--lof-radius-md);padding:2rem;box-shadow:var(--lof-shadow-sm);transition:transform .2s ease,box-shadow .2s ease}
.lof-grid>.lof-card{height:100%}
.lof-card:hover{transform:translateY(-4px);box-shadow:var(--lof-shadow-md)}
.lof-section--dark .lof-card{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.1)}
.lof-card-icon{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--lof-blue-100),#fff);color:var(--lof-blue-600);margin-bottom:1.25rem}
.lof-section--dark .lof-card-icon{background:linear-gradient(135deg,rgba(46,134,255,.22),rgba(200,155,60,.14));color:var(--lof-blue-400)}
.lof-card-icon svg{width:26px;height:26px}
.lof-card-num{font-family:var(--lof-font-mono);font-size:.78rem;color:var(--lof-accent-2);letter-spacing:.06em;margin-bottom:.6rem;display:block}
.lof-card ul{margin-top:1rem;display:flex;flex-direction:column;gap:.5rem}
.lof-card ul li{display:flex;align-items:center;gap:.55rem;font-size:.9rem;color:var(--lof-fg-muted)}
.lof-card ul li svg{width:16px;height:16px;color:var(--lof-accent);flex:none}
.lof-card-link{display:inline-flex;align-items:center;gap:.4rem;margin-top:auto;padding-top:1.3rem;font-weight:700;color:var(--lof-accent);font-size:.92rem}

/* Problem/agitation tiles */
.lof-pain-card{border-left:3px solid var(--lof-copper-500)}

/* Process steps */
.lof-steps{counter-reset:lof-step}
.lof-step{position:relative;padding-left:3.2rem}
.lof-step::before{counter-increment:lof-step;content:counter(lof-step,decimal-leading-zero);position:absolute;left:0;top:0;font-family:var(--lof-font-mono);font-size:1.1rem;color:var(--lof-accent-2);border:1px solid var(--lof-border);border-radius:10px;width:2.4rem;height:2.4rem;display:flex;align-items:center;justify-content:center}

/* Testimonials */
.lof-quote{font-family:var(--lof-font-display);font-size:1.2rem;color:var(--lof-fg);line-height:1.5}
.lof-quote-attr{margin-top:1.2rem;display:flex;align-items:center;gap:.75rem;font-size:.85rem;color:var(--lof-fg-muted)}
.lof-quote-avatar{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--lof-blue-500),var(--lof-copper-500));color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--lof-font-mono);font-weight:700;font-size:.8rem}
.lof-placeholder-note{font-family:var(--lof-font-mono);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--lof-accent-2);margin-top:1.5rem;padding-top:1rem;border-top:1px dashed var(--lof-border)}

/* FAQ accordion */
.lof-faq-item{border-bottom:1px solid var(--lof-border)}
.lof-faq-q{width:100%;display:flex;justify-content:space-between;align-items:center;gap:1rem;text-align:left;background:none;border:0;padding:1.3rem 0;font-family:var(--lof-font-body);font-weight:700;font-size:1.02rem;color:var(--lof-fg)}
.lof-faq-q svg{flex:none;width:20px;height:20px;transition:transform .2s ease;color:var(--lof-accent)}
.lof-faq-item.is-open .lof-faq-q svg{transform:rotate(45deg)}
.lof-faq-a{max-height:0;overflow:hidden;transition:max-height .25s ease}
.lof-faq-a-inner{padding-bottom:1.3rem;color:var(--lof-fg-muted)}

/* Stat strip */
.lof-stat-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1.5rem;text-align:center}
.lof-stat-strip b{display:block;font-family:var(--lof-font-mono);font-size:2rem;color:var(--lof-accent-2)}
.lof-section--dark .lof-stat-strip b{color:var(--lof-blue-400)}
.lof-stat-strip span{font-size:.8rem;color:var(--lof-fg-muted);text-transform:uppercase;letter-spacing:.05em}

/* Fractional COO self-assessment */
.lof-assess-progress{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;font-family:var(--lof-font-mono);font-size:.82rem;color:var(--lof-fg-muted)}
.lof-assess-progress-bar{flex:1;height:6px;margin:0 1rem;border-radius:999px;background:var(--lof-border);overflow:hidden}
.lof-assess-progress-fill{height:100%;width:0%;background:linear-gradient(90deg,var(--lof-blue-500),var(--lof-copper-500));transition:width .2s ease}
.lof-assess-grid{display:grid;grid-template-columns:1fr;gap:1.5rem}
@media (min-width:700px){.lof-assess-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1100px){.lof-assess-grid{grid-template-columns:repeat(3,1fr)}}
.lof-assess-category{background:var(--lof-paper);border:1px solid var(--lof-border);border-radius:var(--lof-radius-md);padding:1.5rem}
.lof-assess-category h3{font-size:1rem;margin-bottom:1rem}
.lof-assess-item{display:flex;align-items:flex-start;gap:.65rem;padding:.55rem 0;font-size:.92rem;color:var(--lof-body);cursor:pointer;border-top:1px solid var(--lof-border)}
.lof-assess-item:first-of-type{border-top:0}
.lof-assess-item input{margin-top:.25rem;flex:none;width:17px;height:17px;accent-color:var(--lof-blue-500)}
.lof-assess-submit-row{text-align:center;margin-top:2.5rem}
.lof-assess-result{margin-top:2.5rem;background:var(--lof-navy-950);color:#fff;border-radius:var(--lof-radius-lg);padding:clamp(1.75rem,3vw,2.75rem);text-align:center}
.lof-assess-result h3{color:#fff;font-size:1.6rem}
.lof-assess-result p{color:#C3D1EC;max-width:60ch;margin-inline:auto}
.lof-assess-result-score{font-family:var(--lof-font-mono);font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:var(--lof-blue-400);margin-bottom:.75rem}
.lof-assess-result .lof-btn{margin-top:1.5rem}

/* Calculator */
.lof-calc{background:var(--lof-paper);border:1px solid var(--lof-border);border-radius:var(--lof-radius-lg);padding:clamp(1.75rem,3vw,2.75rem);box-shadow:var(--lof-shadow-md)}
.lof-calc-grid{display:grid;gap:2rem}
@media (min-width:800px){.lof-calc-grid{grid-template-columns:1fr 1fr}}
.lof-calc-field{margin-bottom:1.3rem}
.lof-calc-field label{display:flex;justify-content:space-between;font-weight:700;font-size:.9rem;margin-bottom:.5rem;color:var(--lof-fg)}
.lof-calc-field output{font-family:var(--lof-font-mono);color:var(--lof-accent)}
.lof-calc-field input[type="range"]{width:100%;accent-color:var(--lof-blue-500)}
.lof-calc-result{background:var(--lof-navy-950);color:#fff;border-radius:var(--lof-radius-md);padding:1.75rem;text-align:center}
.lof-calc-result b{display:block;font-family:var(--lof-font-mono);font-size:2.6rem;background:linear-gradient(90deg,var(--lof-blue-400),var(--lof-copper-300));-webkit-background-clip:text;background-clip:text;color:transparent}
.lof-calc-result span{font-size:.82rem;color:#9FB0CE;text-transform:uppercase;letter-spacing:.05em}
.lof-calc-note{font-size:.78rem;color:var(--lof-fg-muted);margin-top:1rem}

/* CTA band */
.lof-cta-band{text-align:center}
.lof-cta-band .lof-h2{max-width:38ch;margin-inline:auto}
.lof-cta-band .lof-lede{margin-inline:auto}
.lof-cta-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:1rem;margin-top:2rem}

/* Breadcrumbs */
.lof-breadcrumbs{font-family:var(--lof-font-mono);font-size:.78rem;color:var(--lof-fg-muted);display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin-bottom:1.5rem}
.lof-breadcrumbs a{color:var(--lof-accent)}

/* Page hero (interior pages, lighter than home hero) */
.lof-page-hero{padding-block:clamp(3rem,6vw,5rem)}
.lof-page-hero .lof-h1{max-width:22ch}

/* Table (pricing/comparison) */
.lof-table{width:100%;border-collapse:collapse;overflow:hidden;border-radius:var(--lof-radius-md);box-shadow:var(--lof-shadow-sm)}
.lof-table th,.lof-table td{padding:1rem 1.25rem;text-align:left;border-bottom:1px solid var(--lof-border);font-size:.94rem}
.lof-table thead th{background:var(--lof-navy-950);color:#fff;font-family:var(--lof-font-mono);font-size:.76rem;text-transform:uppercase;letter-spacing:.05em}
.lof-table tbody tr:nth-child(even){background:var(--lof-bg-alt)}

/* Forms */
.lof-form-row{margin-bottom:1.25rem}
.lof-form-row label{display:block;font-weight:700;font-size:.88rem;margin-bottom:.45rem}
.lof-form-row input,.lof-form-row textarea,.lof-form-row select{width:100%;padding:.85rem 1rem;border:1px solid var(--lof-border);border-radius:10px;background:var(--lof-paper);color:var(--lof-ink)}
.lof-form-row input:focus,.lof-form-row textarea:focus{border-color:var(--lof-accent)}
.lof-form-hp{position:absolute;left:-9999px;opacity:0}
.lof-form-note{font-size:.82rem;color:var(--lof-fg-muted);margin-top:.5rem}
.lof-form-success{background:var(--lof-blue-100);border:1px solid var(--lof-blue-400);border-radius:12px;padding:1.25rem}

/* Sticky mobile call bar */
.lof-callbar{position:fixed;left:0;right:0;bottom:0;z-index:120;display:flex;background:var(--lof-navy-950);border-top:1px solid rgba(255,255,255,.1)}
.lof-callbar a{flex:1;text-align:center;padding:.95rem;color:#fff;font-weight:700;font-size:.92rem}
.lof-callbar a:first-child{background:linear-gradient(135deg,var(--lof-blue-500),var(--lof-blue-600))}
@media (min-width:960px){.lof-callbar{display:none}}
body.lof-has-callbar{padding-bottom:60px}
@media (min-width:960px){body.lof-has-callbar{padding-bottom:0}}

/* Blog */
.lof-post-card{display:flex;flex-direction:column;gap:.75rem}
.lof-post-meta{font-family:var(--lof-font-mono);font-size:.74rem;color:var(--lof-fg-muted);text-transform:uppercase;letter-spacing:.04em}
.lof-prose{max-width:72ch;font-size:1.06rem}
.lof-prose h2{margin-top:2.2em;font-size:1.6rem}
.lof-prose h3{margin-top:1.6em;font-size:1.25rem}
.lof-prose ul,.lof-prose ol{margin:0 0 1.4em;padding-left:1.3em;list-style:disc}
.lof-prose ol{list-style:decimal}
.lof-prose li{margin-bottom:.5em;color:var(--lof-fg-muted)}
.lof-prose a{color:var(--lof-blue-600);text-decoration:underline;text-underline-offset:3px}
.lof-toc{background:var(--lof-bg-alt);border:1px solid var(--lof-border);border-radius:var(--lof-radius-md);padding:1.5rem;margin-bottom:2.5rem}
.lof-toc a{display:block;padding:.3rem 0;color:var(--lof-accent);font-size:.92rem}

/* Footer */
.lof-footer{background:var(--lof-navy-950);color:#B9C6E4;padding-top:clamp(3rem,6vw,5rem)}
.lof-footer-top{display:grid;gap:2.5rem;grid-template-columns:1.4fr repeat(3,1fr)}
.lof-footer h4{color:#fff;font-family:var(--lof-font-mono);font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;margin-bottom:1.1rem}
.lof-footer ul{display:flex;flex-direction:column;gap:.6rem}
.lof-footer a{color:#B9C6E4;font-size:.92rem}
.lof-footer a:hover{color:#fff}
.lof-footer-brand p{color:#93A5CC;max-width:34ch}
.lof-footer-bottom{border-top:1px solid rgba(255,255,255,.1);margin-top:3rem;padding-block:1.5rem;display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;font-size:.82rem;color:#7C8EB4}
.lof-footer-bottom ul{flex-direction:row;flex-wrap:wrap;gap:1.2rem}
@media (max-width:860px){.lof-footer-top{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.lof-footer-top{grid-template-columns:1fr}}

/* Scroll reveal */
[data-lof-reveal]{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
[data-lof-reveal].is-visible{opacity:1;transform:none}

/* Icon defaults */
.lof-icon{width:20px;height:20px;flex:none;display:inline-block;vertical-align:-.15em}

/* 404 */
.lof-404{text-align:center;padding-block:clamp(4rem,10vw,8rem)}
.lof-404 .lof-h1{font-size:clamp(4rem,10vw,7rem);color:var(--lof-accent)}

/* Utility spacing */
.lof-mt-0{margin-top:0}
.lof-mb-0{margin-bottom:0}
.lof-center{text-align:center;margin-inline:auto}
