/* ============================================================
   Cunningham Family Law — static site stylesheet
   Brand colors: edit the variables below to match your logo.
   ============================================================ */

:root {
  --navy: #14263b;
  --navy-deep: #0d1a2b;
  --navy-soft: #1e3450;
  --gold: #b8945a;
  --gold-dark: #97763f;
  --gold-pale: #f3ead9;
  --cream: #faf8f4;
  --ink: #26313d;
  --muted: #5d6b7a;
  --line: #e6e0d4;
  --white: #ffffff;
  --radius: 10px;
  --shadow: 0 10px 30px rgba(13, 26, 43, 0.10);
  --shadow-sm: 0 4px 14px rgba(13, 26, 43, 0.08);
  --font-serif: "Fraunces", "Georgia", serif;
  --font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  font-family: var(--font-sans);
  color: var(--ink);
  background: var(--white);
  line-height: 1.7;
  font-size: 1.0rem;
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }

a { color: var(--gold-dark); text-decoration: none; transition: color .2s; }
a:hover { color: var(--navy); }

h1, h2, h3, h4 {
  font-family: var(--font-serif);
  color: var(--navy);
  line-height: 1.25;
  font-weight: 600;
}

.container { max-width: 1160px; margin: 0 auto; padding: 0 24px; }
.container-narrow { max-width: 820px; margin: 0 auto; padding: 0 24px; }

