/* =========================================================
   TRIVENI LAW — Blog styles (archive / home / single)
   Scope: .tvn-blog   |  no :root — theme globals win.
   Layout: content 1200px | desktop 100px/40px | tablet+mobile 60px/20px
   ========================================================= */

.tvn-blog{
  --b-navy:   var(--navy,   #1F2839);
  --b-navy-2: var(--navy-2, #2C384E);
  --b-gold:   var(--gold,   #B69D74);
  --b-gold-h: var(--gold-h, #C6AE87);
  --b-text:   var(--text,   #3A4150);
  --b-muted:  var(--muted,  #6E7583);
  --b-bone:   var(--bone,   #F5F5EF);
  --b-white:  var(--white,  #FFFFFF);
  --b-line:   var(--line,   #D1D6E0);

  --b-serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --b-sans:  "Barlow", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  --b-sec-y: 60px;
  --b-gut:   40px;

  font-family:var(--b-sans) !important;
  color:var(--b-text) !important;
  -webkit-font-smoothing:antialiased !important;

  /* ---- Full-bleed breakout ----
     Same fix used on the practice-area pages: the theme wraps content in
     a fixed-width container, capping this whole block's width instead of
     the viewport. This escapes that wrapper regardless of how wide it
     is; .b-container inside each section still centers content at
     1200px, so nothing here changes actual reading width. */
  position:relative !important;
  width:100vw !important;
  left:50% !important;
  right:50% !important;
  margin-left:-50vw !important;
  margin-right:-50vw !important;
  overflow-x:hidden !important;
}
.tvn-blog *{ box-sizing:border-box !important; }
.tvn-blog img{ max-width:100% !important; display:block !important; }
.tvn-blog p{ line-height:1.75 !important; }
.tvn-blog a{ transition:color .22s ease, background .22s ease, border-color .22s ease !important; }

.b-container{
  width:100% !important;
  max-width:calc(1200px + (var(--b-gut) * 2)) !important;
  margin:0 auto !important;
  padding-left:var(--b-gut) !important;
  padding-right:var(--b-gut) !important;
}
.tvn-blog > section{ padding:var(--b-sec-y) 0 !important; }

/* ---------- Shared type ---------- */
.b-eyebrow{
  font-size:.72rem !important; font-weight:700 !important; letter-spacing:.2em !important; text-transform:uppercase !important;
  color:var(--b-gold) !important; margin:0 0 16px !important; display:flex !important; align-items:center !important; gap:10px !important;
}
.b-eyebrow::before{ content:"" !important; width:34px !important; height:1px !important; background:var(--b-gold) !important; display:block !important; }
.b-eyebrow--center{ justify-content:center !important; }

.b-h1{
  font-family:var(--b-serif) !important; font-weight:500 !important; line-height:1.08 !important;
  font-size:clamp(2.4rem, 4.6vw, 3.9rem) !important; color:var(--b-navy) !important; margin:0 0 18px !important;
  letter-spacing:-.01em !important;
}
.b-h2{
  font-family:var(--b-serif) !important; font-weight:500 !important; line-height:1.14 !important;
  font-size:clamp(1.9rem, 3vw, 2.7rem) !important; color:var(--b-navy) !important; margin:0 0 16px !important;
}
.b-lede{ font-size:1.06rem !important; color:var(--b-muted) !important; max-width:62ch !important; margin:0 !important; }

.b-btn{
  width:fit-content;display:inline-flex !important; align-items:center !important; gap:10px !important;
  font-size:.78rem !important; font-weight:700 !important; letter-spacing:.14em !important; text-transform:uppercase !important;
  padding:16px 30px !important; border:1px solid transparent !important; text-decoration:none !important; cursor:pointer !important;
}
.b-btn--navy{ background:var(--b-navy) !important; color:var(--b-white) !important; }
.b-btn--navy:hover{ background:var(--b-navy-2) !important; color:var(--b-white) !important; }
.b-btn--gold{ background:var(--b-gold) !important; color:var(--b-navy) !important; }
.b-btn--gold:hover{ background:var(--b-gold-h) !important; color:var(--b-navy) !important; }
.b-btn--ghost{ border-color:var(--b-navy) !important; color:var(--b-navy) !important; background:transparent !important; }
.b-btn--ghost:hover{ background:var(--b-navy) !important; color:var(--b-white) !important; }

/* =========================================================
   ARCHIVE / BLOG INDEX
   ========================================================= */
.b-head{
  background:var(--b-navy) !important; color:var(--b-white) !important; position:relative !important; overflow:hidden !important;
  padding:120px 0 110px !important;
}
.b-head::after{
  content:"" !important; position:absolute !important; right:-120px !important; top:-120px !important; width:420px !important; height:420px !important;
  border:1px solid rgba(182,157,116,.28) !important; border-radius:50% !important;
}
.b-head::before{
  content:"" !important; position:absolute !important; right:-40px !important; bottom:-200px !important; width:320px !important; height:320px !important;
  border:1px solid rgba(182,157,116,.16) !important; border-radius:50% !important;
}
.b-head .b-h1{ color:var(--b-white) !important; max-width:16ch !important; }
.b-head .b-lede{ color:rgba(255,255,255,.72) !important; }
.b-head__inner{ position:relative !important; z-index:2 !important; }

.b-filters{
  border-bottom:1px solid var(--b-line) !important; background:var(--b-white) !important;
  position:sticky !important; top:0 !important; z-index:20 !important;
}
.tvn-blog .b-container-ovr{
    padding: 0 !important;
    margin: 0 !important;
}
.b-filters__inner{ display:flex !important; flex-wrap:wrap !important; gap:8px !important; padding:18px 0 !important; }
.b-chip{
  font-size:.74rem !important; font-weight:700 !important; letter-spacing:.12em !important; text-transform:uppercase !important;
  padding:10px 18px !important; border:1px solid var(--b-line) !important; color:var(--b-muted) !important;
  text-decoration:none !important; background:var(--b-white) !important;
}
.b-chip:hover{ border-color:var(--b-gold) !important; color:var(--b-navy) !important; }
.b-chip.is-active{ background:var(--b-navy) !important; border-color:var(--b-navy) !important; color:var(--b-white) !important; }

/* Featured post */
.b-featured{ background:var(--b-bone) !important; }
.b-featured__grid{
  display:grid !important; grid-template-columns:1.05fr .95fr !important; gap:0 !important; background:var(--b-white) !important;
  border:1px solid var(--b-line) !important;
}
.b-featured__media{ position:relative !important; min-height:420px !important; overflow:hidden !important; }
.b-featured__media img{ width:100% !important; height:100% !important; object-fit:cover !important; transition:transform .8s ease !important; }
.b-featured__grid:hover .b-featured__media img{ transform:scale(1.05) !important; }
.b-featured__tag{
  position:absolute !important; left:0 !important; top:28px !important; background:var(--b-gold) !important; color:var(--b-navy) !important;
  font-size:.68rem !important; font-weight:800 !important; letter-spacing:.16em !important; text-transform:uppercase !important;
  padding:9px 16px !important;
}
.b-featured__body{ padding:56px 52px !important; display:flex !important; flex-direction:column !important; justify-content:center !important; }
.b-featured__body .b-h2{ font-size:clamp(1.8rem,2.5vw,2.4rem) !important; }
.b-featured__body p{ color:var(--b-muted) !important; margin:0 0 26px !important; }

/* Meta line */
.b-meta{
  display:flex !important; flex-wrap:wrap !important; align-items:center !important; gap:10px !important;
  font-size:.76rem !important; letter-spacing:.1em !important; text-transform:uppercase !important; color:var(--b-muted) !important;
  margin:0 0 18px !important;
}
.b-meta span{ display:inline-flex !important; align-items:center !important; gap:8px !important; }
.b-meta .b-dot{ width:4px !important; height:4px !important; border-radius:50% !important; background:var(--b-gold) !important; }

/* Card grid */
.b-grid{ display:grid !important; grid-template-columns:repeat(3, 1fr) !important; gap:34px !important; }
.b-card{
  background:var(--b-white) !important; border:1px solid var(--b-line) !important;
  display:flex !important; flex-direction:column !important; position:relative !important;
  transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease !important;
}
.b-card:hover{ transform:translateY(-6px) !important; border-color:var(--b-gold) !important;
  box-shadow:0 22px 48px rgba(31,40,57,.12) !important; }
.b-card__media{ position:relative !important; aspect-ratio:16/10 !important; overflow:hidden !important; background:var(--b-bone) !important; }
.b-card__media img{ width:100% !important; height:100% !important; object-fit:cover !important; transition:transform .7s ease !important; }
.b-card:hover .b-card__media img{ transform:scale(1.06) !important; }
.b-card__tag{
  position:absolute !important; left:0 !important; bottom:0 !important; background:var(--b-navy) !important; color:var(--b-white) !important;
  font-size:.66rem !important; font-weight:800 !important; letter-spacing:.16em !important; text-transform:uppercase !important; padding:8px 14px !important;
}
.b-card__body{ padding:30px 28px 34px !important; display:flex !important; flex-direction:column !important; flex:1 !important; }
.b-card__title{
  font-family:var(--b-serif) !important; font-weight:500 !important; font-size:1.5rem !important; line-height:1.22 !important;
  color:var(--b-navy) !important; margin:0 0 14px !important;
}
.b-card__title a{ color:inherit !important; text-decoration:none !important; }
.b-card:hover .b-card__title a{ color:var(--b-navy-2) !important; }
.b-card__excerpt{ color:var(--b-muted) !important; font-size:.97rem !important; margin:0 0 24px !important; }
.b-card__more{
  margin-top:auto !important; font-size:.74rem !important; font-weight:700 !important; letter-spacing:.14em !important; text-transform:uppercase !important;
  color:var(--b-navy) !important; text-decoration:none !important; display:inline-flex !important; align-items:center !important; gap:10px !important;
}
.b-card__more::after{ content:"" !important; width:26px !important; height:1px !important; background:var(--b-gold) !important; transition:width .25s ease !important; }
.b-card__more:hover{ color:var(--b-gold) !important; }
.b-card__more:hover::after{ width:42px !important; }

.b-stats{ display:flex !important; gap:16px !important; font-size:.78rem !important; color:var(--b-muted) !important; margin:0 0 16px !important; }

/* Pagination */
.b-pagination{ margin-top:60px !important; display:flex !important; justify-content:center !important; }
.b-pagination .page-numbers{
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  min-width:46px !important; height:46px !important; padding:0 12px !important; margin:0 4px !important;
  border:1px solid var(--b-line) !important; color:var(--b-navy) !important; text-decoration:none !important;
  font-size:.85rem !important; font-weight:600 !important;
}
.b-pagination .page-numbers:hover{ border-color:var(--b-gold) !important; color:var(--b-gold) !important; }
.b-pagination .page-numbers.current{ background:var(--b-navy) !important; border-color:var(--b-navy) !important; color:var(--b-white) !important; }

/* Newsletter / CTA band */
.b-cta{ background:var(--b-navy) !important; color:var(--b-white) !important; text-align:center !important; }
.b-cta .b-h2{ color:var(--b-white) !important; }
.b-cta p{ color:rgba(255,255,255,.72) !important; max-width:56ch !important; margin:0 auto 32px !important; }
.b-cta__actions{ display:flex !important; gap:14px !important; justify-content:center !important; flex-wrap:wrap !important; }

.b-empty{ text-align:center !important; padding:40px 0 !important; color:var(--b-muted) !important; }

/* =========================================================
   SINGLE POST
   ========================================================= */
.b-post-hero{
  background:var(--b-bone) !important; padding:70px 0 0 !important; border-bottom:1px solid var(--b-line) !important;
}
.b-crumbs{
  font-size:.75rem !important; letter-spacing:.1em !important; text-transform:uppercase !important; color:var(--b-muted) !important;
  margin:0 0 26px !important;
}
.b-crumbs a{ color:var(--b-muted) !important; text-decoration:none !important; }
.b-crumbs a:hover{ color:var(--b-gold) !important; }
.b-post-hero__inner{ max-width:860px !important; }
.b-post-hero .b-h1{ font-size:clamp(2.1rem,3.7vw,3.2rem) !important; margin-bottom:24px !important; }

.b-author{
  display:flex !important; align-items:center !important; gap:14px !important; padding:0 0 46px !important;
}
.b-author__avatar{
  width:52px !important; height:52px !important; border-radius:50% !important; object-fit:cover !important;
  background:var(--b-navy) !important; color:var(--b-white) !important;
  display:flex !important; align-items:center !important; justify-content:center !important;
  font-family:var(--b-serif) !important; font-size:1.2rem !important; flex:none !important;
}
.b-author__name{ font-weight:700 !important; color:var(--b-navy) !important; font-size:.95rem !important; margin:0 !important; }
.b-author__meta{ font-size:.82rem !important; color:var(--b-muted) !important; margin:2px 0 0 !important; }

.b-post-cover{ margin:0 auto;width:80%; }
.b-post-cover img{ width:100% !important; height:clamp(280px,42vw,540px) !important; object-fit:cover !important; }

.b-post-layout{
  display:grid !important; grid-template-columns:minmax(0,1fr) 330px !important; gap:70px !important;
  padding:var(--b-sec-y) 0 !important;
}
.b-post-content > *:first-child{ margin-top:0 !important; }
.b-post-content p{ font-size:1.07rem !important; color:var(--b-text) !important; margin:0 0 26px !important; }
.b-post-content p.b-standfirst{
  font-family:var(--b-serif) !important; font-size:1.42rem !important; line-height:1.5 !important; color:var(--b-navy) !important;
  border-left:3px solid var(--b-gold) !important; padding-left:24px !important; margin-bottom:34px !important;
}
.b-post-content h2{
  font-family:var(--b-serif) !important; font-weight:500 !important; font-size:2rem !important; color:var(--b-navy) !important;
  margin:46px 0 16px !important; line-height:1.2 !important;
}
.b-post-content h3{
  font-family:var(--b-serif) !important; font-weight:600 !important; font-size:1.42rem !important; color:var(--b-navy) !important;
  margin:36px 0 12px !important;
}
.b-post-content ul, .b-post-content ol{ margin:0 0 26px !important; padding-left:0 !important; list-style:none !important; }
.b-post-content ol{ counter-reset:b-ol !important; }
.b-post-content ul li, .b-post-content ol li{
  position:relative !important; padding-left:30px !important; margin-bottom:12px !important; line-height:1.7 !important;
}
.b-post-content ul li::before{
  content:"" !important; position:absolute !important; left:4px !important; top:11px !important; width:8px !important; height:8px !important;
  background:var(--b-gold) !important; transform:rotate(45deg) !important;
}
.b-post-content ol li{ counter-increment:b-ol !important; }
.b-post-content ol li::before{
  content:counter(b-ol) "." !important; position:absolute !important; left:0 !important; top:0 !important;
  color:var(--b-gold) !important; font-weight:700 !important;
}
.b-post-content blockquote{
  margin:38px 0 !important; padding:34px 36px !important; background:var(--b-bone) !important; border-left:3px solid var(--b-gold) !important;
  font-family:var(--b-serif) !important; font-size:1.32rem !important; line-height:1.5 !important; color:var(--b-navy) !important;
}
.b-post-content blockquote p{ font-size:inherit !important; font-family:inherit !important; color:inherit !important; margin:0 !important; }
.b-post-content a{ color:var(--b-navy) !important; text-decoration:underline !important; text-underline-offset:3px !important; }
.b-post-content a:hover{ color:var(--b-gold) !important; }
.b-post-content img{ margin:34px 0 !important; width:100% !important; }

.b-tags{ display:flex !important; flex-wrap:wrap !important; gap:8px !important; margin:20px 0 0 !important; }
.b-tags a{
  font-size:.72rem !important; letter-spacing:.12em !important; text-transform:uppercase !important; font-weight:700 !important;
  padding:9px 15px !important; border:1px solid var(--b-line) !important; color:var(--b-muted) !important; text-decoration:none !important;
}
.b-tags a:hover{ border-color:var(--b-gold) !important; color:var(--b-navy) !important; }

.b-share{
  display:flex !important; align-items:center !important; gap:12px !important; margin-top:34px !important;
  padding-top:28px !important; border-top:1px solid var(--b-line) !important;
}
.b-share span{ font-size:.72rem !important; letter-spacing:.16em !important; text-transform:uppercase !important; color:var(--b-muted) !important; }
.b-share a{
  width:40px !important; height:40px !important; border:1px solid var(--b-line) !important; display:inline-flex !important;
  align-items:center !important; justify-content:center !important; color:var(--b-navy) !important; text-decoration:none !important;
  font-size:.78rem !important; font-weight:700 !important;
}
.b-share a:hover{ background:var(--b-navy) !important; color:var(--b-white) !important; border-color:var(--b-navy) !important; }

/* Sidebar */
.b-side{ align-self:start !important; position:sticky !important; top:24px !important; display:grid !important; gap:26px !important; }
.b-side__box{ border:1px solid var(--b-line) !important; padding:30px 28px !important; background:var(--b-white) !important; }
.b-side__box--navy{ background:var(--b-navy) !important; border-color:var(--b-navy) !important; color:var(--b-white) !important; }
.b-side__box--navy p{ color:rgba(255,255,255,.72) !important; font-size:.94rem !important; }
.b-side__title{
  font-size:.72rem !important; font-weight:800 !important; letter-spacing:.18em !important; text-transform:uppercase !important;
  color:var(--b-gold) !important; margin:0 0 20px !important;
}
.b-side__box--navy h4{
  font-family:var(--b-serif) !important; font-weight:500 !important; font-size:1.6rem !important; color:var(--b-white) !important; margin:0 0 12px !important;
}
.b-side__list{ list-style:none !important; margin:0 !important; padding:0 !important; }
.b-side__list li{ padding:14px 0 !important; border-top:1px solid var(--b-line) !important; }
.b-side__list li:first-child{ border-top:0 !important; padding-top:0 !important; }
.b-side__list a{
  color:var(--b-navy) !important; text-decoration:none !important; font-family:var(--b-serif) !important;
  font-size:1.13rem !important; line-height:1.3 !important; display:block !important;
}
.b-side__list a:hover{ color:var(--b-gold) !important; }
.b-side__list small{ display:block !important; color:var(--b-muted) !important; font-size:.74rem !important;
  letter-spacing:.1em !important; text-transform:uppercase !important; margin-top:6px !important; }
.b-side .b-btn{ width:100% !important; justify-content:center !important; margin-top:8px !important; }

/* Related */
.b-related{ background:var(--b-bone) !important; }
.b-related .b-grid{ grid-template-columns:repeat(3,1fr) !important; }

/* Comments */
.b-comments{ padding-bottom:var(--b-sec-y) !important; }
.b-comments__inner{ max-width:860px !important; }
.b-comment{ display:flex !important; gap:16px !important; padding:26px 0 !important; border-top:1px solid var(--b-line) !important; }
.b-comment__avatar{
  width:46px !important; height:46px !important; border-radius:50% !important; background:var(--b-bone) !important; color:var(--b-navy) !important;
  display:flex !important; align-items:center !important; justify-content:center !important; font-family:var(--b-serif) !important;
  font-size:1.1rem !important; flex:none !important;
}
.b-comment b{ color:var(--b-navy) !important; }
.b-comment time{ display:block !important; font-size:.76rem !important; color:var(--b-muted) !important; margin:2px 0 8px !important;
  letter-spacing:.08em !important; text-transform:uppercase !important; }
.b-form{ margin-top:34px !important; display:grid !important; gap:16px !important; }
.b-form__row{ display:grid !important; grid-template-columns:1fr 1fr !important; gap:16px !important; }
.b-form input, .b-form textarea{
  width:100% !important; font-family:var(--b-sans) !important; font-size:.98rem !important; color:var(--b-text) !important;
  padding:15px 16px !important; border:1px solid var(--b-line) !important; background:var(--b-white) !important; border-radius:0 !important;
}
.b-form textarea{ min-height:150px !important; resize:vertical !important; }
.b-form input:focus, .b-form textarea:focus{ outline:none !important; border-color:var(--b-gold) !important; }
.b-form .b-btn{ justify-self:start !important; }

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:1080px){
  .tvn-blog{ --b-sec-y:30px; --b-gut:20px; }
  .b-head{ padding:80px 0 70px !important; }
  .b-post-layout{ grid-template-columns:1fr !important; gap:50px !important; }
  .b-side{ position:static !important; grid-template-columns:1fr 1fr !important; }
  .b-grid, .b-related .b-grid{ grid-template-columns:repeat(2,1fr) !important; gap:26px !important; }
  .b-featured__grid{ grid-template-columns:1fr !important; }
  .b-featured__media{ min-height:300px !important; }
  .b-featured__body{ padding:38px 28px 42px !important; }
}
@media (max-width:680px){
  .b-grid, .b-related .b-grid, .b-side{ grid-template-columns:1fr !important; }
  .b-filters{ position:static !important; }
  .b-filters__inner{ overflow-x:auto !important; flex-wrap:nowrap !important; padding-bottom:14px !important; }
  .b-chip{ white-space:nowrap !important; }
  .b-post-content p.b-standfirst{ font-size:1.2rem !important; padding-left:18px !important; }
  .b-post-content blockquote{ padding:24px 22px !important; font-size:1.15rem !important; }
  .b-form__row{ grid-template-columns:1fr !important; }
  .b-btn{ width:100% !important; justify-content:center !important; }
  .b-cta__actions{ flex-direction:column !important; }
  .b-share{ flex-wrap:wrap !important; }
}
