/* ============================================================
   SN Academy — BLOG (index + single post)
   Loaded only on the blog posts page and single posts (see functions.php).
   Markup comes from child templates home.php + single.php (class prefix .snb-).
   Brand tokens (--sn-*) are defined in site.css. Width matches site = 1200/28.
   ============================================================ */

/* Strip the theme #main wrapper's vertical padding on blog pages so the editorial header
   sits flush under the nav and the CTA band sits flush above the footer (no white gaps).
   Same fix the homepage uses for its full-width template. */
body.blog #main,body.single-post #main{padding-top:0!important;padding-bottom:0!important;margin-bottom:0!important}

.snb-root{--snb-border:#dbe7ea;
  --snb-shadow:0 8px 30px rgba(15,61,72,.08);--snb-shadow-hi:0 14px 40px rgba(15,61,72,.14);
  font-family:'Source Sans 3',system-ui,sans-serif;color:var(--sn-charcoal);
  background:#fff;line-height:1.6;font-size:17px;-webkit-font-smoothing:antialiased}
.snb-root h1,.snb-root h2,.snb-root h3{font-family:'Playfair Display',Georgia,serif;
  color:var(--sn-teal-dark);line-height:1.18;text-transform:none}
.snb-root a{color:inherit;text-decoration:none}
.snb-root img{display:block;max-width:100%}
.snb-wrap{max-width:1200px;margin:0 auto;padding:0 28px}
.snb-measure{max-width:760px;margin:0 auto;padding:0 28px}
.snb-eyebrow{font-size:13px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--sn-green)}
.snb-pill{display:inline-block;background:var(--sn-teal-light);color:var(--sn-teal);font-size:12px;
  font-weight:700;letter-spacing:.5px;text-transform:uppercase;padding:6px 13px;border-radius:999px;line-height:1.4}
.snb-avatar{width:40px;height:40px;border-radius:50%;background:var(--sn-teal);color:#fff;
  display:grid;place-items:center;font-weight:700;font-size:14px;flex:none;overflow:hidden}
.snb-avatar img{width:100%;height:100%;object-fit:cover}
.snb-dot{width:3px;height:3px;border-radius:50%;background:var(--sn-muted);display:inline-block}
.snb-ph{background-size:cover;background-position:center;background-color:var(--sn-teal-light)}

/* ---- editorial page/post header ---- */
.snb-head{background:var(--sn-off);border-bottom:1px solid var(--snb-border);
  padding:64px 0 56px;text-align:center}
.snb-head .snb-eyebrow{display:block;margin-bottom:14px}
.snb-head h1{font-size:50px;font-weight:800;margin:0 auto 16px;max-width:16ch}
.snb-head .snb-lede{font-size:19px;color:var(--sn-muted);max-width:600px;margin:0 auto}
.snb-crumbs{font-size:13px;color:var(--sn-muted);margin-bottom:18px}
.snb-crumbs a:hover{color:var(--sn-teal)}
.snb-meta{display:inline-flex;align-items:center;gap:12px;font-size:15px;color:var(--sn-muted);flex-wrap:wrap;justify-content:center}
.snb-meta b{color:var(--sn-charcoal);font-weight:600}

/* ---- lead / featured post (index, page 1) ---- */
.snb-lead{margin:56px auto 0}
.snb-lead-card{display:grid;grid-template-columns:1.15fr .85fr;background:#fff;
  border:1px solid var(--snb-border);border-radius:16px;overflow:hidden;box-shadow:var(--snb-shadow);transition:.25s}
.snb-lead-card:hover{box-shadow:var(--snb-shadow-hi);transform:translateY(-3px)}
.snb-lead-card .snb-ph{min-height:360px}
.snb-lead-body{padding:44px 46px;display:flex;flex-direction:column;justify-content:center}
.snb-lead-body .snb-pill{align-self:flex-start;margin-bottom:18px}
.snb-lead-body h2{font-size:31px;font-weight:800;margin-bottom:14px}
.snb-lead-body .snb-ex{color:var(--sn-muted);font-size:17px;margin-bottom:24px}
.snb-read{color:var(--sn-green);font-weight:700;margin-top:22px;align-self:flex-start}
.snb-read:hover{color:var(--sn-green-deep)}

