/* ============================================================
   City Page A — barristar-child
   Matches reference (San Diego) layout exactly.
   Updated: wider page, correct section backgrounds,
   font sizes matching live Keener site.
   Barristar palette: red #9f0b19 · navy #06163a · gold #d4c291
   ============================================================ */

/* ── Tokens ── */
:root {
  --c-accent:      #9f0b19;
  --c-accent-dk:   #7a1520;
  --c-gold:        #d4c291;
  --c-navy:        #06163a;
  --c-navy-2:      #0a172b;
  --c-navy-3:      #123a80;
  --c-ink:         #06163a;
  --c-ink-2:       #4a4a4a;
  --c-ink-3:       #9ba3b0;
  --c-line:        #e3e6ec;
  --c-paper:       #ffffff;
  --c-paper-t:     #f5f5f5;
  --c-paper-tt:    #f0f0f0;
  --c-white:       #ffffff;
  --c-head:        'Playfair Display', Georgia, serif;
  --c-body:        'Open Sans', system-ui, sans-serif;
  --c-mob:         16px;
  --c-tab:         28px;
  --c-dsk:         40px;
}

/* ── Page wrapper — wider than before ── */
.kl-city-wrap {
  max-width: 1280px;
  margin: 0 auto;
  padding-left: var(--c-mob);
  padding-right: var(--c-mob);
}
@media (min-width: 768px)  { .kl-city-wrap { padding-left: var(--c-tab); padding-right: var(--c-tab); } }
@media (min-width: 1100px) { .kl-city-wrap { padding-left: var(--c-dsk); padding-right: var(--c-dsk); } }

/* ── Eyebrows ── */
.kl-city-eyebrow {
  font-family: var(--c-body);
  font-size: 11px; letter-spacing: 0.16em;
  text-transform: uppercase; font-weight: 700;
  margin: 0 0 12px; display: inline-flex; align-items: center; gap: 8px;
}
.kl-city-eyebrow--accent { color: var(--c-accent) !important; }
.kl-city-eyebrow--gold   { color: var(--c-gold)   !important; }
.kl-city-eyebrow__rule   { width: 28px; height: 1px; background: currentColor; display: inline-block; flex-shrink: 0; }

