/*
 Theme Name:   Kadence Child
 Theme URI:    https://example.com/kadence-child/
 Description:  Kadence Child Theme
 Author:       Your Name
 Author URI:   https://example.com
 Template:     kadence
 Version:      1.0.2
 Tags:         customizable, modern, responsive-layout, gutenberg, header builder, footer builder
 Text Domain:  kadencechild
*/

/* Theme customization starts here
-------------------------------------------------------------- */

/* ----------------------------------------------------------------------------
   XPT design tokens — shared reading width and vertical rhythm.
   START xpt-tokens-css
---------------------------------------------------------------------------- */
:root{
  --xpt-read: 720px;      /* article reading column */
  --xpt-gap-section: 72px; /* between major sections (desktop) */
  --xpt-gap-block: 34px;   /* between blocks inside a section */
  --xpt-entry-pad: 32px;   /* .entry-content-wrap horizontal padding */
}
@media (max-width: 1024px){
  :root{ --xpt-gap-section: 56px; }
}
@media (max-width: 767px){
  :root{ --xpt-read: 100%; --xpt-gap-section: 48px; --xpt-gap-block: 26px; --xpt-entry-pad: 8px; }
}
/* END xpt-tokens-css */


/* ----------------------------------------------------------------------------
   XPT Fonts — fallback stacks.
   Kadence outputs the family with no fallback (just "Fraunces" / "Work Sans"),
   so if Google Fonts is blocked the browser picks an arbitrary default. These
   rules keep the intended serif/sans character in that case.
   START xpt-font-fallback-css
---------------------------------------------------------------------------- */
body{
  font-family: "Work Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}
h1, h2, h3, h4, h5, h6,
.entry-title,
.archive-title,
.search-title{
  font-family: "Fraunces", Georgia, "Times New Roman", Times, serif;
}
/* END xpt-font-fallback-css */

/* ----------------------------------------------------------------------------
   XPT Header — two-row dark header (utility links on top, logo + nav below).
   Uses the XPT palette: ink ground, garnet accent.
   Rollback: delete this block (marked START/END) and restore the header
   theme_mods from option 'xpt_backup_header_pre_redesign'.
   START xpt-header-css
---------------------------------------------------------------------------- */
#masthead,
#masthead .site-top-header-wrap,
#masthead .site-main-header-wrap{
  background-color: #1B1712 !important;
}
#masthead{ border-bottom: 0; }

/* Rows */
#masthead .site-top-header-wrap .site-header-row-container-inner{
  padding-top: 10px;
  padding-bottom: 6px;
}
#masthead .site-main-header-wrap .site-header-row-container-inner{
  padding-bottom: 14px;
}

/* Logo + tagline */
#masthead .site-title{
  font-size: 1.9rem !important;
  font-weight: 700 !important;
  line-height: 1.05 !important;
  letter-spacing: -0.01em;
  color: #FFFFFF !important;
  margin: 0 !important;
}
#masthead .site-description{
  font-size: 0.8125rem !important;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #9B917F !important;
  margin: 4px 0 0 !important;
}
#masthead .brand:hover .site-title{ color: #FFFFFF !important; }

/* Top utility links, pipe separated */
#masthead .secondary-navigation ul li a{
  color: #C9C1B4 !important;
  font-size: 0.8125rem !important;
  font-weight: 500;
  padding: 4px 0 !important;
}
#masthead .secondary-navigation ul li a:hover{ color: #FFFFFF !important; }
#masthead .secondary-navigation ul > li + li{ position: relative; }
#masthead .secondary-navigation ul > li + li::before{
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 12px;
  background: #4A4137;
}
#masthead .secondary-navigation ul > li + li > a{ margin-left: 18px !important; }
#masthead .secondary-navigation ul > li > a{ margin-right: 18px !important; }
#masthead .secondary-navigation ul > li:last-child > a{ margin-right: 0 !important; }

/* Primary navigation */
#masthead .header-navigation .primary-menu-container > ul > li > a,
#masthead #primary-menu > li > a{
  color: #E8E2D8 !important;
  font-size: 0.9375rem !important;
  font-weight: 500;
  padding: 9px 16px !important;
  border-radius: 4px;
  transition: background-color 0.12s ease, color 0.12s ease;
}
#masthead #primary-menu > li > a:hover{
  color: #FFFFFF !important;
  background: rgba(255,255,255,0.07);
}
/* Current page gets the raised block treatment */
#masthead #primary-menu > li.current-menu-item > a,
#masthead #primary-menu > li.current_page_item > a,
#masthead #primary-menu > li.current-menu-parent > a,
#masthead #primary-menu > li.current-menu-ancestor > a{
  color: #FFFFFF !important;
  background: rgba(255,255,255,0.11);
}
#masthead #primary-menu > li > a:focus-visible{
  outline: 2px solid #9E1C33;
  outline-offset: 2px;
}

/* Dropdowns */
#masthead #primary-menu ul.sub-menu{
  background: #241F19;
  border: 1px solid #3A322A;
  border-radius: 4px;
}
#masthead #primary-menu ul.sub-menu li a{
  color: #E8E2D8 !important;
  font-size: 0.875rem !important;
}
#masthead #primary-menu ul.sub-menu li a:hover{
  color: #FFFFFF !important;
  background: #9E1C33;
}

/* Search + mobile toggle */
#masthead .search-toggle-open,
#masthead .menu-toggle-open{
  color: #E8E2D8 !important;
  background: transparent !important;
}
#masthead .search-toggle-open:hover,
#masthead .menu-toggle-open:hover{ color: #FFFFFF !important; }
#masthead .search-toggle-open .kadence-svg-iconset,
#masthead .menu-toggle-open .kadence-svg-iconset{ color: inherit; }

/* Hairline that runs from the logo across to the utility links */
@media screen and (min-width: 1025px){
  #masthead .site-top-header-wrap{
    position: relative;
  }
  #masthead .site-top-header-wrap .site-header-row-container-inner::after{
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 1px;
    background: #3A322A;
  }
}

@media (max-width: 1024px){
  #masthead .site-title{ font-size: 1.5rem !important; }
  #masthead .site-description{ font-size: 0.6875rem !important; letter-spacing: 0.12em; }
  #masthead .site-top-header-wrap{ display: none; }
}
@media (prefers-reduced-motion: reduce){
  #masthead #primary-menu > li > a{ transition: none; }
}
/* END xpt-header-css */