/* ---- index layout: grid + sidebar ---- */
.snb-layout{display:grid;grid-template-columns:1fr 320px;gap:48px;margin:56px auto 88px}
.snb-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}

/* ---- post card ---- */
.snb-card{background:#fff;border:1px solid var(--snb-border);border-radius:14px;overflow:hidden;
  box-shadow:var(--snb-shadow);transition:.25s;display:flex;flex-direction:column}
.snb-card:hover{box-shadow:var(--snb-shadow-hi);transform:translateY(-3px)}
.snb-card .snb-ph{aspect-ratio:16/9}
.snb-card-body{padding:24px 24px 26px;display:flex;flex-direction:column;flex:1}
.snb-card-body .snb-pill{align-self:flex-start;margin-bottom:14px}
.snb-card-body h3{font-size:20px;font-weight:700;margin-bottom:10px}
.snb-card:hover h3{color:var(--sn-teal)}
.snb-card-body .snb-ex{color:var(--sn-muted);font-size:15.5px;margin-bottom:20px;flex:1}
.snb-card .snb-meta{font-size:13.5px;display:flex}
.snb-card .snb-avatar{width:32px;height:32px;font-size:12px}

/* ---- pagination (styles WP paginate_links 'list' output) ----
   NB: WP puts class .page-numbers on BOTH the <ul> wrapper and each item, so item
   styling must be scoped to a./span. to avoid boxing the whole list. */
.snb-pager{margin-top:48px}
.snb-pager ul.page-numbers{list-style:none;padding:0;margin:0;display:flex;gap:8px;
  justify-content:center;flex-wrap:wrap;border:0;background:none;min-width:0;height:auto}
