html {
  scroll-behavior: smooth;
}

body {
  text-rendering: optimizeLegibility;
}

body.single-post {
  font-size: 17px;
  line-height: 1.7;
}

.wp-site-blocks {
  overflow-x: clip;
}

.single-post main.wp-block-group {
  margin-top: clamp(1.25rem, 3vw, 3rem) !important;
}

.single-post .wp-block-post-title {
  max-width: min(100%, 760px);
  margin-left: auto;
  margin-right: auto;
  font-size: clamp(2rem, 3.2vw, 2.75rem) !important;
  line-height: 1.22 !important;
  letter-spacing: 0;
}

.single-post .wp-block-post-title + .wp-block-group {
  max-width: min(100%, 760px);
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 1.75rem !important;
  color: #64748b;
  font-size: 0.92rem;
}

.wp-block-group.alignfull,
.entry-content.alignfull {
  box-sizing: border-box;
  max-width: 100%;
  margin-left: 0;
  margin-right: 0;
}

.wp-block-post-content,
.entry-content {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  color: #1f2937;
  font-size: 1rem;
  line-height: 1.78;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.wp-block-post-content > *,
.entry-content > * {
  box-sizing: border-box;
  max-width: min(100%, 760px);
}

.wp-block-post-content p,
.entry-content p {
  line-height: 1.78;
  margin-block: 1rem;
}

.wp-block-post-content h2,
.entry-content h2 {
  margin-top: 2.7rem;
  margin-bottom: 0.9rem;
  padding-top: 0.45rem;
  border-top: 1px solid #e5edf5;
  color: #0f172a;
  font-size: 1.55rem;
  line-height: 1.35;
}

.wp-block-post-content h3,
.entry-content h3 {
  margin-top: 1.9rem;
  margin-bottom: 0.55rem;
  color: #0f172a;
  font-size: 1.18rem;
  line-height: 1.4;
}

.wp-block-post-content img,
.entry-content img {
  height: auto;
  max-width: 100%;
}

.wp-block-table,
.entry-content table {
  max-width: 100%;
}

.entry-content div[style*="overflow-x:auto"],
.wp-block-post-content div[style*="overflow-x:auto"] {
  box-sizing: border-box;
  max-width: min(100%, 760px);
  margin: 1.5rem auto !important;
  overflow-x: auto;
  border: 1px solid #d5e0ea;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
  -webkit-overflow-scrolling: touch;
}

.entry-content table,
.wp-block-post-content table {
  width: 100% !important;
  min-width: 620px;
  border-collapse: collapse !important;
  border: 1px solid #cbd5e1 !important;
  font-size: 0.96rem !important;
  line-height: 1.55;
}

.entry-content table th,
.entry-content table td,
.wp-block-post-content table th,
.wp-block-post-content table td {
  padding: 0.85rem 0.95rem !important;
  border: 1px solid #cbd5e1 !important;
  vertical-align: top;
  text-align: left;
}

.entry-content table th,
.wp-block-post-content table th {
  background: #0f766e !important;
  color: #ffffff !important;
  border-color: #0f766e !important;
  font-weight: 700 !important;
}

.entry-content table tr:nth-child(even) td,
.wp-block-post-content table tr:nth-child(even) td {
  background: #f8fbfb !important;
}

.entry-content table td:first-child,
.wp-block-post-content table td:first-child {
  color: #164e63 !important;
  font-weight: 700 !important;
}

.wp-block-table {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.wp-block-table table {
  width: 100%;
  min-width: 620px;
  border-collapse: collapse;
}

.wp-block-table th,
.wp-block-table td {
  padding: 0.72rem 0.8rem;
  vertical-align: top;
}

.mbti-tasko-toc {
  box-sizing: border-box;
  max-width: min(100%, 760px);
  margin: 0 auto 2.2rem;
  padding: 1rem 1.15rem;
  border: 1px solid #d8e0ea;
  border-radius: 8px;
  background: #f7fafc;
}

.mbti-tasko-toc strong {
  display: block;
  margin-bottom: 0.65rem;
  color: #172033;
  font-size: 1rem;
}

.mbti-tasko-toc ol {
  display: grid;
  gap: 0.38rem;
  margin: 0;
  padding-left: 1.25rem;
}

.mbti-tasko-toc a {
  color: #2454a6;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.mbti-tasko-toc__item--h3 {
  margin-left: 1rem;
  font-size: 0.92em;
}

.single-post .wp-block-query.alignwide,
.single-post .wp-block-query.alignwide .wp-block-post-template,
.single-post .wp-block-group.alignwide:has(.wp-block-query) {
  max-width: min(100%, 760px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.single-post .wp-block-query .wp-block-post-template {
  display: grid;
  gap: 0;
}

.single-post .wp-block-query .wp-block-post-title {
  font-size: 1rem !important;
  line-height: 1.45 !important;
}

.single-post .wp-block-query .wp-block-post-date {
  min-width: 7rem;
  color: #64748b;
  font-size: 0.88rem;
}

.single-post .wp-block-post-navigation-link {
  font-size: 0.95rem;
  line-height: 1.5;
}

footer .wp-block-navigation,
footer.wp-block-template-part nav,
footer.wp-block-template-part .wp-block-group.is-content-justification-space-between > p.has-small-font-size {
  display: none;
}

.article-summary {
  box-sizing: border-box;
  max-width: min(100%, 760px);
  margin: 0 auto 1.8rem;
  padding: 1rem 1.1rem;
  border: 1px solid #c7d7ef;
  border-radius: 8px;
  background: #f1f6ff;
}

.article-summary strong {
  display: block;
  margin-bottom: 0.65rem;
  color: #172033;
}

.article-summary ul {
  display: grid;
  gap: 0.45rem;
  margin: 0;
  padding-left: 1.2rem;
}

.article-summary li {
  line-height: 1.65;
}

.entry-content div[style*="border:1px"][style*="background:#f7fbff"],
.wp-block-post-content div[style*="border:1px"][style*="background:#f7fbff"] {
  max-width: min(100%, 760px);
  margin: 1.6rem auto !important;
  padding: 1.15rem 1.25rem !important;
  border: 1px solid #b8d8d2 !important;
  border-left: 5px solid #0f766e !important;
  border-radius: 8px !important;
  background: linear-gradient(180deg, #f3fbf9 0%, #ffffff 100%) !important;
}

.entry-content div[style*="border:1px"][style*="background:#f7fbff"] strong,
.wp-block-post-content div[style*="border:1px"][style*="background:#f7fbff"] strong {
  color: #0f3f3a;
  font-size: 1.02rem;
}

.entry-content div[style*="border:1px"][style*="background:#f7fbff"] li::marker,
.wp-block-post-content div[style*="border:1px"][style*="background:#f7fbff"] li::marker {
  color: #d97706;
}

.source-box {
  box-sizing: border-box;
  max-width: min(100%, 760px);
  margin: 1.7rem auto;
  padding: 1rem 1.15rem;
  border: 1px solid #f1d9a8;
  border-left: 5px solid #d97706;
  border-radius: 8px;
  background: #fffbeb;
}

.source-box strong {
  display: block;
  margin-bottom: 0.65rem;
  color: #78350f;
}

.source-box ul {
  display: grid;
  gap: 0.45rem;
  margin: 0;
  padding-left: 1.2rem;
}

.source-box a {
  color: #075985;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.mbti-tasko-ad {
  box-sizing: border-box;
  max-width: min(100%, 760px);
  min-height: 250px;
  margin: 1.8rem auto;
  padding: 0;
  overflow: hidden;
  background: #f8fafc;
}

.mbti-tasko-ad ins {
  min-height: 250px;
}

.mbti-tasko-policy-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem 1.25rem;
  padding: 1rem 18px 2rem;
  color: #4b5563;
  font-size: 0.92rem;
}

.mbti-tasko-policy-links a {
  color: inherit;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.mbti-tasko-disclosure {
  max-width: min(100% - 32px, 760px);
  margin: -1rem auto 2rem;
  color: #667085;
  font-size: 0.86rem;
  line-height: 1.6;
  text-align: center;
}

.mbti-blog-hub {
  box-sizing: border-box;
  max-width: min(100%, 1120px);
  margin: 2rem auto 0;
}

.mbti-blog-categories {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin: 0 auto 1.4rem;
}

.mbti-blog-categories a {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  padding: 0.55rem 0.8rem;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #ffffff;
  color: #164e63;
  font-size: 0.94rem;
  font-weight: 700;
  text-decoration: none;
}

.mbti-blog-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.mbti-blog-card {
  min-width: 0;
}

.mbti-blog-card__link {
  display: grid;
  min-height: 100%;
  gap: 0.7rem;
  padding: 1.05rem;
  border: 1px solid #d8e0ea;
  border-radius: 8px;
  background: #ffffff;
  color: #1f2937;
  text-decoration: none;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.05);
}

.mbti-blog-card__link:hover,
.mbti-blog-card__link:focus {
  border-color: #0f766e;
  box-shadow: 0 14px 30px rgba(15, 118, 110, 0.12);
}

.mbti-blog-card__category {
  width: fit-content;
  padding: 0.22rem 0.48rem;
  border-radius: 6px;
  background: #ecfdf5;
  color: #0f766e;
  font-size: 0.78rem;
  font-weight: 700;
}

.mbti-blog-card h2 {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  color: #0f172a;
  font-size: 1.08rem !important;
  line-height: 1.42 !important;
}

.mbti-blog-card p {
  margin: 0;
  color: #475569;
  font-size: 0.94rem;
  line-height: 1.62;
}

.mbti-blog-card time {
  color: #64748b;
  font-size: 0.84rem;
}

@media (max-width: 700px) {
  body.single-post {
    font-size: 16px;
  }

  .wp-block-group.has-global-padding,
  .wp-block-post-content.has-global-padding {
    padding-left: 18px;
    padding-right: 18px;
  }

  .single-post .wp-block-post-title {
    font-size: clamp(1.85rem, 8vw, 2.25rem) !important;
  }

  .single-post .wp-block-post-title + .wp-block-group {
    margin-bottom: 1.25rem !important;
    font-size: 0.88rem;
  }

  .wp-block-post-title,
  .wp-block-heading {
    line-height: 1.28;
  }

  .wp-block-post-content,
  .entry-content {
    font-size: 1rem;
  }

  .wp-block-post-content p,
  .entry-content p {
    line-height: 1.74;
    margin-block: 0.9rem;
  }

  .wp-block-post-content h2,
  .entry-content h2 {
    margin-top: 2.2rem;
    font-size: 1.32rem;
  }

  .wp-block-post-content h3,
  .entry-content h3 {
    font-size: 1.08rem;
  }

  .mbti-tasko-toc {
    padding: 0.95rem;
    margin-bottom: 1.5rem;
  }

  .article-summary {
    padding: 0.95rem;
  }

  .mbti-tasko-ad,
  .mbti-tasko-ad ins {
    min-height: 220px;
  }

  .mbti-tasko-toc ol {
    padding-left: 1.1rem;
  }

  .mbti-tasko-toc__item--h3 {
    margin-left: 0.35rem;
  }

  .entry-content div[style*="overflow-x:auto"],
  .wp-block-post-content div[style*="overflow-x:auto"] {
    margin: 1.15rem auto !important;
  }

  .entry-content table,
  .wp-block-post-content table {
    min-width: 560px;
    font-size: 0.92rem !important;
  }

  .entry-content table th,
  .entry-content table td,
  .wp-block-post-content table th,
  .wp-block-post-content table td {
    padding: 0.72rem 0.78rem !important;
  }

  .single-post .wp-block-query .wp-block-group.is-nowrap {
    align-items: flex-start;
    gap: 0.55rem;
  }

  .single-post .wp-block-query .wp-block-post-date {
    min-width: 5.6rem;
    font-size: 0.78rem;
  }

  .mbti-blog-grid {
    grid-template-columns: 1fr;
  }

  .mbti-blog-categories {
    gap: 0.5rem;
  }

  .mbti-blog-categories a {
    min-height: 40px;
    font-size: 0.9rem;
  }
}

@media (min-width: 701px) and (max-width: 1020px) {
  .mbti-blog-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