/* ----------------------------------------------------------------------------
   XPT Single Article — additions on top of Kadence's native single-post
   template. Scoped under body.single-post so Homepage/Category/Search/Author
   are unaffected. Rollback: delete this block (marked START/END).
   START xpt-single-post-css
---------------------------------------------------------------------------- */
body.single-post .xpt-readtime-row{
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: 0.8125rem;
  color: #6E655A;
  margin-top: 4px;
}
body.single-post .xpt-more-from{
  padding: 40px 0 8px;
  border-top: 1px solid #E6E0D5;
  margin-top: 24px;
}
body.single-post .xpt-more-from-title{
  font-size: 1.5rem;
  font-weight: 600;
  color: #1B1712;
  margin: 0 0 20px;
}
body.single-post .xpt-more-from-grid{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
body.single-post .xpt-more-card{
  text-decoration: none;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
body.single-post .xpt-more-img{
  border-radius: 0;
  overflow: hidden;
  background: #F1EDE6;
}
body.single-post .xpt-more-img img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 20%;
  display: block;
}
body.single-post .xpt-more-img-empty{
  border: 1px dashed #E6E0D5;
}
body.single-post .xpt-more-card-title{
  font-weight: 600;
  font-size: 0.9375rem;
  line-height: 1.3;
  color: #1B1712 !important;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
body.single-post .xpt-more-card:hover .xpt-more-card-title{
  color: #9E1C33 !important;
}
@media (max-width: 767px){
  body.single-post .xpt-more-from-grid{
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (prefers-reduced-motion: reduce){
  body.single-post .xpt-more-card *{ transition: none !important; }
}
/* --- Article header --- */
body.single-post .kadence-breadcrumbs{
  font-size: 0.8125rem;
  color: var(--xpt-ink-faint);
  margin-bottom: 18px;
}
body.single-post .kadence-breadcrumbs a{ color: var(--xpt-ink-muted) !important; text-decoration: none; }
body.single-post .kadence-breadcrumbs a:hover{ color: var(--xpt-garnet) !important; }
body.single-post .kadence-bread-current{ color: var(--xpt-ink-faint); }

body.single-post .entry-header .entry-taxonomies{ margin-bottom: 14px; }
body.single-post .entry-header .entry-taxonomies .category-links a{
  display: inline-flex;
  align-items: center;
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 5px 12px;
  min-height: 24px;
  border-radius: 999px;
  text-decoration: none;
  background: var(--xpt-garnet-tint);
  color: var(--xpt-garnet) !important;
}
/* Kadence omits the slug class on single posts, so match the Net Worth
   pillar by its category URL to keep the gold accent rule working. */
body.single-post .entry-header .entry-taxonomies .category-links a[href*="/category/net-worth/"]{
  background: var(--xpt-gold-soft);
  color: var(--xpt-gold) !important;
}

body.single-post .entry-title{
  font-size: 2.75rem;
  line-height: 1.1;
  font-weight: 600;
  letter-spacing: -0.015em;
  color: var(--xpt-ink);
  margin: 0 0 14px;
  text-wrap: balance;
  max-width: var(--xpt-read);
}

/* Read time sits inline with the byline instead of on its own row. */
body.single-post .entry-header .entry-meta,
body.single-post .xpt-readtime-row{
  display: inline-flex;
  align-items: center;
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: 0.8125rem;
  color: var(--xpt-ink-muted);
}
body.single-post .entry-header .entry-meta *{ font-family: inherit; font-size: inherit; }
body.single-post .xpt-readtime-row::before{
  content: "\00B7";
  margin: 0 8px;
  color: var(--xpt-ink-faint);
}
body.single-post .entry-header .entry-meta a{ color: var(--xpt-ink) !important; font-weight: 600; text-decoration: none; }
body.single-post .entry-header .entry-meta a:hover{ color: var(--xpt-garnet) !important; }

/* --- Featured image --- */
body.single-post .article-post-thumbnail{
  max-width: var(--xpt-read);
  margin-left: 0;
  padding-bottom: 0 !important;
  height: auto !important;
  aspect-ratio: 16 / 9;
  position: relative;
  border-radius: 0;
  overflow: hidden;
  margin-bottom: 36px;
}
body.single-post .article-post-thumbnail .post-thumbnail-inner{ position: absolute !important; inset: 0; }
body.single-post .article-post-thumbnail img{
  width: 100%;
  height: 100% !important;
  object-fit: cover;
  object-position: 50% 22%;
  display: block;
}

/* --- Reading column & typography --- */
body.single-post .entry-content.single-content{
  max-width: var(--xpt-read);
  margin-left: 0;
  margin-right: 0;
  font-size: 1.125rem;
  line-height: 1.75;
  color: var(--xpt-ink);
}
body.single-post .entry-content.single-content > p{ margin: 0 0 1.35em; }
body.single-post .entry-content.single-content h2{
  font-size: 1.875rem;
  line-height: 1.25;
  font-weight: 600;
  margin: 2.2em 0 0.6em;
  color: var(--xpt-ink);
  text-wrap: balance;
}
body.single-post .entry-content.single-content h3{
  font-size: 1.3125rem;
  line-height: 1.3;
  font-weight: 600;
  margin: 1.8em 0 0.5em;
  color: var(--xpt-ink);
}
body.single-post .entry-content.single-content ul,
body.single-post .entry-content.single-content ol{ margin: 0 0 1.35em; padding-left: 1.3em; }
body.single-post .entry-content.single-content li{ margin-bottom: 0.5em; }
body.single-post .entry-content.single-content a{
  color: var(--xpt-garnet) !important;
  text-decoration: underline;
  text-underline-offset: 2px;
}
body.single-post .entry-content.single-content blockquote{
  margin: 1.8em 0;
  padding: 4px 0 4px 20px;
  border-left: 3px solid var(--xpt-garnet);
  font-size: 1.25rem;
  line-height: 1.5;
  font-style: italic;
  color: var(--xpt-ink);
}
body.single-post .entry-content.single-content img{ border-radius: 0; height: auto; }
/* Wide tables scroll inside their own box instead of pushing the page out. */
body.single-post .entry-content.single-content table{
  display: block;
  width: 100%;
  overflow-x: auto;
  border-collapse: collapse;
  font-size: 0.9375rem;
  margin: 0 0 1.6em;
}
body.single-post .entry-content.single-content th,
body.single-post .entry-content.single-content td{
  border: 1px solid var(--xpt-border);
  padding: 10px 12px;
  text-align: left;
}
body.single-post .entry-content.single-content th{ background: var(--xpt-surface-alt); font-weight: 600; }

/* --- Tags --- */
body.single-post .entry-tags,
body.single-post .tags-links{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  max-width: var(--xpt-read);
  margin: 32px 0 0;
  padding-top: 24px;
  border-top: 1px solid var(--xpt-border);
}
body.single-post .entry-tags a,
body.single-post .tags-links a{
  display: inline-flex;
  align-items: center;
  font-size: 0.8125rem;
  padding: 5px 12px;
  min-height: 30px;
  border: 1px solid var(--xpt-border);
  border-radius: 999px;
  color: var(--xpt-ink-muted) !important;
  text-decoration: none;
}
body.single-post .entry-tags a:hover,
body.single-post .tags-links a:hover{
  color: var(--xpt-garnet) !important;
  border-color: var(--xpt-garnet);
}

/* --- Author box --- */
body.single-post .entry-author{
  max-width: var(--xpt-read);
  margin: 40px 0 0;
  padding: 22px;
  background: var(--xpt-surface-alt);
  border-radius: 8px;
}
body.single-post .entry-author .entry-author-profile-wrap{ gap: 16px; }
body.single-post .entry-author img{ border-radius: 50%; }
body.single-post .entry-author-name{ font-size: 1.0625rem; font-weight: 600; color: var(--xpt-ink); }
body.single-post .entry-author-name a{ color: var(--xpt-ink) !important; text-decoration: none; }
body.single-post .entry-author p{ font-size: 0.9375rem; line-height: 1.6; color: var(--xpt-ink-muted); margin: 6px 0 0; }

/* --- Post navigation --- */
body.single-post .post-navigation{
  max-width: var(--xpt-read);
  margin: 36px 0 0;
  padding-top: 24px;
  border-top: 1px solid var(--xpt-border);
}
body.single-post .post-navigation a{ color: var(--xpt-ink) !important; text-decoration: none; font-weight: 600; }
body.single-post .post-navigation a:hover{ color: var(--xpt-garnet) !important; }
body.single-post .post-navigation .post-navigation-sub small{
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: 0.6875rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--xpt-ink-faint);
}

/* --- Recirculation: Related Articles + More From XPT --- */
body.single-post .entry-related{
  margin-top: 56px;
  padding-top: 36px;
  border-top: 1px solid var(--xpt-border);
}
body.single-post .entry-related-title,
body.single-post .xpt-more-from-title{
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--xpt-ink);
  margin: 0 0 20px;
}
/* Related cards use the same portrait crop as the homepage grid. */
body.single-post .entry-related .loop-entry .post-thumbnail{
  padding-bottom: 0 !important;
  height: auto !important;
  aspect-ratio: 4 / 5;
  position: relative;
}
body.single-post .entry-related .loop-entry .post-thumbnail-inner{ position: absolute !important; inset: 0; }
body.single-post .entry-related .loop-entry .post-thumbnail-inner img{
  width: 100%;
  height: 100% !important;
  object-fit: cover;
  object-position: 50% 20%;
  display: block;
}
body.single-post .entry-related .loop-entry .entry-title{
  font-size: 1.0625rem;
  line-height: 1.3;
  font-weight: 600;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
body.single-post .entry-related .loop-entry .entry-title a{ color: var(--xpt-ink) !important; text-decoration: none; }
body.single-post .entry-related .loop-entry .entry-title a:hover{ color: var(--xpt-garnet) !important; }
body.single-post .entry-related .loop-entry .entry-summary,
body.single-post .entry-related .loop-entry .entry-footer{ display: none; }

/* More From XPT: match the homepage card crop (was 4:5). */
body.single-post .xpt-more-img{ aspect-ratio: 4 / 5; }
body.single-post .xpt-more-from{
  margin-top: 56px;
  padding: 36px 0 8px;
  border-top: 1px solid var(--xpt-border);
}

/* --- Mobile --- */
@media (max-width: 767px){
  body.single-post .entry-title{ font-size: 1.75rem; max-width: none; }
  body.single-post .article-post-thumbnail{ border-radius: 0; margin-bottom: 26px; }
  body.single-post .entry-content.single-content{ font-size: 1.0625rem; line-height: 1.7; }
  body.single-post .entry-content.single-content h2{ font-size: 1.375rem; }
  body.single-post .entry-content.single-content h3{ font-size: 1.1875rem; letter-spacing: -0.005em; }
  body.single-post .entry-author{ padding: 18px; margin-top: 32px; }
  body.single-post .entry-related,
  body.single-post .xpt-more-from{ margin-top: 40px; padding-top: 28px; }
  body.single-post .entry-related-title,
  body.single-post .xpt-more-from-title{ font-size: 1.25rem; }
  body.single-post .kadence-breadcrumbs{ font-size: 0.75rem; }
}

/* --- Single-post sidebar --- */
/* Sidebar scrolls with the page — no sticky, no internal scroll area. */
body.single-post .xpt-side-block{
  margin-bottom: 34px;
}
body.single-post .xpt-side-title{
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--xpt-ink);
  margin: 0 0 16px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--xpt-border);
}

/* Author */
body.single-post .xpt-side-avatar{
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 84px;
  height: 84px;
  border-radius: 50%;
  overflow: hidden;
  background: var(--xpt-garnet);
  margin-bottom: 12px;
  text-decoration: none;
}
body.single-post .xpt-side-initials{
  font-size: 1.75rem;
  font-weight: 600;
  color: #FFFFFF;
  line-height: 1;
}
body.single-post .xpt-side-avatar img{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
body.single-post .xpt-side-author-name{
  margin: 0 0 8px;
  font-size: 1.0625rem;
  font-weight: 600;
}
body.single-post .xpt-side-author-name a{ color: var(--xpt-ink) !important; text-decoration: none; }
body.single-post .xpt-side-author-name a:hover{ color: var(--xpt-garnet) !important; }
body.single-post .xpt-side-author-bio{
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--xpt-ink-muted);
}

/* Read More cards */
body.single-post .xpt-side-card{
  padding-bottom: 20px;
  margin-bottom: 20px;
  border-bottom: 1px solid var(--xpt-border);
}
body.single-post .xpt-side-card:last-child{
  border-bottom: 0;
  margin-bottom: 0;
  padding-bottom: 0;
}
body.single-post .xpt-side-card-img{
  display: block;
  aspect-ratio: 16 / 10;
  border-radius: 0;
  overflow: hidden;
  margin-bottom: 10px;
}
body.single-post .xpt-side-card-img img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 20%;
  display: block;
}
body.single-post .xpt-side-card-meta{
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: 0.6875rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--xpt-ink-faint);
  margin-bottom: 6px;
}
body.single-post .xpt-side-card-cat{ color: var(--xpt-garnet); font-weight: 600; }
body.single-post .xpt-side-card-dot{ margin: 0 5px; }
body.single-post .xpt-side-card-title{
  font-size: 1rem;
  line-height: 1.35;
  font-weight: 600;
  margin: 0 0 8px;
}
body.single-post .xpt-side-card-title a{ color: var(--xpt-ink) !important; text-decoration: none; }
body.single-post .xpt-side-card-title a:hover{ color: var(--xpt-garnet) !important; }
body.single-post .xpt-side-card-link{
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--xpt-ink-muted) !important;
  text-decoration: none;
  border-bottom: 1px solid var(--xpt-border-strong, #D3CABA);
  padding-bottom: 2px;
}
body.single-post .xpt-side-card-link:hover{
  color: var(--xpt-garnet) !important;
  border-color: var(--xpt-garnet);
}

