/* ═══════════════════════════════════════════════════════════════════
   Steady Hand — additions to lap-final-theme
   Los Angeles Paralegals · losangelesparalegals.org

   MUST load AFTER style.css. Several rules here intentionally override
   the theme (the light-first section rhythm in particular), so loading
   it first will silently undo the design.

   Palette (the only values that should appear):
     Ink          #241E1A    Paper        #FBF6EE
     Paper raised #FFF9F0    Sand         #F1E4D3
     Terracotta   #B4472C    Gold         #C9932F
     Bronze       #8A5A33    Rule         #E6DACA
     Body         #5C5049    Muted        #6E6259 / #8A7B6C

   Two colours are deliberately NOT in that list and must not be
   "corrected": Yelp red #FF1A1A and WhatsApp green #25D366 are
   third-party brand marks.

   No image paths appear in this file — all imagery is referenced from
   markup in partials/. If the images go to the Media Library rather
   than the theme folder, only those partials need editing.
   ═══════════════════════════════════════════════════════════════════ */

/* ── City Hall band — four-frame crossfade ─────────────────────────
   Pure CSS, no JS, no library. The stack works bottom-up: b4 is the
   permanent base, and b1-b3 sit above it fading OUT in turn to reveal
   what is beneath. That means there is never a frame where nothing is
   painted, so no flash on load and no gap at the loop point.
   36s cycle, 9s per frame, ~1s dissolves. Deliberately slow: this is
   atmosphere, not a slideshow demanding attention. */
.city-band{
  position:relative; margin-top:72px; background:#241E1A;
  line-height:0; overflow:hidden; height:340px;
}
.city-band img{
  position:absolute; inset:0; display:block;
  width:100%; height:100%;
  object-fit:cover; object-position:50% 42%;
  animation:36s linear infinite;
}
.city-band .b1{ z-index:4; animation-name:band-1; }
.city-band .b2{ z-index:3; animation-name:band-2; }
.city-band .b3{ z-index:2; animation-name:band-3; }
.city-band .b4{ z-index:1; animation:none; opacity:1; }

@keyframes band-1{ 0%,22%{opacity:1} 25%,97%{opacity:0} 100%{opacity:1} }
@keyframes band-2{ 0%,47%{opacity:1} 50%,97%{opacity:0} 100%{opacity:1} }
@keyframes band-3{ 0%,72%{opacity:1} 75%,97%{opacity:0} 100%{opacity:1} }

/* Anyone who has asked their system to reduce motion gets a single
   still frame rather than a paused blank. */
@media(prefers-reduced-motion:reduce){
  .city-band img{ animation:none; }
  .city-band .b1{ opacity:1; }
  .city-band .b2,.city-band .b3{ opacity:0; }
}

@media(max-width:980px){ .city-band{ height:210px; } }
@media(max-width:520px){ .city-band{ height:180px; } }

/* ── pleading rail — sand, numbered ────────────────────────────────
   Sand #E3CFAE rather than gold: gold sits too close to terracotta on
   the closing band, where warm-on-warm narrows the contrast. Sand
   holds against ink, paper and terracotta alike.
   Numerals restart at 28, the way California pleading paper does —
   that repetition is what makes it read as legal paper rather than a
   ruler. The rail sits in the outer margin, beneath the fixed nav. */
body{ position:relative; }
#rail{
  position:absolute; top:0; left:0; width:100%;
  pointer-events:none; z-index:6; overflow:hidden; color:#E3CFAE;
}
#rail .rule{ position:absolute; top:0; bottom:0; width:2px; background:currentColor; }
#rail .rule.r1{ left:4.15%; opacity:.82; }
#rail .rule.r2{ left:4.95%; opacity:.50; }
#rail .rule.r3{ left:95.4%; opacity:.34; }
#rail .num{
  position:absolute; left:0; width:3.5%; text-align:right; padding-right:14px;
  font-family:'Playfair Display',Georgia,serif; font-size:.78rem;
  line-height:1; opacity:.72; color:currentColor;
}

/* Below 980px the numerals cost width a phone cannot spare, so the
   rail thins to two hairlines hugging the edge at no cost to content. */
@media(max-width:980px){
  #rail .rule{ width:1px; }
  #rail .rule.r1{ left:10px; opacity:.58; }
  #rail .rule.r2{ left:15px; opacity:.34; }
  #rail .rule.r3{ display:none; }
  #rail .num{ display:none; }
}