/* ---------- Top utility bar ---------- */
.topbar {
  background: var(--navy-deep);
  color: #cfd8e3;
  font-size: .84rem;
  padding: 7px 0;
}
.topbar .container {
  display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap;
}
.topbar a { color: #e8eef5; }
.topbar a:hover { color: var(--gold); }
.topbar .tb-note { color: #e8eef5; }
@media (max-width: 720px) { .topbar .tb-right { display: none; } }

/* ---------- Header / nav ---------- */
.site-header {
  background: var(--white);
  border-bottom: 1px solid var(--line);
  position: sticky; top: 0; z-index: 100;
  box-shadow: 0 2px 12px rgba(13,26,43,.05);
}
.site-header .container {
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  min-height: 74px;
}
.brand { display: flex; align-items: center; gap: 12px; }
.brand img { height: 54px; width: auto; }
.brand-text { font-family: var(--font-serif); color: var(--navy); font-size: 1.25rem; font-weight: 700; line-height: 1.1; }
.brand-text small { display: block; font-family: var(--font-sans); font-size: .68rem; letter-spacing: .18em; text-transform: uppercase; color: var(--gold-dark); font-weight: 600; }

.main-nav ul { list-style: none; display: flex; align-items: center; gap: 4px; }
.main-nav li { position: relative; }
.main-nav a {
  display: block; padding: 10px 13px; color: var(--navy);
  font-size: .93rem; font-weight: 500;
}
.main-nav a:hover { color: var(--gold-dark); }
.main-nav .has-sub > a::after {
  content: ""; display: inline-block; margin-left: 6px;
  border: 4px solid transparent; border-top-color: currentColor;
  transform: translateY(2px);
}
.main-nav .sub {
  position: absolute; top: 100%; left: 0; min-width: 260px;
  background: var(--white); border: 1px solid var(--line); border-radius: 8px;
  box-shadow: var(--shadow); padding: 8px 0;
  opacity: 0; visibility: hidden; transform: translateY(8px);
  transition: all .18s ease; z-index: 50;
  display: block;
}
.main-nav .sub li { width: 100%; }
.main-nav .sub a { padding: 9px 18px; font-size: .89rem; }
.main-nav .sub a:hover { background: var(--cream); }
.main-nav li:hover > .sub, .main-nav li:focus-within > .sub,
.main-nav li.open > .sub { opacity: 1; visibility: visible; transform: translateY(0); }
.nav-cta a {
  background: var(--gold); color: var(--white) !important; border-radius: 6px;
  padding: 10px 20px !important; font-weight: 600; margin-left: 8px;
}
.nav-cta a:hover { background: var(--gold-dark); }

.nav-toggle {
  display: none; background: none; border: 1px solid var(--line); border-radius: 6px;
  padding: 8px 11px; cursor: pointer; color: var(--navy); font-size: 1.15rem; line-height: 1;
}

@media (max-width: 1020px) {
  .nav-toggle { display: block; }
  .main-nav {
    display: none; position: absolute; top: 100%; left: 0; right: 0;
    background: var(--white); border-bottom: 1px solid var(--line);
    box-shadow: var(--shadow); max-height: calc(100vh - 120px); overflow-y: auto;
  }
  .main-nav.open { display: block; }
  .main-nav ul { flex-direction: column; align-items: stretch; gap: 0; padding: 10px 0; }
  .main-nav a { padding: 12px 24px; }
  .main-nav .sub {
    position: static; opacity: 1; visibility: visible; transform: none;
    border: none; box-shadow: none; border-radius: 0; padding: 0 0 0 16px;
    display: none;
  }
  .main-nav li.open > .sub { display: block; }
  .nav-cta a { margin: 8px 24px; text-align: center; }
}

/* ---------- Hero ---------- */
.hero {
  background: linear-gradient(135deg, var(--navy-deep) 0%, var(--navy) 55%, var(--navy-soft) 100%);
  color: #e8edf4; overflow: hidden;
}
.hero .container {
  display: grid; grid-template-columns: 1.15fr .85fr; gap: 48px; align-items: center;
  padding-top: 64px; padding-bottom: 64px;
}
.hero.hero-plain .container { grid-template-columns: 1fr; padding-top: 52px; padding-bottom: 52px; }
.hero .kicker {
  color: var(--gold); font-size: .82rem; font-weight: 600;
  letter-spacing: .22em; text-transform: uppercase; margin-bottom: 14px;
}
.hero h1 { color: var(--white); font-size: 2.55rem; margin-bottom: 18px; }
.hero p.lede { color: #c3cedb; font-size: 1.08rem; max-width: 46ch; margin-bottom: 26px; }
.hero .crumbs { font-size: .82rem; color: #8fa2b8; margin-bottom: 22px; }
.hero .post-date { font-size: .86rem; color: #8fa2b8; margin-top: 14px; }
.hero .post-date time { color: #b7c5d6; }
.hero .crumbs a { color: #b7c5d6; }
.hero .crumbs a:hover { color: var(--gold); }
.hero-img { border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); }
.hero-img img { width: 100%; object-fit: cover; max-height: 420px; }
@media (max-width: 860px) {
  .hero .container { grid-template-columns: 1fr; gap: 28px; padding-top: 44px; padding-bottom: 44px; }
  .hero h1 { font-size: 1.9rem; }
  .hero-img img { max-height: 300px; }
}

/* ---------- Buttons ---------- */
.btn {
  display: inline-block; background: var(--gold); color: var(--white);
  padding: 13px 30px; border-radius: 6px; font-weight: 600; font-size: .95rem;
  letter-spacing: .04em; border: none; cursor: pointer; transition: background .2s, transform .15s;
}
.btn:hover { background: var(--gold-dark); color: var(--white); transform: translateY(-1px); }
.btn-outline {
  background: transparent; border: 1.5px solid var(--gold); color: var(--gold);
}
.btn-outline:hover { background: var(--gold); color: var(--white); }

/* ---------- Main content / prose ---------- */
.page-body { padding: 56px 0 24px; }
.prose { max-width: 780px; margin: 0 auto; }
.prose h2 {
  font-size: 1.7rem; margin: 52px 0 16px; padding-top: 8px; position: relative;
}
.prose h2:first-child { margin-top: 0; }
.prose h2::after {
  content: ""; display: block; width: 52px; height: 3px; background: var(--gold);
  margin-top: 10px; border-radius: 2px;
}
.prose h3 { font-size: 1.25rem; margin: 34px 0 12px; }
.prose p { margin: 0 0 18px; }
.prose ul, .prose ol { margin: 0 0 20px 22px; }
.prose li { margin-bottom: 8px; }
.prose li::marker { color: var(--gold-dark); }
.prose figure { margin: 30px 0; }
.prose figure img {
  border-radius: var(--radius); box-shadow: var(--shadow-sm);
  width: 100%; max-height: 440px; object-fit: cover;
}
.prose figcaption { font-size: .84rem; color: var(--muted); margin-top: 8px; }
.prose blockquote {
  border-left: 3px solid var(--gold); padding: 6px 0 6px 22px; margin: 24px 0;
  color: var(--muted); font-style: italic;
}
.prose em.disclaimer, .disclaimer { font-size: .88rem; color: var(--muted); }
.prose table { width: 100%; border-collapse: collapse; margin: 26px 0; font-size: .93rem; }
.prose th {
  background: var(--navy); color: var(--white); text-align: left;
  padding: 11px 14px; font-weight: 600;
}
.prose td { padding: 11px 14px; border-bottom: 1px solid var(--line); vertical-align: top; }
.prose tr:nth-child(even) td { background: var(--cream); }

/* ---------- Process steps ---------- */
.steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 20px; margin: 30px 0 40px; }
.step-card {
  background: var(--cream); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 26px 22px; position: relative;
}
.step-card .step-icon { width: 52px; height: 52px; margin-bottom: 14px; }
.step-card .step-num {
  position: absolute; top: 18px; right: 20px; font-family: var(--font-serif);
  font-size: 2rem; color: var(--gold); opacity: .45; font-weight: 700;
}
.step-card h3 { font-size: 1.02rem; margin: 0 0 8px; }
.step-card p, .step-card ul { font-size: .9rem; margin-bottom: 8px; }
.step-card ul { margin-left: 18px; }

/* ---------- Key takeaways & author box ---------- */
.key-takeaways {
  background: var(--gold-pale); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 22px 26px; margin: 0 0 34px;
}
.key-takeaways h2 { font-size: 1.15rem; margin: 0 0 10px; }
.key-takeaways h2::after { display: none; }
.key-takeaways ul { margin: 0 0 0 20px; }
.key-takeaways li { margin-bottom: 6px; font-size: .95rem; }
.author-box {
  display: flex; gap: 18px; align-items: flex-start;
  background: var(--cream); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 22px 24px; margin: 44px 0 10px; font-size: .93rem;
}
.author-box img { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.author-box strong { font-family: var(--font-serif); color: var(--navy); font-size: 1.02rem; }
@media (max-width: 560px) { .author-box { flex-direction: column; } }

/* ---------- FAQ ---------- */
.faq-list { margin: 26px 0 40px; }
details.faq {
  border: 1px solid var(--line); border-radius: 8px; margin-bottom: 10px;
  background: var(--white); overflow: hidden;
}
details.faq summary {
  cursor: pointer; padding: 16px 46px 16px 20px; font-weight: 600; color: var(--navy);
  list-style: none; position: relative; font-size: .98rem;
}
details.faq summary::-webkit-details-marker { display: none; }
details.faq summary::after {
  content: "+"; position: absolute; right: 18px; top: 50%; transform: translateY(-50%);
  color: var(--gold); font-size: 1.4rem; font-weight: 400; transition: transform .2s;
}
details.faq[open] summary::after { content: "–"; }
details.faq[open] summary { background: var(--cream); }
details.faq .faq-body { padding: 4px 20px 18px; font-size: .95rem; }
details.faq .faq-body ul { margin: 10px 0 10px 20px; }

/* ---------- CTA band ---------- */
.cta-band {
  background: linear-gradient(120deg, var(--navy-deep), var(--navy-soft));
  border-radius: var(--radius); color: var(--white);
  padding: 44px 40px; margin: 56px 0; text-align: center;
}
.cta-band h2 { color: var(--white); font-size: 1.65rem; margin-bottom: 10px; }
.cta-band h2::after { display: none !important; }
.cta-band p { color: #c3cedb; max-width: 56ch; margin: 0 auto 22px; }
.cta-band .btn { margin-top: 6px; }

/* ---------- Cards (services / blog) ---------- */
.section-heading { text-align: center; max-width: 640px; margin: 0 auto 40px; }
.section-heading .kicker {
  color: var(--gold-dark); font-size: .8rem; font-weight: 600; letter-spacing: .2em;
  text-transform: uppercase; margin-bottom: 10px;
}
.section-heading h2 { font-size: 1.95rem; }
.section-heading p { color: var(--muted); margin-top: 12px; }

.card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 26px; }
.card {
  background: var(--white); border: 1px solid var(--line); border-radius: var(--radius);
  overflow: hidden; display: flex; flex-direction: column;
  transition: transform .2s, box-shadow .2s;
}
.card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.card .card-img { aspect-ratio: 3 / 2; overflow: hidden; background: var(--cream); }
.card .card-img img { width: 100%; height: 100%; object-fit: cover; }
.card .card-body { padding: 22px 22px 24px; display: flex; flex-direction: column; flex: 1; }
.card h3 { font-size: 1.12rem; margin-bottom: 10px; }
.card h3 a { color: var(--navy); }
.card h3 a:hover { color: var(--gold-dark); }
.card p { font-size: .92rem; color: var(--muted); flex: 1; margin-bottom: 16px; }
.card .card-link {
  font-size: .82rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
  color: var(--gold-dark);
}
.card .card-link:hover { color: var(--navy); }
.card .card-meta { font-size: .8rem; color: var(--muted); margin-bottom: 8px; }

.section { padding: 64px 0; }
.section.alt { background: var(--cream); }

/* ---------- Pillars (homepage) ---------- */
.pillars { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 26px; }
.pillar {
  background: var(--white); border-top: 3px solid var(--gold); border-radius: 0 0 var(--radius) var(--radius);
  box-shadow: var(--shadow-sm); padding: 30px 28px;
}
.pillar h3 { font-size: 1.15rem; margin-bottom: 10px; }
.pillar p { font-size: .93rem; color: var(--muted); }

/* ---------- Intro split ---------- */
.split { display: grid; grid-template-columns: 1fr 1fr; gap: 52px; align-items: center; }
.split .split-img img { border-radius: var(--radius); box-shadow: var(--shadow); width: 100%; object-fit: cover; }
@media (max-width: 860px) { .split { grid-template-columns: 1fr; gap: 30px; } }

/* ---------- Contact page ---------- */
.contact-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: 48px; align-items: start; }
@media (max-width: 900px) { .contact-grid { grid-template-columns: 1fr; } }
.contact-card {
  background: var(--cream); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 32px;
}
.contact-card h3 { margin-bottom: 14px; font-size: 1.2rem; }
.contact-card .c-row { display: flex; gap: 12px; margin-bottom: 14px; font-size: .95rem; }
.contact-card .c-row .c-ico { color: var(--gold-dark); font-size: 1.05rem; line-height: 1.6; }
.form-field { margin-bottom: 18px; }
.form-field label { display: block; font-size: .88rem; font-weight: 600; color: var(--navy); margin-bottom: 6px; }
.form-field input, .form-field textarea {
  width: 100%; padding: 12px 14px; border: 1px solid var(--line); border-radius: 6px;
  font-family: var(--font-sans); font-size: .95rem; background: var(--white); color: var(--ink);
}
.form-field input:focus, .form-field textarea:focus {
  outline: none; border-color: var(--gold); box-shadow: 0 0 0 3px rgba(184,148,90,.15);
}
.form-consent { display: flex; gap: 10px; align-items: flex-start; font-size: .84rem; color: var(--muted); margin-bottom: 20px; }
.form-consent input { margin-top: 4px; }
.map-embed { border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-sm); margin-top: 24px; }
.map-embed iframe { display: block; width: 100%; height: 300px; border: 0; }

/* ---------- Blog article ---------- */
.post-meta { color: var(--muted); font-size: .88rem; margin-bottom: 26px; }
.post-meta .tags span {
  display: inline-block; background: var(--gold-pale); color: var(--gold-dark);
  border-radius: 100px; padding: 2px 12px; font-size: .76rem; font-weight: 600; margin: 6px 6px 0 0;
}

/* ---------- Footer ---------- */
.site-footer { background: var(--navy-deep); color: #aebccd; margin-top: 72px; font-size: .92rem; }
.site-footer .foot-main {
  display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 40px; padding: 56px 0 44px;
}
@media (max-width: 900px) { .site-footer .foot-main { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .site-footer .foot-main { grid-template-columns: 1fr; } }
.site-footer h3 {
  color: var(--white); font-family: var(--font-sans); font-size: .82rem;
  letter-spacing: .16em; text-transform: uppercase; margin-bottom: 16px;
}
.site-footer ul { list-style: none; }
.site-footer li { margin-bottom: 9px; }
.site-footer a { color: #aebccd; }
.site-footer a:hover { color: var(--gold); }
.site-footer .foot-brand { font-family: var(--font-serif); color: var(--white); font-size: 1.3rem; margin-bottom: 12px; }
.site-footer .foot-bottom {
  border-top: 1px solid rgba(255,255,255,.08); padding: 18px 0;
  display: flex; justify-content: space-between; gap: 14px; flex-wrap: wrap; font-size: .8rem; color: #7f92a8;
}
.site-footer .foot-disclaimer { font-size: .78rem; color: #7f92a8; margin-top: 14px; max-width: 44ch; }

/* ---------- Utilities ---------- */
.text-center { text-align: center; }
.mt-0 { margin-top: 0 !important; }

/* ============================================================
   Modern Editorial theme — scoped to body.theme-editorial.
   Applied to Home first; flip the class on site-wide later.
   ============================================================ */
.theme-editorial {
  --ed-ink:#1A1D1C;
  --ed-brass:#8A6836;        /* button fill */
  --ed-brass-rule:#B0894E;   /* rules / borders */
  --ed-brass-text:#8A6836;   /* links & kickers on light */
  --ed-brass-lite:#C2A56B;   /* brass on dark */
  --ed-ivory:#F7F1E3;        /* button text */
  --ed-bg:#FAFAF8;
  --ed-band:#F2F1EC;
  --ed-footer:#ECE9E1;
  --ed-text:#545957;
  --ed-muted:#5F6461;
  --ed-hair:#ecece6;
  --ed-serif:"Newsreader", Georgia, serif;
  --ed-sans:"Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background:var(--ed-bg);
  color:var(--ed-ink);
  font-family:var(--ed-sans);
}
.theme-editorial h1,.theme-editorial h2,.theme-editorial h3,.theme-editorial h4{
  font-family:var(--ed-serif); font-weight:400; color:var(--ed-ink); letter-spacing:-.01em;
}
.theme-editorial a{ color:var(--ed-brass-text); }
.theme-editorial a:hover{ color:var(--ed-ink); }

/* ---- Topbar ---- */
.theme-editorial .topbar{ background:#4A443B; color:#E9E2D4; }
.theme-editorial .topbar a{ color:#F4EFE4; }
.theme-editorial .topbar a:hover{ color:var(--ed-brass-lite); }
.theme-editorial .topbar .tb-note{ color:#E9E2D4; }
.theme-editorial .topbar .tb-note{ color:#e6e9e6; }

/* ---- Header / nav ---- */
.theme-editorial .site-header{ background:#fff; border-bottom:1px solid var(--ed-hair); box-shadow:none; }
.theme-editorial .main-nav a{ color:#3a3f3d; font-family:var(--ed-sans); font-weight:500; }
.theme-editorial .main-nav a:hover{ color:var(--ed-brass-text); }
.theme-editorial .main-nav .sub{ border:1px solid var(--ed-hair); border-radius:10px; box-shadow:0 12px 30px rgba(26,29,28,.10); }
.theme-editorial .main-nav .sub a:hover{ background:var(--ed-band); color:var(--ed-ink); }
.theme-editorial .nav-cta a{ background:var(--ed-brass); color:var(--ed-ivory)!important; border-radius:6px; font-family:var(--ed-sans); font-weight:600; }
.theme-editorial .nav-cta a:hover{ background:#83642f; }
.theme-editorial .nav-toggle{ color:var(--ed-ink); border-color:var(--ed-hair); }

/* ---- Buttons ---- */
.theme-editorial .ed-btn{
  display:inline-block; background:var(--ed-brass); color:var(--ed-ivory);
  padding:14px 28px; border-radius:7px; font:600 .95rem/1 var(--ed-sans); letter-spacing:.01em;
  transition:background .2s, transform .15s;
}
.theme-editorial .ed-btn:hover{ background:#83642f; color:var(--ed-ivory); transform:translateY(-1px); }
.theme-editorial .ed-link{
  display:inline-block; color:var(--ed-ink); font:600 .95rem/1 var(--ed-sans);
  text-decoration:underline; text-underline-offset:4px; text-decoration-color:var(--ed-brass-rule); padding:12px 6px;
}
.theme-editorial .ed-link:hover{ color:var(--ed-brass-text); }
.theme-editorial .ed-btn-outline{
  display:inline-block; border:1.5px solid var(--ed-ink); color:var(--ed-ink);
  padding:12px 24px; border-radius:7px; font:600 .9rem/1 var(--ed-sans); transition:background .2s,color .2s;
}
.theme-editorial .ed-btn-outline:hover{ background:var(--ed-ink); color:#fff; }

/* ---- Shared section bits ---- */
.theme-editorial .ed-section{ padding:64px 0; }
.theme-editorial .ed-alt{ background:var(--ed-band); }
.theme-editorial .ed-kick{ color:var(--ed-brass-text); font:700 .86rem/1.3 var(--ed-sans); letter-spacing:.15em; text-transform:uppercase; }
.theme-editorial .ed-shd{ text-align:center; margin-bottom:36px; }
.theme-editorial .ed-shd h2{ font-size:2rem; margin-top:12px; }
.theme-editorial .ed-more{ text-align:center; margin-top:20px; color:var(--ed-muted); font:500 .8rem/1.5 var(--ed-sans); }

/* ---- Hero (centered editorial) ---- */
.theme-editorial .ed-hero{ padding:72px 0 8px; text-align:center; }
.theme-editorial .ed-hero h1{
  font-size:clamp(2.1rem,5vw,3.15rem); line-height:1.07; letter-spacing:-.015em;
  max-width:17ch; margin:22px auto 0;
}
.theme-editorial .ed-hero .ed-lede{
  color:var(--ed-text); font:400 1.18rem/1.7 var(--ed-sans); max-width:54ch; margin:22px auto 30px;
}

/* ---- Full-bleed image band ---- */
.theme-editorial .ed-band{
  height:clamp(220px,32vw,400px); margin-top:34px;
  background:url("/assets/images/calgary-skyline-autumn-1600.webp") center 42%/cover no-repeat;
}
@media (max-width:820px){
  .theme-editorial .ed-band{ background-image:url("/assets/images/calgary-skyline-autumn-mobile.webp"); }
}

/* ---- Pillars ---- */
.theme-editorial .ed-pillars{ display:grid; grid-template-columns:repeat(3,1fr); gap:38px; text-align:center; }
.theme-editorial .ed-pillar h3{ font-size:1.35rem; margin:0 0 10px; }
.theme-editorial .ed-pillar p{ color:var(--ed-text); font:400 1.03rem/1.7 var(--ed-sans); margin:0; }
.theme-editorial .ed-pillar::before{
  content:""; display:block; width:34px; height:2px; background:var(--ed-brass-rule); margin:0 auto 18px;
}

/* ---- Split (portrait + text) ---- */
.theme-editorial .ed-split{ display:grid; grid-template-columns:.82fr 1.18fr; gap:44px; align-items:center; }
.theme-editorial .ed-split-img img{ width:100%; border-radius:12px; border:2px solid var(--ed-brass-rule); display:block; }
.theme-editorial .ed-split h2{ font-size:1.9rem; line-height:1.14; }
.theme-editorial .ed-split p{ color:var(--ed-text); font:400 1.08rem/1.75 var(--ed-sans); margin:18px 0 0; }
.theme-editorial .ed-split .ed-center{ text-align:center; margin-top:26px; }
.theme-editorial .ed-split .ed-accent{ color:var(--ed-brass-text); font-weight:600; }
.theme-editorial .ed-split .ed-btn-outline{ margin-top:24px; }

/* ---- Service card grid ---- */
.theme-editorial .ed-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.theme-editorial .ed-card{ background:#fff; border:1px solid var(--ed-hair); border-radius:12px; overflow:hidden; transition:transform .18s, box-shadow .18s; }
.theme-editorial .ed-card:hover{ transform:translateY(-3px); box-shadow:0 14px 34px rgba(26,29,28,.10); }
.theme-editorial .ed-card .ed-cimg{ aspect-ratio:16/10; overflow:hidden; }
.theme-editorial .ed-card .ed-cimg img{ width:100%; height:100%; object-fit:cover; display:block; }
.theme-editorial .ed-cbody{ padding:18px 20px 20px; }
.theme-editorial .ed-cbody h3{ font-family:var(--ed-serif); font-weight:500; font-size:1.2rem; line-height:1.2; margin:0 0 8px; }
.theme-editorial .ed-cbody h3 a{ color:var(--ed-ink); }
.theme-editorial .ed-cbody h3 a:hover{ color:var(--ed-brass-text); }
.theme-editorial .ed-cbody p{ color:var(--ed-text); font:400 .97rem/1.65 var(--ed-sans); margin:0 0 14px; }
.theme-editorial .ed-clink{ color:var(--ed-brass-text); font:600 .86rem/1 var(--ed-sans); }

/* ---- Dark CTA band ---- */
.theme-editorial .ed-cta{ background:var(--ed-cta-bg,#4A443B); text-align:center; padding:66px 0; }
.theme-editorial .ed-cta h2{ color:#F7F1E3; font-size:2.1rem; margin:0; }
.theme-editorial .ed-cta p{ color:#cdc6ba; font:400 1.08rem/1.7 var(--ed-sans); margin:14px auto 28px; max-width:52ch; }
.theme-editorial .ed-cta p a{ color:var(--ed-brass-lite); }

/* ---- Footer restyle ---- */
.theme-editorial .site-footer{ background:var(--ed-footer); color:#5a5f5b; border-top:2px solid var(--ed-brass-rule); margin-top:0; }
.theme-editorial .site-footer .foot-brand{ font-family:var(--ed-serif); color:var(--ed-ink); }
.theme-editorial .site-footer h3{ color:var(--ed-brass-text); font-family:var(--ed-sans); }
.theme-editorial .site-footer p,.theme-editorial .site-footer li,.theme-editorial .site-footer a{ color:#5a5f5b; }
.theme-editorial .site-footer a:hover{ color:var(--ed-brass-text); }
.theme-editorial .site-footer .foot-disclaimer{ color:#8a8f8b; }
.theme-editorial .site-footer .foot-bottom{ border-top-color:#dcd7cb; color:#8a8175; }

/* ---- Responsive ---- */
@media (max-width:900px){
  .theme-editorial .ed-pillars{ grid-template-columns:1fr; gap:30px; }
  .theme-editorial .ed-split{ grid-template-columns:1fr; gap:26px; }
  .theme-editorial .ed-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:600px){
  .theme-editorial .ed-grid{ grid-template-columns:1fr; }
  .theme-editorial .ed-section{ padding:48px 0; }
  .theme-editorial .ed-band{ background-position:center 45%; }
}

/* ============================================================
   Site-wide rollout: remap legacy tokens under the theme so
   every legacy component (prose, cards, forms, FAQ, steps,
   sub-page heroes) adopts the Modern Editorial look, plus a
   few banner overrides that hard-code the old navy gradient.
   ============================================================ */
.theme-editorial{
  --navy:#1A1D1C; --navy-deep:#141716; --navy-soft:#2b2f2d;
  --gold:#98753E; --gold-dark:#97763F; --gold-pale:#F1E9DA;
  --cream:#F2F1EC; --line:#ecece6; --ink:#1A1D1C; --muted:#5a5f5b;
  --font-serif:"Newsreader", Georgia, serif;
  --font-sans:"Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* Sub-page hero -> light editorial banner (was navy gradient) */
.theme-editorial .hero{ background:var(--ed-band); color:var(--ed-ink); }
.theme-editorial .hero h1{ color:var(--ed-ink); }
.theme-editorial .hero p.lede{ color:var(--ed-text); font-size:1.15rem; }
.theme-editorial .hero .kicker{ color:var(--ed-brass-text); font-size:.84rem; }
.theme-editorial .hero .crumbs{ color:var(--ed-muted); }
.theme-editorial .hero .crumbs a{ color:var(--ed-brass-text); }
.theme-editorial .hero .crumbs a:hover{ color:var(--ed-ink); }
.theme-editorial .hero .post-date{ color:var(--ed-muted); }
.theme-editorial .hero .post-date time{ color:var(--ed-ink); }

/* Primary buttons keep ivory text on brass */
.theme-editorial .btn{ color:var(--ed-ivory); border-radius:7px; }
.theme-editorial .btn:hover{ color:var(--ed-ivory); }
.theme-editorial .btn-outline{ border-color:var(--ed-ink); color:var(--ed-ink); }
.theme-editorial .btn-outline:hover{ background:var(--ed-ink); color:#fff; }

/* Legacy CTA band -> greige to match the home consultation band */
.theme-editorial .cta-band{ background:#4A443B; color:#F7F1E3; }
.theme-editorial .cta-band h2{ color:#F7F1E3; }
.theme-editorial .cta-band p{ color:#cdc6ba; }
.theme-editorial .cta-band .btn{ background:var(--ed-brass); color:var(--ed-ivory); }

/* Form focus ring -> brass */
.theme-editorial .form-field input:focus,
.theme-editorial .form-field textarea:focus{
  border-color:var(--ed-brass); box-shadow:0 0 0 3px rgba(152,117,62,.18);
}

/* ============================================================
   Home conversion sections (Modern Editorial)
   ============================================================ */
.theme-editorial .ed-microcopy{ color:var(--ed-muted); font:500 .92rem/1.5 var(--ed-sans); margin-top:18px; }
.theme-editorial .ed-microcopy b{ color:var(--ed-ink); font-weight:600; }

/* Trust bar — the corporate/tax/M&A differentiator */
.theme-editorial .ed-trust{ background:var(--ed-bg); border-top:2px solid var(--ed-brass-rule); border-bottom:1px solid var(--ed-hair); }
.theme-editorial .ed-trust .container{ padding:48px 24px; }
.theme-editorial .ed-trust-eyebrow{ text-align:center; color:var(--ed-brass-text); font:700 .82rem/1 var(--ed-sans); letter-spacing:.16em; text-transform:uppercase; margin:0 0 34px; }
.theme-editorial .ed-trust-row{ display:grid; grid-template-columns:repeat(3,1fr); }
.theme-editorial .ed-trust-item{ text-align:center; padding:4px 26px; }
.theme-editorial .ed-trust-item + .ed-trust-item{ border-left:1px solid var(--ed-hair); }
.theme-editorial .ed-trust-rule{ display:block; width:32px; height:2px; background:var(--ed-brass-rule); margin:0 auto 16px; }
.theme-editorial .ed-trust-item b{ display:block; font-family:var(--ed-serif); font-weight:500; color:var(--ed-ink); font-size:1.5rem; line-height:1.12; }
.theme-editorial .ed-trust-cap{ display:block; color:var(--ed-muted); font:600 .7rem/1.4 var(--ed-sans); letter-spacing:.18em; text-transform:uppercase; margin-top:10px; }

/* Who we help */
.theme-editorial .ed-who{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.theme-editorial .ed-who-card{ background:#fff; border:1px solid var(--ed-hair); border-radius:12px; padding:28px 26px; }
.theme-editorial .ed-who-card::before{ content:""; display:block; width:34px; height:2px; background:var(--ed-brass-rule); margin-bottom:18px; }
.theme-editorial .ed-who-card h3{ font-family:var(--ed-serif); font-weight:500; font-size:1.28rem; margin:0 0 10px; line-height:1.2; }
.theme-editorial .ed-who-card p{ color:var(--ed-text); font:400 1rem/1.65 var(--ed-sans); margin:0 0 16px; }
.theme-editorial .ed-who-card a{ color:var(--ed-brass-text); font:600 .88rem/1 var(--ed-sans); }

/* Social proof */
.theme-editorial .ed-rating{ text-align:center; margin-bottom:30px; }
.theme-editorial .ed-rating .ed-stars{ color:#C2A56B; letter-spacing:3px; font-size:1.35rem; }
.theme-editorial .ed-rating .ed-rating-text{ display:block; color:var(--ed-muted); font:500 .95rem/1.5 var(--ed-sans); margin-top:6px; }
.theme-editorial .ed-proof{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.theme-editorial .ed-quote{ background:#fff; border:1px solid var(--ed-hair); border-radius:12px; padding:28px 26px; display:flex; flex-direction:column; }
.theme-editorial .ed-quote .ed-qmark{ font-family:var(--ed-serif); font-size:2.4rem; line-height:.6; color:var(--ed-brass-rule); }
.theme-editorial .ed-quote p{ font-family:var(--ed-serif); font-weight:400; font-size:1.12rem; line-height:1.5; color:var(--ed-ink); margin:14px 0 18px; flex:1; }
.theme-editorial .ed-quote .ed-cite{ color:var(--ed-muted); font:600 .84rem/1.4 var(--ed-sans); }
.theme-editorial .ed-placeholder{ outline:2px dashed var(--ed-brass-rule); outline-offset:-2px; }
.theme-editorial .ed-placeholder-tag{ display:inline-block; background:var(--ed-brass); color:var(--ed-ivory); font:600 .7rem/1 var(--ed-sans); letter-spacing:.06em; text-transform:uppercase; padding:5px 9px; border-radius:5px; margin-bottom:12px; }

/* How it works */
.theme-editorial .ed-steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:30px; }
.theme-editorial .ed-step{ text-align:center; position:relative; }
.theme-editorial .ed-step:not(:last-child)::after{ content:"\2192"; position:absolute; top:6px; right:-19px; color:var(--ed-brass-rule); font-size:1.7rem; line-height:1; }
.theme-editorial .ed-step .ed-num{ display:block; font-family:var(--ed-serif); font-size:2.6rem; color:var(--ed-brass-rule); line-height:1; margin-bottom:12px; }
.theme-editorial .ed-step h3{ font-size:1.25rem; margin:0 0 8px; }
.theme-editorial .ed-step p{ color:var(--ed-text); font:400 .98rem/1.65 var(--ed-sans); margin:0; }

/* Condensed services */
.theme-editorial .ed-serv{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px 30px; }
.theme-editorial .ed-serv-col h3{ font-family:var(--ed-sans); font-weight:600; color:var(--ed-brass-text); font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; margin:0 0 14px; }
.theme-editorial .ed-serv-col ul{ list-style:none; margin:0; padding:0; }
.theme-editorial .ed-serv-col li{ margin-bottom:10px; }
.theme-editorial .ed-serv-col a{ color:var(--ed-ink); font:400 .96rem/1.4 var(--ed-sans); }
.theme-editorial .ed-serv-col a:hover{ color:var(--ed-brass-text); }

/* On-page consultation form band */
.theme-editorial .ed-formband{ background:var(--ed-band); border-top:2px solid var(--ed-brass-rule); }
.theme-editorial .ed-formband .container{ display:grid; grid-template-columns:1fr 1.05fr; gap:52px; align-items:start; }
.theme-editorial .ed-form-copy h2{ font-size:2.1rem; line-height:1.14; }
.theme-editorial .ed-form-copy p{ color:var(--ed-text); font:400 1.08rem/1.75 var(--ed-sans); margin-top:16px; }
.theme-editorial .ed-form-copy .ed-form-assur{ margin-top:20px; color:var(--ed-muted); font:500 .95rem/1.6 var(--ed-sans); }
.theme-editorial .ed-formcard{ background:#fff; border:1px solid var(--ed-hair); border-radius:14px; padding:30px; }
.theme-editorial .ed-formcard .btn{ width:100%; text-align:center; margin-top:6px; }
.theme-editorial .ed-form-ok{ background:#eef4ee; border:1px solid #bcd6bc; border-radius:8px; padding:14px 16px; color:#356b35; font:500 .95rem/1.5 var(--ed-sans); margin-bottom:18px; }
.theme-editorial .ed-form-err{ background:#f7ecec; border:1px solid #e0b8b8; border-radius:8px; padding:14px 16px; color:#8b3a3a; font:500 .95rem/1.5 var(--ed-sans); margin-bottom:18px; }

@media (max-width:900px){
  .theme-editorial .ed-who,
  .theme-editorial .ed-proof,
  .theme-editorial .ed-steps{ grid-template-columns:1fr; }
  .theme-editorial .ed-trust-row{ grid-template-columns:1fr; gap:26px; }
  .theme-editorial .ed-trust-item + .ed-trust-item{ border-left:0; border-top:1px solid var(--ed-hair); padding-top:26px; }
  .theme-editorial .ed-serv{ grid-template-columns:1fr 1fr; }
  .theme-editorial .ed-formband .container{ grid-template-columns:1fr; gap:32px; }
  .theme-editorial .ed-trust-sep{ display:none; }
}

/* ---- Reviews slider ---- */
.theme-editorial .ed-reviews{ position:relative; max-width:780px; margin:0 auto; }
.theme-editorial .ed-rev-viewport{ overflow:hidden; }
.theme-editorial .ed-rev-track{ display:flex; transition:transform .45s ease; }
.theme-editorial .ed-rev{ flex:0 0 100%; padding:6px 10px 4px; text-align:center; }
.theme-editorial .ed-rev-stars{ color:#C2A56B; letter-spacing:3px; font-size:1.2rem; }
.theme-editorial .ed-rev blockquote{ font-family:var(--ed-serif); font-weight:400; font-size:1.32rem; line-height:1.5; color:var(--ed-ink); margin:18px auto 24px; max-width:58ch; }
.theme-editorial .ed-rev figcaption{ display:flex; align-items:center; justify-content:center; gap:12px; }
.theme-editorial .ed-rev-avatar{ width:44px; height:44px; border-radius:50%; display:flex; align-items:center; justify-content:center; font:600 .92rem/1 var(--ed-sans); color:#fff; flex-shrink:0; }
.theme-editorial .ed-rev-meta{ text-align:left; }
.theme-editorial .ed-rev-meta b{ display:block; font:600 .95rem/1.3 var(--ed-sans); color:var(--ed-ink); }
.theme-editorial .ed-rev-meta span{ color:var(--ed-muted); font:500 .8rem/1.3 var(--ed-sans); }
.theme-editorial .ed-rev-prev,.theme-editorial .ed-rev-next{ position:absolute; top:34%; transform:translateY(-50%); background:#fff; border:1px solid var(--ed-hair); color:var(--ed-ink); width:44px; height:44px; border-radius:50%; font:400 1.5rem/1 var(--ed-serif); cursor:pointer; transition:border-color .2s, color .2s; z-index:2; }
.theme-editorial .ed-rev-prev:hover,.theme-editorial .ed-rev-next:hover{ border-color:var(--ed-brass-rule); color:var(--ed-brass-text); }
.theme-editorial .ed-rev-prev{ left:-6px; } .theme-editorial .ed-rev-next{ right:-6px; }
.theme-editorial .ed-rev-dots{ display:flex; gap:2px; justify-content:center; margin-top:22px; }
.theme-editorial .ed-rev-dot{ position:relative; width:24px; height:24px; border-radius:50%; background:transparent; border:0; padding:0; cursor:pointer; }
.theme-editorial .ed-rev-dot::after{ content:""; position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:8px; height:8px; border-radius:50%; background:var(--ed-hair); transition:background .2s; }
.theme-editorial .ed-rev-dot.is-active::after{ background:var(--ed-brass-rule); }
@media (max-width:640px){
  .theme-editorial .ed-rev blockquote{ font-size:1.14rem; }
  .theme-editorial .ed-rev-prev{ left:-2px; } .theme-editorial .ed-rev-next{ right:-2px; }
}
@media (max-width:900px){
  .theme-editorial .ed-step:not(:last-child)::after{ content:"\2193"; top:auto; bottom:-22px; right:auto; left:50%; transform:translateX(-50%); }
}

/* ---- Hero social-proof line (above the fold) ---- */
.theme-editorial .ed-hero-proof{ margin-top:20px; display:flex; justify-content:center; align-items:center; gap:8px; }
.theme-editorial .ed-hero-proof .ed-hp-stars{ color:#C2A56B; letter-spacing:2px; font-size:1rem; }
.theme-editorial .ed-hero-proof .ed-hp-text{ color:var(--ed-muted); font:600 .9rem/1 var(--ed-sans); }

/* ---- Sticky mobile click-to-call bar ---- */
.theme-editorial .ed-callbar{ display:none; }
@media (max-width:720px){
  .theme-editorial .ed-callbar{
    display:flex; position:fixed; left:0; right:0; bottom:0; z-index:200;
    box-shadow:0 -2px 14px rgba(26,29,28,.14);
  }
  .theme-editorial .ed-callbar a{ flex:1; text-align:center; padding:15px 8px; font:700 .92rem/1 var(--ed-sans); }
  .theme-editorial .ed-callbar-call{ background:var(--ed-ink); color:#fff; }
  .theme-editorial .ed-callbar-cta{ background:var(--ed-brass); color:var(--ed-ivory); }
  .theme-editorial body, body.theme-editorial{ padding-bottom:54px; }
}

/* Honeypot field — visually hidden, off-screen (not display:none so bots fill it) */
.ed-hp{ position:absolute !important; left:-9999px !important; top:auto; width:1px; height:1px; overflow:hidden; }

/* reCAPTCHA v3 — hide floating badge (compliance text shown under form instead) */
.grecaptcha-badge{ visibility:hidden; }
.theme-editorial .ed-rc-note{ font-size:.62rem; line-height:1.45; color:var(--ed-muted); margin-top:14px; opacity:.85; }
.theme-editorial .ed-rc-note a{ color:var(--ed-muted); text-decoration:underline; }

/* How-it-works inline CTA */
.theme-editorial .ed-steps-cta{ text-align:center; margin-top:44px; }
/* Insights — featured + list */
.theme-editorial .ed-posts{ display:grid; grid-template-columns:1.3fr 1fr; gap:22px; align-items:stretch; }
.theme-editorial .ed-post{ display:block; background:#fff; border:1px solid var(--ed-hair); border-radius:12px; overflow:hidden; transition:transform .18s, box-shadow .18s; }
.theme-editorial .ed-post:hover{ transform:translateY(-3px); box-shadow:0 14px 34px rgba(26,29,28,.10); }
.theme-editorial .ed-post-img{ overflow:hidden; background:var(--ed-band); }
.theme-editorial .ed-post-img img{ width:100%; height:auto; display:block; transition:transform .3s; }
.theme-editorial .ed-post:hover .ed-post-img img{ transform:scale(1.03); }
.theme-editorial .ed-post-body{ padding:22px 24px 24px; }
.theme-editorial .ed-post-tag{ color:var(--ed-brass-text); font:700 .7rem/1 var(--ed-sans); letter-spacing:.14em; text-transform:uppercase; }
.theme-editorial .ed-post h3{ font-family:var(--ed-serif); font-weight:500; line-height:1.25; margin:10px 0 8px; color:var(--ed-ink); }
.theme-editorial .ed-post-feat h3{ font-size:1.45rem; }
.theme-editorial .ed-post p{ color:var(--ed-text); font:400 .95rem/1.6 var(--ed-sans); margin:0 0 14px; }
.theme-editorial .ed-post-more{ color:var(--ed-brass-text); font:600 .84rem/1 var(--ed-sans); }
.theme-editorial .ed-post-side{ display:flex; flex-direction:column; gap:18px; }
.theme-editorial .ed-post-sm{ flex:1; }
.theme-editorial .ed-post-sm .ed-post-body{ padding:22px 24px; display:flex; flex-direction:column; height:100%; }
.theme-editorial .ed-post-sm h3{ font-size:1.16rem; margin:9px 0 auto; }
.theme-editorial .ed-post-sm .ed-post-more{ margin-top:14px; }
.theme-editorial .ed-posts-all{ text-align:center; margin-top:30px; }
@media (max-width:900px){ .theme-editorial .ed-posts{ grid-template-columns:1fr; } }

/* ---- Video (click-to-play YouTube facade) ---- */
.theme-editorial .ed-videosec{ padding:14px 0 4px; }
.theme-editorial .ed-video{ position:relative; width:100%; aspect-ratio:16/9; border-radius:14px; overflow:hidden; cursor:pointer; background:#000; box-shadow:var(--shadow-sm); }
.theme-editorial .ed-video .ed-video-thumb{ width:100%; height:100%; object-fit:cover; display:block; transition:opacity .2s, transform .3s; }
.theme-editorial .ed-video:hover .ed-video-thumb{ opacity:.9; transform:scale(1.02); }
.theme-editorial .ed-video-play{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:76px; height:76px; border-radius:50%; background:var(--ed-brass); box-shadow:0 6px 22px rgba(0,0,0,.35); transition:background .2s, transform .2s; }
.theme-editorial .ed-video:hover .ed-video-play{ background:#83642f; transform:translate(-50%,-50%) scale(1.06); }
.theme-editorial .ed-video-play::after{ content:""; position:absolute; top:50%; left:56%; transform:translate(-50%,-50%); border-style:solid; border-width:13px 0 13px 22px; border-color:transparent transparent transparent var(--ed-ivory); }
.theme-editorial .ed-video.is-playing{ cursor:default; }
.theme-editorial .ed-video iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }

/* ============================================================
   Service / sub-page polish (Modern Editorial)
   ============================================================ */
/* Hero video (right column, replaces static hero image) */
.theme-editorial .hero .hero-video .ed-video{ box-shadow:var(--shadow); }

/* Prose reading polish */
.theme-editorial .page-body{ padding:52px 0 20px; }
.theme-editorial .prose{ max-width:820px; font-size:1.05rem; }
/* Lead paragraph: only the page's intro band (or a post's single prose) — NOT every band,
   otherwise the first paragraph of each section jumps size and body copy looks inconsistent. */
.theme-editorial .page-body .prose > p:first-of-type,
.theme-editorial main > .ed-section:first-of-type > .container > .prose > p:first-of-type{ font-size:1.2rem; line-height:1.72; color:var(--ed-ink); }
.theme-editorial .prose h2{ clear:both; font-size:1.65rem; margin:48px 0 16px; }
.theme-editorial .prose h3{ font-size:1.28rem; margin:32px 0 12px; }
.theme-editorial .prose p{ margin:0 0 18px; }
.theme-editorial .prose ul, .theme-editorial .prose ol{ margin:0 0 22px 4px; }
.theme-editorial .prose li{ margin-bottom:10px; padding-left:8px; }
.theme-editorial .prose figure{ float:none; display:block; width:auto; max-width:480px; margin:30px auto; }
.theme-editorial .prose figure img{ border-radius:12px; box-shadow:var(--shadow-sm); max-height:460px; object-fit:cover; width:100%; }
.theme-editorial .prose figcaption{ font-size:.82rem; color:var(--ed-muted); margin-top:8px; text-align:center; }
.theme-editorial .prose blockquote{ border-left:3px solid var(--ed-brass-rule); background:var(--ed-band); border-radius:0 10px 10px 0; padding:16px 22px; margin:26px 0; font-family:var(--ed-serif); font-style:italic; font-size:1.15rem; color:var(--ed-ink); }
/* In-prose service card grids -> editorial cards */
.theme-editorial .prose .card-grid{ clear:both; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); }
@media (max-width:760px){
  .theme-editorial .prose figure{ float:none; width:100%; margin:22px 0; }
}

/* Fix: keep in-prose CTA bands centered (prose p rule was overriding margin:auto) */
.theme-editorial .cta-band{ text-align:center; border-radius:14px; margin:52px 0; }
.theme-editorial .cta-band h2{ text-align:center; margin:0 0 12px; }
.theme-editorial .cta-band p{ margin:0 auto 22px; max-width:56ch; text-align:center; }
.theme-editorial .cta-band .btn{ float:none; }

/* Prose 50/50 split: text left, image right (image fills column height, no float displacement) */
.theme-editorial .prose .ed-splitrow{ display:grid; grid-template-columns:1.15fr .85fr; gap:40px; align-items:stretch; clear:both; margin:46px 0; }
.theme-editorial .prose .ed-splitrow-txt{ min-width:0; }
.theme-editorial .prose .ed-splitrow-txt > *:first-child{ margin-top:0; }
.theme-editorial .prose .ed-splitrow figure{ float:none; width:100%; height:100%; margin:0; }
.theme-editorial .prose .ed-splitrow figure img{ width:100%; height:100%; min-height:300px; max-height:none; object-fit:cover; border-radius:12px; }
.theme-editorial .prose .ed-splitrow-rev{ grid-template-columns:.85fr 1.15fr; }
@media (max-width:820px){
  .theme-editorial .prose .ed-splitrow{ grid-template-columns:1fr; gap:24px; }
  .theme-editorial .prose .ed-splitrow-rev{ grid-template-columns:1fr; }
  .theme-editorial .prose .ed-splitrow-rev figure{ order:2; }
  .theme-editorial .prose .ed-splitrow figure img{ min-height:230px; max-height:360px; }
}

/* Natural-size figure inside a split: fill the column but never render past the
   source image's native resolution (founder portrait original is 550x498) */
.theme-editorial .prose .ed-splitrow figure.fig-natural{ display:flex; align-items:center; justify-content:center; }
.theme-editorial .prose .ed-splitrow figure.fig-natural img{ width:100%; height:100%; max-height:490px; min-height:0; object-fit:cover; object-position:50% 18%; }

/* Legal accordion (terms of service) — reuses the FAQ component, tuned for long documents */
.legal-accordion details.faq summary{ font-size:1.08rem; font-weight:700; }
.legal-accordion details.faq .faq-body{ padding:8px 22px 26px; }
.legal-accordion details.faq .faq-body h3{ font-size:1.05rem; margin:26px 0 8px; }
.legal-accordion details.faq .faq-body h3:first-child{ margin-top:6px; }

/* Embedded Google Maps (parking/directions) */
.map-embed{ position:relative; width:100%; margin:18px 0 30px; border-radius:12px; overflow:hidden; box-shadow:var(--shadow-sm); }
.map-embed iframe{ display:block; width:100%; height:340px; border:0; }
@media (max-width:640px){ .map-embed iframe{ height:260px; } }

/* Prose 50/50 split: text left, text right (two prose columns, no image) */
.theme-editorial .prose .ed-textsplit{ display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start; clear:both; margin:46px 0; }
.theme-editorial .prose .ed-textsplit > div{ min-width:0; }
.theme-editorial .prose .ed-textsplit > div > *:first-child{ margin-top:0; }
@media (max-width:820px){
  .theme-editorial .prose .ed-textsplit{ grid-template-columns:1fr; gap:8px; }
}

/* Service-page content bands (reuse home's alternating ed-section / ed-alt) */
.theme-editorial .ed-section > .container > .prose{ margin:0 auto; }
.theme-editorial .ed-section > .container > .prose > *:first-child{ margin-top:0; }

/* Home differentiator (centered text; video sits below) */
.theme-editorial .ed-diff{ max-width:780px; margin:0 auto; }
.theme-editorial .ed-diff h2{ text-align:center; font-size:2rem; margin-bottom:18px; }

/* Step cards: boustrophedon (snake) flow — row1 L->R, row2 R->L, connected by a down arrow.
   e.g. 6 steps:   1 -> 2 -> 3
                             v
                   6 <- 5 <- 4                                                        */
.theme-editorial .steps{ display:grid; grid-template-columns:repeat(3,1fr); grid-auto-flow:row; grid-auto-rows:1fr; gap:40px 46px; align-items:stretch; }
.theme-editorial .step-card{ background:#fff; position:relative; }
/* Reverse every even row so the flow snakes back and the row-ends line up vertically */
.theme-editorial .step-card:nth-child(4){ grid-row:2; grid-column:3; }
.theme-editorial .step-card:nth-child(5){ grid-row:2; grid-column:2; }
.theme-editorial .step-card:nth-child(6){ grid-row:2; grid-column:1; }
.theme-editorial .step-card:nth-child(10){ grid-row:4; grid-column:3; }
.theme-editorial .step-card:nth-child(11){ grid-row:4; grid-column:2; }
.theme-editorial .step-card:nth-child(12){ grid-row:4; grid-column:1; }
/* Arrow glyph base */
.theme-editorial .step-card::after{ position:absolute; color:var(--ed-brass-rule); font-size:1.7rem; line-height:1; z-index:2; pointer-events:none; }
/* Rightward arrows: non-end cards of a left-to-right row (positions 1-2, 7-8) */
.theme-editorial .step-card:nth-child(1)::after,
.theme-editorial .step-card:nth-child(2)::after,
.theme-editorial .step-card:nth-child(7)::after,
.theme-editorial .step-card:nth-child(8)::after{ content:"\2192"; top:50%; right:-23px; transform:translate(50%,-50%); }
/* Leftward arrows: non-end cards of a reversed row (positions 4-5, 10-11) */
.theme-editorial .step-card:nth-child(4)::after,
.theme-editorial .step-card:nth-child(5)::after,
.theme-editorial .step-card:nth-child(10)::after,
.theme-editorial .step-card:nth-child(11)::after{ content:"\2190"; top:50%; left:-23px; transform:translate(-50%,-50%); }
/* Down arrows: at each row-end that continues to the next row (positions 3, 6, 9) */
.theme-editorial .step-card:nth-child(3)::after,
.theme-editorial .step-card:nth-child(6)::after,
.theme-editorial .step-card:nth-child(9)::after{ content:"\2193"; left:50%; bottom:-20px; transform:translate(-50%,50%); }
/* The final card never gets a trailing arrow */
.theme-editorial .step-card:last-child::after{ content:"" !important; }
@media (max-width:760px){
  .theme-editorial .steps{ grid-template-columns:1fr; grid-auto-flow:row; grid-auto-rows:auto; }
  /* stack vertically: clear every horizontal/placed arrow, use a single down arrow between all */
  .theme-editorial .step-card:nth-child(n){ grid-row:auto; grid-column:auto; }
  .theme-editorial .step-card::after{ content:""; }
  .theme-editorial .step-card:not(:last-child)::after{ content:"\2193"; left:50%; right:auto; bottom:-24px; top:auto; transform:translate(-50%,50%); }
}

/* Differentiator video (left column, where the portrait was) */
.theme-editorial .ed-split-video{ width:100%; }
.theme-editorial .ed-split-video .ed-video{ box-shadow:var(--shadow); }

/* ---- Blog listing: filter, search, grid ---- */
.theme-editorial .ed-blog-intro{ max-width:760px; font:400 1.08rem/1.7 var(--ed-sans); color:var(--ed-text); margin:0 0 28px; }
.theme-editorial .ed-blogtools{ display:flex; flex-wrap:wrap; gap:16px 24px; align-items:center; justify-content:space-between; margin:0 0 30px; }
.theme-editorial .ed-blogfilters{ display:flex; flex-wrap:wrap; gap:8px; }
.theme-editorial .ed-blogfilters button{ background:#fff; border:1px solid var(--ed-hair); color:var(--ed-text); font:600 .82rem/1 var(--ed-sans); padding:9px 15px; border-radius:20px; cursor:pointer; transition:border-color .15s, color .15s, background .15s; }
.theme-editorial .ed-blogfilters button:hover{ border-color:var(--ed-brass-rule); color:var(--ed-ink); }
.theme-editorial .ed-blogfilters button.is-active{ background:var(--ed-brass); border-color:var(--ed-brass); color:var(--ed-ivory); }
.theme-editorial .ed-blogsearch input{ width:260px; max-width:100%; padding:11px 16px; border:1px solid var(--ed-hair); border-radius:24px; font:400 .92rem/1 var(--ed-sans); background:#fff; color:var(--ed-ink); }
.theme-editorial .ed-blogsearch input:focus{ outline:none; border-color:var(--ed-brass); box-shadow:0 0 0 3px rgba(152,117,62,.15); }
.theme-editorial .ed-bloggrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; align-items:start; }
.theme-editorial .ed-blogcard{ display:flex; flex-direction:column; }
.theme-editorial .ed-blogcard .ed-post-body{ display:flex; flex-direction:column; flex:1; padding:20px 22px 22px; }
.theme-editorial .ed-blogcard h3{ font-size:1.15rem; margin:9px 0 8px; }
.theme-editorial .ed-blogcard p{ flex:1; font:400 .9rem/1.6 var(--ed-sans); color:var(--ed-text); margin:0 0 12px; }
.theme-editorial .ed-blog-meta{ color:var(--ed-muted); font:500 .8rem/1 var(--ed-sans); }
.theme-editorial .ed-blog-noresults{ text-align:center; color:var(--ed-muted); font:500 1rem/1.6 var(--ed-sans); padding:30px 0; }
.theme-editorial .ed-blog-reset{ background:none; border:0; color:var(--ed-brass-text); font:600 1rem/1 var(--ed-sans); cursor:pointer; text-decoration:underline; }
@media (max-width:900px){ .theme-editorial .ed-bloggrid{ grid-template-columns:1fr 1fr; } .theme-editorial .ed-blogtools{ flex-direction:column; align-items:stretch; } .theme-editorial .ed-blogsearch input{ width:100%; } }
@media (max-width:600px){ .theme-editorial .ed-bloggrid{ grid-template-columns:1fr; } }

/* Accessibility: links inside body copy are underlined, not color-only */
.theme-editorial .prose a:not(.btn):not(.card-link){ text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; }
.theme-editorial .ed-blog-intro a{ text-decoration:underline; text-underline-offset:3px; }

/* Accessibility: comfortable touch targets on small screens */
@media (max-width:820px){
  .topbar a{ display:inline-block; padding:8px 2px; }
  .site-footer li{ margin-bottom:2px; }
  .site-footer li a{ display:inline-block; padding:6px 0; }
  .ed-blogfilters button{ padding:10px 16px; }
}

/* Accessibility: any link inside a paragraph is underlined, not color-only */
.theme-editorial p a:not(.btn){ text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; }