/* --- Table of Contents --- */
/* The sidebar copy shows on desktop, the in-article copy on smaller screens
   where the sidebar drops below the content and a TOC there would be useless. */
body.single-post .xpt-toc--side{ display: none; }
@media screen and (min-width: 1025px){
  body.single-post .xpt-toc--side{ display: block; }
  body.single-post .xpt-toc--inline{ display: none; }
}
body.single-post .xpt-toc--side{
  max-width: none;
  margin: 0 0 34px;
}

body.single-post .xpt-toc{
  max-width: 680px;
  margin: 32px auto 36px;
  border: 1px solid var(--xpt-border);
  border-radius: 6px;
  background: #FFFFFF;
  overflow: hidden;
}
body.single-post .xpt-toc-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  padding: 14px 18px;
  background: var(--xpt-surface-alt);
  border: 0;
  border-bottom: 1px solid var(--xpt-border);
  cursor: pointer;
  text-align: left;
  font: inherit;
}
body.single-post .xpt-toc-label{
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 600;
  color: var(--xpt-ink);
}
body.single-post .xpt-toc-chevron{
  width: 9px;
  height: 9px;
  border-right: 2px solid var(--xpt-ink-muted);
  border-bottom: 2px solid var(--xpt-ink-muted);
  transform: rotate(45deg);
  transform-origin: center;
  margin-top: -4px;
  flex-shrink: 0;
  transition: transform 0.15s ease;
}
body.single-post .xpt-toc-head[aria-expanded="false"] .xpt-toc-chevron{
  transform: rotate(-135deg);
  margin-top: 3px;
}
body.single-post .xpt-toc-head:focus-visible{
  outline: 2px solid var(--xpt-garnet);
  outline-offset: -2px;
}
body.single-post .xpt-toc-list{
  list-style: none;
  counter-reset: xpttoc;
  margin: 0;
  padding: 14px 18px 16px;
}
body.single-post .xpt-toc-item{
  counter-increment: xpttoc;
  display: flex;
  gap: 10px;
  align-items: baseline;
  margin: 0;
  padding: 5px 0;
}
body.single-post .xpt-toc-item::before{
  content: counter(xpttoc) ".";
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: 0.8125rem;
  color: var(--xpt-ink-faint);
  flex-shrink: 0;
  min-width: 18px;
}
body.single-post .xpt-toc-item a{
  font-size: 0.9375rem;
  line-height: 1.45;
  color: var(--xpt-ink-muted) !important;
  text-decoration: none;
}
body.single-post .xpt-toc-item a:hover,
body.single-post .xpt-toc-item a:focus{
  color: var(--xpt-garnet) !important;
  text-decoration: underline;
}
body.single-post .xpt-toc-item.is-active a{
  color: var(--xpt-garnet) !important;
  font-weight: 600;
}
/* Stop anchor jumps hiding the heading under the sticky header */
body.single-post .xpt-toc-target{ scroll-margin-top: 90px; }