.snb-pager li{list-style:none;margin:0}
.snb-pager a.page-numbers,.snb-pager span.page-numbers{min-width:42px;height:42px;
  display:inline-grid!important;place-items:center;border:1px solid var(--snb-border)!important;
  border-radius:8px!important;font-weight:600;font-size:15px!important;color:var(--sn-charcoal)!important;
  background:#fff!important;padding:0 12px!important;text-decoration:none;overflow:visible}
/* MasterStudy paints the active/hover fill with an amber ::after — neutralise it. */
.snb-pager a.page-numbers:after,.snb-pager span.page-numbers:after{display:none!important}
.snb-pager span.page-numbers.current,.snb-pager .page-numbers.current{
  background:var(--sn-teal)!important;border-color:var(--sn-teal)!important;color:#fff!important}
.snb-pager a.page-numbers:hover{background:var(--sn-teal)!important;border-color:var(--sn-teal)!important;color:#fff!important}

/* ---- sidebar ---- */
.snb-side{display:flex;flex-direction:column;gap:28px}
.snb-widget{background:#fff;border:1px solid var(--snb-border);border-radius:14px;padding:24px}
.snb-widget h4{font-family:'Source Sans 3',sans-serif;font-size:13px;font-weight:700;letter-spacing:1px;
  text-transform:uppercase;color:var(--sn-teal);margin-bottom:18px}
.snb-search{display:flex;border:1px solid var(--snb-border);border-radius:999px;overflow:hidden}
.snb-search input{border:0;outline:0;flex:1;padding:12px 18px;font-family:inherit;font-size:15px;background:#fff}
.snb-search button{border:0;background:var(--sn-teal);color:#fff;padding:0 18px;cursor:pointer;font-size:16px}
.snb-recent a{display:flex;gap:14px;padding:12px 0;border-bottom:1px solid var(--snb-border);align-items:center}
.snb-recent a:last-child{border-bottom:0;padding-bottom:0}
.snb-recent .snb-ph{width:64px;height:56px;border-radius:8px;flex:none}
.snb-recent .rt{font-weight:600;font-size:15px;line-height:1.35;color:var(--sn-charcoal)}
.snb-recent a:hover .rt{color:var(--sn-teal)}
.snb-recent .rd{font-size:12.5px;color:var(--sn-muted);margin-top:4px}
.snb-cta-card{background:var(--sn-green);border-radius:14px;padding:30px 26px;color:#fff;text-align:center}
.snb-cta-card h4{color:#fff;font-family:'Playfair Display',serif;font-size:21px;font-weight:800;
  letter-spacing:0;text-transform:none;margin-bottom:8px}
.snb-cta-card p{font-size:14.5px;color:#eaf6dd;margin-bottom:18px}
.snb-cta-card a{display:inline-block;background:#fff;color:var(--sn-teal-dark);font-weight:700;
  padding:11px 22px;border-radius:8px;font-size:15px}

/* ============================================================
   SINGLE POST
   ============================================================ */
.snb-feat-wrap{margin-top:-32px}
.snb-feat{width:100%;aspect-ratio:24/9;border-radius:16px;box-shadow:var(--snb-shadow)}
.snb-post-layout{max-width:1200px;margin:0 auto;padding:44px 28px 0;
  display:grid;grid-template-columns:1fr 320px;gap:56px;align-items:start}
.snb-post-main{min-width:0}
.snb-post-side{position:sticky;top:98px;display:flex;flex-direction:column;gap:24px}
.snb-side-cta{background:var(--sn-green);border-radius:14px;padding:28px 24px;color:#fff;text-align:center}
.snb-side-cta h4{color:#fff;font-family:'Playfair Display',serif;font-size:20px;font-weight:800;
  letter-spacing:0;text-transform:none;margin-bottom:8px}
.snb-side-cta p{font-size:14px;color:#eaf6dd;margin-bottom:16px}
.snb-side-cta a{display:inline-block;background:#fff;color:var(--sn-teal-dark);font-weight:700;
  padding:10px 20px;border-radius:8px;font-size:14.5px}

/* article body — typography on the_content() output.
   Top spacing now comes from .snb-post-layout padding-top (keeps sidebar aligned). */
.snb-content{padding:0 0 24px;font-size:18px}
.snb-content p{margin:0 0 26px}
.snb-content h2{font-size:30px;font-weight:800;margin:44px 0 16px}
.snb-content h3{font-size:23px;font-weight:700;margin:34px 0 12px}
.snb-content ul,.snb-content ol{margin:0 0 26px;padding-left:24px}
.snb-content li{margin-bottom:10px}
.snb-content li::marker{color:var(--sn-green)}
.snb-content a{color:var(--sn-teal);border-bottom:1px solid var(--sn-teal);font-weight:600}
.snb-content img{border-radius:12px;margin:8px 0 28px}
.snb-content blockquote{margin:30px 0;padding:18px 26px;background:var(--sn-teal-light);
  border-left:4px solid var(--sn-teal);border-radius:0 10px 10px 0;
  font-family:'Playfair Display',serif;font-style:italic;font-size:21px;color:var(--sn-teal-dark)}
.snb-content blockquote p{margin:0}
.snb-takeaway{margin:34px 0;padding:24px 28px;background:var(--sn-green-light);border-radius:14px;border:1px solid #d4e9b8}
.snb-takeaway b{display:block;font-family:'Source Sans 3',sans-serif;font-size:12px;letter-spacing:1px;
  text-transform:uppercase;color:var(--sn-green-deep);margin-bottom:8px}
.snb-takeaway p{margin:0;font-size:17px;color:#3a5012}

/* tags + share */
.snb-tags{display:flex;flex-wrap:wrap;gap:10px;margin:36px 0 0;align-items:center}
.snb-tags .lbl{font-size:13px;color:var(--sn-muted);margin-right:4px}
.snb-share{display:flex;gap:10px;margin:28px 0 0;align-items:center}
.snb-share .lbl{font-size:13px;color:var(--sn-muted);margin-right:4px}
.snb-share a{width:38px;height:38px;border:1px solid var(--snb-border);border-radius:8px;
  display:grid;place-items:center;color:var(--sn-teal);font-weight:700}
.snb-share a:hover{border-color:var(--sn-teal);background:var(--sn-off)}

/* author bio */
.snb-author{display:flex;gap:20px;align-items:flex-start;margin:44px 0 0;padding:28px 30px;
  background:#fff;border:1px solid var(--snb-border);border-radius:14px;box-shadow:var(--snb-shadow)}
.snb-author .snb-avatar{width:64px;height:64px;font-size:22px}
.snb-author h4{font-family:'Playfair Display',serif;font-size:19px;font-weight:700;color:var(--sn-teal-dark);margin-bottom:2px}
.snb-author .role{font-size:13.5px;color:var(--sn-green);font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}
.snb-author p{font-size:15.5px;color:var(--sn-muted);margin:0}

/* related */
.snb-related{background:var(--sn-off);border-top:1px solid var(--snb-border);margin-top:72px;padding:72px 0}
.snb-related .snb-rhead{text-align:center;margin-bottom:40px}
.snb-related .snb-rhead .snb-eyebrow{display:block;margin-bottom:10px}
.snb-related .snb-rhead h2{font-size:32px;font-weight:800}
.snb-rgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}

/* comments (de-emphasised) */
.snb-comments{padding:56px 0 8px}
.snb-comments h2,.snb-comments h3{font-size:26px;font-weight:800;margin-bottom:8px}
.snb-comments .comment-form{display:grid;gap:16px;max-width:760px}
.snb-comments p{color:var(--sn-muted)}
.snb-comments input[type=text],.snb-comments input[type=email],.snb-comments input[type=url],
.snb-comments textarea{border:1px solid var(--snb-border);border-radius:8px;padding:13px 16px;
  font-family:inherit;font-size:15px;width:100%;background:#fff}
.snb-comments textarea{min-height:120px;resize:vertical}
.snb-comments .submit,.snb-comments input[type=submit]{background:var(--sn-green);color:#fff;border:0;
  font-weight:700;padding:13px 28px;border-radius:8px;font-size:15px;cursor:pointer;width:auto}
.snb-comments .submit:hover,.snb-comments input[type=submit]:hover{background:var(--sn-green-deep)}
.snb-comments .commentlist{list-style:none;padding:0;margin:0 0 32px}
.snb-comments .commentlist li{padding:18px 0;border-bottom:1px solid var(--snb-border)}

/* CTA band before footer */
.snb-ctaband{background:var(--sn-green);text-align:center;padding:64px 0;color:#fff;margin-top:0}
.snb-ctaband h2{color:#fff;font-size:34px;font-weight:800;margin-bottom:10px}
.snb-ctaband p{color:#eaf6dd;font-size:18px;margin-bottom:26px}
.snb-ctaband .snb-btn{display:inline-block;background:#fff;color:var(--sn-teal-dark);font-weight:700;
  padding:14px 30px;border-radius:8px}

/* ---- responsive ---- */
@media(max-width:920px){
  .snb-layout{grid-template-columns:1fr}
  .snb-lead-card{grid-template-columns:1fr}
  .snb-lead-card .snb-ph{min-height:230px}
  .snb-post-layout{grid-template-columns:1fr;gap:8px}
  .snb-post-side{position:static;flex-direction:row;flex-wrap:wrap;margin-top:8px}
  .snb-post-side .snb-widget,.snb-post-side .snb-side-cta{flex:1;min-width:240px}
  .snb-rgrid{grid-template-columns:1fr;gap:24px}
}
@media(max-width:600px){
  .snb-grid{grid-template-columns:1fr}
  .snb-head{padding:48px 0 40px}
  .snb-head h1{font-size:28px;max-width:none;text-wrap:balance;overflow-wrap:break-word}
  .snb-head .snb-lede{font-size:17px}
  .snb-lead-body{padding:30px 26px}
  .snb-lead-body h2{font-size:26px}
  .snb-content{font-size:17px}
  .snb-post-side{flex-direction:column}
}