/* ── Buttons ── */
.kl-city-btn {
  display: inline-block; font-family: var(--c-body);
  font-weight: 700; font-size: 13px; letter-spacing: 0.06em;
  text-transform: uppercase; padding: 13px 24px;
  text-decoration: none !important; border: 2px solid transparent;
  cursor: pointer; transition: all .25s; text-align: center; line-height: 1.3;
}
.kl-city-btn--accent       { background: var(--c-accent); color: #fff !important; border-color: var(--c-accent); }
.kl-city-btn--accent:hover { background: var(--c-accent-dk); border-color: var(--c-accent-dk); color: #fff !important; }
.kl-city-btn--ghost        { background: transparent; color: #fff !important; border-color: rgba(255,255,255,.4); }
.kl-city-btn--ghost:hover  { background: rgba(255,255,255,.1); color: #fff !important; }
.kl-city-btn--outline      { background: transparent; color: var(--c-navy) !important; border-color: var(--c-navy); }
.kl-city-btn--outline:hover{ background: var(--c-navy); color: #fff !important; }
.kl-city-btn--block        { display: block; width: 100%; }

/* ════════════════════════════════════════
   BREADCRUMB
════════════════════════════════════════ */
.kl-city-breadcrumb {
  background: var(--c-paper);
  border-top: 3px solid var(--c-accent);
  border-bottom: 1px solid var(--c-line);
  padding: 10px 0;
  font-family: var(--c-body); font-size: 13px; color: var(--c-ink-2);
}
.kl-city-breadcrumb .kl-city-wrap { display: flex; align-items: center; flex-wrap: wrap; }
.kl-city-breadcrumb__link       { color: var(--c-ink-2) !important; text-decoration: none; }
.kl-city-breadcrumb__link:hover { color: var(--c-accent) !important; text-decoration: underline; }
.kl-city-breadcrumb__sep        { margin: 0 8px; color: var(--c-ink-3); }
.kl-city-breadcrumb__current    { color: var(--c-ink) !important; font-weight: 600; }

/* ════════════════════════════════════════
   SECTION 1 · HERO — dark navy bg
════════════════════════════════════════ */
.kl-city-hero {
  background: #3c3b6e;
  padding: 52px 0 48px;
  position: relative; overflow: hidden;
}
.kl-city-hero__ring {
  position: absolute; right: -120px; top: -80px;
  width: 540px; height: 540px;
  border: 1px solid rgba(255,255,255,.05);
  border-radius: 50%; pointer-events: none;
}
.kl-city-hero__inner {
  display: grid; grid-template-columns: 1fr;
  gap: 40px; position: relative;
}
@media (min-width: 1024px) {
  .kl-city-hero__inner { grid-template-columns: 1fr 360px; align-items: start; }
}

/* Title — matches live site: Playfair Display, large, white */
.kl-city-hero__title {
  font-family: var(--c-head);
  font-size: 38px; font-weight: 700;
  line-height: 1.1; color: #fff !important;
  margin: 0 0 18px; letter-spacing: -.01em;
}
@media (min-width: 768px)  { .kl-city-hero__title { font-size: 46px; } }
@media (min-width: 1280px) { .kl-city-hero__title { font-size: 52px; } }

/* Intro — Open Sans 18px matching live body text */
.kl-city-hero__intro { margin: 0 0 22px; }
.kl-city-hero__intro p {
  font-family: var(--c-body); font-size: 18px;
  font-weight: 400; line-height: 1.75;
  color: #d0d8e8 !important; margin: 0;
}

/* Trust bullets */
.kl-city-hero__bullets {
  list-style: none; margin: 0 0 28px; padding: 0;
  display: grid; grid-template-columns: 1fr 1fr; gap: 10px 20px;
}
@media (max-width: 479px) { .kl-city-hero__bullets { grid-template-columns: 1fr; } }
.kl-city-hero__bullet {
  display: flex; align-items: center; gap: 10px;
  font-family: var(--c-body); font-size: 15px;
  font-weight: 400; color: #fff !important;
}
.kl-city-hero__bullet-mark {
  width: 20px; height: 20px; flex-shrink: 0;
  background: var(--c-gold); color: var(--c-navy);
  display: grid; place-items: center;
  font-size: 11px; font-weight: 800;
}

/* CTA buttons */
.kl-city-hero__actions {
  display: flex; flex-direction: column;
  gap: 12px; margin-bottom: 20px;
}
@media (min-width: 480px) {
  .kl-city-hero__actions { flex-direction: row; flex-wrap: wrap; gap: 14px; }
}
.kl-city-hero__updated {
  font-family: var(--c-body); font-size: 13px;
  color: #8899b8 !important; margin: 0;
}

/* NAP card */
.kl-city-nap {
  background: var(--c-white); color: var(--c-ink);
  padding: 24px 22px; position: relative;
  box-shadow: 0 20px 50px -12px rgba(0,0,0,.55);
  align-self: flex-start;
}
.kl-city-nap__accent {
  position: absolute; top: 0; left: 0;
  width: 4px; height: 72px; background: var(--c-accent);
}
.kl-city-nap__eyebrow {
  font-family: var(--c-body); font-size: 10px; font-weight: 700;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--c-accent) !important; margin: 0 0 8px;
}
.kl-city-nap__title {
  font-family: var(--c-head); font-size: 18px; font-weight: 700;
  color: var(--c-ink) !important; margin: 0 0 12px; line-height: 1.25;
}
.kl-city-nap__address {
  font-family: var(--c-body); font-style: normal;
  font-size: 14px; color: var(--c-ink) !important;
  line-height: 1.6; margin: 0 0 14px;
  padding-bottom: 14px; border-bottom: 1px solid var(--c-line);
}
.kl-city-nap__details { margin: 0; }
.kl-city-nap__row {
  display: flex; justify-content: space-between; align-items: center;
  gap: 10px; padding: 7px 0;
  border-top: 1px dotted var(--c-line); margin: 0;
}
.kl-city-nap__row:first-child { border-top: none; padding-top: 0; }
.kl-city-nap__term {
  font-family: var(--c-body); font-size: 10px; text-transform: uppercase;
  letter-spacing: 0.12em; color: var(--c-ink-2) !important;
  font-weight: 700; margin: 0; flex-shrink: 0;
}
.kl-city-nap__def {
  font-family: var(--c-body); font-size: 13px;
  color: var(--c-ink) !important; font-weight: 600;
  margin: 0; text-align: right;
}
.kl-city-nap__def a { color: var(--c-ink) !important; font-weight: 700; text-decoration: none; }
.kl-city-nap__def a:hover { color: var(--c-accent) !important; }
.kl-city-nap__def--mono { font-family: monospace; font-size: 11px; font-weight: 400; }

/* Remote */
.kl-city-nap--remote { background: rgba(255,255,255,.05); box-shadow: none; border: 1px solid rgba(255,255,255,.12); }
.kl-city-nap--remote .kl-city-nap__eyebrow { color: var(--c-accent) !important; }
.kl-city-nap__remote-copy  { font-family: var(--c-body); font-size: 15px; color: #d0d8e8 !important; line-height: 1.65; margin: 0 0 14px; }
.kl-city-nap__remote-phone { font-family: var(--c-head); font-size: 24px; font-weight: 700; color: #fff !important; text-decoration: none; display: block; }

/* ════════════════════════════════════════
   SECTION 2 · SNAPSHOT — white bg
   (same as reference: white background,
    left red accent, clear separation via
    top/bottom padding from grey sections)
════════════════════════════════════════ */
.kl-city-snapshot {
  background: var(--c-paper);
  padding: 56px 0;
  border-top: 1px solid var(--c-line);
}

/* Card uses left red border — matches San Diego reference exactly */
.kl-city-snapshot__card {
  background: var(--c-white);
  border-left: 4px solid var(--c-accent);
  padding: 8px 0 8px 28px; /* left padding creates space from red bar */
}

/* Accent div hidden — we use border-left on card instead */
.kl-city-snapshot__accent { display: none; }

/* Eyebrow "KEY FACTS" */
.kl-city-snapshot .kl-city-eyebrow {
  display: block;
  font-family: var(--c-body);
  font-size: 11px; letter-spacing: 0.16em;
  text-transform: uppercase; font-weight: 700;
  color: var(--c-accent) !important;
  margin: 0 0 14px;
}

/* Title — large bold matching reference */
.kl-city-snapshot__title {
  font-family: var(--c-head);
  font-size: 32px; font-weight: 700;
  color: var(--c-ink) !important;
  margin: 0 0 24px;
  padding-bottom: 0;
  border-bottom: none;
  line-height: 1.15;
}

/* Divider line below title */
.kl-city-snapshot__divider {
  border: none;
  border-top: 1px solid var(--c-line);
  margin: 0 0 0;
}

.kl-city-snapshot__grid {
  display: grid; grid-template-columns: 1fr;
}
.kl-city-snapshot__row {
  display: grid; grid-template-columns: 1fr;
  gap: 4px; padding: 16px 0;
  border-bottom: 1px solid var(--c-line);
}
.kl-city-snapshot__row:last-child { border-bottom: none; }

/* Label — uppercase small grey */
.kl-city-snapshot__term {
  font-family: var(--c-body); font-size: 13px;
  text-transform: uppercase; letter-spacing: 0.12em;
  color: var(--c-ink-2) !important; font-weight: 700; margin: 0;
}
.page-wrapper .kl-city-snapshot__term,
.page-wrapper .kl-city-snapshot__grid dt.kl-city-snapshot__term {
  font-size: 13px !important;
  color: var(--c-ink-2) !important;
  line-height: 1.4 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
}

/* Value — regular black text, phone NOT red */
.kl-city-snapshot__def {
  font-family: var(--c-body); font-size: 15px;
  color: var(--c-ink) !important; margin: 0; line-height: 1.55;
}
.page-wrapper .kl-city-snapshot__def,
.page-wrapper .kl-city-snapshot__grid dd.kl-city-snapshot__def {
  font-size: 15px !important;
  color: var(--c-ink) !important;
  line-height: 1.55 !important;
  margin: 0 !important;
}

/* Phone link — dark navy like reference, NOT red */
.kl-city-snapshot__def a {
  color: var(--c-ink) !important;
  text-decoration: underline;
  font-weight: 400;
}
.kl-city-snapshot__def a:hover { color: var(--c-accent) !important; }

@media (min-width: 768px) {
  .kl-city-snapshot__card  { padding: 8px 0 8px 32px; }
  .kl-city-snapshot__title { font-size: 36px; }
  .kl-city-snapshot__grid  { grid-template-columns: repeat(2, 1fr); gap: 0 80px; }
  .kl-city-snapshot__row   { grid-template-columns: 220px 1fr; gap: 4px; align-items: baseline; }
}

/* ════════════════════════════════════════
   SECTION 3 · CTA BRIDGE — purple-navy #3c3b6e
════════════════════════════════════════ */
.kl-city-cta-bridge {
  background: #3c3b6e;
  padding: 40px 0;
}
.kl-city-cta-bridge__inner {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.kl-city-cta-bridge__title {
  font-family: var(--c-head);
  font-size: 22px; font-weight: 700;
  color: #ffffff !important;
  margin: 0 0 8px; line-height: 1.25;
}
.kl-city-cta-bridge__lede {
  font-family: var(--c-body);
  font-size: 15px;
  color: rgba(255,255,255,.8) !important;
  margin: 0; line-height: 1.6;
}
.kl-city-cta-bridge__actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex-shrink: 0;
}

/* Button 1 — red, always visible */
.kl-city-cta-bridge__actions .kl-city-btn--accent {
  background: var(--c-accent) !important;
  color: #ffffff !important;
  border-color: var(--c-accent) !important;
  border-radius: 50px !important;
}
.kl-city-cta-bridge__actions .kl-city-btn--accent:hover {
  background: var(--c-accent-dk) !important;
  border-color: var(--c-accent-dk) !important;
}

/* Button 2 — Call, always visible, white outline */
.kl-city-cta-bridge__actions .kl-city-btn--outline {
  background: transparent !important;
  color: #ffffff !important;
  border-color: #ffffff !important;
  border-radius: 50px !important;
  transition: background .25s;
}
.kl-city-cta-bridge__actions .kl-city-btn--outline:hover {
  background: rgba(255,255,255,.15) !important;
  color: #ffffff !important;
}

@media (min-width: 768px) {
  .kl-city-cta-bridge__inner   { flex-direction: row; align-items: center; justify-content: space-between; gap: 40px; }
  .kl-city-cta-bridge__copy    { flex: 1; }
  .kl-city-cta-bridge__actions { min-width: 260px; flex-direction: column; gap: 10px; }
  .kl-city-cta-bridge__title   { font-size: 24px; }
}

/* ════════════════════════════════════════
   SECTION 4 · BODY CONTENT + TOC — white bg
════════════════════════════════════════ */
.kl-city-body {
  background: var(--c-paper);
  padding: 56px 0;
  border-top: 1px solid var(--c-line);
}
.kl-city-body__inner {
  display: grid; grid-template-columns: 1fr; gap: 36px;
}
@media (min-width: 1024px) {
  .kl-city-body__inner { grid-template-columns: 230px 1fr; gap: 56px; align-items: start; }
}

/* TOC sticky — force overflow:visible on every ancestor */
.kl-city-toc {
  background: var(--c-paper-t);
  border: 1px solid var(--c-line);
  padding: 20px 18px;
}
@media (min-width: 1024px) {
  /* Kill overflow on every wrapper that could break sticky */
  html, body,
  .page-wrapper,
  .site-content,
  .content-area,
  .entry-content,
  .kl-city-body,
  .kl-city-wrap,
  .kl-city-body__inner {
    overflow: visible !important;
  }
  .kl-city-toc {
    position: sticky !important;
    top: 90px !important;
    align-self: start;
  }
}
.kl-city-toc__title {
  font-family: var(--c-body); font-size: 10px; font-weight: 700;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--c-ink-2) !important; margin: 0 0 14px;
}
.kl-city-toc__list  { list-style: none; padding: 0; margin: 0; }
.kl-city-toc__item  {
  display: flex; gap: 10px; align-items: baseline;
  padding: 7px 0; border-bottom: 1px dotted var(--c-line);
}
.kl-city-toc__item:last-child { border-bottom: none; }
.kl-city-toc__num  {
  font-family: var(--c-body); font-size: 11px;
  color: var(--c-accent) !important; font-weight: 700;
  flex-shrink: 0; min-width: 22px;
}
.kl-city-toc__link {
  font-family: var(--c-body); font-size: 13px;
  color: var(--c-ink) !important; text-decoration: none; line-height: 1.4;
}
.kl-city-toc__link:hover { color: var(--c-accent) !important; text-decoration: underline; }

/* Article body — Open Sans 18px black matching live site */
.kl-city-body__content {
  font-family: var(--c-body); font-size: 18px;
  font-weight: 400; line-height: 1.85;
  color: #000000 !important;
}
.kl-city-body__content h2 {
  font-family: var(--c-head); font-size: 28px; font-weight: 700;
  color: var(--c-ink) !important; margin: 2em 0 .55em;
  padding-bottom: .3em; border-bottom: 2px solid var(--c-accent);
}
.kl-city-body__content h3 {
  font-family: var(--c-head); font-size: 22px; font-weight: 600;
  color: var(--c-ink) !important; margin: 1.6em 0 .4em;
}
.kl-city-body__content h4 {
  font-family: var(--c-head); font-size: 19px; font-weight: 600;
  color: var(--c-ink) !important; margin: 1.4em 0 .35em;
}
.kl-city-body__content p  { margin: 0 0 1.4em; color: #000000 !important; }
.kl-city-body__content a  { color: var(--c-accent) !important; text-decoration: underline; }
.kl-city-body__content a:hover { color: var(--c-accent-dk) !important; }
.kl-city-body__content ul,
.kl-city-body__content ol  { padding-left: 24px; margin: 0 0 1.4em; }
.kl-city-body__content li  { margin-bottom: .4em; color: #000000 !important; }
.kl-city-body__content strong { color: var(--c-ink) !important; font-weight: 700; }
.kl-city-body__content blockquote {
  border-left: 4px solid var(--c-gold); background: var(--c-paper-t);
  margin: 1.5em 0; padding: 16px 22px; font-style: italic;
}
.kl-city-body__content img { max-width: 100%; border: 1px solid var(--c-line); }

/* ════════════════════════════════════════
   SECTION 5 · FAQ — light grey bg
   (alternates with white body above to
    create clear visual separation)
════════════════════════════════════════ */
.kl-city-faq {
  background: var(--c-paper-t);
  padding: 60px 0;
  border-top: 1px solid var(--c-line);
  border-bottom: 1px solid var(--c-line);
}
.kl-city-faq__inner {
  display: grid; grid-template-columns: 1fr; gap: 36px;
}
@media (min-width: 768px) {
  .kl-city-faq__inner { grid-template-columns: 300px 1fr; gap: 60px; align-items: start; }
}

.kl-city-faq__side { }
.kl-city-faq__title {
  font-family: var(--c-head); font-size: 28px; font-weight: 700;
  color: var(--c-ink) !important; margin: 0 0 14px; line-height: 1.2;
}
.kl-city-faq__lede {
  font-family: var(--c-body); font-size: 15px;
  color: var(--c-ink-2) !important; line-height: 1.7; margin: 0;
}
.kl-city-faq__lede a { color: var(--c-accent) !important; }

/* Accordion */
.kl-city-faq__list { }
.kl-city-faq__item {
  border-bottom: 1px solid var(--c-line);
  background: var(--c-white);
}
.kl-city-faq__item:first-child { border-top: 1px solid var(--c-line); }
.kl-city-faq__q {
  display: flex; justify-content: space-between; align-items: center;
  gap: 16px; padding: 18px 16px; cursor: pointer; list-style: none;
  font-family: var(--c-body); font-size: 15px; font-weight: 600;
  color: var(--c-ink) !important;
}
.kl-city-faq__q::-webkit-details-marker { display: none; }
.kl-city-faq__item[open] > .kl-city-faq__q { color: var(--c-accent) !important; }
.kl-city-faq__item[open] .kl-city-faq__icon {
  transform: rotate(45deg); color: var(--c-accent) !important;
}
.kl-city-faq__icon {
  font-size: 22px; font-weight: 300; flex-shrink: 0;
  color: var(--c-accent) !important; transition: transform .2s; line-height: 1;
}
.kl-city-faq__a { padding: 0 16px 18px; }
.kl-city-faq__a p {
  font-family: var(--c-body); font-size: 15px;
  color: var(--c-ink-2) !important; line-height: 1.75; margin: 0;
}

/* ════════════════════════════════════════
   SECTION 6 · CONVERSION + FORM — dark navy bg
════════════════════════════════════════ */
.kl-city-conversion {
  background: var(--c-navy-2);
  padding: 60px 0;
}
.kl-city-conversion__inner {
  display: grid; grid-template-columns: 1fr; gap: 40px;
}
@media (min-width: 768px) {
  .kl-city-conversion__inner { grid-template-columns: 1fr 1fr; gap: 60px; align-items: start; }
}

.kl-city-conversion__eyebrow {
  font-family: var(--c-body); font-size: 10px; font-weight: 700;
  letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--c-gold) !important; margin: 0 0 10px; display: block;
}
.kl-city-conversion__title {
  font-family: var(--c-head); font-size: 28px; font-weight: 700;
  color: #fff !important; margin: 0 0 16px; line-height: 1.2;
}
.kl-city-conversion__lede {
  font-family: var(--c-body); font-size: 16px;
  color: #c8d3e8 !important; margin: 0 0 28px; line-height: 1.75;
}
.kl-city-conversion__phone { margin-top: 4px; }
.kl-city-conversion__phone-label {
  font-family: var(--c-body); font-size: 10px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.12em;
  color: var(--c-gold) !important; margin: 0 0 4px;
}
.kl-city-conversion__phone-num {
  font-family: var(--c-head); font-size: 30px; font-weight: 700;
  color: #fff !important; text-decoration: none; display: block; margin-bottom: 4px;
}
.kl-city-conversion__phone-num:hover { color: var(--c-gold) !important; }
.kl-city-conversion__phone-hours {
  font-family: var(--c-body); font-size: 13px;
  color: #8899b8 !important; margin: 0;
}

/* CF7 form wrapper */
.kl-city-form-wrap {
  background: var(--c-white); padding: 32px 28px;
}
.kl-city-form-wrap .wpcf7-form { display: flex; flex-direction: column; gap: 0; }
.kl-city-form-wrap .wpcf7-form p { margin: 0 0 16px !important; }
.kl-city-form-wrap .wpcf7-form br { display: none; }
.kl-city-form-wrap label {
  display: block; font-family: var(--c-body) !important;
  font-size: 11px !important; font-weight: 700 !important;
  color: var(--c-ink) !important; margin-bottom: 5px;
  text-transform: uppercase; letter-spacing: 0.06em;
}
.kl-city-form-wrap input[type="text"],
.kl-city-form-wrap input[type="tel"],
.kl-city-form-wrap input[type="email"],
.kl-city-form-wrap select,
.kl-city-form-wrap textarea {
  width: 100% !important; padding: 12px 14px !important;
  font-family: var(--c-body) !important; font-size: 15px !important;
  color: var(--c-ink) !important;
  border: 1px solid var(--c-line) !important;
  background: #fff !important; border-radius: 0 !important;
  box-sizing: border-box !important;
  transition: border-color .2s, box-shadow .2s !important;
}
.kl-city-form-wrap input:focus,
.kl-city-form-wrap textarea:focus {
  outline: none !important;
  border-color: var(--c-accent) !important;
  box-shadow: 0 0 0 3px rgba(159,11,25,.1) !important;
}
.kl-city-form-wrap textarea { resize: vertical !important; min-height: 100px !important; }
.kl-city-form-wrap input[type="submit"],
.kl-city-form-wrap .wpcf7-submit {
  width: 100% !important;
  background: var(--c-accent) !important; color: #fff !important;
  border: 2px solid transparent !important; border-radius: 50px !important;
  font-family: var(--c-body) !important; font-size: 13px !important;
  font-weight: 700 !important; letter-spacing: 0.06em !important;
  text-transform: uppercase !important; padding: 15px 22px !important;
  cursor: pointer !important; transition: background .25s !important;
  margin-top: 4px !important;
}
.kl-city-form-wrap input[type="submit"]:hover,
.kl-city-form-wrap .wpcf7-submit:hover { background: var(--c-accent-dk) !important; }
.kl-city-form-legal {
  font-family: var(--c-body); font-size: 12px;
  color: var(--c-ink-2) !important; margin: 14px 0 0; line-height: 1.6;
}
.kl-city-form-notice {
  font-family: var(--c-body); font-size: 13px;
  color: var(--c-ink-2) !important; padding: 16px;
  background: var(--c-paper-t); border: 1px solid var(--c-line);
}

/* ════════════════════════════════════════
   CF7 FORM — shared with hub page
   Styles the .kl-cf7-wrap / .kl-msg-header
   classes that live inside the CF7 template
════════════════════════════════════════ */

/* Red header bar */
.kl-msg-header {
  background: #9f0b19;
  padding: 18px 24px;
  text-align: center;
}
.kl-msg-header h2,
.kl-msg-title {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: 28px !important; font-weight: 700 !important;
  color: #ffffff !important; margin: 0 !important; line-height: 1.2 !important;
}

/* Form wrapper */
.kl-cf7-wrap {
  background: #ffffff;
  padding: 14px 12px 18px;
  font-family: 'Open Sans', sans-serif;
}

/* Hide CF7 auto-generated <p> and <br> — they add unwanted spacing */
.kl-cf7-wrap .wpcf7-form p:not(.kl-cf7-privacy-links),
.kl-cf7-wrap .wpcf7-form br {
  display: none !important; margin: 0 !important; padding: 0 !important;
}
.kl-cf7-field > p {
  display: block !important; margin: 0 !important; padding: 0 !important;
  font-size: inherit !important; color: inherit !important; line-height: inherit !important;
}
.kl-cf7-field > p > br, .kl-cf7-field br, .kl-cf7-wrap br {
  display: none !important; height: 0 !important; line-height: 0 !important;
  font-size: 0 !important; margin: 0 !important; padding: 0 !important;
}
.kl-cf7-wrap .wpcf7-form-control-wrap {
  display: block !important; width: 100% !important;
  position: relative !important; margin: 0 !important; padding: 0 !important;
}
.kl-cf7-wrap .wpcf7-form p:has(.wpcf7-form-control-wrap),
.kl-cf7-wrap p:has(.wpcf7-form-control-wrap) {
  margin-bottom: 0 !important; margin-top: 0 !important;
}
.page-wrapper .kl-cf7-wrap p,
.page-wrapper .kl-cf7-field p {
  margin: 0 !important; padding: 0 !important;
  font-size: inherit !important; color: inherit !important; line-height: inherit !important;
}

/* Rows */
.kl-cf7-row { margin-bottom: 8px; }
.kl-cf7-row--2 { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 10px !important; }
.kl-cf7-row--submit { margin-top: 8px; }

/* Question rows */
.kl-cf7-qtable { width: 100% !important; border-collapse: collapse !important; margin-bottom: 0 !important; background: #ffffff !important; }
.kl-cf7-qtr { border-bottom: 1px solid #f0f0f0 !important; }
.kl-cf7-qtr:last-child { border-bottom: none !important; }
.kl-cf7-qtd-label p, .kl-cf7-qtd-label > p,
.page-wrapper .kl-cf7-qtd-label p, .page-wrapper .kl-cf7-qtable td p {
  display: inline !important; font-size: 12px !important; font-weight: 600 !important;
  color: #06163a !important; line-height: 1.35 !important; margin: 0 !important; padding: 0 !important;
}
.page-wrapper .kl-cf7-qtable td, .page-wrapper .kl-cf7-qtable tr {
  font-size: 12px !important; color: #06163a !important;
  background: transparent !important; border: none !important;
}
.kl-cf7-qtd-label, .page-wrapper .kl-cf7-qtd-label {
  font-family: 'Open Sans', sans-serif !important; font-size: 12px !important;
  font-weight: 600 !important; color: #06163a !important;
  padding: 8px 12px !important; line-height: 1.35 !important;
  width: 100% !important; vertical-align: middle !important;
}
.kl-cf7-qtd-radio, .page-wrapper .kl-cf7-qtd-radio {
  padding: 8px 12px !important; white-space: nowrap !important; vertical-align: middle !important;
}
.kl-cf7-qtd-radio .wpcf7-radio {
  display: flex !important; flex-direction: row !important; gap: 12px !important; flex-wrap: nowrap !important;
}
.kl-cf7-qtd-radio .wpcf7-list-item {
  display: flex !important; align-items: center !important; gap: 4px !important;
  margin: 0 !important; list-style: none !important; white-space: nowrap !important;
}
.kl-cf7-qtd-radio .wpcf7-list-item label,
.page-wrapper .kl-cf7-qtd-radio .wpcf7-list-item label,
.page-wrapper .kl-cf7-qtable .wpcf7-list-item label,
.page-wrapper .kl-cf7-qtable .wpcf7-list-item-label {
  font-size: 12px !important; font-weight: 400 !important; color: #06163a !important;
  cursor: pointer !important; margin: 0 !important; line-height: 1 !important;
}
.kl-cf7-qtd-radio .wpcf7-list-item input[type="radio"] {
  width: 14px !important; height: 14px !important; accent-color: #9f0b19 !important;
  cursor: pointer !important; flex-shrink: 0 !important; margin: 0 !important;
}
@media (max-width: 560px) {
  .kl-cf7-qtd-label, .page-wrapper .kl-cf7-qtd-label { font-size: 11px !important; padding: 6px 8px !important; }
  .kl-cf7-qtd-radio { padding: 6px 8px !important; }
}

/* Field */
.kl-cf7-field { display: flex !important; flex-direction: column !important; gap: 2px !important; }

/* Labels */
.kl-cf7-wrap label {
  display: block !important; font-family: 'Open Sans', sans-serif !important;
  font-size: 12px !important; font-weight: 600 !important; color: #06163a !important;
  margin: 0 0 2px 0 !important; text-transform: none !important;
  letter-spacing: 0 !important; line-height: 1.2 !important;
}

/* Text / tel / email inputs */
.kl-cf7-wrap input[type="text"],
.kl-cf7-wrap input[type="tel"],
.kl-cf7-wrap input[type="email"] {
  width: 100% !important; padding: 8px 10px !important;
  font-family: 'Open Sans', sans-serif !important; font-size: 13px !important;
  color: #06163a !important; background: #ffffff !important;
  border: 1px solid #c8c8c8 !important; border-radius: 3px !important;
  box-sizing: border-box !important; outline: none !important;
  height: 38px !important; transition: border-color .2s !important; display: block !important;
}
.kl-cf7-wrap input[type="text"]:focus,
.kl-cf7-wrap input[type="tel"]:focus,
.kl-cf7-wrap input[type="email"]:focus {
  border-color: #9f0b19 !important; box-shadow: 0 0 0 2px rgba(159,11,25,.1) !important;
}

/* Textarea */
.kl-cf7-wrap textarea {
  width: 100% !important; padding: 8px 10px !important;
  font-family: 'Open Sans', sans-serif !important; font-size: 13px !important;
  color: #06163a !important; background: #ffffff !important;
  border: 1px solid #c8c8c8 !important; border-radius: 3px !important;
  box-sizing: border-box !important; min-height: 75px !important;
  max-height: 100px !important; resize: vertical !important;
  outline: none !important; transition: border-color .2s !important; display: block !important;
}
.kl-cf7-wrap textarea:focus {
  border-color: #9f0b19 !important; box-shadow: 0 0 0 2px rgba(159,11,25,.1) !important;
}

/* SMS consent / acceptance */
.kl-cf7-wrap .wpcf7-acceptance { display: flex !important; align-items: flex-start !important; gap: 7px !important; }
.kl-cf7-wrap .wpcf7-acceptance .wpcf7-list-item { display: flex !important; align-items: flex-start !important; gap: 7px !important; margin: 0 !important; list-style: none !important; }
.kl-cf7-wrap .wpcf7-acceptance input[type="checkbox"] { width: 13px !important; height: 13px !important; flex-shrink: 0 !important; margin-top: 2px !important; accent-color: #9f0b19 !important; cursor: pointer !important; }
.kl-cf7-consent-text { font-family: 'Open Sans', sans-serif !important; font-size: 11px !important; font-weight: 400 !important; color: #555 !important; line-height: 1.5 !important; }
.kl-cf7-privacy-links { font-family: 'Open Sans', sans-serif !important; font-size: 11px !important; color: #666 !important; margin: 4px 0 0 !important; line-height: 1.4 !important; }
.kl-cf7-privacy-links a { color: #9f0b19 !important; text-decoration: underline !important; font-weight: 600 !important; font-size: 11px !important; }
.page-wrapper .kl-cf7-wrap p.kl-cf7-privacy-links,
.page-wrapper .kl-cf7-privacy-links { font-size: 11px !important; color: #666 !important; margin: 4px 0 0 !important; line-height: 1.4 !important; }

/* Submit button */
.kl-cf7-wrap input[type="submit"],
.kl-cf7-wrap .wpcf7-submit {
  width: 100% !important; background: #9f0b19 !important; color: #ffffff !important;
  border: none !important; border-radius: 50px !important;
  font-family: 'Open Sans', sans-serif !important; font-size: 14px !important;
  font-weight: 700 !important; letter-spacing: 0.06em !important;
  text-transform: uppercase !important; padding: 13px 24px !important;
  cursor: pointer !important; transition: background .25s !important; display: block !important;
}
.kl-cf7-wrap input[type="submit"]:hover,
.kl-cf7-wrap .wpcf7-submit:hover { background: #7a1520 !important; }

/* Parent theme list override */
.page-wrapper .kl-cf7-wrap ul li,
.page-wrapper .kl-cf7-wrap ol li,
.kl-cf7-wrap .wpcf7-radio li,
.kl-cf7-wrap .wpcf7-acceptance li {
  font-size: inherit !important; color: inherit !important;
  line-height: inherit !important; list-style: none !important;
  margin: 0 !important; padding: 0 !important;
}

/* Validation */
.kl-cf7-wrap .wpcf7-not-valid { border-color: #9f0b19 !important; }
.kl-cf7-wrap .wpcf7-not-valid-tip { font-size: 11px !important; color: #9f0b19 !important; margin-top: 2px !important; display: block !important; }
.kl-cf7-wrap .wpcf7-response-output,
.kl-cf7-wrap .wpcf7-mail-sent-ok,
.kl-cf7-wrap .wpcf7-validation-errors { display: none !important; }
/* CF7 native response output — hidden; custom toasts handle all feedback */
.wpcf7 .wpcf7-response-output { display: none !important; }

/* Submit loading state */
.kl-cf7-wrap input[type="submit"].kl-submitting,
.kl-cf7-wrap .wpcf7-submit.kl-submitting {
  background: #7a1520 !important; opacity: 0.75 !important;
  cursor: not-allowed !important; pointer-events: none !important;
}

/* ── CF7 Toasts — hidden by default, shown by JS ── */
.kl-cf7-toast {
  display: none;
  align-items: center;
  gap: 10px;
  border-radius: 4px;
  padding: 12px 16px;
  margin-bottom: 10px;
  font-family: 'Open Sans', sans-serif;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.4;
  animation: kl-toast-in .25s ease;
}
.kl-cf7-toast--error {
  background: #fff3cd;
  border: 1px solid #f0ad4e;
  border-left: 4px solid #9f0b19;
  color: #06163a;
}
.kl-cf7-toast--error .kl-cf7-toast__icon { color: #9f0b19; font-size: 16px; flex-shrink: 0; }
.kl-cf7-toast--success {
  background: #f0faf0;
  border: 1px solid #2e7d32;
  border-left: 4px solid #2e7d32;
  color: #1a5c2a;
}
.kl-cf7-toast--success .kl-cf7-toast__icon { color: #2e7d32; font-size: 16px; flex-shrink: 0; }
@keyframes kl-city-toast-in {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: translateY(0); }
}
.kl-cf7-qtr.kl-radio-error .kl-cf7-qtd-label,
.kl-cf7-qtr.kl-radio-error .kl-cf7-qtd-label p { color: #9f0b19 !important; }
.wpcf7-form-control-wrap[data-name="receiving-benefits"] .wpcf7-not-valid-tip,
.wpcf7-form-control-wrap[data-name="currently-represented"] .wpcf7-not-valid-tip,
.wpcf7-form-control-wrap[data-name="currently-treating"] .wpcf7-not-valid-tip,
.wpcf7-form-control-wrap[data-name="out-of-work"] .wpcf7-not-valid-tip,
.wpcf7-form-control-wrap[data-name="sms-consent"] .wpcf7-not-valid-tip {
  display: none !important;
  visibility: hidden !important;
}

/* ════════════════════════════════════════
   DISCLAIMER
════════════════════════════════════════ */
.kl-city-disclaimer {
  background: var(--c-paper-t); border-top: 1px solid var(--c-line);
  padding: 20px 0;
  font-family: var(--c-body); font-size: 12px;
  color: var(--c-ink-2) !important; line-height: 1.65;
}
.kl-city-disclaimer strong { color: var(--c-ink) !important; }

/* ════════════════════════════════════════
   MOBILE
════════════════════════════════════════ */
@media (max-width: 767px) {
  .kl-city-hero        { padding: 36px 0 32px; }
  .kl-city-hero__title { font-size: 30px; }
  .kl-city-snapshot    { padding: 36px 0; }
  .kl-city-cta-bridge  { padding: 28px 0; }
  .kl-city-body        { padding: 36px 0; }
  .kl-city-faq         { padding: 40px 0; }
  .kl-city-conversion  { padding: 40px 0; }
  .kl-city-form-wrap   { padding: 22px 16px; }
  .kl-city-conversion__title { font-size: 24px; }
  .kl-city-faq__title  { font-size: 22px; }
}

/* ============================================================
   PARENT THEME OVERRIDE — elements.css conflicts
   Overrides .page-wrapper ul li / ol li { font-size:18px; color:#000 }
   from barristar/assets/css/elements.css
   ============================================================ */

/* TOC list */
.page-wrapper .kl-city-toc__list li.kl-city-toc__item,
.page-wrapper ul.kl-city-toc__list li.kl-city-toc__item {
  font-size: 13px !important;
  color: var(--c-ink) !important;
  line-height: 1.4 !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 6px 0 !important;
}

/* Trust bullets in hero */
.page-wrapper .kl-city-hero__bullets li.kl-city-hero__bullet,
.page-wrapper ul.kl-city-hero__bullets li.kl-city-hero__bullet {
  font-size: 15px !important;
  color: #ffffff !important;
  line-height: 1.5 !important;
  list-style: none !important;
  margin: 0 !important;
}

/* Key facts snapshot — any stray list items */
.page-wrapper .kl-city-snapshot__grid dl dt,
.page-wrapper .kl-city-snapshot__grid dl dd {
  font-size: 15px !important;
  color: var(--c-ink) !important;
  line-height: 1.55 !important;
}

/* FAQ items */
.page-wrapper .kl-city-faq__list details,
.page-wrapper .kl-city-faq__list summary {
  list-style: none !important;
}