/* CARPEN editorial treatment for the parent WordPress post template. */

body.single-post {
  margin: 0;
  color: var(--ink-body);
  background: var(--surface-page);
  font-family: var(--font-sans);
}

body.single-post .wp-site-blocks {
  overflow: clip;
}

/* Site frame: retain WordPress navigation behavior while giving it a CARPEN frame. */
body.single-post .wp-site-blocks > header {
  position: relative;
  z-index: 5;
  border-bottom: 1px solid var(--border-subtle);
  background: rgb(247 249 250 / 96%);
}

body.single-post .wp-site-blocks > header > .wp-block-group {
  width: min(calc(100% - 72px), 1400px);
  min-height: 78px;
  margin-inline: auto;
  padding: 0 !important;
  display: flex;
  align-items: center;
}

body.single-post .wp-site-blocks > header .wp-block-group.alignwide.is-content-justification-space-between {
  width: 100%;
  align-items: center;
}

body.single-post .wp-site-blocks > header .wp-block-site-title {
  margin: 0;
  line-height: 1;
}

body.single-post .wp-site-blocks > header .wp-block-site-title a {
  width: 124px;
  height: 56px;
  display: block;
  overflow: hidden;
  color: transparent;
  font-size: 0;
  background: url("carpen-wordmark.png") center / contain no-repeat;
}

body.single-post .wp-site-blocks > header .wp-block-navigation {
  font-size: 14px;
  font-weight: 700;
}

body.single-post .wp-site-blocks > header .wp-block-page-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 22px;
  margin: 0;
  padding: 0;
}

body.single-post .wp-site-blocks > header .wp-block-page-list > li {
  margin: 0;
}

body.single-post .wp-site-blocks > header .wp-block-navigation a {
  color: var(--ink-strong);
  text-underline-offset: 5px;
}

body.single-post .wp-site-blocks > header .wp-block-navigation a:hover {
  color: var(--action-info);
}

/* Article introduction is intentionally wider than the reading column. */
body.single-post main > .wp-block-group:first-child {
  width: min(calc(100% - 72px), var(--content-wide));
  margin: 0 auto 64px !important;
  padding: 54px 0 0 !important;
}

body.single-post .wp-block-post-featured-image {
  max-width: 980px;
  margin: 0 auto 38px !important;
  overflow: hidden;
  background: var(--cp-slate-100);
}

body.single-post .wp-block-post-featured-image img {
  width: 100%;
  height: auto;
  display: block;
}

body.single-post .wp-block-post-title,
body.single-post main > .wp-block-group:first-child > .wp-block-group {
  width: min(100%, var(--content-reading));
  margin-inline: auto;
}

body.single-post .wp-block-post-title {
  margin-top: 0 !important;
  margin-bottom: 20px !important;
  color: var(--ink-strong);
  font-family: var(--font-sans);
  font-size: clamp(35px, 4.1vw, 56px) !important;
  font-weight: 800;
  line-height: 1.24;
  letter-spacing: -0.06em;
  word-break: keep-all;
}

body.single-post .wp-block-template-part > .wp-block-group,
body.single-post .wp-block-template-part > .wp-block-group > .wp-block-group {
  padding: 0 !important;
}

body.single-post .wp-block-template-part .wp-block-group.is-layout-flex {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 !important;
  color: var(--ink-muted);
  font-size: 13px;
}

body.single-post .wp-block-template-part .wp-block-group.is-layout-flex > p,
body.single-post .wp-block-post-terms__prefix {
  display: none;
}

body.single-post .wp-block-post-date,
body.single-post .wp-block-post-author-name,
body.single-post .wp-block-post-terms {
  display: inline-flex;
  align-items: center;
  margin: 0 !important;
}

body.single-post .wp-block-post-date::after,
body.single-post .wp-block-post-author-name::after {
  margin: 0 9px;
  color: var(--cp-slate-300);
  content: "/";
}

body.single-post .wp-block-template-part a {
  color: inherit;
  text-decoration: none;
}

body.single-post .wp-block-post-terms a {
  color: var(--action-info);
  font-weight: 800;
}

/* Reading column */
body.single-post .wp-block-post-content,
body.single-post .entry-content {
  width: min(calc(100% - 72px), var(--content-reading));
  margin: 0 auto !important;
  padding: 0 0 80px !important;
  color: var(--ink-body);
  font-family: var(--font-sans);
}