@media (max-width: 767px){
  body.single-post .xpt-toc{ margin: 24px 0 28px; }
  body.single-post .xpt-toc-head{ padding: 12px 14px; }
  body.single-post .xpt-toc-list{ padding: 12px 14px 14px; }
  body.single-post .xpt-toc-item a{ font-size: 0.875rem; }
}
@media (prefers-reduced-motion: reduce){
  body.single-post .xpt-toc-chevron{ transition: none; }
}
/* END xpt-single-post-css */

/* ----------------------------------------------------------------------------
   XPT Category / Archive — image ratio consistency with Homepage cards.
   Scoped under body.archive so Single Post / Homepage / Search / Author are
   unaffected. Rollback: delete this block (marked START/END).
   START xpt-archive-css
---------------------------------------------------------------------------- */
/* Kadence sizes card thumbnails with a height:0 + padding-bottom ratio hack.
   Override the wrapper itself (not just the img) so the frame and the image
   agree — otherwise the image overflows its box and gets hard-cropped. */
body.archive .entry-list-item .post-thumbnail,
body.search-results .entry-list-item .post-thumbnail{
  padding-bottom: 0 !important;
  height: auto !important;
  aspect-ratio: 4 / 5;
  position: relative;
  overflow: hidden;
}
body.archive .entry-list-item .post-thumbnail-inner,
body.search-results .entry-list-item .post-thumbnail-inner{
  position: absolute !important;
  inset: 0;
}
body.archive .entry-list-item .wp-post-image,
body.search-results .entry-list-item .wp-post-image{
  width: 100%;
  height: 100% !important;
  object-fit: cover;
  object-position: 50% 20%;
  display: block;
}
body.archive .content-title-style-above .entry-header{
  margin-bottom: 4px;
}

/* --- Archive header --- */
body.archive .archive-title,
body.search-results .archive-title{
  font-size: 2.75rem;
  line-height: 1.1;
  font-weight: 600;
  color: var(--xpt-ink);
  margin: 0 0 10px;
  letter-spacing: -0.01em;
}
body.archive .archive-description,
body.archive .taxonomy-description{
  font-size: 1.0625rem;
  line-height: 1.6;
  color: var(--xpt-ink-muted);
  max-width: 62ch;
  margin: 0;
}
body.archive .archive-description p,
body.archive .taxonomy-description p{ margin: 0; }
body.archive .entry-hero-container-inner,
body.search-results .entry-hero-container-inner{
  border-bottom: 1px solid var(--xpt-border);
}
body.archive .entry-hero-container-inner .entry-header,
body.search-results .entry-hero-container-inner .entry-header{
  padding-top: 48px;
  padding-bottom: 34px;
}

