/* ============================================================
   CS Advocates LLP, Design System v1.4 (fluid, mobile-first polish)
   Palette: navy #0e1a2f / #16263f, gold #c9a227 / #e3c766,
   paper #f7f5f0, ink #1c2430, muted #5a6a7d
   ============================================================ */

:root {
  --cs-navy: #111111;
  --cs-navy-2: #2a2a2a;
  --cs-gold: #c9a227;
  --cs-gold-2: #e3c766;
  --cs-gold-ink: #6d5620;
  --cs-paper: #f7f5f0;
  --cs-ink: #1c2430;
  --cs-muted: #5a6a7d;
  --cs-gutter: clamp(16px, 4vw, 28px);
  --cs-section: clamp(3rem, 7vw, 5rem);
}

/* ---------- Base ---------- */
html { scroll-behavior: smooth; }
html, body { overflow-x: clip; }
body {
  font-family: "Segoe UI", system-ui, -apple-system, sans-serif;
  color: var(--cs-ink);
  background: #ffffff;
  -webkit-font-smoothing: antialiased;
  font-size: clamp(15px, 0.6vw + 13.5px, 17px);
  line-height: 1.65;
}
h1, h2, h3, .wp-block-quote cite {
  font-family: Georgia, "Times New Roman", serif;
  color: var(--cs-navy);
  letter-spacing: -0.01em;
  line-height: 1.2;
}
h2 { font-size: clamp(1.55rem, 2.6vw + 0.8rem, 2.35rem); margin-bottom: 1rem; }
h3 { font-size: clamp(1.05rem, 0.7vw + 0.9rem, 1.25rem); line-height: 1.35; }
p { line-height: 1.7; }
.entry-content a { color: var(--cs-navy-2); text-decoration-color: var(--cs-gold); text-underline-offset: 3px; }
.entry-content a:hover { color: var(--cs-gold-ink, #7a5f10); }

/* ---------- Theme palette slugs ---------- */
.has-primary-background-color { background-color: var(--cs-navy) !important; }
.has-secondary-background-color { background-color: var(--cs-paper) !important; }
.has-base-color { color: #ffffff !important; }
.has-text-color { color: #ffffff !important; }

/* ---------- Header / navigation ---------- */
.main-navigation, .main-navigation ul ul { background: var(--cs-bg) !important; }
#site-navigation { border-top: 1px solid var(--cs-border); }
.site-header {
  border-bottom: 3px solid var(--cs-gold);
  background: #fff;
  position: sticky;
  top: 0;
  z-index: 999;
}
.admin-bar .site-header { top: 32px; }
.header-image.is-logo-image, .custom-logo {
  height: clamp(44px, 4vw, 64px);
  width: auto;
  display: block;
}
.site-branding > a, .site-branding a[href*="home"] { display: inline-block; }
/* Logo replaces the text title in the header (h1 lives in the hero) */
.site-header .main-title, .site-header .site-description { display: none; }
.content-area { width: 100% !important; }
/* Full-bleed pages: release GP's 1200px page grid; sections self-constrain */
body:not(.single) #page { max-width: none; padding-left: 0; padding-right: 0; }
#site-navigation .inside-navigation { display: flex; }
.main-navigation .main-nav > ul > li > a {
  color: var(--cs-navy);
  font-weight: 600;
  font-size: 0.95rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.main-navigation .main-nav > ul > li > a:hover,
.main-navigation .main-nav > ul > li.current-menu-item > a { color: var(--cs-gold-ink, #7a5f10); }
.main-navigation .menu-toggle {
  background: var(--cs-navy); color: #fff; border-radius: 2px;
  min-height: 48px; min-width: 48px; padding: 12px 20px; box-sizing: border-box;
  font-size: 15px; letter-spacing: 0.04em;
}
.main-navigation .menu-toggle:hover { background: var(--cs-gold); color: var(--cs-navy); }
.main-navigation.toggled .main-nav > ul {
  background: var(--cs-navy);
  border-top: 2px solid var(--cs-gold);
  box-shadow: 0 14px 30px rgba(8, 15, 30, 0.25);
}
.main-navigation.toggled .main-nav > ul li a {
  color: #fff; padding: 15px 22px; font-size: 1rem;
}
.main-navigation.toggled .main-nav > ul li a:hover { color: var(--cs-gold-2); background: var(--cs-navy-2); }

/* ---------- Layout ---------- */
#right-sidebar, #left-sidebar, .widget-area { display: none; }
body:not(.single) .site-content { max-width: none; padding: 0; }
body:not(.single) .inside-article { padding: 0; background: transparent; box-shadow: none; }
/* Page title band: visible H1 on inner pages (was display:none, hidden-text risk) */
body.page:not(.home) .entry-header {
  display: block;
  background: var(--cs-navy);
  padding: clamp(2.2rem, 5vw, 3.6rem) var(--cs-gutter);
  margin-bottom: 0;
}
body.page:not(.home) .entry-title {
  color: #fff;
  font-size: clamp(1.7rem, 2.6vw + 0.6rem, 2.5rem);
  max-width: 1200px;
  margin: 0 auto;
}
body.page:not(.home) .entry-content { padding-top: 0; }
body.page:not(.home) .entry-content > *:first-child { margin-top: 2rem; }
body.home .entry-header { display: none; }
body:not(.single) .entry-content > *:not(.alignfull) {
  width: 100%;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--cs-gutter);
  padding-right: var(--cs-gutter);
  box-sizing: border-box;
}
body.single .site-content { max-width: 920px; padding: 0 var(--cs-gutter); }
.wp-block-cover.alignfull, .wp-block-group.alignfull { width: 100%; }

/* ---------- Hero ---------- */
.wp-block-cover { overflow: hidden; }
.entry-content > .wp-block-cover:first-child {
  min-height: 78vh !important;
  display: flex;
  align-items: center;
  background-color: #0b1628 !important;
  background-image: radial-gradient(circle at 18% 18%, rgba(201, 162, 39, .22), transparent 34%), radial-gradient(circle at 84% 76%, rgba(31, 86, 115, .38), transparent 42%), linear-gradient(135deg, #0b1628 0%, #142b42 52%, #0b1628 100%);
}
.wp-block-cover__background { opacity: 0.8; }
/* Bias the hero photo to the skyline, not the hazy sky */
.wp-block-cover__image-background { object-position: center 68%; }
.entry-content > .wp-block-cover:first-child .wp-block-cover__background { opacity: 0.72; }
.wp-block-cover__inner-container {
  max-width: 900px !important;
  margin: 0 auto !important;
  padding: clamp(40px, 8vh, 90px) var(--cs-gutter) !important;
  text-shadow: 0 2px 18px rgba(8, 15, 30, 0.6);
}
.entry-content > .wp-block-cover:first-child h1 {
  color: #fff;
  font-size: clamp(1.85rem, 4vw + 0.6rem, 3.5rem);
  line-height: 1.12;
  margin-bottom: 1.1rem;
  text-wrap: balance;
}
.entry-content > .wp-block-cover:first-child p {
  font-size: clamp(1.02rem, 0.9vw + 0.68rem, 1.24rem) !important;
  line-height: 1.6;
  text-wrap: pretty;
  max-width: 46ch;
  margin-left: auto;
  margin-right: auto;
}
/* Hero button row: two CTAs side by side, wrap on mobile */
.entry-content > .wp-block-cover:first-child .wp-block-buttons { gap: 12px; }
.entry-content > .wp-block-cover:first-child .wp-block-button__link { box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3); }
.entry-content > .wp-block-cover:first-child .is-style-outline .wp-block-button__link {
  background: rgba(0, 0, 0, 0.25) !important;
  color: #fff !important;
  border: 1.5px solid rgba(255, 255, 255, 0.75) !important;
  box-shadow: none;
}
.entry-content > .wp-block-cover:first-child .is-style-outline .wp-block-button__link:hover {
  background: rgba(255, 255, 255, 0.14) !important;
}
/* Micro-trust line under the CTAs */
.entry-content > .wp-block-cover:first-child .has-small-font-size {
  font-size: 0.88rem !important;
  opacity: 0.95;
  margin-top: 1.1rem;
  letter-spacing: 0.01em;
}

/* ---------- Buttons ---------- */
.wp-block-button__link {
  background: var(--cs-gold) !important;
  color: var(--cs-navy) !important;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  font-size: 0.88rem !important;
  padding: 15px 34px !important;
  border-radius: 2px !important;
  transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
  box-shadow: 0 2px 8px rgba(201, 162, 39, 0.25);
}
.wp-block-button__link:hover {
  background: var(--cs-gold-2) !important;
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(201, 162, 39, 0.3);
}

/* ---------- Trust bar ---------- */
.wp-block-group.alignfull.has-secondary-background-color {
  border-top: 1px solid var(--cs-gold);
  border-bottom: 1px solid var(--cs-gold);
  padding: clamp(12px, 1.6vw, 18px) 0;
}
.wp-block-group.alignfull.has-secondary-background-color p {
  color: var(--cs-muted) !important;
  font-size: clamp(0.8rem, 1vw + 0.5rem, 1.05rem) !important;
  line-height: 1.8;
}
.wp-block-group.alignfull.has-secondary-background-color .has-medium-font-size strong { color: var(--cs-navy); }

/* ---------- Section rhythm ---------- */
.entry-content > h2 { margin-top: var(--cs-section); }
.entry-content > .wp-block-columns { margin-top: 2rem; }

/* ---------- Practice-area cards ---------- */
.wp-block-columns { gap: clamp(14px, 1.8vw, 26px); }
.wp-block-columns .wp-block-column {
  background: #fbfaf7;
  border-top: 3px solid var(--cs-gold);
  padding: clamp(1.2rem, 2vw, 1.7rem);
  box-shadow: 0 1px 3px rgba(14, 26, 47, 0.08);
  transition: box-shadow 0.22s ease, transform 0.22s ease;
}
@media (hover: hover) {
  .wp-block-columns .wp-block-column:hover {
    box-shadow: 0 10px 26px rgba(14, 26, 47, 0.13);
    transform: translateY(-3px);
  }
}
.wp-block-columns .wp-block-column h3 { margin-bottom: 0.5rem; }
@media (min-width: 860px) {
  .wp-block-columns .wp-block-column h3 { min-height: 2.7em; }
}
.wp-block-columns .wp-block-column p { color: var(--cs-muted); font-size: 0.95rem; line-height: 1.65; }

/* ---------- Partner cards ---------- */
.cs-partners .cs-partner {
  background: #fbfaf7;
  border: 1px solid #eee7d6;
  border-top: 3px solid var(--cs-gold);
  padding: clamp(1.4rem, 2.4vw, 2.2rem);
  box-shadow: 0 1px 3px rgba(14, 26, 47, 0.07);
}
.cs-partner .wp-block-image img {
  border-radius: 50%;
  width: clamp(130px, 16vw, 200px);
  height: auto;
  border: 3px solid var(--cs-gold);
  box-shadow: 0 6px 18px rgba(14, 26, 47, 0.18);
}
.cs-partner h3 { margin: 0.9rem 0 0.2rem; }
.cs-partner p { margin-top: 0.35rem; }
.cs-partner ul { padding-left: 1.2em; margin-top: 0.8rem; }
.cs-partner ul li { color: var(--cs-muted); font-size: 0.93rem; margin-bottom: 0.45rem; }

/* ---------- Testimonial ---------- */
.wp-block-quote {
  border-left: 4px solid var(--cs-gold);
  background: var(--cs-paper);
  padding: clamp(1.3rem, 2.5vw, 2.2rem);
  font-size: clamp(1rem, 1vw + 0.7rem, 1.2rem);
  font-style: italic;
  color: var(--cs-navy-2);
  max-width: 860px;
  margin: 2rem auto;
}
.wp-block-quote cite { font-style: normal; font-size: 0.95rem; color: var(--cs-muted); display: block; margin-top: 0.8rem; }

/* ---------- Blog ---------- */
.post-image, .wp-post-image { width: 100%; height: auto; border-radius: 3px; }
.single .entry-header .entry-title { font-size: clamp(1.55rem, 2.6vw + 0.7rem, 2.4rem); line-height: 1.25; }
.single .entry-meta { color: var(--cs-muted); font-size: 0.9rem; }
.entry-content ul, .entry-content ol { padding-left: 1.3em; }
.entry-content li { margin-bottom: 0.5rem; line-height: 1.65; }

/* ---------- Closing CTA cover: solid navy, not washed grey ---------- */
.wp-block-cover.alignfull:not(:first-child) { padding: var(--cs-section) 0; }
.wp-block-cover.alignfull:not(:first-child) .wp-block-cover__background {
  opacity: 1 !important;
  background-color: var(--cs-navy) !important;
}
.wp-block-cover.alignfull:not(:first-child) .wp-block-cover__inner-container {
  max-width: 900px; margin: 0 auto; padding: 0 var(--cs-gutter);
}
.wp-block-cover.alignfull:not(:first-child) h2 {
  color: #fff; font-size: clamp(1.45rem, 2.4vw + 0.7rem, 2.2rem);
  margin-bottom: 1.5rem; text-wrap: balance;
}

/* ---------- Rich footer (mu-plugin markup) ---------- */
.cs-footer {
  background: var(--cs-navy);
  color: #b9c4d4;
  border-top: 3px solid var(--cs-gold);
  font-size: 0.92rem;
}
.cs-footer-grid {
  max-width: 1200px;
  margin: 0 auto;
  padding: clamp(2.2rem, 4vw, 3.5rem) var(--cs-gutter);
  display: grid;
  gap: clamp(1.6rem, 3vw, 2.6rem);
  grid-template-columns: 1fr;
}
@media (min-width: 860px) {
  .cs-footer-grid { grid-template-columns: 1.25fr .75fr 1.15fr 1fr; }
}
.cs-footer h4, .cs-footer .cs-footer-h {
  font-family: Georgia, serif;
  color: #fff;
  font-size: 1.02rem;
  letter-spacing: 0.02em;
  margin: 0 0 0.9rem;
}
.cs-footer a { color: #b9c4d4; text-decoration: none; }
.cs-footer a:hover { color: var(--cs-gold-2); }
.cs-footer-brand {
  font-family: Georgia, serif;
  color: #fff;
  font-size: 1.25rem;
  letter-spacing: 0.06em;
  margin: 0 0 0.6rem;
}
.cs-footer-brand .gold-rule {
  display: block; width: 54px; height: 2px;
  background: var(--cs-gold); margin-top: 0.55rem;
}
.cs-footer ul { list-style: none; margin: 0; padding: 0; }
.cs-footer ul li { margin-bottom: 0.5rem; }
.cs-footer .contact-line { margin: 0 0 0.5rem; }
.site-info { border-top: 1px solid rgba(201, 162, 39, 0.3); }

/* ---------- Mobile (≤ 782px: Gutenberg stacks columns) ---------- */
@media (max-width: 782px) {
  .header-image.is-logo-image, .custom-logo { height: 36px; }
  .site-header { padding: 4px 0; }
  .inside-header { padding: 8px 16px !important; }

  .entry-content > .wp-block-cover:first-child { min-height: 72svh !important; }

  .wp-block-columns .wp-block-column { margin-bottom: 14px; }
  .wp-block-columns .wp-block-column:last-child { margin-bottom: 0; }

  .wp-block-buttons, .wp-block-buttons .wp-block-button { width: 100%; }
  .wp-block-buttons .wp-block-button__link {
    display: block; width: 100%; max-width: 400px; margin: 0 auto;
    text-align: center; padding: 16px 22px !important;
  }
  .entry-content > h2 { margin-top: 2.4rem; }
}
@media (max-width: 420px) {
  .entry-content > .wp-block-cover:first-child h1 { font-size: 1.7rem; }
}

/* ---------- Desktop nav (flex row, hamburger hidden ≥783px) ---------- */
@media (min-width: 783px) {
  #site-navigation .inside-navigation { justify-content: flex-end; }
  #site-navigation ul.main-nav,
  #site-navigation .main-nav ul {
    display: flex !important;
    flex-wrap: wrap;
    align-items: center;
    gap: 2px 22px;
  }
  #site-navigation ul.main-nav li a { display: inline-block; padding: 12px 0; }
  .inside-header { align-items: center; }
  .main-navigation .menu-toggle, .mobile-menu-control-wrapper { display: none !important; }
}

/* ---------- Admin bar guard ---------- */
.admin-bar .wp-block-cover.alignfull { width: auto; }

/* ---------- Floating WhatsApp / call widget ---------- */
.cs-float {
  position: fixed;
  right: clamp(12px, 2vw, 22px);
  bottom: clamp(12px, 2vw, 22px);
  z-index: 9999;
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: flex-end;
}
.cs-float-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 54px;
  border-radius: 50%;
  color: #fff;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.28);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
@media (hover: hover) {
  .cs-float-btn:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(0, 0, 0, 0.34); }
}
.cs-float-wa { background: #1faf54; }
.cs-float-call {
  background: var(--cs-gold); color: #111;
  width: auto; min-width: 54px; border-radius: 999px;
  padding: 0 18px; gap: 9px;
  font-weight: 700; font-size: 0.98rem; letter-spacing: 0.01em;
  white-space: nowrap;
}
@media (max-width: 600px) {
  .cs-float-call {
    padding: 0 11px; font-size: 0.78rem; gap: 5px;
    max-width: calc(100vw - 96px);
    overflow: hidden; text-overflow: ellipsis;
  }
}
.cs-float-label {
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  background: var(--cs-navy);
  color: #fff;
  padding: 5px 10px;
  border-radius: 2px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease;
}
.cs-float:hover .cs-float-label { opacity: 1; }
@media (max-width: 600px) {
  .cs-float-btn { width: 60px; height: 60px; }
  .cs-float-label { display: none; }
}

/* ---------- Quick contact form panel ---------- */
.cs-quickform {
  position: fixed;
  right: clamp(12px, 2vw, 22px);
  bottom: clamp(150px, 20vh, 210px);
  z-index: 9998;
  width: min(320px, calc(100vw - 24px));
  background: #fff;
  border: 1px solid #eee7d6;
  border-top: 3px solid var(--cs-gold);
  border-radius: 4px;
  box-shadow: 0 18px 44px rgba(14, 26, 47, 0.22);
  padding: 16px;
  animation: cs-panel-in 0.25s ease;
}
@keyframes cs-panel-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.cs-quickform strong { display: block; font-family: Georgia, serif; color: var(--cs-navy); margin-bottom: 8px; }
.cs-quickform input, .cs-quickform textarea {
  width: 100%; box-sizing: border-box; margin-bottom: 8px;
  padding: 10px 12px; border: 1px solid #cfd6e0; border-radius: 2px; font-size: 0.95rem;
}
.cs-quickform input:focus, .cs-quickform textarea:focus { outline: 2px solid var(--cs-gold); outline-offset: 1px; }
.cs-quickform .cs-portal-btn {
  width: 100%; padding: 12px !important;
  background: var(--cs-gold) !important; color: #111 !important;
}
.cs-float-mail { background: var(--cs-navy); }
.cs-float-mail.cs-open { background: var(--cs-gold); color: #111; }

/* ---------- Partner quotes + email lines ---------- */
.cs-partner-quote {
  border-left: 3px solid var(--cs-gold);
  background: var(--cs-paper);
  padding: 0.9rem 1.1rem;
  margin: 0.9rem 0.4rem 0.4rem;
  font-style: italic;
  font-size: 0.93rem;
  color: var(--cs-navy-2);
  text-align: left;
}
.cs-partner-email {
  font-size: 0.88rem;
  word-break: break-all;
}
.cs-partner-email a { font-weight: 600; }
.cs-partner-posts {
  font-size: 0.9rem;
  margin-top: 0.5rem;
}

/* ============================================================
   v2.2, Blog index card grid + tasteful motion
   ============================================================ */

/* ---------- Blog archive: responsive card grid ---------- */
body.blog .site-main,
body.archive .site-main {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: clamp(16px, 2vw, 26px);
  max-width: 1280px;
  margin: 0 auto;
  padding: 1.8rem var(--cs-gutter) 3rem;
}
body.blog .site-main article.post,
body.archive .site-main article.post {
  background: #fff;
  border: 1px solid #eee7d6;
  border-top: 3px solid var(--cs-gold);
  border-radius: 4px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: 0 1px 3px rgba(14, 26, 47, 0.07);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  margin-bottom: 0;
}
@media (hover: hover) {
  body.blog .site-main article.post:hover,
  body.archive .site-main article.post:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 30px rgba(14, 26, 47, 0.14);
  }
}
body.blog .site-main article.post:first-child {
  grid-column: 1 / -1;
}
.inside-article { padding: 0; }
body.blog .inside-article,
body.archive .inside-article {
  padding: 0 0 1.2rem;
  display: flex;
  flex-direction: column;
  height: 100%;
}
body.blog .featured-image,
body.archive .featured-image {
  margin: 0 0 0;
  overflow: hidden;
}
body.blog .featured-image img,
body.archive .featured-image img,
body.blog .wp-post-image,
body.archive .wp-post-image {
  width: 100%;
  aspect-ratio: 16 / 9;
  height: auto;
  object-fit: cover;
  display: block;
  border-radius: 0;
  transition: transform 0.5s ease;
}
@media (hover: hover) {
  body.blog article.post:hover .wp-post-image { transform: scale(1.04); }
}
body.blog .post-image > a, body.archive .post-image > a { display: block; }
.page-header { display: none; }
body.blog .entry-header,
body.archive .entry-header {
  padding: 1.1rem 1.3rem 0;
}
body.blog .entry-title,
body.archive .entry-title {
  font-size: 1.18rem;
  line-height: 1.35;
  margin: 0 0 0.4rem;
}
body.blog .entry-title a,
body.archive .entry-title a { color: var(--cs-navy); text-decoration: none; }
body.blog .entry-title a:hover,
body.archive .entry-title a:hover { color: var(--cs-gold-ink, #7a5f10); }
body.blog .entry-meta,
body.archive .entry-meta { padding: 0 1.3rem; font-size: 0.82rem; }
body.blog .entry-summary,
body.archive .entry-summary {
  padding: 0.5rem 1.3rem 0.4rem;
  color: var(--cs-muted);
  font-size: 0.93rem;
  flex-grow: 1;
}
body.blog .entry-summary p,
body.archive .entry-summary p { margin: 0 0 0.6rem; }
body.blog .read-more, body.archive .read-more {
  display: inline-block; margin-top: 0.4rem; font-weight: 600;
  color: var(--cs-gold-ink, #7a5f10);
}
/* Excerpt clamping */
body.blog .entry-summary,
body.archive .entry-summary {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
/* Featured (first) card: horizontal on wide screens */
@media (min-width: 980px) {
  body.blog .site-main article.post:first-child .inside-article {
    flex-direction: row;
    align-items: stretch;
  }
  body.blog .site-main article.post:first-child .featured-image {
    flex: 0 0 52%;
    margin: 0;
  }
  body.blog .site-main article.post:first-child .featured-image img {
    height: 100%;
    aspect-ratio: auto;
    min-height: 320px;
  }
  body.blog .site-main article.post:first-child .entry-header,
  body.blog .site-main article.post:first-child .entry-meta,
  body.blog .site-main article.post:first-child .entry-summary {
    padding-left: 1.8rem;
    padding-right: 1.8rem;
  }
  body.blog .site-main article.post:first-child .entry-title { font-size: 1.5rem; }
  body.blog .site-main article.post:first-child .entry-summary {
    -webkit-line-clamp: 5;
    font-size: 1rem;
  }
}

/* ---------- Pagination ---------- */
.paging-navigation, .navigation.pagination {
  grid-column: 1 / -1;
  padding: 1rem 0 0.5rem;
}
.paging-navigation .nav-links, .navigation.pagination .nav-links {
  display: flex; gap: 8px; justify-content: center;
}
.paging-navigation .page-numbers, .navigation.pagination .page-numbers {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 42px; height: 42px; padding: 0 12px;
  border: 1px solid #e2ddcf; border-radius: 2px;
  color: var(--cs-navy); text-decoration: none; font-weight: 600;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.paging-navigation .page-numbers.current,
.navigation.pagination .page-numbers.current {
  background: var(--cs-navy); color: #fff; border-color: var(--cs-navy);
}
.paging-navigation a.page-numbers:hover,
.navigation.pagination a.page-numbers:hover {
  border-color: var(--cs-gold); color: var(--cs-gold-ink, #7a5f10);
}

/* ---------- Motion system (tasteful, reduced-motion aware) ---------- */
@media (prefers-reduced-motion: no-preference) {
  body { animation: cs-page-in 0.45s ease both; }
  @keyframes cs-page-in { from { opacity: 0; } to { opacity: 1; } }

  .cs-reveal {
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.22, 0.61, 0.36, 1);
    transition-delay: var(--cs-delay, 0s);
    will-change: opacity, transform;
  }
  .cs-reveal.cs-in { opacity: 1; transform: none; }

  .site-header { transition: box-shadow 0.3s ease; }
  .site-header.cs-scrolled { box-shadow: 0 6px 22px rgba(14, 26, 47, 0.12); }

  @media (max-width: 782px) {
    .cs-reveal { transform: translateY(10px); }
  }
}

/* ---------- Client portal ---------- */
.cs-portal { max-width: 860px; margin: 0 auto; }
.cs-portal-card {
  background: #fff;
  border: 1px solid #eee7d6;
  border-top: 3px solid var(--cs-gold);
  box-shadow: 0 2px 10px rgba(14, 26, 47, 0.08);
  padding: clamp(1.4rem, 3vw, 2.4rem);
  margin-top: 2rem;
}
.cs-portal h2 { margin-top: 0; }
.cs-portal label { display: block; font-weight: 600; margin: 1rem 0 0.3rem; }
.cs-portal input[type="text"], .cs-portal input[type="password"], .cs-portal input[type="email"] {
  width: 100%; max-width: 420px; padding: 12px 14px;
  border: 1px solid #cfd6e0; border-radius: 2px; font-size: 1rem;
}
.cs-portal input:focus { outline: 2px solid var(--cs-gold); outline-offset: 1px; }
.cs-portal .cs-portal-btn {
  display: inline-block; margin-top: 1.4rem;
  background: var(--cs-gold); color: #111; border: 0; cursor: pointer;
  font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; font-size: 0.88rem;
  padding: 14px 30px; border-radius: 2px;
  transition: background 0.2s ease;
}
.cs-portal .cs-portal-btn:hover { background: var(--cs-gold-2); }
.cs-portal-note { color: var(--cs-muted); font-size: 0.88rem; margin-top: 1rem; }
.cs-portal-dash { margin-top: 1.6rem; }
.cs-portal-dash h3 { margin-top: 1.6rem; }
.cs-matter { border-left: 3px solid var(--cs-gold); background: var(--cs-paper); padding: 0.9rem 1.1rem; margin-bottom: 0.8rem; }
.cs-matter strong { display: block; }
.cs-matter .cs-status { display: inline-block; font-size: 0.78rem; letter-spacing: 0.05em; text-transform: uppercase; color: var(--cs-gold-ink, #7a5f10); font-weight: 700; }
.cs-docs { padding-left: 1.2em; }
.cs-docs li { margin-bottom: 0.45rem; }

/* ============================================================
   v3.0 — Full theming: light/dark, brand shimmer, app-like reading
   Light: warm paper white + near-black + champagne gold
   Dark:  deep charcoal + soft white + brighter gold
   ============================================================ */

:root {
  --cs-bg: #ffffff;
  --cs-bg-soft: #faf9f6;
  --cs-card: #fcfbf8;
  --cs-border: #ece5d3;
  --cs-navy: #111114;
  --cs-navy-2: #2a2a2e;
  --cs-ink: #1c1c1f;
  --cs-muted: #565d66;
  --cs-paper: #f7f5f0;
  --cs-gold: #9c7a3c;
  --cs-gold-2: #bfa15e;
  --cs-gold-ink: #6d5620;
  --cs-shadow: rgba(14, 26, 47, 0.10);
  color-scheme: light;
}

[data-theme="dark"] {
  --cs-bg: #0c0c0f;
  --cs-bg-soft: #121216;
  --cs-card: #17171c;
  --cs-border: #2a2a31;
  --cs-navy: #0e0e11;
  --cs-navy-2: #1c1c22;
  --cs-ink: #e9e7e1;
  --cs-muted: #a6aab2;
  --cs-paper: #141418;
  --cs-gold: #c9a86a;
  --cs-gold-2: #e0c684;
  --cs-gold-ink: #d8c188;
  --cs-shadow: rgba(0, 0, 0, 0.5);
  color-scheme: dark;
}

/* ---------- Core surfaces follow the theme ---------- */
body { background: var(--cs-bg); color: var(--cs-ink); }
.site-header { background: var(--cs-bg); }
.main-navigation .main-nav > ul > li > a { color: var(--cs-ink); }
.wp-block-columns .wp-block-column,
.cs-partners .cs-partner,
.cs-portal-card,
.cs-quickform,
body.blog .site-main article.post,
body.archive .site-main article.post,
.paging-navigation .page-numbers,
.navigation.pagination .page-numbers {
  background: var(--cs-card);
  border-color: var(--cs-border);
}
.wp-block-columns .wp-block-column p,
.cs-partner ul li { color: var(--cs-muted); }
body:not(.single) .entry-content > *:not(.alignfull) { color: var(--cs-ink); }
.wp-block-quote { background: var(--cs-paper); }
.wp-block-group.alignfull.has-secondary-background-color { background: var(--cs-paper) !important; }
.wp-block-group.alignfull.has-secondary-background-color p { color: var(--cs-muted) !important; }
.wp-block-group.alignfull.has-secondary-background-color .has-medium-font-size strong { color: var(--cs-ink); }
.site-footer,
.cs-footer { background: var(--cs-navy); }
.cs-footer h4, .cs-footer .cs-footer-h { color: #fff; }
.cs-portal input, .cs-quickform input, .cs-quickform textarea,
.cs-portal input[type="text"], .cs-portal input[type="password"], .cs-portal input[type="email"] {
  background: var(--cs-bg);
  color: var(--cs-ink);
  border-color: var(--cs-border);
}
.cs-portal label { color: var(--cs-ink); }
body.blog .entry-title a, body.archive .entry-title a { color: var(--cs-ink); }
.entry-content a { color: var(--cs-ink); text-decoration-color: var(--cs-gold); }
.entry-content a:hover { color: var(--cs-gold-ink); }
.main-navigation.toggled .main-nav > ul { background: var(--cs-navy-2); }
[data-theme="dark"] .cs-quickform strong { color: #fff; }
[data-theme="dark"] img { filter: brightness(0.94); }
[data-theme="dark"] .wp-block-cover__background { opacity: 0.62; }

/* ---------- Theme toggle (injected into the header) ---------- */
.cs-theme-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  margin-left: 10px;
  border: 1px solid var(--cs-border);
  border-radius: 50%;
  background: var(--cs-card);
  color: var(--cs-ink);
  cursor: pointer;
  transition: border-color 0.2s ease, transform 0.3s ease, background 0.2s ease;
}
.cs-theme-toggle:hover { border-color: var(--cs-gold); transform: rotate(15deg); }
.cs-theme-toggle svg { width: 19px; height: 19px; }
[data-theme="dark"] .cs-theme-toggle .cs-sun { display: block; }
[data-theme="dark"] .cs-theme-toggle .cs-moon { display: none; }
.cs-theme-toggle .cs-sun { display: none; }
@media (max-width: 782px) {
  .cs-theme-toggle { width: 40px; height: 40px; margin-left: 4px; order: 5; }
}

/* ---------- Brand shimmer: one gentle sweep every ~9s ---------- */
@media (prefers-reduced-motion: no-preference) {
  .cs-shine { position: relative; overflow: hidden; }
  .cs-shine::after {
    content: "";
    position: absolute;
    inset: -4px;
    background: linear-gradient(115deg, transparent 41%, rgba(255, 255, 255, 0.32) 50%, transparent 59%);
    transform: translateX(-130%);
    animation: cs-shine 7s linear infinite;
    pointer-events: none;
  }
  [data-theme="dark"] .cs-shine::after {
    background: linear-gradient(115deg, transparent 44%, rgba(212, 175, 55, 0.22) 50%, transparent 56%);
  }
  .cs-shine-gold::after {
    background: linear-gradient(115deg, transparent 44%, rgba(255, 248, 220, 0.5) 50%, transparent 56%) !important;
  }
  @keyframes cs-shine {
    0%, 55% { transform: translateX(-135%); }
    100% { transform: translateX(135%); }
  }
}

/* ---------- App-like mobile reading ---------- */
@media (max-width: 782px) {
  body.single .site-content { padding: 0 14px; }
  .single .entry-content { font-size: 1.06rem; }
  .single .entry-content p { line-height: 1.78; }
  .single .featured-image { margin: 0 -14px 1.2rem; }
  .single .featured-image img, .wp-post-image { border-radius: 12px; }
  .single .entry-content h2 { scroll-margin-top: 90px; }
  .single .entry-content ul, .single .entry-content ol { padding-left: 1.15em; }
  .single .entry-content blockquote, .single .wp-block-quote {
    border-radius: 0 8px 8px 0;
  }
  .cs-float { bottom: 14px; }
}
/* Reading progress bar */
.cs-progress {
  position: fixed;
  top: 0; left: 0;
  height: 3px;
  width: 0;
  background: linear-gradient(90deg, var(--cs-gold), var(--cs-gold-2));
  z-index: 10000;
  transition: width 0.08s linear;
}

/* ---------- Styled Google Map (v3.4) ---------- */

/* ---------- Contact details: purposeful icons, not decorative bullets ---------- */
.cs-contact-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin: 1.75rem 0; }
.cs-contact-item { display: flex; align-items: flex-start; gap: .8rem; min-width: 0; padding: 1rem; border: 1px solid color-mix(in srgb, var(--cs-gold, #c9a227) 34%, transparent); border-radius: 14px; background: color-mix(in srgb, var(--cs-surface, #fff) 84%, transparent); color: inherit; text-decoration: none; transition: transform .18s ease, border-color .18s ease, background .18s ease; }
.cs-contact-item:hover, .cs-contact-item:focus-visible { transform: translateY(-2px); border-color: var(--cs-gold, #c9a227); background: color-mix(in srgb, var(--cs-gold, #c9a227) 10%, var(--cs-surface, #fff)); color: inherit; }
.cs-contact-item svg { flex: 0 0 1.4rem; width: 1.4rem; height: 1.4rem; margin-top: .15rem; fill: none; stroke: currentColor; stroke-width: 1.75; color: var(--cs-gold, #c9a227); }
.cs-contact-item:nth-child(3) svg { fill: currentColor; stroke: none; }
.cs-contact-item span > span, .cs-contact-item strong, .cs-contact-item em { display: block; }
.cs-contact-item strong { margin-bottom: .1rem; }
.cs-contact-item span > span { font-size: .93rem; line-height: 1.45; }
.cs-contact-item em { margin-top: .35rem; font-size: .82rem; font-style: normal; color: var(--cs-gold, #a77a10); }
.cs-contact-address { grid-column: 1 / -1; }
@media (max-width: 640px) { .cs-contact-details { grid-template-columns: 1fr; } .cs-contact-address { grid-column: auto; } }
.cs-footer-contact-line { display: flex; align-items: center; gap: .45rem; }
.cs-footer-contact-line svg { width: 1rem; height: 1rem; flex: 0 0 1rem; fill: none; stroke: currentColor; stroke-width: 1.8; color: var(--cs-gold, #c9a227); }
.cs-footer-contact-line:first-of-type svg { fill: currentColor; stroke: none; }
.cs-map-wrap {
  max-width: 1200px;
  margin: 2.5rem auto 0;
  padding: 0 var(--cs-gutter);
}
.cs-map-meta { margin-bottom: 1.1rem; }
.cs-map-title { margin: 0 0 0.3rem; }
.cs-map-addr { color: var(--cs-muted); margin: 0 0 0.4rem; font-size: 0.95rem; }
.cs-map-gps {
  display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
  font-size: 0.88rem; color: var(--cs-muted); margin: 0;
}
.cs-map-gps svg { color: var(--cs-gold); }
.cs-map-gps a { color: var(--cs-gold-ink, #7a5f10); font-weight: 600; }
.cs-map-frame {
  border: 1px solid var(--cs-border);
  border-top: 3px solid var(--cs-gold);
  border-radius: 6px;
  overflow: hidden;
  box-shadow: 0 8px 26px rgba(14, 26, 47, 0.12);
  line-height: 0;
}
.cs-map-frame iframe {
  width: 100%;
  height: clamp(260px, 38vw, 430px);
  border: 0;
  filter: grayscale(1) contrast(1.04);
  transition: filter 0.4s ease;
}
.cs-map-frame:hover iframe,
.cs-map-frame iframe:focus { filter: none; }
[data-theme="dark"] .cs-map-frame iframe { filter: grayscale(1) invert(0.92) contrast(0.9); }
[data-theme="dark"] .cs-map-frame:hover iframe { filter: invert(0.92) contrast(0.9); }

/* ============================================================
   v3.7 — Luxurious living header: one surface, drifting gold light
   ============================================================ */
.site-header, #site-navigation, .main-navigation, .main-navigation ul ul {
  background: transparent !important;
}
.site-header {
  overflow: hidden;
  background:
    linear-gradient(120deg, rgba(201, 162, 39, 0.07), rgba(201, 162, 39, 0) 34%),
    var(--cs-bg);
}
[data-theme="dark"] .site-header {
  background:
    linear-gradient(120deg, rgba(212, 175, 55, 0.08), rgba(212, 175, 55, 0) 36%),
    var(--cs-bg-soft);
}
/* The drifting light: one slow, wide sweep across the whole header */
.site-header::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(115deg,
    transparent 42%,
    rgba(201, 162, 39, 0.10) 48%,
    rgba(255, 255, 255, 0.20) 51%,
    transparent 60%);
  transform: translateX(-130%);
  animation: cs-luxe 18s ease-in-out infinite;
  pointer-events: none;
  z-index: 0;
}
[data-theme="dark"] .site-header::before {
  background: linear-gradient(115deg,
    transparent 42%,
    rgba(212, 175, 55, 0.12) 49%,
    rgba(232, 205, 111, 0.10) 52%,
    transparent 60%);
}
@keyframes cs-luxe {
  0%, 58% { transform: translateX(-135%); }
  100% { transform: translateX(135%); }
}
@media (prefers-reduced-motion: reduce) {
  .site-header::before { animation: none; }
}
/* Everything inside sits above the sweep */
.site-header > * , .inside-header, #site-navigation, .site-branding { position: relative; z-index: 1; }
/* Kill the seam between header and menu */
#site-navigation { border-top: 0; box-shadow: none; }

/* Refined items: gold hairline that draws itself on hover */
#site-navigation ul.main-nav > li > a,
#site-navigation .main-nav ul li a {
  color: var(--cs-ink);
  position: relative;
}
#site-navigation ul.main-nav > li > a::after,
#site-navigation .main-nav ul li a::after {
  content: "";
  position: absolute;
  left: 50%; bottom: 7px;
  width: 0; height: 2px;
  background: linear-gradient(90deg, var(--cs-gold), var(--cs-gold-2));
  transform: translateX(-50%);
  transition: width 0.38s cubic-bezier(0.22, 0.61, 0.36, 1);
}
#site-navigation ul.main-nav > li > a:hover::after,
#site-navigation .main-nav ul li.current-menu-item > a::after {
  width: calc(100% - 24px);
}
#site-navigation ul.main-nav > li > a:hover,
#site-navigation .main-nav ul li.current-menu-item > a {
  color: var(--cs-gold-ink, #7a5f10);
}
[data-theme="dark"] #site-navigation ul.main-nav > li > a:hover,
[data-theme="dark"] #site-navigation .main-nav ul li.current-menu-item > a {
  color: var(--cs-gold-2);
}
/* Client Login reads as the quiet call-to-action */
#site-navigation .main-nav ul li.menu-item a[href*="client-login"] {
  border: 1px solid var(--cs-gold);
  border-radius: 2px;
  padding: 8px 14px !important;
  margin-left: 6px;
  color: var(--cs-navy);
  background: var(--cs-gold);
  font-weight: 700;
}
[data-theme="dark"] #site-navigation .main-nav ul li.menu-item a[href*="client-login"] { color: #111; }
@media (min-width: 783px) {
  #site-navigation .main-nav ul li a[href*="client-login"]::after { display: none; }
}
/* Mobile opened menu keeps the luxe treatment */
.main-navigation.toggled .main-nav > ul {
  background:
    linear-gradient(120deg, rgba(212, 175, 55, 0.10), rgba(212, 175, 55, 0) 40%),
    var(--cs-navy-2);
}

/* ============================================================
   v3.8 — Header layout, labelled theme toggle, call pill, avatars
   ============================================================ */
/* Header = clean 3-zone row: logo | menu | theme toggle */
.inside-header {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 10px clamp(14px, 3vw, 28px) !important;
}
.site-branding { margin-right: auto; order: 0; display: flex; align-items: center; }
.site-branding a { display: inline-flex; align-items: center; }
.site-branding img { display: block; }
#site-navigation { order: 1; margin-left: auto; }
#site-navigation .inside-navigation { justify-content: flex-end; }
.cs-theme-toggle { order: 2; }

/* Clearly labelled theme toggle: rounded square, icon + text, gentle flicker */
.cs-theme-toggle {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  height: 40px;
  padding: 0 14px;
  border: 1px solid var(--cs-gold);
  border-radius: 10px;
  background: var(--cs-card);
  color: var(--cs-ink);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.cs-theme-toggle:hover { background: var(--cs-gold); color: #111; }
@media (prefers-reduced-motion: no-preference) {
  .cs-theme-toggle { animation: cs-flicker 9s ease-in-out infinite; }
  @keyframes cs-flicker {
    0%, 88%, 100% { box-shadow: 0 0 0 0 rgba(201, 162, 39, 0); }
    90% { box-shadow: 0 0 0 3px rgba(201, 162, 39, 0.35); opacity: 0.75; }
    93% { box-shadow: 0 0 0 1px rgba(201, 162, 39, 0); opacity: 1; }
    95% { box-shadow: 0 0 0 3px rgba(201, 162, 39, 0.3); opacity: 0.8; }
  }
}
.cs-theme-toggle svg { width: 15px; height: 15px; flex: none; }

[data-theme="dark"] .cs-theme-toggle { color: var(--cs-gold-2); }
[data-theme="dark"] .cs-theme-toggle:hover { color: #111; background: var(--cs-gold-2); }
@media (max-width: 600px) {
  .cs-theme-toggle { padding: 0 10px; gap: 5px; font-size: 0.72rem; height: 36px; min-width: 0; }
  .inside-header { padding-right: 12px !important; }
  .cs-theme-toggle { margin-right: 2px; }
  /* The label text stays visible at every size: never a bare circle. */
}

/* Call pill with visible number (replaces the earlier circle) */
.cs-float-call {
  background: var(--cs-gold) !important;
  color: #111 !important;
  width: auto !important;
  min-width: 54px;
  height: auto;
  min-height: 54px;
  border-radius: 999px !important;
  padding: 10px 18px;
  gap: 9px;
  font-weight: 700;
  font-size: 0.98rem;
  letter-spacing: 0.01em;
  white-space: nowrap;
  box-sizing: border-box;
}
.cs-float-call .cs-float-number { display: inline; }
@media (max-width: 600px) {
  .cs-float-call { padding: 9px 13px; font-size: 0.8rem; gap: 5px; min-height: 46px; max-width: calc(100vw - 88px); }
}

/* Partner avatar in the byline */
.cs-byline-avatar {
  width: 26px; height: 26px;
  border-radius: 50%;
  border: 1.5px solid var(--cs-gold);
  vertical-align: -8px;
  margin-right: 6px;
}

/* Author archive: partner bio header */
.cs-author-hero {
  max-width: 1280px;
  margin: 0 auto;
  padding: 2.2rem var(--cs-gutter) 0.6rem;
  display: flex;
  align-items: center;
  gap: 18px;
}
.cs-author-hero img {
  width: clamp(84px, 10vw, 120px); height: auto;
  border-radius: 50%;
  border: 3px solid var(--cs-gold);
}
.cs-author-hero h1 { margin: 0 0 0.2rem; font-size: clamp(1.4rem, 2.4vw, 2rem); }
.cs-author-hero p { margin: 0; color: var(--cs-muted); font-size: 0.95rem; }
@media (max-width: 600px) { .cs-author-hero { gap: 12px; } }

/* ---------- Cookie consent banner ---------- */
.cs-consent {
  position: fixed;
  left: 14px; right: 14px; bottom: 14px;
  z-index: 9998;
  max-width: 760px;
  margin: 0 auto;
  background: var(--cs-card);
  border: 1px solid var(--cs-border);
  border-top: 3px solid var(--cs-gold);
  border-radius: 6px;
  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.28);
  padding: clamp(14px, 2.4vw, 22px);
  animation: cs-panel-in 0.3s ease;
}
.cs-consent p { font-size: 0.9rem; line-height: 1.55; margin: 0 0 12px; color: var(--cs-ink); }
.cs-consent a { color: var(--cs-gold-ink, #7a5f10); font-weight: 600; }
.cs-consent-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.cs-consent-actions button {
  border: 0; cursor: pointer; border-radius: 2px;
  padding: 11px 20px; font-weight: 700; font-size: 0.85rem;
  letter-spacing: 0.04em; text-transform: uppercase;
}
.cs-consent-accept { background: var(--cs-gold); color: #111; }
.cs-consent-accept:hover { background: var(--cs-gold-2); }
.cs-consent-essential { background: transparent; color: var(--cs-muted); border: 1px solid var(--cs-border) !important; }
@media (max-width: 600px) {
  .cs-consent { left: 10px; right: 10px; bottom: 10px; max-height: 60vh; overflow: auto; }
  .cs-consent-actions button { flex: 1; }
}

/* ============================================================
   v4.1 — Typography (justified + hierarchy), fonts, dock, choreography
   ============================================================ */

/* Fonts (Playfair Display + Inter, graceful fallbacks) */
:root {
  --cs-font-head: "Playfair Display", Georgia, "Times New Roman", serif;
  --cs-font-body: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;
}
body, button, input, select, textarea { font-family: var(--cs-font-body); }
h1, h2, h3, h4, .wp-block-quote cite, .entry-title, .main-title,
.cs-footer-brand, .cs-footer h4, .cs-footer .cs-footer-h {
  font-family: var(--cs-font-head);
}

/* Clear hierarchy rhythm */
.entry-content h2 { margin-top: 2.4rem; margin-bottom: 0.9rem; }
.entry-content h3 { margin-top: 1.6rem; margin-bottom: 0.55rem; }
.entry-content h2 + h3 { margin-top: 1.1rem; }
.entry-content p { margin-bottom: 1rem; }
.entry-content li + li { margin-top: 0.35rem; }

/* Justified body text with hyphenation (articles + pages, not headings/UI) */
.single .entry-content p,
.page .entry-content p {
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
  -webkit-hyphens: auto;
  overflow-wrap: break-word;
}
.entry-content p.has-text-align-center { text-align: center !important; }
@media (max-width: 600px) {
  /* justification gets ragged on narrow phones: soften */
  .single .entry-content p, .page .entry-content p { text-align: left; }
}

/* Blog toolbar (chips + search) */
.cs-blognav {
  max-width: 1280px;
  margin: 0 auto;
  padding: 1.6rem var(--cs-gutter) 0.4rem;
}
.cs-blognav-searchrow { margin-bottom: 0.9rem; }
.cs-blognav-search {
  width: 100%; max-width: 520px; box-sizing: border-box; display: block;
  padding: 13px 16px;
  border: 1px solid var(--cs-border);
  border-left: 3px solid var(--cs-gold);
  border-radius: 3px;
  background: var(--cs-card);
  color: var(--cs-ink);
  font-size: 1rem;
}
.cs-blognav-search:focus { outline: 2px solid var(--cs-gold); outline-offset: 1px; }
.cs-blognav-chips {
  display: flex; flex-wrap: nowrap; gap: 8px;
  overflow-x: auto; padding-bottom: 8px;
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
}
.cs-chip {
  flex: none;
  border: 1px solid var(--cs-border);
  background: var(--cs-card);
  color: var(--cs-ink);
  border-radius: 999px;
  padding: 8px 16px;
  font-size: 0.85rem; font-weight: 600;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.cs-chip:hover { border-color: var(--cs-gold); }
.cs-chip.is-active { background: var(--cs-navy); color: #fff; border-color: var(--cs-navy); }
.cs-chip-n {
  opacity: 0.6; font-weight: 500; font-size: 0.78rem;
  margin-left: 3px;
}
.cs-blognav-count { color: var(--cs-muted); font-size: 0.85rem; margin: 0.5rem 0 0; }

/* Breadcrumbs */
.cs-crumbs {
  max-width: 920px;
  margin: 0 auto;
  padding: 1.1rem var(--cs-gutter) 0;
  font-size: 0.82rem;
  color: var(--cs-muted);
}
.cs-crumbs a { color: var(--cs-muted); text-decoration: none; }
.cs-crumbs a:hover { color: var(--cs-gold-ink, #7a5f10); }
.cs-crumbs .cs-crumb-here { color: var(--cs-ink); }

/* Styled prev/next post navigation */
.navigation.post-navigation .nav-links {
  display: grid; gap: 14px;
  max-width: 920px; margin: 2rem auto; padding: 0 var(--cs-gutter);
}
@media (min-width: 860px) { .navigation.post-navigation .nav-links { grid-template-columns: 1fr 1fr; } }
.navigation.post-navigation .nav-links a {
  display: block; text-decoration: none;
  background: var(--cs-card);
  border: 1px solid var(--cs-border);
  border-top: 3px solid var(--cs-gold);
  padding: 1rem 1.2rem;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}
@media (hover: hover) {
  .navigation.post-navigation .nav-links a:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(14,26,47,0.12); }
}
.navigation.post-navigation .nav-links .meta-nav {
  display: block; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.08em;
  color: var(--cs-gold-ink, #7a5f10); font-weight: 700; margin-bottom: 0.3rem;
}
.navigation.post-navigation .nav-links .post-title { font-family: var(--cs-font-head); color: var(--cs-ink); font-size: 1.02rem; }

/* Partner articles list on profile pages */
.cs-partner-articles { max-width: 860px; margin: 2rem auto 0; padding: 0 var(--cs-gutter); }
.cs-partner-article-list { list-style: none; padding: 0; margin: 1rem 0; }
.cs-partner-article-list li {
  border-bottom: 1px solid var(--cs-border);
  padding: 0.6rem 0;
  display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap;
}
.cs-partner-article-list a { font-weight: 600; color: var(--cs-ink); text-decoration: none; }
.cs-partner-article-list a:hover { color: var(--cs-gold-ink, #7a5f10); }
.cs-pa-date { color: var(--cs-muted); font-size: 0.85rem; }

/* Floating dock: labels, collapse, theme-aware palette icons */
.cs-float { gap: 10px; }
.cs-float-btn {
  color: var(--cs-ink);
  background: var(--cs-card);
  border: 1px solid var(--cs-border);
  box-shadow: 0 6px 18px var(--cs-shadow);
}
.cs-float-wa { color: #fff; background: var(--cs-navy); border-color: var(--cs-navy); }
.cs-float-mail { color: #fff; background: var(--cs-navy-2); border-color: var(--cs-navy-2); }
.cs-float-call {
  background: var(--cs-gold) !important; color: #111 !important; border-color: var(--cs-gold);
}
@media (hover: hover) {
  .cs-float-wa:hover { background: var(--cs-gold); color: #111; border-color: var(--cs-gold); }
  .cs-float-mail:hover { background: var(--cs-gold); color: #111; border-color: var(--cs-gold); }
}
.cs-float-number { display: inline; }
.cs-float-toggle { border-color: var(--cs-gold); color: var(--cs-gold-ink, #7a5f10); background: var(--cs-card); }
.cs-float.cs-collapsed .cs-float-btn:not(.cs-float-toggle),
.cs-float.cs-collapsed .cs-float-label { display: none; }
.cs-float.cs-collapsed .cs-float-toggle { width: 46px; min-height: 46px; padding: 0; }
@media (max-width: 600px) {
  .cs-float-number { font-size: 0.76rem; }
  .cs-float-call { min-height: 48px; }
  .cs-float-toggle { width: 46px; min-height: 46px; }
}
/* Labels fold away on mobile (icon circles) */
@media (max-width: 600px) {
  .cs-float-wa .cs-float-number, .cs-float-mail .cs-float-number { display: none; }
  .cs-float-wa, .cs-float-mail { width: 48px; min-width: 48px; padding: 0; justify-content: center; }
}

/* Choreographed shimmer: staggered start, one element glows at a time */
.cs-shine::after { animation: cs-shine var(--cs-shine-cycle, 13s) linear infinite; animation-delay: var(--cs-delay-shine, 0s); }
@keyframes cs-shine {
  0%, 82% { transform: translateX(-135%); opacity: 0; }
  84% { opacity: 1; }
  96% { opacity: 1; transform: translateX(135%); }
  100% { transform: translateX(135%); opacity: 0; }
}

/* Content theming completeness (new posts/pages) */
.wp-block-image figcaption, .wp-element-caption {
  color: var(--cs-muted); font-size: 0.82rem; text-align: center;
}
.single .entry-meta, .posted-on, .byline { color: var(--cs-muted); }
.single .entry-content a { color: var(--cs-navy-2); }
[data-theme="dark"] .single .entry-content a { color: var(--cs-gold-2); }
.entry-content img { border-radius: 6px; }

/* ============================================================
   v4.2 — App navigation, rounded design language, safe areas,
   dock labels that fold, palette icons, gentle text shimmer
   ============================================================ */

:root {
  --cs-radius: 12px;
  --cs-radius-sm: 8px;
  --cs-tabbar-h: 64px;
}
body { border-radius: 0; }

/* ---------- Rounded design language everywhere ---------- */
.wp-block-columns .wp-block-column,
.cs-partners .cs-partner,
.cs-portal-card,
.cs-quickform,
body.blog .site-main article.post,
body.archive .site-main article.post,
.wp-block-quote,
.cs-consent,
.cs-map-frame,
.cs-matter,
.paging-navigation .page-numbers,
.navigation.pagination .page-numbers {
  border-radius: var(--cs-radius);
}
.wp-block-button__link { border-radius: var(--cs-radius-sm) !important; }
.entry-content img, .wp-post-image { border-radius: var(--cs-radius-sm); }
.cs-blognav-search, .cs-portal input, .cs-quickform input, .cs-quickform textarea { border-radius: var(--cs-radius-sm); }
.cs-consent { border-radius: var(--cs-radius); }

/* ---------- Safe areas ---------- */
body { padding-bottom: env(safe-area-inset-bottom); }
.cs-float { bottom: calc(14px + env(safe-area-inset-bottom)); right: calc(12px + env(safe-area-inset-right)); }

/* ---------- Mobile bottom tab bar (Legal Insights centred) ---------- */
.cs-tabbar {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 9990;
  display: flex;
  align-items: stretch;
  justify-content: space-around;
  background: var(--cs-bg);
  border-top: 1px solid var(--cs-border);
  padding: 6px 4px calc(6px + env(safe-area-inset-bottom));
  box-shadow: 0 -8px 26px rgba(14, 26, 47, 0.10);
}
.cs-tabbar a {
  flex: 1;
  display: flex; flex-direction: column; align-items: center; gap: 3px;
  padding: 6px 2px;
  font-size: 0.62rem; font-weight: 600; letter-spacing: 0.03em; text-transform: uppercase;
  color: var(--cs-muted);
  text-decoration: none;
  border-radius: 10px;
  transition: color 0.2s ease;
}
.cs-tabbar a svg { width: 21px; height: 21px; }
.cs-tabbar a.cs-tab-active { color: var(--cs-gold-ink, #7a5f10); }
.cs-tabbar a.cs-tab-centre {
  flex: 0 0 auto;
  margin: -18px 6px 0;
  background: var(--cs-gold);
  color: #111 !important;
  border-radius: 999px;
  padding: 10px 14px;
  box-shadow: 0 8px 20px rgba(201, 162, 39, 0.45);
  font-size: 0.62rem;
}
.cs-tabbar a.cs-tab-centre svg { width: 22px; height: 22px; }
@media (max-width: 782px) {
  body { padding-bottom: calc(var(--cs-tabbar-h) + env(safe-area-inset-bottom)); }
  .cs-float { bottom: calc(var(--cs-tabbar-h) + 12px + env(safe-area-inset-bottom)); }
  .cs-consent { bottom: calc(var(--cs-tabbar-h) + 10px + env(safe-area-inset-bottom)); }
  .cs-quickform { bottom: calc(var(--cs-tabbar-h) + 150px + env(safe-area-inset-bottom)); }
}
@media (min-width: 783px) { .cs-tabbar { display: none; } }

/* ---------- Desktop menu icons (app feel) ---------- */
#site-navigation .main-nav ul li a { display: inline-flex; align-items: center; gap: 7px; }
#site-navigation .main-nav ul li a .cs-mi { width: 17px; height: 17px; flex: none; opacity: 0.85; }
#site-navigation .main-nav ul li a:hover .cs-mi { opacity: 1; }
#site-navigation ul.main-nav > li > a::after { bottom: 4px; }

/* ---------- Dock: labels on desktop, fold to icons on mobile ---------- */
.cs-float { align-items: flex-end; }
.cs-float-btn { border-radius: 999px; }
.cs-float-wa, .cs-float-mail { width: auto; min-width: 52px; height: auto; min-height: 50px; padding: 0 15px; gap: 9px; font-weight: 700; font-size: 0.92rem; }
.cs-float-call { width: auto !important; min-width: 52px; height: auto; min-height: 50px; padding: 10px 16px; gap: 8px; }
@media (max-width: 600px) {
  .cs-float-wa, .cs-float-mail { width: 46px; min-width: 46px; height: 46px; min-height: 46px; padding: 0; justify-content: center; }
  .cs-float-wa .cs-float-number, .cs-float-mail .cs-float-number { display: none; }
  .cs-float-call { min-height: 46px; padding: 8px 11px; font-size: 0.76rem; max-width: calc(100vw - 96px); }
}
.cs-float-toggle {
  width: 46px; height: 46px; padding: 0; justify-content: center;
  background: var(--cs-navy); color: var(--cs-gold); border-color: var(--cs-navy);
}
.cs-float.cs-collapsed .cs-float-toggle { background: var(--cs-gold); color: #111; }

/* ---------- Gentle text shimmer (background-clip, not overlay) ---------- */
/* Word shimmer removed by request: text stays static for legibility. */

/* Remove the stray control wrapper circle on desktop */
@media (min-width: 783px) {
  .mobile-menu-control-wrapper { display: none !important; }
}

/* ---------- v4.3: blog photos integrated into the article ---------- */
.single .entry-content .wp-block-image {
  margin: 1.8rem 0;
}
.single .entry-content .wp-block-image img {
  border-radius: var(--cs-radius);
  box-shadow: 0 10px 30px rgba(14, 26, 47, 0.16);
}
.single .entry-content .wp-block-image figcaption {
  margin-top: 0.55rem;
  font-style: italic;
  padding: 0 0.4rem;
}
@media (max-width: 782px) {
  .single .entry-content .wp-block-image.alignwide,
  .single .entry-content .wp-block-image {
    margin-left: -14px; margin-right: -14px;
  }
  .single .entry-content .wp-block-image img { border-radius: 10px; }
}
/* Blog archive: chips row edge-fade hint (scrollable) */
.cs-blognav-chips {
  -webkit-mask-image: linear-gradient(90deg, #000 94%, transparent);
  mask-image: linear-gradient(90deg, #000 94%, transparent);
}

/* ---------- v4.4: compact mobile menu pill ---------- */
@media (max-width: 782px) {
  #site-navigation { border-top: 0; }
  .main-navigation .inside-navigation {
    justify-content: center;
    padding: 10px 14px calc(10px + env(safe-area-inset-top));
  }
  .main-navigation .menu-toggle {
    width: auto;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 22px;
  }
}

/* ============================================================
   v4.5 — shrinking gradient header, mobile menu hidden, calm spacing
   ============================================================ */
@media (max-width: 782px) {
  /* The bottom tab bar is the navigation; the top menu is removed entirely
     (both the menu element and GeneratePress's separate toggle wrapper). */
  #site-navigation,
  #mobile-menu-control-wrapper,
  .mobile-menu-control-wrapper { display: none !important; }
  .site-header { padding: 8px 0 4px; }
}

/* Graceful shrinking header on scroll */
.site-header {
  transition: padding 0.35s ease, box-shadow 0.35s ease, background 0.35s ease;
  background:
    linear-gradient(180deg,
      color-mix(in srgb, var(--cs-gold) 6%, transparent),
      color-mix(in srgb, var(--cs-gold) 1%, transparent) 70%),
    color-mix(in srgb, var(--cs-bg) 92%, transparent);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.site-header .header-image.is-logo-image,
.site-header .custom-logo {
  transition: height 0.3s ease;
  height: clamp(48px, 5vw, 72px);
}
.site-header.cs-scrolled { padding: 2px 0; }
.site-header.cs-scrolled .header-image.is-logo-image,
.site-header.cs-scrolled .custom-logo { height: 44px; }
[data-theme="dark"] .site-header {
  background:
    linear-gradient(180deg,
      color-mix(in srgb, var(--cs-gold) 7%, transparent),
      color-mix(in srgb, var(--cs-gold) 1%, transparent) 70%),
    color-mix(in srgb, var(--cs-bg-soft) 92%, transparent);
}
@media (max-width: 782px) {
  .site-header .header-image.is-logo-image,
  .site-header .custom-logo { height: 46px; }
  .site-header.cs-scrolled .header-image.is-logo-image,
  .site-header.cs-scrolled .custom-logo { height: 38px; }
}

/* Calm, relaxed spacing (contact forms and general content) */
.cs-portal, .cs-callback { margin-top: 2.6rem; }
.cs-callback .cs-portal-card { max-width: 760px; margin-inline: auto; padding: clamp(1.6rem, 3vw, 2.6rem); }
.entry-content p { margin-bottom: 1.05rem; }
.entry-content .wp-block-quote { margin-block: 2.2rem; }

/* ---------- v4.6: practice-areas hub overview rows ---------- */
.cs-pa-card { margin-bottom: 0 !important; }
.cs-pa-card .wp-block-column { background: transparent; border: 0; box-shadow: none; padding: 0.9rem 0.4rem; }
.cs-pa-card { border-bottom: 1px solid var(--cs-border); }
.cs-pa-card h3 { margin: 0 0 0.35rem; font-size: 1.12rem; }
.cs-pa-card h3 a { color: var(--cs-ink); text-decoration: none; }
.cs-pa-card h3 a:hover { color: var(--cs-gold-ink, #7a5f10); }
.cs-pa-card p { margin: 0 0 0.4rem; color: var(--cs-muted); font-size: 0.95rem; }

/* ---------- v4.7: dock nudge + icon fix ---------- */
@media (prefers-reduced-motion: no-preference) {
  .cs-float.cs-nudge { animation: cs-dock-nudge 1.3s ease-in-out; }
  @keyframes cs-dock-nudge {
    0%, 100% { transform: translate(0, 0); }
    20% { transform: translate(-3px, -2px); }
    40% { transform: translate(3px, 1px); }
    60% { transform: translate(-2px, 2px); }
    80% { transform: translate(2px, -1px); }
  }
}

/* ============================================================
   v4.9 — Sticky blog navigation (time + hashtags), no overlaps
   ============================================================ */
.cs-blognav {
  position: static; /* in flow: never blocks the page while scrolling */
  border-bottom: 1px solid var(--cs-border);
  padding-bottom: 0.7rem;
  margin-bottom: 0.6rem;
  padding-top: 0.8rem;
}
.cs-blognav .cs-chip.is-active { background: var(--cs-gold); color: #111; border-color: var(--cs-gold); }
.cs-blognav .cs-chip-n { opacity: 0.75; }
.cs-chiplabel {
  flex: none; align-self: center;
  font-size: 0.72rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--cs-muted);
  margin-right: 4px;
}
.cs-blognav-years, .cs-blognav-tags, .cs-blognav-chips {
  display: flex; gap: 7px; flex-wrap: nowrap; overflow-x: auto; padding: 2px 0;
  scrollbar-width: none; -ms-overflow-style: none;
}
.cs-blognav-years::-webkit-scrollbar, .cs-blognav-tags::-webkit-scrollbar, .cs-blognav-chips::-webkit-scrollbar { display: none; }
.cs-chip-year.is-active { background: var(--cs-gold-2); color: #111; border-color: var(--cs-gold-2); }
.cs-hashtag {
  flex: none;
  display: inline-flex; align-items: center;
  padding: 6px 13px;
  border-radius: 999px;
  background: var(--cs-card);
  border: 1px dashed var(--cs-gold);
  color: var(--cs-gold-ink, #7a5f10);
  font-size: 0.84rem; font-weight: 600;
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease;
}
.cs-hashtag:hover { background: var(--cs-gold); color: #111; }

/* Single posts: tags as #hashtags */
.single .tags-links a,
.single .tagcloud a {
  display: inline-flex; align-items: center;
  padding: 5px 12px; margin: 3px 4px 3px 0;
  border-radius: 999px;
  border: 1px dashed var(--cs-gold);
  color: var(--cs-gold-ink, #7a5f10);
  font-size: 0.84rem; font-weight: 600; text-decoration: none;
}
.single .tags-links a::before { content: "#"; margin-right: 1px; opacity: 0.7; }
.single .tags-links a:hover { background: var(--cs-gold); color: #111; }

/* Overlap fixes: lift dock + quickform above the consent banner while it is open */
body.cs-consent-open .cs-float { bottom: calc(215px + env(safe-area-inset-bottom)); }
body.cs-consent-open .cs-quickform { bottom: calc(360px + env(safe-area-inset-bottom)); }
@media (min-width: 900px) {
  body.cs-consent-open .cs-float { bottom: calc(150px + env(safe-area-inset-bottom)); }
}
@media (max-width: 782px) {
  body.cs-consent-open .cs-float { bottom: calc(var(--cs-tabbar-h) + 235px + env(safe-area-inset-bottom)); }
}

/* ---------- v5.2: dock states + smooth roll animations + dragging ---------- */
.cs-float .cs-float-btn {
  transition: transform 0.45s cubic-bezier(0.22, 0.61, 0.36, 1),
              width 0.45s cubic-bezier(0.22, 0.61, 0.36, 1),
              height 0.45s cubic-bezier(0.22, 0.61, 0.36, 1),
              padding 0.45s cubic-bezier(0.22, 0.61, 0.36, 1),
              opacity 0.4s ease, margin 0.45s ease;
}
.cs-float .cs-float-number { transition: opacity 0.35s ease; white-space: nowrap; }
.cs-float.cs-state-icons .cs-float-number,
.cs-float.cs-state-folded .cs-float-number { opacity: 0; pointer-events: none; }
.cs-float.cs-state-icons .cs-float-btn:not(.cs-float-toggle) { width: 48px; min-width: 48px; padding: 0; justify-content: center; }

/* Folded: only the branded CS toggle remains */
.cs-float.cs-state-folded .cs-float-btn:not(.cs-float-toggle) {
  opacity: 0; transform: scale(0.4) translateY(8px);
  pointer-events: none; position: absolute; visibility: hidden;
}
.cs-float.cs-state-folded .cs-float-toggle {
  width: 48px; height: 48px;
  background: var(--cs-navy); color: var(--cs-gold); border-color: var(--cs-gold);
  cursor: grab;
  box-shadow: 0 10px 26px rgba(0, 0, 0, 0.35);
}
.cs-float.cs-state-folded .cs-float-toggle:active { cursor: grabbing; }
[data-theme="dark"] .cs-float.cs-state-folded .cs-float-toggle { background: var(--cs-gold); color: #111; border-color: var(--cs-gold); }
.cs-float.cs-dragging .cs-float-btn { transition: none !important; }
.cs-float.cs-dragging { opacity: 0.92; transform: scale(1.03); }
.cs-float { transition: transform 0.25s ease, opacity 0.25s ease; position: fixed; flex-direction: column; }

/* ---------- v5.3: long-read visual breaks + insight callout ---------- */
.wp-block-separator.cs-break {
  border: 0;
  height: 26px;
  margin: 2.4rem auto;
  width: 120px;
  background:
    linear-gradient(90deg, transparent, var(--cs-gold) 50%, transparent) center / 60px 2px no-repeat,
    radial-gradient(circle 3px at 50% 50%, var(--cs-gold) 40%, transparent 50%);
  opacity: 0.85;
}
[data-theme="dark"] .wp-block-separator.cs-break { opacity: 0.9; }

/* Writers' key-takeaway callout (used by new posts) */
.wp-block-quote.cs-insight {
  border-left: 4px solid var(--cs-gold);
  background: var(--cs-paper);
  border-radius: 0 var(--cs-radius-sm) var(--cs-radius-sm) 0;
  padding: 1rem 1.3rem;
  margin: 1.6rem 0;
  font-size: 1rem;
}
.wp-block-quote.cs-insight p { margin: 0; }
.wp-block-quote.cs-insight::before {
  content: "CS Insight";
  display: block;
  font-family: var(--cs-font-body);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--cs-gold-ink, #6d5620);
  margin-bottom: 0.4rem;
}
[data-theme="dark"] .wp-block-quote.cs-insight::before { color: var(--cs-gold-2); }

/* Long-read rhythm: section spacing and list breathing room */
.single .entry-content h2 { padding-top: 0.4rem; }
.single .entry-content ul, .single .entry-content ol { margin-bottom: 1.4rem; }
.single .entry-content figure { margin-block: 2rem; }

/* ---------- v5.4: contact CTA icons ---------- */
a.wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; gap: 10px; }
a.wp-block-button__link .cs-ico { width: 19px; height: 19px; flex: none; margin-top: -1px; }
@media (max-width: 600px) {
  a.wp-block-button__link .cs-ico { width: 17px; height: 17px; }
}

/* ---------- v5.5: subtle animated background SVG decorations ---------- */
.wp-block-group.alignfull.has-secondary-background-color,
.wp-block-cover.alignfull:not(:first-child) {
  position: relative;
  overflow: hidden;
}
.cs-bgdeco {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  opacity: 0.9;
}
@media (prefers-reduced-motion: no-preference) {
  .cs-bgdeco .cs-line { animation: cs-deco-line 46s linear infinite; }
  .cs-bgdeco .cs-line2 { animation-duration: 63s; animation-direction: reverse; }
  .cs-bgdeco .cs-line3 { animation-duration: 80s; }
  .cs-bgdeco .cs-gem { animation: cs-deco-gem 34s ease-in-out infinite; }
  .cs-bgdeco .cs-gem2 { animation-duration: 47s; animation-delay: -12s; }
  .cs-bgdeco .cs-gem3 { animation-duration: 59s; animation-delay: -25s; }
  @keyframes cs-deco-line {
    from { transform: translateX(-24%); }
    to   { transform: translateX(124%); }
  }
  @keyframes cs-deco-gem {
    0%, 100% { transform: translateY(0) rotate(0deg); opacity: 0.10; }
    50%      { transform: translateY(-16px) rotate(38deg); opacity: 0.22; }
  }
}
@media (prefers-reduced-motion: reduce) {
  .cs-bgdeco .cs-line, .cs-bgdeco .cs-gem { animation: none; }
}

/* ============================================================
   v5.7 — Consistent padding & alignment system (sitewide)
   ============================================================ */
:root {
  --cs-pad-block: clamp(1.6rem, 3.5vw, 2.6rem);   /* vertical rhythm between sections */
  --cs-pad-inline: clamp(1rem, 4vw, 2rem);        /* side padding everywhere */
}

/* One consistent content container: every page body uses the same gutters */
.single .site-content,
.page .site-content,
body.blog .site-main,
body.archive .site-main,
.cs-partner-articles,
.cs-portal,
.cs-carousel-wrap,
.cs-map-wrap,
.cs-blognav {
  padding-left: var(--cs-pad-inline);
  padding-right: var(--cs-pad-inline);
}

/* Uniform section spacing: no page should feel tighter or looser than another */
.entry-content > * + * { margin-top: var(--cs-space, 1.05rem); }
.entry-content > h2 { margin-top: var(--cs-pad-block) !important; }
.entry-content > h3 { margin-top: calc(var(--cs-pad-block) * 0.6) !important; }
.entry-content > .wp-block-columns,
.entry-content > .wp-block-image,
.entry-content > .wp-block-quote { margin-block: var(--cs-pad-block); }

/* Left-align all body text consistently (justification was too ragged on narrow screens) */
.single .entry-content p,
.page .entry-content p { text-align: left; hyphens: manual; }

/* Cards: identical internal padding */
.wp-block-columns .wp-block-column,
.cs-partners .cs-partner { padding: clamp(1.2rem, 2.2vw, 1.6rem); }

/* Headings: consistent sizes and line-height everywhere */
h1 { line-height: 1.15; }
h2 { line-height: 1.25; }
h3 { line-height: 1.35; }
.entry-content h2 { font-size: clamp(1.4rem, 2.2vw + 0.7rem, 2rem); }
.entry-content h3 { font-size: clamp(1.1rem, 1.2vw + 0.8rem, 1.3rem); }

/* Lists: uniform indent and spacing */
.entry-content ul, .entry-content ol { padding-left: 1.4em; margin-block: 0.9rem; }
.entry-content li { margin-bottom: 0.45rem; line-height: 1.65; }

/* Buttons: one consistent size language */
a.wp-block-button__link, .cs-portal-btn {
  min-height: 48px;
  display: inline-flex; align-items: center; justify-content: center;
}
/* Header: stable geometry, visible brand and a single restrained light sweep. */
.site-header,
[data-theme="dark"] .site-header {
  background: var(--cs-bg) !important;
  padding: 0;
  border-bottom: 1px solid var(--cs-gold);
  isolation: isolate;
}
.site-header .inside-header {
  min-height: 88px;
  box-sizing: border-box;
  flex-wrap: nowrap;
  gap: 20px;
}
.site-header .site-branding { display: none; }
.site-header .site-branding-container { display: flex; flex: 0 0 64px; margin: 0 auto 0 0; }
.site-header .site-logo { order: 0; margin: 0 auto 0 0; flex: 0 0 auto; }
.site-header .site-logo a { display: flex; align-items: center; }
.site-header .header-image.is-logo-image,
.site-header.cs-scrolled .header-image.is-logo-image,
.site-header .custom-logo,
.site-header.cs-scrolled .custom-logo {
  width: 64px;
  height: 64px;
  object-fit: contain;
  transform-origin: left center;
  transition: transform 280ms ease;
}
[data-theme="dark"] .site-header .header-image.is-logo-image,
[data-theme="dark"] .site-header .custom-logo { filter: brightness(0) invert(1); }
[data-theme="light"] .site-header .header-image.is-logo-image,
[data-theme="light"] .site-header .custom-logo { filter: none !important; opacity: 1 !important; visibility: visible !important; }
.site-header.cs-scrolled { padding: 0; }
.site-header.cs-scrolled .site-logo img { transform: scale(.86); }
.site-header #site-navigation { margin: 0; flex: 0 1 auto; }
.site-header #site-navigation .inside-navigation { padding: 0; }
.site-header #site-navigation .main-nav > ul { gap: 4px; flex-wrap: nowrap; }
.site-header #site-navigation .main-nav > ul > li > a {
  padding: 0 12px;
  line-height: 44px;
  font-size: .78rem;
  letter-spacing: .035em;
  white-space: nowrap;
}
.site-header .cs-theme-toggle {
  flex: 0 0 auto;
  width: auto;
  min-width: 88px;
  height: 44px;
  margin: 0;
  animation: none;
}
.site-header .cs-theme-toggle:hover { transform: none; }
.site-header::before { animation-duration: 22s; }
.site-logo .cs-shine::after { display: none; }
:focus-visible { outline: 2px solid var(--cs-gold); outline-offset: 4px; }
html { scroll-padding-top: 104px; }
@media (min-width: 783px) and (max-width: 1100px) {
  .site-header .inside-header { flex-wrap: nowrap; gap: 12px; }
  .site-header #site-navigation { order: 0; flex-basis: auto; }
  .site-header #site-navigation .inside-navigation { justify-content: flex-end; }
  .site-header #site-navigation .main-nav > ul > li > a { padding-inline: 9px; font-size: .73rem; }
  html { scroll-padding-top: 104px; }
}
@media (max-width: 782px) {
  .site-header .inside-header { min-height: 76px; }
  .site-header .header-image.is-logo-image,
  .site-header.cs-scrolled .header-image.is-logo-image { width: 52px; height: 52px; }
  .site-header .cs-theme-toggle { min-width: 82px; }
  .admin-bar .site-header { top: 46px; }
  html { scroll-padding-top: 92px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after {
    animation: none !important;
    transition: none !important;
  }
  .cs-reveal { opacity: 1 !important; transform: none !important; }
}
/* The homepage hero begins directly beneath the header. */
.home .entry-content { margin-top: 0; }
.home .site-main { margin-top: 0; }
.cs-footer + .site-footer .site-info { display: none; }
@media (max-width: 782px) {
  .home .entry-content > .wp-block-cover:first-child { padding-inline: 18px; }
}
.site-header #site-navigation .main-nav > ul > li:last-child > a {
  padding-block: 0 !important;
  min-height: 44px;
}

/* Compact global search: one top-bar icon until the reader asks to search. */
.site-header .cs-global-search {
  width: 40px !important;
  min-width: 40px !important;
  height: 40px;
  flex: 0 0 auto;
  transition: width .22s ease, background-color .22s ease, border-color .22s ease;
}
.site-header .cs-global-search input {
  width: 0 !important;
  min-width: 0;
  padding-inline: 0 !important;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: width .22s ease, opacity .16s ease, padding .22s ease;
}
.site-header .cs-global-search.is-open {
  width: clamp(210px, 26vw, 320px) !important;
  min-width: 210px !important;
}
.site-header .cs-global-search.is-open input {
  width: 100% !important;
  padding: 0 8px 0 13px !important;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.site-header .cs-global-search-trigger {
  width: 40px !important;
  height: 40px !important;
  flex-basis: 40px !important;
}
@media (max-width: 782px) {
  .site-header .cs-global-search.is-open {
    width: min(58vw, 240px) !important;
    min-width: 180px !important;
  }
}

/* The shared header search is the single site-wide search control. */
body.blog .cs-insights-tools,
body.archive .cs-insights-tools { display: none !important; }

/* The former mobile tab bar is retired; the compact header remains primary navigation. */
@media (max-width: 782px) {
  .cs-tabbar { display: flex !important; }
  body { padding-bottom: calc(var(--cs-tabbar-h) + env(safe-area-inset-bottom)) !important; }
  .cs-float { bottom: calc(var(--cs-tabbar-h) + 14px + env(safe-area-inset-bottom)) !important; }
  .cs-consent { bottom: calc(var(--cs-tabbar-h) + 10px + env(safe-area-inset-bottom)) !important; }
  .cs-quickform {
    bottom: calc(var(--cs-tabbar-h) + 82px + env(safe-area-inset-bottom)) !important;
    max-height: calc(100dvh - var(--cs-tabbar-h) - 112px) !important;
  }
}
@media (min-width: 783px) { .cs-tabbar { display: none !important; } }

/* Article questions: clear, reusable form fields in light and dark modes. */
#commentform :where(input[type="text"],input[type="email"],input[type="url"],input[type="tel"],textarea) {
  display: block;
  width: 100%;
  max-width: 100%;
  min-height: 52px;
  box-sizing: border-box;
  padding: .85rem 1rem;
  border: 1.5px solid color-mix(in srgb,var(--cs-gold) 40%,var(--cs-border));
  border-radius: 10px;
  background: color-mix(in srgb,var(--cs-card) 92%,var(--cs-bg));
  color: var(--cs-ink);
  box-shadow: inset 0 1px 2px color-mix(in srgb,var(--cs-ink) 7%,transparent), 0 0 0 1px transparent;
  caret-color: var(--cs-gold-ink);
}
#commentform textarea { min-height: 190px; resize: vertical; }
#commentform :where(input,textarea)::placeholder { color: var(--cs-muted); opacity: .9; }
#commentform :where(input[type="text"],input[type="email"],input[type="url"],input[type="tel"],textarea):hover {
  border-color: color-mix(in srgb,var(--cs-gold) 65%,var(--cs-border));
}
#commentform :where(input[type="text"],input[type="email"],input[type="url"],input[type="tel"],textarea):focus {
  outline: none;
  border-color: var(--cs-gold);
  background: var(--cs-card);
  box-shadow: 0 0 0 3px color-mix(in srgb,var(--cs-gold) 22%,transparent);
}
#commentform :where(.comment-form-author,.comment-form-email,.comment-form-url,.comment-form-phone) { width: min(100%, 620px); }
#commentform label { display: block; margin-bottom: .5rem; color: var(--cs-ink); font-weight: 600; }

/* One compact search in the shared header, with on-demand previews. */
.site-header .cs-global-search {
  position: relative;
  width: 40px;
  min-width: 40px;
  height: 40px;
  overflow: visible;
  transition: width .24s ease, background .24s ease, border-color .24s ease, box-shadow .24s ease;
}
.site-header .cs-global-search input {
  width: 0;
  min-width: 0;
  padding: 0;
  opacity: 0;
  pointer-events: none;
  transition: width .2s ease, padding .2s ease, opacity .16s ease;
}
.site-header .cs-global-search.is-open {
  width: min(30vw, 320px);
  min-width: 220px;
  background: var(--cs-glass-strong);
  border-color: color-mix(in srgb,var(--cs-gold) 48%,var(--cs-border));
  box-shadow: 0 10px 28px color-mix(in srgb,var(--cs-ink) 12%,transparent);
}
.site-header .cs-global-search.is-open input {
  width: 100%;
  padding: 0 6px 0 14px;
  opacity: 1;
  pointer-events: auto;
}
.site-header .cs-global-search-trigger { border-radius: 50%; }
.site-header .cs-global-search.is-open .cs-global-search-trigger { border-radius: 0 999px 999px 0; }
.cs-global-search-results {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  width: min(440px, calc(100vw - 32px));
  padding: 12px;
  border: 1px solid var(--cs-glass-border);
  border-radius: 14px;
  background: var(--cs-glass-strong);
  color: var(--cs-ink);
  box-shadow: 0 22px 54px color-mix(in srgb,var(--cs-ink) 18%,transparent);
  -webkit-backdrop-filter: saturate(145%) blur(22px);
  backdrop-filter: saturate(145%) blur(22px);
  z-index: 1000;
}
.cs-global-search-results[hidden] { display: none; }
.cs-global-search-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 2px 4px 9px; }
.cs-global-search-status { color: var(--cs-muted); font-size: .75rem; }
.cs-global-search-close {
  width: 28px !important;
  height: 28px !important;
  flex: 0 0 28px !important;
  border: 1px solid var(--cs-border) !important;
  border-radius: 50% !important;
  background: transparent !important;
  color: var(--cs-ink) !important;
  font-size: 1.15rem;
  line-height: 1;
}
.cs-global-search-list { display: grid; gap: 5px; }
.cs-global-result {
  display: grid;
  grid-template-columns: 52px minmax(0,1fr);
  gap: 10px;
  align-items: center;
  padding: 8px;
  border: 1px solid transparent;
  border-radius: 10px;
  color: var(--cs-ink) !important;
  text-decoration: none;
  animation: cs-preview-in .24s both;
  animation-delay: calc(var(--preview-index) * 45ms);
}
.cs-global-result:hover,.cs-global-result:focus-visible { background: color-mix(in srgb,var(--cs-gold) 9%,transparent); border-color: var(--cs-glass-border); }
.cs-global-result img { width: 52px; height: 52px; object-fit: cover; border-radius: 8px; }
.cs-global-result-copy { min-width: 0; display: grid; gap: 3px; }
.cs-global-result-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .8rem; }
.cs-global-result-copy span { color: var(--cs-muted); font-size: .68rem; }
.cs-global-search.is-loading .cs-global-search-trigger svg { animation: cs-search-pulse .8s ease-in-out infinite alternate; }
@keyframes cs-search-pulse { to { transform: scale(.84); opacity: .55; } }
@media (max-width: 782px) {
  .site-header .cs-global-search { width: 40px; min-width: 40px; }
  .site-header .cs-global-search.is-open { width: min(58vw, 240px); min-width: 180px; }
  .cs-global-search-results { position: fixed; top: 74px; right: 12px; left: 12px; width: auto; }
}
@media (prefers-reduced-motion: reduce) {
  .site-header .cs-global-search,
  .site-header .cs-global-search input,
  .cs-global-result { transition: none; animation: none; }
}
@media (min-width: 783px) and (max-width: 1100px) {
  .site-header #site-navigation .main-nav > ul > li > a .cs-mi { display: none; }
}
/* Native FAQ disclosure panels and bespoke service line art. */
.cs-service-art { width: 72px; height: 72px; margin: 0 auto 20px; display: grid; place-items: center; color: var(--cs-gold-ink); border: 1px solid color-mix(in srgb,var(--cs-gold) 35%,transparent); border-radius: 50%; background: color-mix(in srgb,var(--cs-gold) 6%,transparent); }
.cs-service-art svg { width: 48px; height: 48px; }
.entry-content > .cs-faq { max-width: 960px !important; margin: 64px auto 32px; padding: clamp(20px,4vw,48px); background: var(--cs-card); border: 1px solid var(--cs-border); border-radius: 16px; box-sizing: border-box; }
.cs-faq-art { display: block; width: 120px; height: 80px; margin: 0 auto 12px; color: var(--cs-gold-ink); }
.cs-faq h2 { text-align: center; margin: 0 0 12px !important; }
.page .entry-content .cs-faq-intro { text-align: center; color: var(--cs-muted); margin-bottom: 32px; }
.cs-faq-item { border-top: 1px solid var(--cs-border); }
.cs-faq-item:last-child { border-bottom: 1px solid var(--cs-border); }
.cs-faq-item summary { display: grid; grid-template-columns: 28px 1fr 24px; gap: 16px; align-items: center; min-height: 76px; padding: 18px 4px; box-sizing: border-box; cursor: pointer; list-style: none; color: var(--cs-ink); font-family: var(--cs-font-body); font-size: 1rem; font-weight: 600; line-height: 1.5; }
.cs-faq-item summary::-webkit-details-marker { display: none; }
.cs-faq-number { color: var(--cs-gold-ink); font-size: .75rem; font-weight: 500; }
.cs-faq-indicator { position: relative; width: 24px; height: 24px; border: 1px solid var(--cs-border); border-radius: 50%; }
.cs-faq-indicator::before,.cs-faq-indicator::after { content: ''; position: absolute; width: 10px; height: 1px; top: 11px; left: 6px; background: currentColor; }
.cs-faq-indicator::after { transform: rotate(90deg); transition: transform 180ms ease; }
.cs-faq-item[open] .cs-faq-indicator::after { transform: rotate(0); }
.cs-faq-item[open] summary,.cs-faq-item summary:hover { color: var(--cs-gold-ink); }
.cs-faq-answer { padding: 0 44px 22px; color: var(--cs-muted); line-height: 1.8; }
.cs-faq-answer p { margin: 0; font-size: .95rem; }
.cs-faq-item > .cs-faq-answer {
  display: block;
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  padding-bottom: 0;
  transition: max-height 320ms ease, opacity 220ms ease, padding-bottom 320ms ease;
}
.cs-faq-item[open] > .cs-faq-answer { max-height: 520px; opacity: 1; padding-bottom: 22px; }
.cs-faq-item summary:focus-visible { outline: 2px solid var(--cs-gold); outline-offset: 4px; border-radius: 6px; }
@media (max-width: 600px) {
 .entry-content > .cs-faq { margin-block: 36px; padding: 22px 16px; }
 .cs-faq-item summary { grid-template-columns: 20px 1fr 24px; gap: 10px; font-size: .92rem; }
 .cs-faq-answer { padding: 0 4px 22px 30px; }
}

/* Practice cards and partner contact hierarchy. */
.cs-practice-card { cursor: pointer; position: relative; transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
.cs-practice-card:hover, .cs-practice-card:focus-visible, .cs-practice-card:focus-within { transform: translateY(-2px); border-color: color-mix(in srgb, var(--cs-gold) 55%, var(--cs-border)); box-shadow: 0 10px 24px color-mix(in srgb, var(--cs-ink) 10%, transparent); }
.cs-practice-card h3 a { text-decoration: none; }
.cs-partner .cs-partner-email, .cs-partner .cs-partner-posts { margin: .45rem 0 .2rem; font-size: .86rem; line-height: 1.35; }
.cs-partner .cs-partner-email a, .cs-partner .cs-partner-posts a { color: var(--cs-gold-ink, #7a5f10); font-weight: 700; }

/* Subtle ambient depth that remains legible in both themes. */
body.cslegal-shared-shell .site-content { background-image: radial-gradient(circle at 12% 8%, rgba(183,145,67,.045), transparent 34%), linear-gradient(135deg, rgba(183,145,67,.018), transparent 52%); }
[data-theme="dark"] body.cslegal-shared-shell .site-content { background-image: radial-gradient(circle at 12% 8%, rgba(210,175,102,.07), transparent 34%), radial-gradient(circle at 88% 18%, rgba(90,120,160,.055), transparent 38%); }
.site-header::before { opacity: .35; animation-duration: 28s; }

/* Keep the hero WhatsApp mark optically centred beside its label. */
.entry-content > .wp-block-cover:first-child .wp-block-buttons { display: flex; align-items: center; justify-content: center; gap: 12px; }
.entry-content > .wp-block-cover:first-child .wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; gap: .55rem; text-align: center; line-height: 1.25; }
.entry-content > .wp-block-cover:first-child .wp-block-button__link .cs-ico { flex: 0 0 auto; width: 1.15em; height: 1.15em; }
@media (max-width: 600px) { .entry-content > .wp-block-cover:first-child .wp-block-buttons { flex-direction: column; width: 100%; } .entry-content > .wp-block-cover:first-child .wp-block-button, .entry-content > .wp-block-cover:first-child .wp-block-button__link { width: min(100%, 22rem); } }
@media (prefers-reduced-motion: reduce) { .site-header::before { animation: none; } .cs-practice-card { transition: none; } }
.cs-image-credit { max-width: 920px; margin: .35rem auto 1.1rem; padding-inline: var(--cs-pad-inline); color: var(--cs-muted); font-size: .72rem; line-height: 1.45; }
.cs-image-credit a { color: var(--cs-gold-ink); text-decoration: underline; text-underline-offset: 2px; }
[data-theme="dark"] .cs-image-credit a { color: var(--cs-gold-2); }

/* Compact Legal Insights search, available in the shared header on every page. */
.site-header .cs-global-search { order: 1; display: inline-flex; align-items: center; width: min(17vw, 176px); min-width: 128px; height: 34px; border: 1px solid var(--cs-border); border-radius: 999px; background: color-mix(in srgb, var(--cs-bg) 88%, transparent); overflow: hidden; }
.site-header .cs-global-search label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.site-header .cs-global-search input { min-width: 0; width: 100%; height: 100%; border: 0; outline: 0; padding: 0 6px 0 12px; background: transparent; color: var(--cs-ink); font: inherit; font-size: .78rem; }
.site-header .cs-global-search input::placeholder { color: var(--cs-muted); opacity: .9; }
.site-header .cs-global-search button { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; flex: 0 0 34px; padding: 0; border: 0; background: transparent; color: var(--cs-gold-ink); cursor: pointer; }
.site-header .cs-global-search button:hover, .site-header .cs-global-search:focus-within { background: color-mix(in srgb, var(--cs-gold) 12%, transparent); }
.site-header .cs-global-search button:focus-visible { outline: 2px solid var(--cs-gold); outline-offset: -2px; }
.site-header .cs-global-search svg { width: 16px; height: 16px; }
.site-header #site-navigation { order: 2; }
.site-header .cs-theme-toggle { order: 3; }
@media (max-width: 1100px) and (min-width: 783px) { .site-header .cs-global-search { width: 132px; min-width: 112px; } .site-header .cs-global-search input { font-size: .72rem; padding-left: 9px; } }
@media (max-width: 782px) { .site-header .cs-global-search { order: 1; width: 38px; min-width: 38px; } .site-header .cs-global-search input { width: 0; padding: 0; } .site-header .cs-global-search:focus-within { width: min(42vw, 176px); } .site-header .cs-global-search:focus-within input { width: 100%; padding-left: 10px; } .site-header .cs-global-search button { width: 38px; height: 38px; flex-basis: 38px; } }

/* Legal Insights pagination: explicit contrast keeps every page number readable in either theme. */
.paging-navigation .page-numbers,
.navigation.pagination .page-numbers {
  color: var(--cs-ink);
  background: var(--cs-card);
  border-color: var(--cs-border);
  text-decoration: none;
  font-weight: 700;
}
.paging-navigation a.page-numbers:hover,
.paging-navigation a.page-numbers:focus-visible,
.navigation.pagination a.page-numbers:hover,
.navigation.pagination a.page-numbers:focus-visible {
  color: var(--cs-navy);
  background: color-mix(in srgb, var(--cs-gold) 18%, var(--cs-card));
  border-color: var(--cs-gold);
  outline: 2px solid color-mix(in srgb, var(--cs-gold) 60%, transparent);
  outline-offset: 2px;
}
.paging-navigation .page-numbers.current,
.navigation.pagination .page-numbers.current {
  color: #fff;
  background: var(--cs-navy);
  border-color: var(--cs-navy);
}
[data-theme="dark"] .paging-navigation .page-numbers.current,
[data-theme="dark"] .navigation.pagination .page-numbers.current {
  color: #111114;
  background: var(--cs-gold-2);
  border-color: var(--cs-gold-2);
}

/* Viewport-safe floating contact dock. It can fold, but it never extends
   beyond the visible window or the mobile tab bar. */
.cs-float {
  max-height: calc(100dvh - 24px);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}
@media (max-width: 782px) {
  .cs-float { max-height: calc(100dvh - var(--cs-tabbar-h) - 28px - env(safe-area-inset-bottom)); }
}

/* Insights search becomes a small, discoverable control when idle. Focusing
   or typing expands it again; Escape and the button dismiss it. */
.cs-search-collapse { display:block; margin:.5rem 0 0 auto; border:0; background:transparent; color:var(--cs-gold-ink,#7a5f10); font-size:.78rem; font-weight:700; cursor:pointer; }
.cs-insights-tools.is-idle { padding:8px 12px; }
.cs-insights-tools.is-idle .cs-insights-filters { grid-template-columns:minmax(0,1fr) auto; gap:8px; }
.cs-insights-tools.is-idle .cs-insights-filters > :not(.cs-insights-search):not(button),
.cs-insights-tools.is-idle .cs-insights-results,
.cs-insights-tools.is-idle .cs-search-hint,
.cs-insights-tools.is-idle .cs-search-collapse { display:none; }
.cs-insights-tools.is-idle .cs-insights-search label { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.cs-insights-tools.is-idle .cs-insights-search input { height:38px; }
.cs-insights-tools.is-user-open { padding:24px; border-radius:16px; }
.cs-insights-tools.is-user-open .cs-insights-filters { grid-template-columns:minmax(220px,2fr) minmax(180px,1.3fr) minmax(110px,.7fr) auto; gap:16px; }
.cs-insights-tools.is-user-open .cs-insights-filters > * { display:block; }
.cs-insights-tools.is-user-open .cs-insights-results,.cs-insights-tools.is-user-open .cs-search-hint { display:block; }
.cs-insights-tools.is-user-open .cs-insights-search label { position:static; width:auto; height:auto; overflow:visible; clip:auto; }

/* Scrolling down gives reading space; scrolling up restores the full menu.
   The logo remains visible in both states. */
.site-header #site-navigation { transition:max-height .28s ease, opacity .22s ease, transform .28s ease; max-height:120px; }
.site-header.cs-scroll-away #site-navigation { max-height:0; opacity:0; overflow:hidden; transform:translateY(-8px); pointer-events:none; }
.site-header.cs-scroll-away .site-logo { transform:translateY(-1px); }
.site-header .site-logo { transition:transform .28s ease; }
@media (max-width:782px) {
  .site-header.cs-scroll-away { padding-block:2px; }
  .site-header.cs-scroll-away .site-header .inside-header { min-height:58px; }
}

/* Quiet editorial texture: adds depth to long pages without competing with
   legal copy, images, or the translucent cards. */
body.cslegal-shared-shell .site-content {
  background-image:
    radial-gradient(circle at 7% 12%, rgba(201, 162, 39, .08) 0, rgba(201, 162, 39, 0) 22rem),
    radial-gradient(circle at 94% 48%, rgba(31, 86, 115, .07) 0, rgba(31, 86, 115, 0) 26rem),
    linear-gradient(115deg, rgba(255,255,255,.16), rgba(255,255,255,0) 38%, rgba(201,162,39,.035));
  background-attachment: fixed;
}
body.cslegal-shared-shell .cs-insights-tools,
body.cslegal-shared-shell .cs-carousel-wrap,
body.cslegal-shared-shell .cs-partner-articles {
  background-image: radial-gradient(circle at 96% 8%, rgba(201,162,39,.10), transparent 14rem);
}
body.cslegal-shared-shell .inside-article,
body.cslegal-shared-shell .cs-carousel-card,
body.cslegal-shared-shell .cs-preview-card {
  background-image: linear-gradient(135deg, rgba(255,255,255,.34), rgba(255,255,255,0) 58%);
}
[data-theme="dark"] body.cslegal-shared-shell .site-content {
  background-image:
    radial-gradient(circle at 8% 12%, rgba(201,162,39,.10), transparent 22rem),
    radial-gradient(circle at 94% 48%, rgba(31,86,115,.14), transparent 26rem);
}

/* Article previews stay useful on practice pages: the whole card is a link,
   while the excerpt gives enough context before opening the article. */
.cs-carousel-wrap { margin-block: clamp(2rem, 5vw, 4rem); }
.cs-carousel-head { display:flex; align-items:baseline; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.cs-carousel-head h2 { margin:0; }
.cs-carousel-all, .cs-carousel-read, .cs-related-more a { color:var(--cs-gold-ink,#7a5f10); font-weight:700; }
.cs-carousel { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(250px, 31%); gap:1rem; overflow-x:auto; scroll-snap-type:x mandatory; padding:1rem 0 .75rem; scrollbar-width:thin; }
.cs-carousel-card { display:flex; flex-direction:column; min-height:250px; scroll-snap-align:start; color:var(--cs-ink); text-decoration:none; border:1px solid var(--cs-border); border-top:3px solid var(--cs-gold); border-radius:10px; overflow:hidden; background:var(--cs-card); box-shadow:0 8px 24px var(--cs-shadow); transition:transform .25s ease, box-shadow .25s ease; }
.cs-carousel-card:hover { transform:translateY(-3px); box-shadow:0 14px 34px var(--cs-shadow); }
.cs-carousel-img img { display:block; width:100%; height:130px; object-fit:cover; }
.cs-carousel-body { display:flex; flex-direction:column; gap:.35rem; padding:1rem; flex:1; }
.cs-carousel-body h3 { margin:0; font-size:1.05rem; }
.cs-carousel-date { color:var(--cs-muted); font-size:.8rem; }
.cs-carousel-excerpt { margin:0; color:var(--cs-muted); font-size:.9rem; line-height:1.5; }
.cs-carousel-read { margin-top:auto; font-size:.85rem; }
.cs-carousel-nav { display:flex; justify-content:flex-end; gap:.5rem; }
.cs-carousel-arrow { width:42px; height:42px; border:1px solid var(--cs-border); border-radius:50%; background:var(--cs-card); color:var(--cs-ink); cursor:pointer; }
.cs-related-block { margin:2rem 0; padding:1.3rem; border:1px solid var(--cs-border); border-left:3px solid var(--cs-gold); border-radius:8px; background:var(--cs-card); }
.cs-related-title { margin-top:0; }
.cs-related-list { list-style:none; padding:0; margin:0; }
.cs-related-list li { border-top:1px solid var(--cs-border); padding:.8rem 0; }
.cs-related-list a { display:flex; flex-direction:column; gap:.25rem; color:var(--cs-ink); text-decoration:none; }
.cs-related-list a span { color:var(--cs-muted); font-size:.9rem; }
.cs-related-list a em { color:var(--cs-gold-ink,#7a5f10); font-size:.82rem; font-style:normal; font-weight:700; }
@media (max-width:700px) { .cs-carousel { grid-auto-columns:minmax(78%, 78%); } .cs-carousel-head { align-items:flex-start; } }
@media (prefers-reduced-motion: reduce) { .cs-faq-indicator::after { transition: none; } }
.cs-faq .cs-break { display: none; }
.page .entry-content .cs-faq-intro { font-family: var(--cs-font-body); font-size: .95rem !important; line-height: 1.7; font-weight: 400; }
.cs-faq-item summary { text-align: left; }
.cs-faq .cs-faq-answer p { font-family: var(--cs-font-body); font-size: .95rem !important; line-height: 1.8; }
/* Shared finishing layer: quiet controls, consistent surfaces and mobile navigation. */
.site-header .cs-theme-toggle,
.site-header .cs-theme-toggle:hover,
[data-theme="dark"] .site-header .cs-theme-toggle {
  border: 0; border-radius: 0; background: transparent; box-shadow: none;
  color: var(--cs-ink); padding-inline: 8px; min-width: 76px;
}
.site-header .cs-theme-toggle:hover { color: var(--cs-gold-ink); }
.site-header .cs-theme-toggle:focus-visible { border-radius: 6px; }
.site-header #site-navigation a[aria-current="page"] { color: var(--cs-gold-ink); }
body { background: var(--cs-bg); }
.entry-content > .wp-block-cover:first-child .wp-block-cover__background { opacity: .58; }
.wp-block-columns .wp-block-column { border-radius: 16px; }
.cs-service-art { transition: background-color 180ms ease; }
.wp-block-column:hover .cs-service-art { background: color-mix(in srgb,var(--cs-gold) 12%,transparent); }
.cs-float-toggle { touch-action: none; }
.cs-tabbar a { -webkit-tap-highlight-color: transparent; }
.cs-tabbar a:active { background: color-mix(in srgb,var(--cs-gold) 12%,transparent); }
@media (max-width: 782px) {
  :root { --cs-tabbar-h: 72px; --cs-font-body: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; }
  body { font-size: 16px; }
  .site-header .inside-header { min-height: 72px; padding: 10px 20px !important; }
  .site-header .header-image.is-logo-image,
  .site-header.cs-scrolled .header-image.is-logo-image { width: 48px; height: 48px; }
  .site-header .cs-theme-toggle { font-size: .75rem; }
  .home .entry-content > .wp-block-cover:first-child {
    min-height: min(660px, calc(100svh - 144px)) !important;
    padding: 48px 24px; box-sizing: border-box;
  }
  .home .entry-content > .wp-block-cover:first-child h1 { font-size: clamp(1.85rem,7vw,2.5rem); line-height: 1.14; letter-spacing: -.025em; }
  .home .entry-content > .wp-block-cover:first-child p { font-size: 1rem; line-height: 1.65; }
  .home .entry-content > .wp-block-cover:first-child .has-small-font-size { font-size: .78rem; }
  .home .entry-content .wp-block-buttons { gap: 12px; }
  .home .entry-content .wp-block-button { width: 100%; }
  .home .entry-content .wp-block-button__link { width: 100%; box-sizing: border-box; min-height: 52px; padding: 14px 16px; font-size: .78rem; letter-spacing: .025em; }
  .entry-content > .wp-block-columns { gap: 16px; }
  .entry-content > h2 { margin-top: 36px !important; }
  .cs-tabbar { min-height: 72px; box-sizing: border-box; padding: 8px 8px calc(8px + env(safe-area-inset-bottom)); background: color-mix(in srgb,var(--cs-bg) 94%,transparent); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); box-shadow: 0 -1px 12px color-mix(in srgb,var(--cs-ink) 5%,transparent); }
  .cs-tabbar a,.cs-tabbar a.cs-tab-centre { flex: 1 1 0; min-width: 0; margin: 0; padding: 5px 2px; gap: 4px; border-radius: 10px; background: transparent; box-shadow: none; color: var(--cs-muted) !important; font-size: .6rem; letter-spacing: .01em; text-transform: none; }
  .cs-tabbar a svg,.cs-tabbar a.cs-tab-centre svg { width: 23px; height: 23px; }
  .cs-tabbar a.cs-tab-active { color: var(--cs-gold-ink) !important; background: color-mix(in srgb,var(--cs-gold) 9%,transparent); }
  .cs-float {
    top: auto !important;
    bottom: calc(var(--cs-tabbar-h) + 16px + env(safe-area-inset-bottom)) !important;
    max-height: calc(100dvh - var(--cs-tabbar-h) - 36px);
    overflow: visible;
  }
  .cs-float.cs-state-open { overflow-y: auto; padding: 8px; margin: -8px; }
  .cs-quickform {
    top: auto;
    bottom: calc(var(--cs-tabbar-h) + 84px + env(safe-area-inset-bottom));
    max-height: calc(100dvh - var(--cs-tabbar-h) - 112px);
    overflow-y: auto;
  }
  input,select,textarea { font-size: 16px !important; }
}
/* Navigation states share the same restrained surface in both themes. */
.site-header #site-navigation .main-nav > ul > li:not(:last-child) > a,
.site-header #site-navigation .main-nav > ul > li:not(:last-child).current-menu-item > a {
  background: transparent;
}
.site-header #site-navigation .main-nav > ul > li:not(:last-child) > a:hover {
  background: color-mix(in srgb,var(--cs-gold) 8%,transparent);
  color: var(--cs-gold-ink);
}

/* Shared shell: one header and footer geometry for every public template. */
.cslegal-shared-shell .site-header .inside-header {
  width: 100%;
  max-width: 1240px;
  margin-inline: auto;
  padding: 10px var(--cs-gutter) !important;
}
.cslegal-shared-shell .site-header #site-navigation {
  flex: 1 1 auto;
  min-width: 0;
}
.cslegal-shared-shell .site-header #site-navigation .inside-navigation,
.cslegal-shared-shell .site-header #site-navigation .main-nav {
  width: 100%;
}
.cslegal-shared-shell .site-header #site-navigation .main-nav > ul {
  justify-content: flex-end;
}
.cslegal-shared-shell .cs-footer {
  width: 100%;
  box-sizing: border-box;
}
.cslegal-shared-shell .cs-footer-grid > * { min-width: 0; }
.cslegal-shared-shell .cs-footer address {
  margin: 0 0 .75rem;
  color: inherit;
  font: inherit;
  line-height: 1.75;
}
.cslegal-shared-shell .cs-footer-meta {
  padding: 18px var(--cs-gutter) 22px;
  border-top: 1px solid rgba(201,162,39,.3);
  text-align: center;
}
.cslegal-shared-shell .cs-footer-meta p { margin: 6px auto 0; }
.cslegal-shared-shell .cs-footer-legal {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 4px 9px;
}
.cslegal-shared-shell .cs-footer-disclaimer {
  max-width: 820px;
  color: #8d9bb0;
  font-size: .8rem;
  line-height: 1.65;
}
.cslegal-shared-shell .cs-footer + .site-footer { display: none; }
@media (max-width: 859px) {
  .cslegal-shared-shell .cs-footer-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 560px) {
  .cslegal-shared-shell .cs-footer-grid { grid-template-columns: 1fr; }
  .cslegal-shared-shell .cs-footer-nav ul { columns: 2; column-gap: 22px; }
  .cslegal-shared-shell .cs-footer-nav li { break-inside: avoid; }
}
@media (min-width: 783px) {
  .cslegal-shared-shell .site-header #mobile-menu-control-wrapper { display: none !important; }
}
/* Legal Insights: full-width introduction and filters, followed by a true card grid. */
body.blog .site-main,body.archive .site-main { grid-template-columns: repeat(3,minmax(0,1fr)); box-sizing: border-box; width: 100%; gap: 28px; }
body.blog .site-main > .cs-container-h1,
body.archive .site-main > .cs-container-h1,
.cs-insights-tools,body.blog .site-main > .no-results,
body.blog .site-main > .paging-navigation { grid-column: 1 / -1; min-width: 0; }
body.blog .site-main > .cs-container-h1 { width: 100%; box-sizing: border-box; margin: 0 !important; padding: 28px 0 8px !important; }
body.blog .cs-container-h1 h1 { font-size: clamp(2rem,4vw,3.1rem); margin: 0 0 14px; }
body.blog .cs-container-h1 p { max-width: 640px; margin: 0; font-size: 1rem; color: var(--cs-muted); line-height: 1.75; }
.cs-insights-tools { padding: 24px; border: 1px solid var(--cs-border); border-radius: 16px; background: var(--cs-card); margin-bottom: 8px; }
.cs-insights-filters { display: grid; grid-template-columns: minmax(220px,2fr) minmax(180px,1.3fr) minmax(110px,.7fr) auto; gap: 16px; align-items: end; }
.cs-insights-filters > div { min-width: 0; }
.cs-insights-filters label { display: block; margin-bottom: 8px; font-size: .78rem; font-weight: 600; color: var(--cs-muted); }
.cs-insights-filters input,.cs-insights-filters select { box-sizing: border-box; width: 100%; min-width: 0; height: 48px; padding: 10px 12px; border: 1px solid var(--cs-border); border-radius: 8px; color: var(--cs-ink); background: var(--cs-bg); font: inherit; font-size: .9rem; }
.cs-insights-filters button { min-height: 48px; padding: 12px 20px; border-radius: 8px; background: var(--cs-gold); color: var(--cs-navy); font-size: .85rem; font-weight: 600; white-space: nowrap; }
.cs-insights-results { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; align-items: center; margin-top: 18px; font-size: .8rem; color: var(--cs-muted); }
.cs-insights-results p { margin: 0; }
.cs-insights-results a { color: var(--cs-gold-ink); text-underline-offset: 3px; }
body.blog .site-main article.post,body.archive .site-main article.post { min-width: 0; border: 1px solid var(--cs-border); border-radius: 14px; }
body.blog .site-main article.post .inside-article,body.archive .site-main article.post .inside-article { display: flex; flex-direction: column; padding: 0 0 20px; }
body.blog .post-image,body.archive .post-image { order: -1; margin: 0; overflow: hidden; }
body.blog .post-image img,body.archive .post-image img { border-radius: 0; width: 100%; aspect-ratio: 16/10; object-fit: cover; }
body.blog .entry-header .entry-meta,body.archive .entry-header .entry-meta { padding: 0; margin-top: 12px; font-size: .75rem; color: var(--cs-muted); }
body.blog .entry-summary,body.archive .entry-summary { display: block; -webkit-line-clamp: unset; overflow: visible; font-size: .9rem; }
body.blog .entry-summary p,body.archive .entry-summary p { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
body.blog article footer.entry-meta,body.archive article footer.entry-meta { margin-top: auto; padding-top: 16px; font-size: .74rem; }
body.blog article .comments-link,body.archive article .comments-link { display: none; }
body.blog .site-main > .paging-navigation { display: block; text-align: center; }
@media (max-width: 1050px) {
 body.blog .site-main,body.archive .site-main { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .cs-insights-filters { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
}
@media (max-width: 600px) {
 body.blog .site-main,body.archive .site-main { grid-template-columns: minmax(0,1fr); padding: 16px 20px 32px; gap: 22px; }
 body.blog .site-main > .cs-container-h1 { padding-top: 16px !important; }
 .cs-insights-tools { padding: 18px; border-radius: 14px; }
 .cs-insights-filters { gap: 14px 12px; }
 .cs-insights-search,.cs-insights-filters button { grid-column: 1 / -1; }
 .cs-insights-filters button { width: 100%; }
 .cs-insights-results { font-size: .76rem; }
}
.cs-insights-empty { padding: 30px; border: 1px solid var(--cs-border); border-radius: 14px; background: var(--cs-card); }
.cs-insights-empty h2 { margin-top: 0; }
.cs-insights-empty p { color: var(--cs-muted); max-width: 620px; }
.cs-insights-empty a { color: var(--cs-gold-ink); }
body.blog .cs-container-h1 p { color: var(--cs-muted) !important; }
.cs-insights-filters input::placeholder { color: var(--cs-muted); opacity: 1; }
/* Compact sticky library controls after the introduction has passed. */
.cs-insights-tools {
  position: sticky;
  top: 104px;
  z-index: 30;
  box-shadow: 0 10px 28px color-mix(in srgb,var(--cs-ink) 6%,transparent);
  transition: padding .22s ease,border-radius .22s ease,box-shadow .22s ease;
}
.cs-insights-tools.is-compact {
  padding: 10px 14px;
  border-radius: 12px;
  box-shadow: 0 12px 30px color-mix(in srgb,var(--cs-ink) 13%,transparent);
}
.cs-insights-tools.is-compact .cs-insights-filters {
  grid-template-columns: minmax(0,1fr) auto;
  gap: 8px;
}
.cs-insights-tools.is-compact .cs-insights-filters > :not(.cs-insights-search):not(button),
.cs-insights-tools.is-compact .cs-insights-results,
.cs-insights-tools.is-compact .cs-search-hint { display:none; }
.cs-insights-tools.is-compact .cs-insights-search label { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.cs-insights-tools.is-compact .cs-insights-search input { height:42px; }
.cs-insights-tools.is-compact .cs-insights-filters button { min-width:42px; width:42px; height:42px; min-height:42px; padding:0; overflow:hidden; font-size:0; }
.cs-insights-tools.is-compact .cs-insights-filters button::after { content:'↵'; font-size:1.1rem; }
.cs-insights-tools.is-user-open.is-compact { padding:24px; border-radius:16px; }
.cs-insights-tools.is-user-open.is-compact .cs-insights-filters { grid-template-columns:minmax(220px,2fr) minmax(180px,1.3fr) minmax(110px,.7fr) auto; gap:16px; }
.cs-insights-tools.is-user-open.is-compact .cs-insights-filters > * { display:block; }
.cs-insights-tools.is-user-open.is-compact .cs-insights-results,.cs-insights-tools.is-user-open.is-compact .cs-search-hint { display:block; }
.cs-insights-tools.is-user-open.is-compact .cs-insights-search label { position:static; width:auto; height:auto; overflow:visible; clip:auto; }
.cs-insights-tools.is-user-open.is-compact .cs-insights-search input { height:48px; }
.cs-insights-tools.is-user-open.is-compact .cs-insights-filters button { min-width:0; width:auto; height:48px; min-height:48px; padding:12px 20px; overflow:visible; font-size:.85rem; }
.cs-insights-tools.is-user-open.is-compact .cs-insights-filters button::after { content:none; }
.cs-search-hint { margin:12px 0 0; color:var(--cs-muted); font-size:.78rem; }
.cs-search-previews { margin-top:16px; padding:14px; border:1px solid color-mix(in srgb,var(--cs-gold) 32%,var(--cs-border)); border-radius:12px; background:color-mix(in srgb,var(--cs-bg) 92%,var(--cs-card)); }
.cs-preview-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:10px; }
.cs-preview-status { color:var(--cs-muted); font-size:.8rem; }
.cs-preview-close { width:30px; height:30px; padding:0; border:1px solid var(--cs-border); border-radius:50%; background:transparent; color:var(--cs-ink); font-size:1.25rem; line-height:1; }
.cs-preview-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.cs-preview-card { display:grid; grid-template-columns:64px minmax(0,1fr); gap:10px; min-width:0; padding:8px; border:1px solid transparent; border-radius:9px; color:var(--cs-ink); text-decoration:none; animation:cs-preview-in .28s both; animation-delay:calc(var(--preview-index) * 45ms); }
.cs-preview-card:hover,.cs-preview-card:focus-visible { border-color:color-mix(in srgb,var(--cs-gold) 55%,var(--cs-border)); background:color-mix(in srgb,var(--cs-gold) 7%,transparent); }
.cs-preview-card img { width:64px; height:64px; object-fit:cover; border-radius:7px; }
.cs-preview-copy { min-width:0; display:grid; align-content:center; gap:3px; }
.cs-preview-date { color:var(--cs-gold-ink); font-size:.69rem; }
.cs-preview-card strong { display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:2; font-size:.82rem; line-height:1.28; }
.cs-preview-excerpt { display:-webkit-box; overflow:hidden; color:var(--cs-muted); -webkit-box-orient:vertical; -webkit-line-clamp:1; font-size:.72rem; }
.cs-preview-all { width:100%; margin-top:10px; padding:9px; border:0; border-radius:8px; background:transparent; color:var(--cs-gold-ink); font-weight:600; font-size:.82rem; }
.cs-search-loading .cs-insights-search input { background-image:linear-gradient(100deg,transparent 25%,color-mix(in srgb,var(--cs-gold) 22%,transparent) 50%,transparent 75%); background-size:200% 100%; animation:cs-search-glimmer 1.2s linear infinite; }
@keyframes cs-preview-in { from { opacity:0; transform:translateY(-5px); } to { opacity:1; transform:translateY(0); } }
@keyframes cs-search-glimmer { from { background-position:200% 0; } to { background-position:-20% 0; } }
@media (max-width:600px) {
  .cs-insights-tools { top:84px; }
  .cs-insights-tools.is-compact { padding:8px 10px; }
  .cs-insights-tools.is-compact .cs-insights-search input { height:40px; }
  .cs-insights-tools.is-compact .cs-insights-filters button { height:40px; min-height:40px; }
  .cs-preview-list { grid-template-columns:1fr; }
  .cs-preview-excerpt { -webkit-line-clamp:2; }
}
@media (prefers-reduced-motion:reduce) {
  .cs-insights-tools,.cs-preview-card { transition:none; animation:none; }
  .cs-search-loading .cs-insights-search input { animation:none; }
}

/* v6.0: shared spacing and translucent surfaces. */
:root {
  --cs-content-max: 1200px;
  --cs-glass: rgba(255,255,255,.84);
  --cs-glass-strong: rgba(252,251,248,.93);
  --cs-glass-border: rgba(156,122,60,.22);
}
[data-theme="dark"] {
  --cs-glass: rgba(23,23,28,.82);
  --cs-glass-strong: rgba(23,23,28,.94);
  --cs-glass-border: rgba(201,168,106,.24);
}

/* Content receives one gutter at one level, including narrow phone screens. */
.page .site-content { padding-inline: 0; }
.page:not(.home) .entry-content > *:not(.alignfull),
.home .entry-content > *:not(.alignfull) {
  width: min(100%, var(--cs-content-max));
  padding-inline: var(--cs-pad-inline);
  box-sizing: border-box;
}
.single .site-content {
  width: min(100%, 920px);
  margin-inline: auto;
  padding-inline: var(--cs-pad-inline);
  box-sizing: border-box;
}
body.blog .site-main,
body.archive .site-main {
  max-width: 1280px;
  margin-inline: auto;
  padding: clamp(22px,3vw,36px) var(--cs-pad-inline) clamp(40px,6vw,72px);
}

/* Glass stays readable and degrades to the declared solid colour if blur is unavailable. */
.site-header {
  background: var(--cs-glass-strong) !important;
  border-bottom-color: var(--cs-glass-border);
  -webkit-backdrop-filter: saturate(130%) blur(18px);
  backdrop-filter: saturate(130%) blur(18px);
}
.cs-insights-tools,
.cs-search-previews,
.cs-quickform,
.cs-consent,
.cs-portal-card,
.entry-content > .cs-faq,
.wp-block-columns .wp-block-column,
.cs-partners .cs-partner,
body.blog .site-main article.post,
body.archive .site-main article.post {
  background: var(--cs-glass);
  border-color: var(--cs-glass-border);
  -webkit-backdrop-filter: saturate(120%) blur(14px);
  backdrop-filter: saturate(120%) blur(14px);
}
.cs-insights-tools.is-compact,
.cs-quickform {
  background: var(--cs-glass-strong);
}
.cs-insights-tools {
  padding: clamp(18px,2.4vw,26px);
}
body.blog .entry-header,
body.archive .entry-header,
body.blog .entry-summary,
body.archive .entry-summary,
body.blog article footer.entry-meta,
body.archive article footer.entry-meta {
  padding-inline: clamp(18px,2vw,24px);
}
@media (max-width: 600px) {
  :root { --cs-pad-inline: 18px; }
  .page:not(.home) .entry-content > *:not(.alignfull),
  .home .entry-content > *:not(.alignfull) { padding-inline: var(--cs-pad-inline); }
  body.blog .site-main,
  body.archive .site-main { padding-inline: var(--cs-pad-inline); }
  .cs-insights-tools { padding: 16px; }
}

/* v6.1: editorial coherence, quiet depth and a more useful compact header. */
:root {
  --cs-reading: 74ch;
  --cs-card-radius: 18px;
  --cs-card-pad: clamp(1.25rem, 2.5vw, 2rem);
  --cs-glass: rgba(255,255,255,.76);
  --cs-glass-strong: rgba(252,251,248,.82);
}
[data-theme="dark"] {
  --cs-glass: rgba(19,20,25,.72);
  --cs-glass-strong: rgba(15,16,21,.82);
}
body.cslegal-shared-shell {
  background-image:
    radial-gradient(circle at 8% 18%, color-mix(in srgb,var(--cs-gold) 8%,transparent) 0 1px, transparent 2px),
    radial-gradient(circle at 88% 34%, color-mix(in srgb,var(--cs-primary) 7%,transparent) 0 1px, transparent 2px),
    linear-gradient(135deg, color-mix(in srgb,var(--cs-gold) 3%,transparent), transparent 38%);
  background-size: 42px 42px, 58px 58px, 100% 100%;
  background-attachment: fixed;
}
.site-header {
  background: var(--cs-glass-strong) !important;
  box-shadow: 0 1px 0 var(--cs-glass-border), 0 12px 38px transparent;
  -webkit-backdrop-filter: saturate(145%) blur(22px);
  backdrop-filter: saturate(145%) blur(22px);
  transition: background .28s ease, box-shadow .28s ease, transform .28s ease;
}
.site-header.cs-scrolled {
  background: color-mix(in srgb,var(--cs-glass-strong) 92%,var(--cs-bg)) !important;
  box-shadow: 0 1px 0 var(--cs-glass-border), 0 12px 38px color-mix(in srgb,var(--cs-ink) 10%,transparent);
}
.site-header.cs-scroll-away .inside-header { min-height: 58px; padding-block: 4px !important; }
.site-header.cs-scroll-away .header-image.is-logo-image,
.site-header.cs-scroll-away .custom-logo { width: 42px; height: 42px; }
.site-header:focus-within #site-navigation,
.site-header:hover #site-navigation { max-height: 120px; opacity: 1; overflow: visible; transform: none; pointer-events: auto; }

/* Reusable editorial surfaces use one radius, border and padding scale. */
.cs-related-block,
.cs-portal-card,
.entry-content > .cs-faq,
.wp-block-columns .wp-block-column,
.cs-partners .cs-partner,
body.blog .site-main article.post,
body.archive .site-main article.post {
  border-radius: var(--cs-card-radius);
  box-shadow: 0 14px 42px color-mix(in srgb,var(--cs-ink) 8%,transparent);
}
.wp-block-columns .wp-block-column,
.cs-partners .cs-partner,
.cs-related-block,
.cs-portal-card { padding: var(--cs-card-pad); }
.wp-block-columns .wp-block-column,
.cs-carousel-card,
body.blog .site-main article.post,
body.archive .site-main article.post {
  transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}
.wp-block-columns .wp-block-column:hover,
.cs-carousel-card:hover,
body.blog .site-main article.post:hover,
body.archive .site-main article.post:hover {
  transform: translateY(-3px);
  border-color: color-mix(in srgb,var(--cs-gold) 48%,var(--cs-border));
  box-shadow: 0 20px 48px color-mix(in srgb,var(--cs-ink) 12%,transparent);
}
.single .entry-content > p,
.single .entry-content > ul,
.single .entry-content > ol { max-width: var(--cs-reading); margin-inline: auto; }
.single .entry-content > h2 {
  max-width: var(--cs-reading);
  margin-inline: auto;
  padding-left: 1rem;
  border-left: 3px solid var(--cs-gold);
  text-wrap: balance;
}
.single .entry-content > h3 { max-width: var(--cs-reading); margin-inline: auto; text-wrap: balance; }
.single .entry-content > blockquote,
.single .entry-content > .wp-block-quote {
  max-width: min(100%, 780px);
  padding: var(--cs-card-pad);
  border: 1px solid var(--cs-glass-border);
  border-left: 4px solid var(--cs-gold);
  border-radius: var(--cs-card-radius);
  background: var(--cs-glass);
  box-shadow: 0 14px 38px color-mix(in srgb,var(--cs-ink) 8%,transparent);
}
.entry-content :where(p,li) { text-wrap: pretty; }
.entry-content :where(h1,h2,h3) { text-wrap: balance; }
.entry-content a:focus-visible,
.site-header a:focus-visible { outline: 3px solid color-mix(in srgb,var(--cs-gold) 72%,white); outline-offset: 4px; border-radius: 4px; }

@media (max-width: 782px) {
  body.cslegal-shared-shell { background-attachment: scroll; background-size: 36px 36px, 52px 52px, 100% 100%; }
  .site-header { --cs-glass-strong: rgba(252,251,248,.88); }
  [data-theme="dark"] .site-header { --cs-glass-strong: rgba(15,16,21,.88); }
  .wp-block-columns .wp-block-column,
  .cs-partners .cs-partner,
  .cs-related-block,
  .cs-portal-card { padding: clamp(1.1rem,5vw,1.45rem); }
  .single .entry-content > h2 { padding-left: .75rem; }
}
@media (prefers-reduced-motion: reduce) {
  .site-header,
  .wp-block-columns .wp-block-column,
  .cs-carousel-card,
  body.blog .site-main article.post,
  body.archive .site-main article.post { transition: none; transform: none; }
}
