
/* Header width normalization */
.site-header, header.site-header, .topbar, .nav-bar, .header-bar, .main-header{
  width:100%;
}
/* Uncomment only if legacy pages force overflow */
/* body{ overflow-x:hidden; } */


/* Uniform width across pages */
:root { --site-max: 1200px; --site-pad: 16px; }

/* Center common content wrappers */
.wrap, .content, .awards, .grid, .intro, .cta-row, .awards-band {
  max-width: var(--site-max);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--site-pad);
  padding-right: var(--site-pad);
}

/* Ensure hero text block also respects the same width */
.hero .content, .hero .cta-row {
  max-width: var(--site-max);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--site-pad);
  padding-right: var(--site-pad);
}

/* Full-bleed elements (if any) can opt-out with .full-bleed */
.full-bleed { 
  max-width: none !important; 
  padding-left: 0 !important; 
  padding-right: 0 !important; 
}


/* NAV LAYOUT FIX (class-based, robust) */
.nav-wrap{padding:clamp(8px,1.3vw,14px) var(--pad)}
.nav-wrap .nav{display:flex;align-items:center;gap:clamp(1.25rem,2.2vw,2.75rem)}
.nav-wrap .brand{display:flex;align-items:center;font-weight:700}
.nav-wrap .brand-scar{margin-left:.4rem}
.nav-wrap .links{margin-left:auto;display:flex;align-items:center;gap:clamp(1.25rem,2vw,2.25rem)}
.nav-wrap .links a{letter-spacing:.02em;font-weight:500;text-decoration:none}


/* NAV SIZE + HAMBURGER BEHAVIOR */
.nav-wrap{padding:clamp(6px,1vw,10px) var(--pad); position:relative}
.nav-wrap .nav{display:flex;align-items:center;gap:clamp(1rem,2vw,2.25rem)}
.nav-wrap .brand{display:flex;align-items:center;font-weight:700}
.nav-wrap .brand-scar{margin-left:.4rem}
.nav-wrap .links{margin-left:auto;display:flex;align-items:center;gap:clamp(1rem,1.8vw,2rem)}
.nav-wrap .links a{letter-spacing:.02em;font-weight:500;text-decoration:none}

#menuToggle{display:none}
.hamb{display:none;cursor:pointer;font-size:28px;line-height:1;padding:.25rem .5rem;border:2px solid rgba(255,255,255,.7);border-radius:16px}

@media (max-width: 920px){
  .hamb{display:block;margin-left:auto}
  .nav-wrap .links{
    display:none;position:absolute;top:100%;left:0;right:0;
    background:#EA007C;padding:1rem 0 1.25rem;flex-direction:column;align-items:center;
    gap:1.25rem;z-index:50;
  }
  #menuToggle:checked + label.hamb + .links{display:flex}
}



/* --- BLOG + POST GLOBAL CENTERING & SHADING FIXES (2025-10-14) --- */
:root { --shadow: 0 10px 30px rgba(0,0,0,.06); }

/* Ensure any page-specific containers center consistently */
.hero .content,
.nav,
.posts,
.post,
.post-body,
.article,
.article .content,
.blog, 
.blog .content,
header .nav,
footer .wrap {
  max-width: var(--site-max);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--site-pad);
  padding-right: var(--site-pad);
}