/* --- Archive card typography (matches homepage grid) --- */
body.archive .entry-list-item .entry-title,
body.search-results .entry-list-item .entry-title{
  font-size: 1.0625rem;
  line-height: 1.3;
  font-weight: 600;
  margin: 10px 0 8px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
body.archive .entry-list-item .entry-title a,
body.search-results .entry-list-item .entry-title a{
  color: var(--xpt-ink) !important;
  text-decoration: none;
}
body.archive .entry-list-item .entry-title a:hover,
body.search-results .entry-list-item .entry-title a:hover{
  color: var(--xpt-garnet) !important;
}
body.archive .entry-list-item .entry-taxonomies,
body.search-results .entry-list-item .entry-taxonomies{ margin-bottom: 2px; }

/* --- Pagination --- */
body.archive .pagination,
body.search-results .pagination{
  margin-top: 48px;
  padding-top: 28px;
  border-top: 1px solid var(--xpt-border);
}
body.archive .pagination .nav-links,
body.search-results .pagination .nav-links{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
body.archive .pagination .page-numbers,
body.search-results .pagination .page-numbers{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  min-height: 42px;
  padding: 0 12px;
  font-size: 0.9375rem;
  font-weight: 600;
  border-radius: 4px;
  border: 1px solid var(--xpt-border);
  color: var(--xpt-ink) !important;
  text-decoration: none;
}
body.archive .pagination .page-numbers:hover,
body.search-results .pagination .page-numbers:hover{
  border-color: var(--xpt-garnet);
  color: var(--xpt-garnet) !important;
}
body.archive .pagination .page-numbers.current,
body.search-results .pagination .page-numbers.current{
  background: var(--xpt-garnet);
  border-color: var(--xpt-garnet);
  color: #FFFFFF !important;
}
body.archive .pagination .page-numbers.dots,
body.search-results .pagination .page-numbers.dots{
  border-color: transparent;
  min-width: 24px;
  color: var(--xpt-ink-faint) !important;
}

@media (max-width: 767px){
  body.archive .archive-title,
  body.search-results .archive-title{ font-size: 1.875rem; }
  body.archive .archive-description,
  body.archive .taxonomy-description{ font-size: 0.9375rem; }
  body.archive .entry-hero-container-inner .entry-header,
  body.search-results .entry-hero-container-inner .entry-header{
    padding-top: 30px;
    padding-bottom: 24px;
  }
  body.archive .entry-list-item .entry-title,
  body.search-results .entry-list-item .entry-title{ font-size: 0.9375rem; }
  body.archive .pagination,
  body.search-results .pagination{ margin-top: 34px; }
}
@media (prefers-reduced-motion: reduce){
  body.archive .entry-list-item *,
  body.search-results .entry-list-item *{ transition: none !important; }
}

/* Kadence's own 2-column grid rule only starts at 576px, so real phone
   widths fall back to a single column. The approved XPT design calls for a
   2-column card grid on mobile across Category, Search and Author. */
@media screen and (max-width: 575px){
  body.archive .kadence-posts-list.grid-cols,
  body.search-results .kadence-posts-list.grid-cols{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
  }
  body.archive .kadence-posts-list.grid-cols .entry-title,
  body.search-results .kadence-posts-list.grid-cols .entry-title{
    font-size: 1rem;
    line-height: 1.3;
  }
}

/* --- Search results --- */
body.search-results .search-title,
body.search .search-title{
  font-size: 2.75rem;
  line-height: 1.1;
  font-weight: 600;
  color: var(--xpt-ink);
  margin: 0 0 8px;
  letter-spacing: -0.01em;
}
body.search .search-title span{ color: var(--xpt-garnet); }
body.search .entry-header.search-archive-title{
  padding-bottom: 26px;
  margin-bottom: 34px;
  border-bottom: 1px solid var(--xpt-border);
}
.xpt-search-count{
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: 0.8125rem;
  color: var(--xpt-ink-muted);
  margin: 0;
}

/* No-results state */
body.search .page-content{
  max-width: 620px;
  margin: 0 auto;
  padding: 8px 0 4px;
  text-align: center;
}
body.search .page-content > p{
  font-size: 1.0625rem;
  line-height: 1.6;
  color: var(--xpt-ink-muted);
  margin: 0 0 22px;
}
body.search .page-content .search-form{
  display: flex;
  gap: 8px;
  justify-content: center;
  align-items: stretch;
  flex-wrap: wrap;
}
body.search .page-content .search-field{
  flex: 1 1 260px;
  max-width: 340px;
  padding: 12px 14px;
  font-size: 1rem;
  color: var(--xpt-ink);
  background: #FFFFFF;
  border: 1px solid var(--xpt-border);
  border-radius: 4px;
}
body.search .page-content .search-field:focus{
  outline: 2px solid var(--xpt-garnet);
  outline-offset: 1px;
  border-color: var(--xpt-garnet);
}
body.search .page-content .search-submit{
  /* Kadence sizes this as an icon-only button (fixed 50px), which clips the
     "Search" label once the icon is hidden. */
  width: auto !important;
  padding: 12px 24px;
  min-height: 46px;
  font-size: 0.8125rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #FFFFFF;
  background: var(--xpt-garnet);
  border: 1px solid var(--xpt-garnet);
  border-radius: 4px;
  cursor: pointer;
}
body.search .page-content .search-submit:hover{ background: #7A1527; border-color: #7A1527; }
body.search .page-content .kadence-search-icon-wrap{ display: none; }

.xpt-search-suggest{
  max-width: 620px;
  margin: 36px auto 0;
  padding-top: 28px;
  border-top: 1px solid var(--xpt-border);
  text-align: center;
}
.xpt-search-suggest-label{
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  font-weight: 600;
  color: var(--xpt-ink-faint);
  margin: 0 0 14px;
}
.xpt-search-suggest-links{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
}
.xpt-search-suggest-link{
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 18px;
  font-size: 0.8125rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--xpt-garnet) !important;
  border: 1px solid var(--xpt-garnet);
  border-radius: 4px;
  text-decoration: none;
}
.xpt-search-suggest-link:hover{
  background: var(--xpt-garnet);
  color: #FFFFFF !important;
}

@media (max-width: 767px){
  body.search .search-title{ font-size: 1.875rem; }
  body.search .entry-header.search-archive-title{ margin-bottom: 26px; padding-bottom: 20px; }
  body.search .page-content .search-form{ flex-direction: column; }
  body.search .page-content .search-field{ max-width: none; }
  .xpt-search-suggest{ margin-top: 28px; }
}
/* END xpt-archive-css */

/* ----------------------------------------------------------------------------
   XPT Author archive header — avatar, post count, bio.
   Scoped under body.author so Homepage / Category / Search / Single are
   unaffected. Rollback: delete this block (marked START/END).
   START xpt-author-css
---------------------------------------------------------------------------- */
/* Avatar sits left, spanning the name and meta rows beside it. The avatar
   markup follows the H1 in the DOM, so grid placement does the reordering
   without touching template output. */
body.author header.post-archive-title,
body.author .entry-hero-container-inner > header{
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  column-gap: 22px;
  row-gap: 6px;
  align-items: start;
  justify-items: start;
}
body.author .post-archive-title .xpt-author-head, body.author .entry-hero-container-inner > header .xpt-author-head{
  grid-column: 1;
  grid-row: 1 / span 2;
  align-self: center;
}
body.author .post-archive-title .archive-title, body.author .entry-hero-container-inner > header .archive-title{
  grid-column: 2;
  grid-row: 1;
  align-self: end;
}
body.author .xpt-author-meta{
  grid-column: 2;
  grid-row: 2;
}
body.author .xpt-author-avatar{
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 88px;
  height: 88px;
  border-radius: 50%;
  overflow: hidden;
  background: var(--xpt-garnet);
  flex-shrink: 0;
  box-shadow: 0 0 0 1px var(--xpt-border), 0 0 0 5px #FFFFFF;
}
body.author .xpt-author-initials{
  font-size: 1.875rem;
  font-weight: 600;
  line-height: 1;
  color: #FFFFFF;
  letter-spacing: 0.02em;
}
body.author .xpt-author-avatar-img{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
body.author .xpt-author-meta{
  display: flex;
  flex-direction: column;
  gap: 6px;
  max-width: 62ch;
}
body.author .xpt-author-count{
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #9B917F;
}
body.author .xpt-author-bio{
  margin: 0;
  font-size: 1.0625rem;
  line-height: 1.6;
  color: #6E655A;
}
@media (max-width: 767px){
  body.author header.post-archive-title,
  body.author .entry-hero-container-inner > header{
    grid-template-columns: minmax(0, 1fr);
    row-gap: 10px;
  }
  body.author .post-archive-title .xpt-author-head, body.author .entry-hero-container-inner > header .xpt-author-head{ grid-column: 1; grid-row: 1; }
  body.author .post-archive-title .archive-title, body.author .entry-hero-container-inner > header .archive-title{ grid-column: 1; grid-row: 2; }
  body.author .xpt-author-meta{ grid-column: 1; grid-row: 3; }
  body.author .xpt-author-avatar{
    width: 64px;
    height: 64px;
    box-shadow: 0 0 0 1px #E6E0D5, 0 0 0 4px #FFFFFF;
  }
  body.author .xpt-author-initials{
    font-size: 1.375rem;
  }
  body.author .xpt-author-bio{ font-size: 0.9375rem; }
}
/* END xpt-author-css */

/* ----------------------------------------------------------------------------
   XPT Celebrity Directory — A–Z index page.
   Scoped to .xpt-directory, which only exists where the shortcode runs.
   Rollback: delete this block (marked START/END).
   START xpt-directory-css
---------------------------------------------------------------------------- */
.xpt-directory{
  --xpt-garnet:#9E1C33;
  --xpt-ink:#1B1712;
  --xpt-ink-muted:#6E655A;
  --xpt-border:#E6E0D5;
  --xpt-surface-alt:#F1EDE6;
}
/* Page header */
.xpt-dir-header{
  padding-bottom: 26px;
  margin-bottom: 30px;
  border-bottom: 1px solid var(--xpt-border);
}
.xpt-dir-page-title{
  font-size: 2.75rem;
  line-height: 1.1;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--xpt-ink);
  margin: 0 0 12px;
}
.xpt-dir-intro{
  font-size: 1.0625rem;
  line-height: 1.6;
  color: var(--xpt-ink-muted);
  max-width: 64ch;
  margin: 0;
}

.xpt-dir-tools{
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 0 0 4px;
}
.xpt-dir-search-label{
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--xpt-garnet);
}
.xpt-dir-search{
  width: 100%;
  max-width: 420px;
  padding: 12px 16px;
  font-size: 1rem;
  color: var(--xpt-ink);
  background: #FFFFFF;
  border: 1px solid var(--xpt-border-strong, #D3CABA);
  border-radius: 4px;
}
.xpt-dir-search:focus{
  outline: 2px solid var(--xpt-garnet);
  outline-offset: 1px;
  border-color: var(--xpt-garnet);
}
.xpt-dir-count{
  margin: 0;
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: 0.8125rem;
  color: var(--xpt-ink-muted);
}
/* A–Z bar sticks to the top so navigation stays reachable across 951 rows. */
.xpt-dir-az{
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 12px 0;
  margin: 16px 0 8px;
  background: var(--xpt-ground, #FAF8F4);
}
.xpt-dir-az-link{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  min-height: 36px;
  padding: 0 6px;
  font-size: 0.875rem;
  font-weight: 600;
  text-decoration: none;
  color: var(--xpt-ink-muted) !important;
  background: #FFFFFF;
  border: 1px solid var(--xpt-border);
  border-radius: 4px;
  transition: background-color 0.12s ease, color 0.12s ease, border-color 0.12s ease;
}
.xpt-dir-az-link:hover,
.xpt-dir-az-link:focus{
  color: var(--xpt-garnet) !important;
  background: var(--xpt-garnet-tint);
  border-color: var(--xpt-garnet-tint);
}
.xpt-dir-group{
  padding-top: 34px;
  scroll-margin-top: 76px;
}
.xpt-dir-letter{
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 14px;
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1;
  color: var(--xpt-garnet);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
/* Rule fills the space beside the letter, so each group reads as a section. */
.xpt-dir-letter::after{
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: var(--xpt-border);
}
.xpt-dir-list{
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 2px 16px;
}
.xpt-dir-item a{
  display: block;
  padding: 8px 10px;
  margin-left: -10px;
  font-size: 0.9375rem;
  line-height: 1.4;
  color: var(--xpt-ink) !important;
  text-decoration: none;
  border-radius: 4px;
  transition: background-color 0.12s ease, color 0.12s ease;
}
.xpt-dir-item a:hover,
.xpt-dir-item a:focus{
  color: var(--xpt-garnet) !important;
  background: var(--xpt-garnet-tint);
}
.xpt-dir-empty{
  padding: 24px 0;
  color: var(--xpt-ink-muted);
}
@media (max-width: 1024px){
  .xpt-dir-list{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767px){
  .xpt-dir-page-title{ font-size: 1.875rem; }
  .xpt-dir-intro{ font-size: 0.9375rem; }
  .xpt-dir-header{ padding-bottom: 20px; margin-bottom: 22px; }
  .xpt-dir-list{ grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 12px; }
  .xpt-dir-az-link{
    min-width: 40px;
    min-height: 40px;
  }
  .xpt-dir-group{ padding-top: 26px; scroll-margin-top: 68px; }
  .xpt-dir-item a{ font-size: 0.875rem; padding: 9px 8px; margin-left: -8px; }
}
@media (prefers-reduced-motion: reduce){
  .xpt-dir-item a,
  .xpt-dir-az-link{ transition: none; }
}
/* END xpt-directory-css */

/* ----------------------------------------------------------------------------
   XPT Homepage — hero, trending rail, section headings, CTA.
   START xpt-home-css
---------------------------------------------------------------------------- */
:root{
  --xpt-garnet:#9E1C33;
  --xpt-garnet-tint:#F4E1E3;
  --xpt-gold:#96762A;
  --xpt-gold-soft:#F0E4C4;
  --xpt-ink:#1B1712;
  --xpt-ink-muted:#6E655A;
  --xpt-ink-faint:#9B917F;
  --xpt-border:#E6E0D5;
  --xpt-surface-alt:#F1EDE6;
}

.xpt-brandbar{
  padding-bottom: 4px;
  border-bottom: 1px solid var(--xpt-border);
  margin-bottom: 28px;
}
.xpt-brand-title{
  font-size: 1.75rem;
  line-height: 1.15;
  font-weight: 600;
  color: var(--xpt-ink);
  margin: 0 0 6px;
  max-width: 24ch;
  text-wrap: balance;
}
.xpt-brand-dek{
  font-size: 1rem;
  color: var(--xpt-ink-muted);
  margin: 0 0 16px;
  max-width: 60ch;
}

.xpt-hero-row{ margin-bottom: 8px; }
.xpt-hero.kadence-posts-list{ margin: 0; }
.xpt-hero .entry.loop-entry{
  position: relative;
  display: block !important;
  background: var(--xpt-ink) !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0;
  overflow: hidden;
  box-shadow: none !important;
}
/* Kadence sizes thumbnails with a padding-bottom ratio hack; override it
   with an explicit aspect-ratio so the hero keeps a true 16:9 frame. */
.xpt-hero .post-thumbnail{
  display: block;
  margin: 0;
  width: 100% !important;
  position: relative;
  padding-bottom: 0 !important;
  height: auto !important;
  aspect-ratio: 16 / 9;
}
.xpt-hero .post-thumbnail-inner{
  position: absolute !important;
  inset: 0;
}
.xpt-hero .post-thumbnail-inner img{
  width: 100%;
  height: 100% !important;
  object-fit: cover;
  object-position: 50% 22%;
  display: block;
}
.xpt-hero .entry.loop-entry::after{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(15,10,8,0) 32%, rgba(15,10,8,0.88) 100%);
  z-index: 1;
  pointer-events: none;
}
.xpt-hero .entry-content-wrap{
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  padding: 26px 28px;
}
.xpt-hero .entry-title{
  font-size: 2rem;
  line-height: 1.15;
  font-weight: 600;
  margin: 10px 0 8px;
  text-wrap: balance;
}
.xpt-hero .entry-title a{ color: #FFFFFF !important; text-decoration: none; }
.xpt-hero .entry-title a:hover{ text-decoration: underline; }
.xpt-hero .entry-summary p{
  color: rgba(255,255,255,0.86) !important;
  font-size: 0.95rem;
  line-height: 1.5;
  margin: 0 0 8px;
  max-width: 52ch;
}
.xpt-hero .entry-meta,
.xpt-hero .entry-meta *{
  color: rgba(255,255,255,0.75) !important;
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: 0.75rem;
}
.xpt-hero .entry-footer{ display: none; }

/* --- Also Trending rail --- */
.xpt-eyebrow{
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  font-weight: 600;
  color: var(--xpt-garnet);
  margin: 0 0 14px;
}
.xpt-rail.kadence-posts-list{ margin: 0; gap: 0; }
.xpt-rail .kb-post-list-item{ margin: 0; }
.xpt-rail .entry.loop-entry{
  display: grid !important;
  grid-template-columns: 68px 1fr !important;
  gap: 12px;
  align-items: start;
  background: transparent !important;
  padding: 0 0 14px !important;
  margin-bottom: 14px;
  border: 0 !important;
  border-bottom: 1px solid var(--xpt-border) !important;
  border-radius: 0;
  box-shadow: none !important;
}
.xpt-rail .kb-post-list-item:last-child .entry.loop-entry{
  border-bottom: 0 !important;
  margin-bottom: 0;
  padding-bottom: 0 !important;
}
.xpt-rail .post-thumbnail{
  width: 68px;
  margin: 0;
  border-radius: 0;
  overflow: hidden;
  position: relative;
  padding-bottom: 0 !important;
  height: auto !important;
  aspect-ratio: 1 / 1;
}
.xpt-rail .post-thumbnail-inner{
  position: absolute !important;
  inset: 0;
}
.xpt-rail .post-thumbnail-inner img{
  width: 100%;
  height: 100% !important;
  object-fit: cover;
  object-position: 50% 20%;
  display: block;
}
.xpt-rail .entry-content-wrap{ flex: 1 1 auto; min-width: 0; padding: 0; }
.xpt-rail .entry-title{
  font-size: 0.9375rem;
  line-height: 1.35;
  font-weight: 600;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.xpt-rail .entry-title a{ color: var(--xpt-ink) !important; text-decoration: none; }
.xpt-rail .entry-title a:hover{ color: var(--xpt-garnet) !important; }
.xpt-rail .entry-footer,
.xpt-rail .entry-summary,
.xpt-rail .entry-meta{ display: none; }

/* --- Section headings --- */
/* Section separation. Kadence/WP block-layout CSS resets margins on direct
   children of .entry-content, so these need the extra specificity to hold.
   The rule sits ABOVE each heading and acts as the divider between sections. */
.entry-content .xpt-sec-head{
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  margin-top: 72px !important;
  margin-bottom: 24px !important;
  padding-top: 30px;
  padding-bottom: 0;
  border-top: 1px solid var(--xpt-border);
  border-bottom: 0;
}
/* Breathing room after each grid, before the next divider. */
.entry-content .xpt-grid{
  margin-bottom: 8px !important;
}
.xpt-sec-title{
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--xpt-ink);
  margin: 0;
}
.xpt-viewall{ margin: 0; flex-shrink: 0; }
.xpt-viewall a{
  font-size: 0.8125rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--xpt-garnet) !important;
  text-decoration: none;
}
.xpt-viewall a:hover{ text-decoration: underline; }
.xpt-viewall a::after{ content: " \2192"; }

/* --- Directory CTA --- */
.entry-content .xpt-dir-cta{
  margin-top: 72px !important;
}
.xpt-dir-cta{
  padding: 40px 32px;
  background: var(--xpt-surface-alt);
  border-radius: 8px;
  text-align: center;
}
.xpt-cta-title{ font-size: 1.5rem; font-weight: 600; color: var(--xpt-ink); margin: 0 0 6px; }
.xpt-cta-dek{ color: var(--xpt-ink-muted); margin: 0 0 20px; }
.xpt-cta-buttons{ justify-content: center; }
.xpt-dir-cta .wp-block-button__link{
  background-color: var(--xpt-garnet);
  color: #FFFFFF;
  border-radius: 4px;
  font-size: 0.8125rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 14px 28px;
}

/* --- Shared post-card refinements (all card contexts) --- */
.loop-entry .entry-taxonomies .category-links a{
  display: inline-flex;
  align-items: center;
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 4px 10px;
  min-height: 22px;
  border-radius: 999px;
  text-decoration: none;
  background: var(--xpt-garnet-tint);
  color: var(--xpt-garnet) !important;
}
.loop-entry .entry-taxonomies .category-links a.category-link-net-worth{
  background: var(--xpt-gold-soft);
  color: var(--xpt-gold) !important;
}
.loop-entry .entry-meta,
.loop-entry .entry-meta *{
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: 0.75rem;
  color: var(--xpt-ink-faint) !important;
}
/* Card thumbnails: portrait, matching Category / Search / Author cards. */
.xpt-grid .post-thumbnail{
  padding-bottom: 0 !important;
  height: auto !important;
  aspect-ratio: 4 / 5;
  position: relative;
}
.xpt-grid .post-thumbnail-inner{ position: absolute !important; inset: 0; }
.xpt-grid .post-thumbnail-inner img{
  width: 100%;
  height: 100% !important;
  object-fit: cover;
  object-position: 50% 20%;
  display: block;
}
.xpt-grid .entry-title{
  font-size: 1.0625rem;
  line-height: 1.3;
  font-weight: 600;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.xpt-grid .entry-title a{ color: var(--xpt-ink) !important; text-decoration: none; }
.xpt-grid .entry-title a:hover{ color: var(--xpt-garnet) !important; }
.xpt-hero .entry-taxonomies .category-links a{
  background: rgba(255,255,255,0.16);
  color: #FFFFFF !important;
  backdrop-filter: blur(2px);
}
.xpt-hero .entry-taxonomies .category-links a.category-link-net-worth{
  background: var(--xpt-gold-soft);
  color: var(--xpt-gold) !important;
}

/* --- Responsive --- */
@media (max-width: 1024px){
  .xpt-hero .entry-title{ font-size: 1.625rem; }
}
@media (max-width: 781px){
  .xpt-hero-row{ gap: 0; }
  .xpt-eyebrow{ margin-top: 32px; }
  .xpt-hero .entry-content-wrap{ padding: 18px 18px 20px; }
  .xpt-hero .entry-title{ font-size: 1.375rem; }
  .xpt-hero .entry-summary{ display: none; }
  .entry-content .xpt-sec-head{
    margin-top: 48px !important;
    margin-bottom: 18px !important;
    padding-top: 24px;
  }
  .entry-content .xpt-dir-cta{ margin-top: 48px !important; }
  .xpt-sec-title{ font-size: 1.25rem; }
  .xpt-dir-cta{ padding: 32px 20px; margin-top: 48px; }
}
@media screen and (max-width: 575px){
  .xpt-grid.kadence-posts-list.grid-cols{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
  }
  .xpt-grid .entry-title{ font-size: 0.9375rem; }
  .xpt-brand-title{ font-size: 1.375rem; }
}
/* END xpt-home-css */
/* ----------------------------------------------------------------------------
   XPT audit fixes — header cohesion, heading hierarchy, section rhythm.
   START xpt-audit-css
---------------------------------------------------------------------------- */

/* Header: the logo now uses the brand serif so the masthead reads as part of
   the same system as the headings, not a separate bar. */
#masthead .site-title{
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-size: 1.75rem !important;
  letter-spacing: -0.015em;
}
#masthead .site-main-header-wrap .site-header-row-container-inner{
  padding-bottom: 16px;
}

/* Heading hierarchy — clear steps between H1 / H2 / H3 on every page type. */
.xpt-brand-title{ font-size: 2.25rem; letter-spacing: -0.015em; }
body.archive .archive-title,
body.search .search-title{ letter-spacing: -0.015em; }
.xpt-sec-title{ font-size: 1.75rem; letter-spacing: -0.01em; }
body.single-post .xpt-side-title,
body.single-post .xpt-more-from-title{ font-size: 1.375rem; }

/* Section rhythm on single posts, matching the homepage scale. */
body.single-post .xpt-more-from{ margin-top: var(--xpt-gap-section); }
body.single-post .entry-author,
body.single-post .post-navigation{ max-width: var(--xpt-read); }

@media (max-width: 767px){
  #masthead .site-title{ font-size: 1.375rem !important; }
  .xpt-brand-title{ font-size: 1.5rem; }
  .xpt-sec-title{ font-size: 1.375rem; }
  body.single-post .entry-title{ font-size: 1.875rem; }
}

/* The featured image is a sibling of .entry-content-wrap, so it sits outside
   that wrap's 32px padding. Mirror the inset so image and text share one edge. */
/* Match whatever inset .entry-content-wrap actually has, which depends on
   Kadence's content style: 'boxed' pads the wrap, 'unboxed' does not. Keying
   off the body class keeps image and text the same width either way. */
body.single-post.content-style-boxed .article-post-thumbnail{
  margin-left: var(--xpt-entry-pad);
  margin-right: var(--xpt-entry-pad);
}
body.single-post.content-style-unboxed .article-post-thumbnail{
  margin-left: 0;
  margin-right: 0;
}

/* Card interiors: 32px is Kadence's boxed default and is too generous on a
   ~380px card. Scoped to loop cards so the single-article wrap keeps its 32px. */
.loop-entry .entry-content-wrap{
  padding: 18px 20px 22px;
}
@media (max-width: 767px){
  .loop-entry .entry-content-wrap{ padding: 14px 14px 18px; }
}

/* Below 1025px the sidebar drops beneath the article. Centre the whole
   content wrap rather than individual elements, so the image, title and text
   keep sharing one edge at every width. */
@media (max-width: 1024px){
  body.single-post .content-wrap{
    max-width: calc(var(--xpt-read) + (var(--xpt-entry-pad) * 2));
    margin-left: auto;
    margin-right: auto;
  }
}
/* Tablet-only heading step (kept out of the ≤767px range so the mobile
   sizes further up the file are not overridden by source order). */
@media (max-width: 1024px) and (min-width: 768px){
  body.single-post .entry-title{ font-size: 2.25rem; }
  body.single-post .entry-content.single-content h2{ font-size: 1.625rem; }
}

/* From 1025px up the article sits beside the sidebar, so the column itself
   already sets the measure. Dropping the max-width cap makes the left and
   right insets identical (both = .entry-content-wrap padding) instead of
   leaving ~45px extra on the right. The --xpt-read token is still used for
   the <=1024px centring calc, so it is left intact. */
@media screen and (min-width: 1025px){
  body.single-post .entry-content.single-content,
  body.single-post .entry-title,
  body.single-post .entry-author,
  body.single-post .post-navigation,
  body.single-post .entry-tags,
  body.single-post .tags-links,
  body.single-post .xpt-toc--inline{
    max-width: none;
  }
  body.single-post .article-post-thumbnail{
    max-width: none;
  }
}

/* Card title clamping. Kadence gives .entry-title display:flow-root, which
   silently disables -webkit-line-clamp, so titles ran to full length and card
   text blocks ended up uneven. Re-assert the box display on card titles only
   (article H1 is untouched). */
.xpt-grid .entry-title,
body.archive .entry-list-item .entry-title,
body.search-results .entry-list-item .entry-title,
body.single-post .entry-related .loop-entry .entry-title,
.xpt-rail .entry-title{
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}
/* Card meta / pill sit on their own full-width rows. */
.loop-entry .entry-header,
.loop-entry .entry-taxonomies,
.loop-entry .entry-title{
  display: block;
  width: 100%;
  text-align: left;
}
.loop-entry .entry-title{
  display: -webkit-box;
}
.loop-entry .entry-meta{
  justify-content: flex-start;
  flex-wrap: wrap;
}

/* No rounded corners on imagery (client preference). Circular author
   avatars are intentionally left alone. */
.post-thumbnail,
.post-thumbnail-inner,
.post-thumbnail img,
.wp-post-image,
.entry-content img,
.xpt-more-img,
.xpt-more-img img,
.xpt-side-card-img,
.xpt-side-card-img img,
.article-post-thumbnail,
.article-post-thumbnail img{
  border-radius: 0;
}
/* END xpt-audit-css */