body.single-post .wp-block-post-content > p,
body.single-post .entry-content > p {
  margin: 0 0 28px !important;
  font-size: 18px !important;
  line-height: 1.85 !important;
  letter-spacing: -0.025em;
  word-break: keep-all;
}

body.single-post .wp-block-post-content > p:first-child strong,
body.single-post .entry-content > p:first-child strong {
  color: var(--action-hybrid) !important;
  font-weight: 800;
}

body.single-post .wp-block-post-content > h2,
body.single-post .entry-content > h2 {
  margin: 68px 0 22px !important;
  padding-top: 20px;
  border-top: 1px solid var(--border-subtle);
  color: var(--ink-strong);
  font-size: clamp(26px, 2.7vw, 34px) !important;
  font-weight: 800;
  line-height: 1.38;
  letter-spacing: -0.052em;
  word-break: keep-all;
}

body.single-post .wp-block-post-content > h3,
body.single-post .entry-content > h3 {
  margin: 42px 0 14px !important;
  color: var(--ink-strong);
  font-size: 21px !important;
  line-height: 1.45;
  letter-spacing: -0.04em;
  word-break: keep-all;
}

body.single-post .wp-block-post-content figure,
body.single-post .entry-content figure {
  width: 100%;
  margin: 42px 0 12px !important;
}

body.single-post .wp-block-post-content figure img,
body.single-post .entry-content figure img,
body.single-post .wp-block-post-content > img,
body.single-post .entry-content > img {
  width: 100% !important;
  height: auto !important;
  display: block;
}

body.single-post .wp-block-post-content figure + p[style*="text-align"],
body.single-post .entry-content figure + p[style*="text-align"] {
  margin: 0 0 32px !important;
  color: var(--ink-muted) !important;
  font-size: 13px !important;
  line-height: 1.6 !important;
  text-align: center !important;
}

body.single-post .wp-block-post-content table,
body.single-post .entry-content table {
  width: 100%;
  margin: 28px 0 38px !important;
  border-collapse: collapse;
  background: var(--surface-raised);
  font-size: 15px;
  line-height: 1.65;
}

body.single-post .wp-block-post-content th,
body.single-post .wp-block-post-content td,
body.single-post .entry-content th,
body.single-post .entry-content td {
  padding: 15px 16px;
  border: 1px solid var(--border-subtle);
  text-align: left;
  vertical-align: top;
}

body.single-post .wp-block-post-content th,
body.single-post .entry-content th {
  color: var(--ink-strong);
  background: var(--cp-slate-100);
  font-weight: 800;
}