/* Soft shading for blocks (sections/cards on blog pages) */
.section, .post-card, .blog-block, .info-card {
  background: #fff;
  border: 1px solid var(--line, #eee);
  border-radius: 18px;
  box-shadow: var(--shadow);
}

/* Pretty, accessible tables on blog posts */
article table, .post-body table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
  border: 1px solid #e6e6e6;
  border-radius: 14px;
  box-shadow: var(--shadow);
}
article table thead th, .post-body table thead th {
  text-align: left;
  font-weight: 700;
  border-bottom: 1px solid #e9e9e9;
  padding: .75rem 1rem;
  background: linear-gradient(180deg, #fafafa, #fff);
}
article table tbody td, .post-body table tbody td {
  padding: .7rem 1rem;
  border-bottom: 1px solid #f1f1f1;
}
article table tbody tr:nth-child(even) td { background: #fcfcfc; }
article table tbody tr:last-child td { border-bottom: 0; }

/* Center lone CTA rows such as "Read our latest blog" */
.cta-row, .center-cta, .blog-cta-center {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  max-width: var(--site-max);
  margin: 0 auto;
  padding: 0 var(--site-pad);
}

/* Blog nav logo color override for light backgrounds */
.blog .brand .brand-main { color: #111; }
.blog .nav-wrap .links a { color:#111; }

/* Fix buttons overflow on narrow/zoomed layouts */
.btn, .btn-pink, a.btn { white-space: nowrap; }


/* Button color parity for blog/post pages */
.btn { display:inline-block; padding:.65rem 1.05rem; border-radius:999px; font-weight:700; text-decoration:none }
.btn-pink { background:#E4007C; color:#fff !important; box-shadow: 0 6px 18px rgba(228,0,124,.25) }
.btn-pink:hover { filter: brightness(0.95); }


header, main header { max-width: var(--site-max); margin: 0 auto; padding: 0 var(--site-pad); }


/* Blog post centering harden: wrap + prose */
main .wrap { max-width: var(--site-max); margin: 0 auto; padding: 0 var(--site-pad); }
section { max-width: 900px; margin: 32px auto; padding: 0 18px; }
section .prose { max-width: 900px; margin-left: auto; margin-right: auto; }
section .prose > * { margin-left: auto; margin-right: auto; }
section .prose img, section .prose picture, section .prose figure { display: block; max-width: 100%; height: auto; border-radius: 18px; }



/* === Absolute centering parity for blog post pages (2025-10-14 PATCH4) === */
.page--blog-post main {
  display: grid;
  justify-items: center;
}
.page--blog-post main > .wrap { width: 100%; }
.page--blog-post header,
.page--blog-post article,
.page--blog-post section,
.page--blog-post .wrap > * {
  margin-left: auto !important;
  margin-right: auto !important;
}
/* Align headings nicely on narrow screens */
.page--blog-post header h1, 
.page--blog-post header p { text-align: center; }

/* Ensure cards/sections appear centered visually with uniform gutters */
.page--blog-post .section {
  max-width: 900px;
  margin: 24px auto;
  padding: 16px 18px;
}

/* Prevent weird horizontal drift due to transforms/pixels */
html, body { overflow-x: hidden; }



/* Blog table divider lines (2025-10-14 PATCH6) */
article table, .post-body table {
  border: 2px solid #e0e0e0;
  border-radius: 12px;
  box-shadow: 0 3px 10px rgba(0,0,0,0.05);
}
article table th, .post-body table th {
  border-bottom: 2px solid #e6e6e6;
}
article table td, .post-body table td {
  border-bottom: 1px solid #f0f0f0;
}
article table tr:last-child td, .post-body table tr:last-child td {
  border-bottom: none;
}
article table + h3, .post-body table + h3 {
  margin-top: 2.5rem;
  border-top: 2px solid #e0e0e0;
  padding-top: 1.5rem;
}



/* === BLOG INDEX LAYOUT TIGHTEN (2025-10-14 PATCH-BLOG) === */
.page--blog-index main {
  display: grid;
  justify-items: center;
  align-content: start;
  row-gap: clamp(16px, 2.5vw, 28px);
}
.page--blog-index .hero {
  min-height: auto !important;
  padding: clamp(12px, 2vw, 24px) 0;
}
.page--blog-index .hero .content {
  text-align: center;
  margin: 0 auto;
}
.page--blog-index .hero h1 {
  margin: 0 0 clamp(8px, 1.5vw, 12px) 0;
  line-height: 1.15;
}
.page--blog-index .hero p.lead {
  margin: 0;
  color: var(--muted, #666);
}
.page--blog-index .wrap { 
  width: 100%; 
  max-width: var(--site-max); 
  padding-left: var(--site-pad); 
  padding-right: var(--site-pad);
  margin-left: auto; 
  margin-right: auto;
}
/* Posts grid spacing */
.page--blog-index .posts {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(14px, 2vw, 22px);
  margin: 0 auto;
}
@media (min-width: 840px){
  .page--blog-index .posts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* Reduce excessive vertical whitespace between sections when zoomed out */
.page--blog-index header + .wrap,
.page--blog-index .hero + .wrap,
.page--blog-index .wrap + .wrap {
  margin-top: clamp(10px, 2vw, 20px);
}



/* BLOG-BALAYAGE spacing tighten (2025-10-14 PATCH8) */
.page--blog-post .hero { padding: clamp(8px, 1.3vw, 14px) 0 !important; margin-bottom: clamp(8px, 1vw, 12px) !important; }
.page--blog-post .section { margin: clamp(10px, 1.6vw, 16px) auto !important; }
.page--blog-post .section:first-of-type { margin-top: clamp(6px, 1vw, 10px) !important; }
.page--blog-post .hero + .section { margin-top: clamp(8px, 1vw, 12px) !important; }
.page--blog-post h1 { margin-bottom: clamp(6px, 1vw, 10px) !important; }
.page--blog-post .hero p { margin: 0 !important; }



/* BLOG-BALAYAGE spacing tighten v2 (2025-10-14 PATCH9) */
.page--blog-post .hero { padding: 8px 0 !important; margin: 0 !important; }
.page--blog-post .hero .content { margin: 0 auto !important; }
.page--blog-post .hero + .section { margin-top: 8px !important; }
.page--blog-post .section { margin: 14px auto !important; }
.page--blog-post h1 { margin: 0 0 6px 0 !important; }
.page--blog-post .section img { display:block; margin: 0 auto; }



/* Constrain inner nav width */
.site-header .nav, header.site-header .nav{
  max-width: var(--site-max);
  margin: 0 auto;
  padding-left: var(--site-pad);
  padding-right: var(--site-pad);
}


/* Robust responsive tables */
.prose .table-scroll{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.prose table{width:100%;border-collapse:collapse;table-layout:fixed}
.prose th, .prose td{white-space:normal;word-break:break-word}
@supports (position:sticky){.prose thead th{position:sticky;top:0;background:#fff}}