/* ═══════════════════════════════════════════════════════════════════
   LIGHT-FIRST — Steady Hand section rhythm
   The live theme painted eight surfaces navy, so remapping navy to ink
   produced a page that was mostly black. Steady Hand is cream carrying
   ONE black band and ONE red band. This sheet restores that rhythm.

     header      cream        services     white
     band        cream        process      BLACK  ← the one dark band
     hero        cream        pricing      cream
     trust bar   RED          testimonials white
                              faq          cream
                              contact      RED    ← the closing band
                              footer       black
   ═══════════════════════════════════════════════════════════════════ */

/* ── header: cream ────────────────────────────────────────────────
   The logotype must go ink here. White Pacifico on cream is invisible;
   this is the one place the approved lockup has to adapt. */
#site-nav{
  background:#FBF6EE !important;
  border-bottom:1px solid #E6DACA;
  box-shadow:0 1px 0 rgba(36,30,26,.04), 0 4px 18px rgba(36,30,26,.05);
}
.site-logo .logo-name{ color:#241E1A; }
.site-logo .logo-name span{ color:#8A5A33; }
.nav-menu a{ color:#241E1A; }
.nav-menu a:hover{ color:#B4472C; }
.nav-menu .nav-cta{ background:#B4472C; color:#FFF7EE !important; white-space:nowrap; flex-shrink:0; }
.nav-menu .nav-cta:hover{ background:#8A5A33; color:#FFF7EE !important; }
.nav-toggle span{ background:#241E1A; }
.nav-menu.open{ background:#FBF6EE !important; border-bottom:1px solid #E6DACA; }

.nav-menu.open a{ color:var(--navy) !important; }
.nav-menu.open a:hover{ color:var(--brass-deep) !important; }

/* ── band: cream, frames fade to #FBF6EE at both edges ───────────── */
.city-band{ background:#FBF6EE; }

/* ── hero: cream ─────────────────────────────────────────────────── */
#hero{
  background:#FBF6EE !important;
  padding-top:44px;
}
#hero h1, #hero .section-title{ color:#241E1A; }
.hero-tag{
  background:rgba(180,71,44,.09);
  border:1px solid rgba(180,71,44,.26);
  color:#8A5A33;
}
.hero-tag::before{ background:#B4472C; }
.hero-sub{ color:#5C5049; }
.hero-card{
  background:#FFF9F0;
  border:1px solid #E6DACA;
  backdrop-filter:none;
  box-shadow:0 10px 34px rgba(36,30,26,.06);
}
.hero-card-title{ color:#241E1A; border-bottom-color:#E6DACA; }
.stat-num{ color:#B4472C; }
.stat-desc strong{ color:#241E1A; }
.stat-desc span{ color:#8A7B6C; }

/* ── trust bar: the first red ────────────────────────────────────── */
.trust-item{ color:#FFF7EE; border-right-color:rgba(255,247,238,.24); }
.trust-item svg{ fill:#FFF7EE; }

/* ── services: white, sand card heads ────────────────────────────── */
.service-card-top{ background:#F1E4D3; }
.service-card-top h3{ color:#241E1A; }
.service-card-top::after{ background:rgba(180,71,44,.10); }
.service-icon-wrap svg{ fill:#8A5A33; }

/* ── process: the one black band, kept ───────────────────────────── */
.step-circle{ border-color:#B4472C; }

/* ── pricing panel ───────────────────────────────────────────────── */
.price-panel-header{ background:#B4472C; }
.price-panel-header h3{ color:#FFF7EE; }
.price-panel-header p{ color:rgba(255,247,238,.80); }

/* ── contact: red closing band, was black ────────────────────────── */
#contact{ background:#B4472C !important; }
#contact .section-title{ color:#FFF7EE; }
#contact .section-lead{ color:rgba(255,247,238,.76); }
#contact .eyebrow{ color:#F1E4D3; }
#contact .eyebrow::before{ background:#F1E4D3; }
.contact-info-icon{
  background:rgba(255,247,238,.14);
  border:1px solid rgba(255,247,238,.30);
}
.contact-info-icon svg{ fill:#FFF7EE; }
.contact-info-text strong{ color:#FFF7EE; }
.contact-info-text span{ color:rgba(255,247,238,.70); }

/* ── rail: sand holds on cream, ink and red alike ────────────────── */
#rail{ color:#B49A78; }
#rail .rule.r1{ opacity:.55; }
#rail .rule.r2{ opacity:.34; }
#rail .rule.r3{ opacity:.24; }
#rail .num{ opacity:.55; }

/* ══ service card photos ═══════════════════════════════════════════
   Sources are 150x150 and 425x282, so 72px display is a downscale for
   all three and they stay sharp. Anything larger would upscale the two
   150px files and go soft. */
.service-icon-wrap{
  width:72px; height:72px; padding:0;
  border-radius:10px; overflow:hidden;
  border:1px solid rgba(36,30,26,.12);
  background:#FFF9F0;
  box-shadow:0 4px 14px rgba(36,30,26,.10);
  display:block;
}
.service-icon-wrap img{
  display:block; width:100%; height:100%; object-fit:cover;
}

/* ══ band: 3s a frame ══════════════════════════════════════════════
   12s round trip across four frames. Dissolves widened to 5% (~0.6s)
   so the faster cadence still reads as a fade rather than a cut. */
.city-band img{ animation-duration:12s; }
@keyframes band-1{ 0%,20%{opacity:1} 25%,95%{opacity:0} 100%{opacity:1} }
@keyframes band-2{ 0%,45%{opacity:1} 50%,95%{opacity:0} 100%{opacity:1} }
@keyframes band-3{ 0%,70%{opacity:1} 75%,95%{opacity:0} 100%{opacity:1} }

/* ══ footer ════════════════════════════════════════════════════════
   <footer id="site-footer"> is nested inside #disclaimer > .wrap, then
   applies its own .wrap — a double container that insets it, which the
   ink background then renders as a floating black box. Dropping the
   background and the inner wrap lets it run on from the Notice. */
#site-footer{
  background:transparent !important;
  padding:14px 0 0;
  margin-top:18px;
  border-top:1px solid #E6DACA;
}
#site-footer .wrap{ max-width:none; padding:0; }
.footer-copy{ color:#6E6259; }
.footer-links a{ color:#6E6259; }
.footer-links a:hover{ color:#B4472C; }
#disclaimer{ padding-bottom:24px; }


/* ══ two theme-level dark surfaces -> cream ═══════════════════════
   #process and .price-panel were painted var(--navy) in style.css with
   every child text colour built for white-on-dark. Rewritten in full,
   not patched, since a background swap alone leaves pale text on cream.
   Contrast: process title 15.30:1, process lead 7.23:1, price-amount
   5.17:1 (was 2.61:1 as gold on a light card — genuinely unreadable). */

/* ── "From intake to filing" ───────────────────────────────────── */
#process{ background:#FBF6EE !important; }
#process .section-title{ color:#241E1A; }
#process .section-lead{ color:#5C5049; }
#process .eyebrow{ color:#8A5A33; }
.step-circle{ background:#FFF9F0; }
.process-step h4{ color:#241E1A; }
.process-step p{ color:#5C5049; }

/* ── Flat-rate pricing card ────────────────────────────────────────
   .price-panel-header stays terracotta — an accent strip, not a full
   dark surface, same pattern as the service-card headers. Its text was
   corrected in an earlier pass and needs no further change here. */
.price-panel{
  background:#FFF9F0;
  border:1px solid #E6DACA;
}
.price-row{ border-bottom:1px solid #E6DACA; }
.price-amount{ color:#B4472C; }
.price-label{ color:#5C5049; }
.price-panel-footer{ border-top:1px solid #E6DACA; }
.price-panel-note{ color:#8A7B6C; }


/* ── SERVICE PAGE STYLES ─────────────────── */
.sp-hero{ background: var(--brass); color: #fff; padding: 72px 0 56px; }

.sp-hero .wrap{ max-width: 1100px; }

.sp-breadcrumb{ font-size: 0.8rem; color: var(--brass-light); margin-bottom: 18px; }

.sp-breadcrumb a{ color: var(--brass-light); text-decoration: none; }

.sp-breadcrumb a:hover{ text-decoration: underline; }

.sp-hero h1{ font-family: 'Spectral', serif; font-size: 2.6rem; font-weight: 700; line-height: 1.15; margin: 0 0 16px; color: #fff; }

.sp-hero .sp-lead{ font-size: 1.15rem; line-height: 1.6; color: rgba(255,255,255,0.85); max-width: 720px; margin-bottom: 28px; }

.sp-hero-cta{ display: flex; gap: 14px; flex-wrap: wrap; }

.sp-btn{ display: inline-block; padding: 13px 28px; border-radius: 6px; font-weight: 600; font-size: 0.95rem; text-decoration: none; transition: all 0.2s; }

.sp-btn-gold{ background: var(--navy); color: #fff; }

.sp-btn-gold:hover{ background: var(--brass-light); transform: translateY(-1px); }

.sp-btn-outline{ border: 1.5px solid var(--brass-light); color: var(--brass-light); }

.sp-btn-outline:hover{ background: rgba(180,138,70,0.15); }

.sp-section{ padding: 56px 0; }

.sp-section .wrap{ max-width: 1100px; }

.sp-section h2{ font-family: 'Spectral', serif; font-size: 1.9rem; font-weight: 700; color: var(--navy); margin: 0 0 20px; }

.sp-section h3{ font-family: 'Spectral', serif; font-size: 1.3rem; font-weight: 600; color: var(--navy); margin: 28px 0 12px; }

.sp-section p{ font-size: 1rem; line-height: 1.75; color: var(--slate); margin: 0 0 16px; }

.sp-section ul{ margin: 0 0 20px; padding-left: 0; list-style: none; }

.sp-section ul li{ position: relative; padding-left: 30px; margin-bottom: 12px; font-size: 1rem; line-height: 1.65; color: var(--slate); }

.sp-section ul li::before{ content: "✓"; position: absolute; left: 0; top: 0; color: var(--brass); font-weight: 700; font-size: 1.1rem; }

.sp-alt{ background: var(--paper); }

.sp-price-box{ background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 32px; box-shadow: var(--shadow-sm); margin: 24px 0; }

.sp-price-box .sp-price{ font-family: 'Spectral', serif; font-size: 2.4rem; font-weight: 700; color: var(--brass-deep); }

.sp-price-box .sp-price small{ font-size: 0.9rem; color: var(--mid); font-weight: 400; display: block; margin-top: 4px; }

/* ===== Pop-out flat-fee pricing boxes (One Price theme) ===== */
.sp-price-box--pop{ background: linear-gradient(180deg, #fff 0%, var(--paper) 100%); border: 1px solid var(--line); border-top: 4px solid var(--brass); border-radius: var(--radius); padding: 36px 32px; margin: 32px 0; box-shadow: var(--shadow-lg); position: relative; }

.sp-price-badge{ display: inline-block; background: var(--brass); color: #fff; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; padding: 6px 16px; border-radius: 999px; margin-bottom: 16px; }

.sp-price-lede{ font-size: 0.98rem; color: var(--slate); line-height: 1.6; margin-bottom: 24px; }

.sp-price-box--pop .sp-price{ font-size: 2rem; }

.sp-price-grid{ display: grid; grid-template-columns: 1fr auto 1fr; gap: 28px; align-items: start; margin-top: 8px; }

.sp-price-tier h4{ margin: 0 0 8px; font-family: 'Spectral', serif; font-size: 1.15rem; color: var(--navy); }

.sp-price-list{ list-style: none; padding: 0; margin: 14px 0 0; }

.sp-price-list li{ position: relative; padding-left: 24px; margin-bottom: 10px; font-size: 0.92rem; line-height: 1.55; color: var(--slate); }

.sp-price-list li::before{ content: "\2713"; position: absolute; left: 0; top: 0; color: var(--brass); font-weight: 700; }

.sp-price-divider{ width: 1px; background: var(--line); align-self: stretch; }

.sp-price-note{ margin: 24px 0 0; padding-top: 20px; border-top: 1px solid var(--line); font-size: 0.88rem; color: var(--mid); line-height: 1.6; }

@media (max-width: 720px){
  .sp-price-grid{ grid-template-columns: 1fr; }
  .sp-price-divider{ display: none; }
}

.sp-grid{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-top: 28px; }

.sp-card{ background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 24px; box-shadow: var(--shadow-sm); }

.sp-card h3{ margin-top: 0; font-size: 1.1rem; }

.sp-card p{ font-size: 0.9rem; margin-bottom: 0; }

.sp-cta-band{ background: linear-gradient(135deg, var(--brass) 0%, var(--brass-deep) 100%); color: var(--navy); text-align: center; padding: 48px 0; }

.sp-cta-band h2{ color: var(--navy); font-family: 'Spectral', serif; font-size: 1.9rem; margin: 0 0 12px; }

.sp-cta-band p{ color: rgba(20,38,63,0.85); font-size: 1.05rem; margin: 0 0 24px; }

.sp-cta-band .sp-btn-navy{ background: var(--navy); color: #fff; }

.sp-cta-band .sp-btn-navy:hover{ background: var(--navy-deep); }

.sp-faq-item{ border-bottom: 1px solid var(--line); padding: 20px 0; }

.sp-faq-item h3{ margin: 0 0 10px; font-size: 1.15rem; }

.sp-faq-item p{ margin: 0; }

.sp-contact-row{ display: flex; gap: 16px; flex-wrap: wrap; margin-top: 20px; }

.sp-contact-chip{ display: inline-flex; align-items: center; gap: 8px; background: #fff; border: 1px solid var(--line); border-radius: 50px; padding: 10px 20px; font-size: 0.9rem; color: var(--navy); text-decoration: none; font-weight: 500; box-shadow: var(--shadow-sm); }

.sp-contact-chip:hover{ border-color: var(--brass); }

@media (max-width: 800px){
  .sp-hero h1 { font-size: 2rem; }
  .sp-grid { grid-template-columns: 1fr; }
  .sp-section h2 { font-size: 1.5rem; }
}


/* ── RESPONSIVE ───────────────────────────── */
@media (max-width:900px){
  .hero-inner{grid-template-columns:1fr;}
  .hero-card{display:none;}
  #hero::after{display:none;}
  .service-grid{grid-template-columns:1fr;}
  .process-steps{grid-template-columns:1fr 1fr;}
  .process-steps::before{display:none;}
  .pricing-grid{grid-template-columns:1fr;}
  .testimonial-grid{grid-template-columns:1fr;}
  .faq-grid{grid-template-columns:1fr;}
  .contact-grid{grid-template-columns:1fr;}
  .form-row{grid-template-columns:1fr;}
  .trust-bar-inner{flex-wrap:wrap;}
  .trust-item{flex:none;width:50%;border-right:none;border-bottom:1px solid rgba(20,38,63,0.16);}
  .nav-menu{display:none;}
  .nav-toggle{display:block;}
  .nav-menu.open{display:flex;flex-direction:column;position:absolute;top:72px;left:0;right:0;background:var(--navy);padding:20px 5%;gap:18px;box-shadow:0 8px 24px rgba(14,27,46,0.4);}
}

@media (max-width:520px){
  .trust-item{width:100%;}
  .process-steps{grid-template-columns:1fr;}
  .section{padding:64px 0;}
}

@media (max-width: 800px){
  .sp-hero h1 { font-size: 2rem; }
  .sp-grid { grid-template-columns: 1fr; }
  .sp-section h2 { font-size: 1.5rem; }
}

/* ── BLOG / ARTICLE STYLES ─────────────────── */
.blog-hero{ background: var(--brass); color:#fff; padding: 64px 0 48px; }

.blog-hero .wrap{ max-width: 820px; }

.blog-breadcrumb{ font-size:0.8rem; color:var(--brass-light); margin-bottom:16px; }

.blog-breadcrumb a{ color:var(--brass-light); text-decoration:none; }

.blog-breadcrumb a:hover{ text-decoration:underline; }

.blog-hero h1{ font-family:'Spectral',serif; font-size:2.5rem; font-weight:700; line-height:1.18; margin:0 0 18px; color:#fff; }

.blog-meta{ font-size:0.85rem; color:rgba(255,255,255,0.7); display:flex; gap:18px; flex-wrap:wrap; align-items:center; }

.blog-meta .blog-author{ color:var(--brass-light); font-weight:600; }

.article{ max-width:820px; margin:0 auto; padding:48px 24px 20px; }

.article .answer-box{ background:var(--paper); border-left:4px solid var(--brass); border-radius:6px; padding:22px 26px; margin:0 0 36px; }

.article .answer-box p{ font-size:1.05rem; line-height:1.7; color:var(--navy); margin:0; font-weight:500; }

.article h2{ font-family:'Spectral',serif; font-size:1.7rem; font-weight:700; color:var(--navy); margin:44px 0 16px; line-height:1.25; }

.article h3{ font-family:'Spectral',serif; font-size:1.25rem; font-weight:600; color:var(--navy); margin:30px 0 12px; }

.article p{ font-size:1.02rem; line-height:1.75; color:var(--slate); margin:0 0 18px; }

.article strong{ color:var(--navy); }

.article a{ color:var(--brass-deep); }

.article .step-list{ counter-reset:step; list-style:none; padding:0; margin:24px 0; }

.article .step-list > li{ position:relative; background:#fff; border:1px solid var(--line); border-radius:10px; padding:24px 26px 24px 74px; margin-bottom:18px; box-shadow:var(--shadow-sm); }

.article .step-list > li::before{ counter-increment:step; content:counter(step); position:absolute; left:22px; top:24px; width:36px; height:36px; background:var(--brass); color:var(--navy); font-family:'Spectral',serif; font-weight:700; font-size:1.2rem; border-radius:50%; display:flex; align-items:center; justify-content:center; }

.article .step-list h3{ margin:0 0 8px; font-size:1.2rem; }

.article .step-list p{ margin:0 0 6px; font-size:0.98rem; }

.article .step-list p:last-child{ margin-bottom:0; }

.article .callout{ background:linear-gradient(135deg,rgba(180,138,70,0.09),rgba(180,138,70,0.03)); border:1px solid rgba(180,138,70,0.25); border-radius:8px; padding:22px 26px; margin:28px 0; }

.article .callout p{ margin:0; color:var(--navy); }

.article .keytable{ width:100%; border-collapse:collapse; margin:24px 0; font-size:0.95rem; }

.article .keytable th{ background:var(--navy); color:#fff; text-align:left; padding:12px 16px; font-family:'Inter',sans-serif; font-weight:600; }

.article .keytable td{ padding:11px 16px; border-bottom:1px solid var(--line); color:var(--slate); }

.article .keytable tr:nth-child(even) td{ background:var(--paper); }

.article ul.checklist{ list-style:none; padding:0; margin:20px 0; }

.article ul.checklist li{ position:relative; padding-left:30px; margin-bottom:11px; line-height:1.6; color:var(--slate); }

.article ul.checklist li::before{ content:'✓'; position:absolute; left:0; color:var(--brass); font-weight:700; }

.article .tldr{ background:var(--navy); color:#fff; border-radius:10px; padding:26px 30px; margin:0 0 32px; }

.article .tldr h2{ color:var(--brass-light); margin:0 0 14px; font-size:1.15rem; text-transform:uppercase; letter-spacing:0.06em; }

.article .tldr ul{ list-style:none; margin:0; padding:0; }

.article .tldr li{ position:relative; color:rgba(255,255,255,0.9); margin-bottom:16px; line-height:1.6; padding-left:24px; }

.article .tldr li:last-child{ margin-bottom:0; }

.article .tldr li::before{ content:''; position:absolute; left:0; top:0.6em; width:7px; height:7px; border-radius:50%; background:var(--brass-light); }

.article .tldr li strong{ color:var(--brass-light); }

.blog-faq{ border-top:2px solid var(--line); margin-top:40px; padding-top:8px; }

.blog-faq-item{ border-bottom:1px solid var(--line); padding:22px 0; }

.blog-faq-item h3{ margin:0 0 10px; font-size:1.15rem; color:var(--navy); font-family:'Spectral',serif; }

.blog-faq-item p{ margin:0; color:var(--slate); line-height:1.7; }

.author-box{ display:flex; gap:16px; align-items:center; background:var(--paper); border-radius:10px; padding:22px 24px; margin:36px 0 0; }

.author-box .ab-text h4{ margin:0 0 4px; color:var(--navy); font-family:'Spectral',serif; font-size:1.05rem; }

.author-box .ab-text p{ margin:0; font-size:0.9rem; color:var(--mid); line-height:1.55; }

@media (max-width: 800px){
  .sp-hero h1 { font-size: 2rem; }
  .sp-grid { grid-template-columns: 1fr; }
  .sp-section h2 { font-size: 1.5rem; }
}

/* ── BLOG INDEX STYLES ─────────────────── */
.bi-hero{ background:var(--brass); color:#fff; padding:64px 0 52px; }

.bi-hero .wrap{ max-width:1080px; }

.bi-breadcrumb{ font-size:0.8rem; color:var(--brass-light); margin-bottom:16px; }

.bi-breadcrumb a{ color:var(--brass-light); text-decoration:none; }

.bi-hero h1{ font-family:'Spectral',serif; font-size:2.6rem; font-weight:700; margin:0 0 14px; color:#fff; line-height:1.15; }

.bi-hero p{ font-size:1.15rem; color:rgba(255,255,255,0.85); max-width:720px; margin:0; line-height:1.6; }

.bi-section{ padding:56px 0; }

.bi-section .wrap{ max-width:1080px; }

/* Featured post */
.bi-featured{ display:grid; grid-template-columns:1.1fr 1fr; gap:0; background:#fff; border:1px solid var(--line); border-radius:12px; overflow:hidden; box-shadow:var(--shadow-md); margin-bottom:44px; }

.bi-featured-img{ background:linear-gradient(135deg,var(--navy),var(--steel)); position:relative; min-height:300px; display:flex; align-items:center; justify-content:center; padding:40px; }

.bi-featured-img .bi-cat-badge{ position:absolute; top:22px; left:22px; }

.bi-featured-icon{ width:130px; height:130px; opacity:0.9; }

.bi-featured-body{ padding:38px 40px; display:flex; flex-direction:column; justify-content:center; }

.bi-featured-body .bi-tag{ color:var(--brass-deep); font-size:0.78rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; margin-bottom:12px; }

.bi-featured-body h2{ font-family:'Spectral',serif; font-size:1.85rem; line-height:1.2; margin:0 0 14px; color:var(--navy); }

.bi-featured-body h2 a{ color:inherit; text-decoration:none; }

.bi-featured-body h2 a:hover{ color:var(--brass-deep); }

.bi-featured-body p{ font-size:1rem; color:var(--slate); line-height:1.65; margin:0 0 18px; }

.bi-featured-body .bi-meta{ font-size:0.82rem; color:var(--mid); margin-bottom:18px; }

.bi-read{ display:inline-block; background:var(--brass); color:var(--navy); font-weight:600; font-size:0.9rem; padding:11px 24px; border-radius:6px; text-decoration:none; align-self:flex-start; transition:all .2s; }

.bi-read:hover{ background:var(--brass-light); transform:translateY(-1px); }

.bi-cat-badge{ display:inline-block; background:var(--brass); color:var(--navy); font-size:0.72rem; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; padding:5px 12px; border-radius:4px; }

/* Grid of posts */
.bi-section h2.bi-heading{ font-family:'Spectral',serif; font-size:1.6rem; color:var(--navy); margin:0 0 28px; }

.bi-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }

.bi-card{ background:#fff; border:1px solid var(--line); border-radius:10px; overflow:hidden; box-shadow:var(--shadow-sm); transition:transform .22s,box-shadow .22s; display:flex; flex-direction:column; }

.bi-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); }

.bi-card-top{ background:linear-gradient(135deg,var(--navy),var(--steel)); height:120px; position:relative; display:flex; align-items:center; justify-content:center; }

.bi-card-top .bi-cat-badge{ position:absolute; top:14px; left:14px; }

.bi-card-icon{ width:52px; height:52px; opacity:0.85; }

.bi-card-body{ padding:22px 22px 24px; display:flex; flex-direction:column; flex:1; }

.bi-card-body h3{ font-family:'Spectral',serif; font-size:1.12rem; line-height:1.3; margin:0 0 10px; color:var(--navy); }

.bi-card-body h3 a{ color:inherit; text-decoration:none; }

.bi-card-body h3 a:hover{ color:var(--brass-deep); }

.bi-card-body p{ font-size:0.88rem; color:var(--slate); line-height:1.6; margin:0 0 14px; flex:1; }

.bi-card-body .bi-meta{ font-size:0.76rem; color:var(--mid); margin-bottom:12px; }

.bi-card-body .bi-cardlink{ color:var(--brass-deep); font-weight:600; font-size:0.85rem; text-decoration:none; }

.bi-card-body .bi-cardlink:hover{ text-decoration:underline; }

.bi-soon{ opacity:0.72; }

.bi-soon .bi-card-top{ background:linear-gradient(135deg,#3a4757,#556376); }

.bi-soon-badge{ display:inline-block; background:var(--silver); color:var(--navy); font-size:0.68rem; font-weight:700; letter-spacing:0.05em; text-transform:uppercase; padding:4px 10px; border-radius:4px; }

/* Category filter chips */
.bi-cats{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:36px; }

.bi-chip{ background:#fff; border:1px solid var(--line); border-radius:50px; padding:8px 20px; font-size:0.85rem; font-weight:500; color:var(--navy); cursor:pointer; text-decoration:none; display:inline-block; transition:background .15s,color .15s; }
.bi-chip:hover{ background:var(--paper); }
.bi-heading, #all-guides-anchor{ scroll-margin-top:96px; }

.bi-chip.active{ background:var(--navy); color:#fff; border-color:var(--navy); }

/* ── FAMILY LAW DROPDOWN NAV ─────────────── */
.nav-menu .nav-dropdown{ position:relative; }

.nav-menu .nav-dropdown > a{ display:inline-flex; align-items:center; gap:5px; cursor:pointer; }

.nav-menu .nav-dropdown > a::after{ content:''; width:6px; height:6px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg); margin-top:-3px; transition:transform .2s; opacity:0.7; }

.nav-menu .nav-dropdown.open > a::after{ transform:rotate(-135deg); margin-top:2px; }

.nav-dropdown-menu{ position:absolute; top:100%; left:50%; transform:translateX(-50%); margin-top:0; min-width:220px; background:#fff; border-radius:var(--radius,14px); box-shadow:0 12px 28px rgba(36,30,26,0.18); padding:20px 0 10px; z-index:250; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .18s ease, visibility .18s ease; display:flex; flex-direction:column; }

.nav-dropdown:hover .nav-dropdown-menu, .nav-dropdown.open .nav-dropdown-menu, .nav-dropdown:focus-within .nav-dropdown-menu{ opacity:1; visibility:visible; pointer-events:auto; }

.nav-dropdown-menu a{ display:block; padding:9px 20px; white-space:nowrap; color:var(--navy); font-size:0.85rem; font-weight:500; text-decoration:none; }

.nav-dropdown-menu a:hover{ background:var(--paper); color:var(--brass-deep); }

.nav-dropdown-menu::before{ content:''; position:absolute; top:-6px; left:50%; transform:translateX(-50%) rotate(45deg); width:12px; height:12px; background:#fff; border-left:1px solid var(--line,#E3E7ED); border-top:1px solid var(--line,#E3E7ED); }

@media (max-width:860px){
  .nav-dropdown-menu { position:static; transform:none; opacity:1; visibility:visible; box-shadow:none; border:none; padding:8px 0 8px 16px; min-width:auto; background:#fff !important; border-radius:8px; margin:6px 0; }
  .nav-dropdown-menu::before { display:none; }
  .nav-dropdown:hover .nav-dropdown-menu { transform:none; }
  .nav-dropdown-menu a { padding:9px 12px; color:var(--navy) !important; }
  .nav-menu .nav-dropdown > a::after { display:none; }
}


/* ── SOCIAL LINKS (footer) ─────────────────── */
.social-links{display:flex;align-items:center;gap:14px;}
.social-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;color:#FBF6EE;background:#B4472C;border:1px solid #B4472C;transition:color .2s,background .2s,border-color .2s;}
.social-icon:hover{color:#241E1A;background:#C9932F;border-color:#C9932F;}

/* ── SOCIAL LINKS (footer) ─────────────────── */
.social-links{display:flex;align-items:center;gap:14px;}
.social-icon{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:#B4472C;border:1px solid #B4472C;color:#FBF6EE;transition:background .2s,color .2s,border-color .2s,transform .2s;}
.social-icon:hover{background:#C9932F;border-color:#C9932F;color:#241E1A;transform:translateY(-2px);}

/* ── SERVICE-PAGE REVIEWS ─────────────────── */
.sp-reviews{padding:64px 0;background:var(--paper);}
.sp-reviews-heading{text-align:center;margin-bottom:36px;font-size:1.8rem;}
.sp-reviews-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;}
.review-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:28px 24px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;align-items:flex-start;}
.review-avatar-placeholder{margin-bottom:12px;}
.review-stars{color:var(--brass);font-size:1rem;margin-bottom:10px;letter-spacing:2px;}
.review-quote{font-style:italic;color:var(--slate);line-height:1.55;margin:0 0 14px;font-size:0.95rem;}
.review-author{font-weight:700;color:var(--navy);margin:0;font-size:0.9rem;}
.review-source{font-weight:500;color:var(--mid);margin-left:4px;}


/* ── BLOG PAGES: MOBILE RESPONSIVE ─────────────────── */
@media (max-width:800px){
  .blog-hero h1{ font-size:1.75rem; line-height:1.22; }
  .bi-hero h1{ font-size:1.75rem; line-height:1.22; }
  .bi-hero p{ font-size:1rem; }
  .blog-hero{ padding:44px 0 36px; }
  .bi-hero{ padding:44px 0 36px; }
  .bi-grid{ grid-template-columns:1fr; gap:20px; }
  .bi-featured{ grid-template-columns:1fr; }
  .article{ padding:32px 18px 20px; }
  .article h2{ font-size:1.35rem; margin:32px 0 12px; }
  .article h3{ font-size:1.1rem; margin:24px 0 10px; }
  .tldr{ padding:20px 18px; }
  .keytable{ font-size:0.85rem; display:block; overflow-x:auto; white-space:nowrap; }
}


/* ── SERVICE CARDS — full-card clickable area ──────────────────────
   The button remains the visible focal point, but a stretched
   pseudo-element extends its clickable/tappable hit area to cover
   the entire card, matching the existing hover-lift affordance. */
.service-card{ position:relative; }
.service-link{ position:relative; z-index:2; }
.service-link::after{ content:''; position:absolute; inset:0; z-index:1; }