body.single-post .wp-block-post-content a,
body.single-post .entry-content a {
  color: var(--action-info);
  font-weight: 700;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

body.single-post .wp-block-post-content .wp-block-separator,
body.single-post .entry-content .wp-block-separator {
  margin: 64px 0;
  border-color: var(--border-subtle);
}

/* Footer removes unused default template copy and keeps a quiet exit. */
body.single-post .wp-site-blocks > footer {
  margin-top: 0;
  color: rgb(255 255 255 / 75%);
  background: var(--ink-inverse);
}

body.single-post .wp-site-blocks > footer > .wp-block-group {
  width: min(calc(100% - 72px), 1400px);
  margin: auto;
}

body.single-post .wp-site-blocks > footer .wp-block-site-tagline,
body.single-post .wp-site-blocks > footer .wp-block-site-title + .wp-block-site-tagline {
  display: none;
}

body.single-post .wp-site-blocks > footer a,
body.single-post .wp-site-blocks > footer h2 {
  color: var(--cp-white);
}

body.single-post .wp-site-blocks > footer p,
body.single-post .wp-site-blocks > footer li {
  color: rgb(255 255 255 / 64%);
}

body.single-post .wp-site-blocks > footer .wp-block-site-title a {
  color: var(--cp-white);
  font-weight: 800;
}

/* Native comment inputs retain legible labels and a consistent active state. */
body.single-post .comment-respond,
body.single-post .wp-block-post-comments-form {
  margin-top: 72px;
  padding-top: 32px;
  border-top: 1px solid var(--border-subtle);
}

body.single-post input:not([type="checkbox"]),
body.single-post textarea {
  border: 1px solid var(--cp-slate-300);
  border-radius: var(--cp-radius-control);
  background: var(--surface-raised);
}

body.single-post input:focus,
body.single-post textarea:focus {
  border-color: var(--action-info);
}

body.single-post input[type="submit"],
body.single-post .wp-element-button {
  border-radius: var(--button-radius);
  background: var(--button-primary-bg);
}

@media (max-width: 700px) {
  body.single-post .wp-site-blocks > header > .wp-block-group {
    width: calc(100% - 32px);
    min-height: 70px;
  }

  body.single-post .wp-site-blocks > header .wp-block-site-title a {
    width: 108px;
    height: 50px;
  }

  body.single-post .wp-site-blocks > header .wp-block-navigation__responsive-container-open {
    padding: 8px;
    color: var(--ink-strong);
  }

  body.single-post .wp-site-blocks > header .wp-block-navigation__responsive-container.is-menu-open {
    background: var(--surface-page);
  }

  body.single-post .wp-site-blocks > header .wp-block-navigation__responsive-container.is-menu-open .wp-block-page-list {
    display: grid;
    gap: 20px;
  }

  body.single-post main > .wp-block-group:first-child {
    width: calc(100% - 40px);
    margin-bottom: 42px !important;
    padding-top: 0 !important;
  }

  body.single-post .wp-block-post-featured-image {
    width: calc(100% + 40px) !important;
    margin: 0 -20px 28px !important;
  }

  body.single-post .wp-block-post-title,
  body.single-post main > .wp-block-group:first-child > .wp-block-group {
    width: 100%;
  }

  body.single-post .wp-block-post-content,
  body.single-post .entry-content {
    width: calc(100% - 40px);
    padding-bottom: 56px !important;
  }

  body.single-post .wp-block-post-content > p,
  body.single-post .entry-content > p {
    font-size: 18px !important;
  }

  body.single-post .wp-block-post-content table,
  body.single-post .entry-content table {
    font-size: 14px;
  }

  body.single-post .wp-block-post-content th,
  body.single-post .wp-block-post-content td,
  body.single-post .entry-content th,
  body.single-post .entry-content td {
    min-width: 116px;
    padding: 12px 10px;
  }

  body.single-post .wp-site-blocks > footer > .wp-block-group {
    width: calc(100% - 40px);
  }
}

/* Dedicated CARPEN single-post frame. This replaces the parent theme's generic header and footer. */
body.carpen-article {
  margin: 0;
  color: var(--ink-body);
  background: var(--surface-page);
  font-family: var(--font-sans);
  -webkit-font-smoothing: antialiased;
}

body.carpen-article * { box-sizing: border-box; }
body.carpen-article a { color: inherit; text-decoration: none; }
body.carpen-article img { display: block; max-width: 100%; }
.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); }

.article-skip-link { position: fixed; z-index: 100; top: 8px; left: 8px; padding: 10px 14px; color: #fff; background: var(--action-primary); transform: translateY(-160%); }
.article-skip-link:focus { transform: none; }

.carpen-article .site-header { position: sticky; z-index: 30; top: 0; border-bottom: 1px solid var(--border-subtle); background: rgb(247 249 250 / .96); backdrop-filter: blur(14px); }
.carpen-article .header-inner { width: min(calc(100% - 72px), 1400px); height: 82px; margin: auto; display: flex; align-items: center; gap: 42px; }
.carpen-article .brand { display: flex; align-items: center; }
.carpen-article .brand img { width: 128px; }
.carpen-article .desktop-nav { margin-left: auto; display: flex; align-items: center; gap: 34px; color: var(--ink-strong); font-size: 15px; font-weight: 700; }
.carpen-article .desktop-nav a:hover { color: var(--action-info); }
.carpen-article .header-consult { padding: 10px 15px; border: 1px solid var(--action-human); border-radius: var(--button-radius); color: var(--action-human); font-size: 14px; font-weight: 800; transition: color var(--cp-duration-fast), background var(--cp-duration-fast); }
.carpen-article .header-consult:hover { color: #fff; background: var(--action-human); }
.carpen-article .menu-toggle, .carpen-article .mobile-menu { display: none; }

.article-main { padding: 54px 0 120px; }
.article-header { width: min(calc(100% - 72px), var(--content-wide)); margin: auto; }
.article-featured-image { max-width: 980px; margin: 0 auto 38px; overflow: hidden; background: var(--cp-slate-100); }
.article-featured-image img { width: 100%; height: auto; }
.article-heading { width: min(100%, var(--content-reading)); margin: auto; }
.article-heading h1 { margin: 0 0 20px; color: var(--ink-strong); font-size: clamp(35px, 4.1vw, 56px); font-weight: 800; line-height: 1.24; letter-spacing: -.06em; word-break: keep-all; }
.article-meta { display: flex; flex-wrap: wrap; align-items: center; color: var(--ink-muted); font-size: 13px; }
.article-meta > * { display: inline-flex; align-items: center; }
.article-meta > *:not(:last-child)::after { margin: 0 9px; color: var(--cp-slate-300); content: "/"; }
.article-meta a { color: var(--action-info); font-weight: 800; }

.article-content { width: min(calc(100% - 72px), var(--content-reading)); margin: 54px auto 0; padding-bottom: 0; color: var(--ink-body); }
.article-content > p { margin: 0 0 28px; font-size: 18px; line-height: 1.85; letter-spacing: -.025em; word-break: keep-all; }
.article-content > p:first-child strong { color: var(--action-hybrid) !important; font-weight: 800; }
.article-content > h2 { margin: 68px 0 22px; padding-top: 20px; border-top: 1px solid var(--border-subtle); color: var(--ink-strong); font-size: clamp(26px, 2.7vw, 34px); font-weight: 800; line-height: 1.38; letter-spacing: -.052em; word-break: keep-all; }
.article-content > h3 { margin: 42px 0 14px; color: var(--ink-strong); font-size: 21px; line-height: 1.45; letter-spacing: -.04em; word-break: keep-all; }
.article-content figure { width: 100%; margin: 42px 0 12px; }
.article-content figure img, .article-content > img { width: 100% !important; height: auto !important; }
.article-content figure + p[style*="text-align"] { margin: 0 0 32px !important; color: var(--ink-muted) !important; font-size: 13px !important; line-height: 1.6 !important; text-align: center !important; }
.article-content table { width: 100%; margin: 28px 0 38px; border-collapse: collapse; background: var(--surface-raised); font-size: 15px; line-height: 1.65; }
.article-content th, .article-content td { padding: 15px 16px; border: 1px solid var(--border-subtle); text-align: left; vertical-align: top; }
.article-content th { color: var(--ink-strong); background: var(--cp-slate-100); font-weight: 800; }
.article-content a { color: var(--action-info); font-weight: 700; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }

.article-next-step { width: min(calc(100% - 72px), var(--content-reading)); margin: 76px auto 0; padding: 38px 40px; display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: end; color: #fff; background: var(--ink-inverse); }
.article-next-step p { margin: 0 0 10px; color: #79a8ff; font-size: 12px; font-weight: 900; letter-spacing: .1em; }
.article-next-step h2 { max-width: 460px; margin: 0; color: #fff; font-size: 27px; line-height: 1.38; letter-spacing: -.045em; word-break: keep-all; }
.article-next-step span { max-width: 490px; margin-top: 12px; display: block; color: rgb(255 255 255 / .65); font-size: 14px; line-height: 1.7; word-break: keep-all; }
.article-next-actions { display: grid; gap: 10px; }
.article-button { min-width: 190px; min-height: 50px; padding: 0 18px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: var(--button-radius); font-size: 14px; font-weight: 800; transition: transform var(--cp-duration-fast), background var(--cp-duration-fast), color var(--cp-duration-fast); }
.article-button:hover { transform: translateY(-1px); }
.article-button-outline { border-color: rgb(255 255 255 / .64); color: #fff; }
.article-button-outline:hover { background: rgb(255 255 255 / .12); }
.article-button-human { color: #fff; background: var(--action-human); }
.article-button-human:hover { background: #ad1725; }

.article-tags { width: min(calc(100% - 72px), var(--content-reading)); margin: 24px auto 0; display: flex; flex-wrap: wrap; gap: 8px; }
.article-tags a { padding: 8px 11px; border: 1px solid var(--border-subtle); color: var(--ink-muted); font-size: 13px; font-weight: 700; }
.article-tags a:hover { border-color: var(--action-info); color: var(--action-info); }

.article-comments { width: min(calc(100% - 72px), var(--content-reading)); margin: 72px auto 0; padding: 34px 36px; border: 1px solid var(--border-subtle); background: var(--surface-raised); }
.article-comments .comments-title, .article-comments .comment-reply-title { margin: 0 0 20px; color: var(--ink-strong); font-size: 25px; line-height: 1.35; letter-spacing: -.045em; }
.article-comments .comment-notes, .article-comments .logged-in-as, .article-comments .comment-form-cookies-consent { color: var(--ink-muted); font-size: 13px; line-height: 1.6; }
.article-comments .comment-form p { margin: 0 0 18px; }
.article-comments .comment-form label { margin-bottom: 7px; display: block; color: var(--ink-strong); font-size: 13px; font-weight: 800; }
.article-comments .comment-form textarea, .article-comments .comment-form input:not([type="checkbox"]) { width: 100%; padding: 12px 14px; border: 1px solid var(--cp-slate-300); border-radius: var(--button-radius); color: var(--ink-strong); background: #fff; font: inherit; }
.article-comments .comment-form textarea { min-height: 160px; resize: vertical; }
.article-comments .form-submit input { min-height: 48px; padding: 0 20px; border: 0; border-radius: var(--button-radius); color: #fff; background: var(--action-primary); font: inherit; font-size: 14px; font-weight: 800; cursor: pointer; }

.article-navigation { width: min(calc(100% - 72px), var(--content-reading)); margin: 24px auto 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.article-nav-link { min-height: 108px; padding: 20px; display: flex; flex-direction: column; justify-content: center; border: 1px solid var(--border-subtle); background: var(--surface-raised); }
.article-nav-link small { margin-bottom: 8px; color: var(--ink-muted); font-size: 12px; font-weight: 800; }
.article-nav-link strong { color: var(--ink-strong); font-size: 15px; line-height: 1.48; letter-spacing: -.03em; word-break: keep-all; }
.article-nav-link:hover { border-color: var(--action-info); }

.article-footer { color: rgb(255 255 255 / .74); background: var(--ink-inverse); }
.article-footer-inner { width: min(calc(100% - 72px), 1400px); min-height: 220px; margin: 0 auto; padding: 48px 0; display: grid; grid-template-columns: 1fr auto; align-content: center; gap: 12px 48px; }
.article-footer img { width: 155px; background: #fff; }
.article-footer p { margin: 0; font-size: 14px; }
.article-footer nav { grid-column: 2; grid-row: 1 / span 2; display: flex; align-items: center; gap: 24px; }
.article-footer nav a { color: #fff; font-size: 14px; font-weight: 800; }

@media (max-width: 900px) { .carpen-article .desktop-nav, .carpen-article .header-consult { display: none; } .carpen-article .menu-toggle { width: 44px; height: 44px; margin-left: auto; padding: 10px; display: flex; flex-direction: column; justify-content: center; gap: 5px; border: 0; background: transparent; } .carpen-article .menu-toggle span { height: 2px; background: var(--ink-strong); } .carpen-article .mobile-menu:not([hidden]) { padding: 18px 28px 26px; display: flex; flex-wrap: wrap; gap: 18px 26px; border-top: 1px solid var(--border-subtle); color: var(--ink-strong); font-weight: 700; } }

@media (max-width: 700px) {
  .carpen-article .site-header { position: relative; }
  .carpen-article .header-inner { width: calc(100% - 32px); height: 72px; }
  .carpen-article .brand img { width: 104px; }
  .carpen-article .mobile-menu:not([hidden]) { display: grid; }
  .article-main { padding: 0 0 72px; }
  .article-header { width: 100%; }
  .article-featured-image { width: 100%; margin: 0 0 28px; }
  .article-heading, .article-content, .article-next-step, .article-tags, .article-comments, .article-navigation { width: calc(100% - 40px); }
  .article-heading h1 { margin-bottom: 18px; font-size: clamp(30px, 8.4vw, 36px); }
  .article-content { margin-top: 42px; }
  .article-content > p { margin-bottom: 24px; font-size: 18px; line-height: 1.8; }
  .article-content > h2 { margin-top: 52px; font-size: 25px; }
  .article-content > h3 { margin-top: 38px; font-size: 20px; }
  .article-content table { table-layout: fixed; font-size: 14px; word-break: break-word; }
  .article-content th, .article-content td { min-width: 100px; padding: 12px 10px; }
  .article-next-step { margin-top: 58px; padding: 30px 24px; grid-template-columns: 1fr; gap: 24px; }
  .article-next-step h2 { font-size: 24px; }
  .article-next-actions { grid-template-columns: 1fr; }
  .article-button { width: 100%; }
  .article-comments { margin-top: 58px; padding: 28px 20px; }
  .article-navigation { grid-template-columns: 1fr; }
  .article-footer-inner { width: calc(100% - 40px); min-height: 220px; grid-template-columns: 1fr; }
  .article-footer nav { grid-column: 1; grid-row: auto; flex-wrap: wrap; gap: 14px 22px; }
}
