:root {
  --content-ink: #11110f;
  --content-navy: #12243a;
  --content-gold: #bea064;
  --content-gold-light: #dbc897;
  --content-paper: #fbfaf7;
  --content-ivory: #f4f0e7;
  --content-muted: #6f6b64;
  --content-line: #ddd6c8;
  --content-success: #2f6f55;
  --content-error: #a33d3d;
}

.content-page { background: var(--content-paper); }
.content-hero {
  padding: clamp(90px, 11vw, 145px) clamp(22px, 7vw, 100px) clamp(68px, 8vw, 104px);
  color: #fff;
  background:
    linear-gradient(100deg, rgba(7, 10, 12, .80), rgba(10, 16, 21, .20)),
    url("/assets/blog-hero-hq.webp") center center / cover no-repeat;
  background-color: #12243a;
}
.content-hero .eyebrow { color: var(--content-gold-light); }
.content-hero h1 {
  max-width: 900px;
  margin: 0 0 24px;
  font-family: Georgia, "Yu Mincho", serif;
  font-size: clamp(2.6rem, 5vw, 5rem);
  font-weight: 500;
  line-height: 1.25;
}
.content-hero > p:last-child { max-width: 760px; margin: 0; color: #d7d3ca; }
.content-shell { max-width: 1240px; padding: clamp(60px, 8vw, 100px) 24px; margin: 0 auto; }
.content-toolbar { display: flex; gap: 16px; justify-content: space-between; align-items: end; margin-bottom: 34px; }
.content-toolbar h2 { margin: 0; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(1.8rem, 3vw, 2.8rem); }
.content-toolbar select {
  min-width: 200px;
  padding: 12px 42px 12px 14px;
  background: #fff;
  border: 1px solid var(--content-line);
  font: inherit;
}
.blog-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.blog-card { display: flex; min-height: 100%; flex-direction: column; background: #fff; border: 1px solid var(--content-line); transition: transform .2s, box-shadow .2s; }
.blog-card:hover { transform: translateY(-4px); box-shadow: 0 18px 42px rgba(13, 18, 24, .09); }
.blog-card-media { aspect-ratio: 16 / 10; overflow: hidden; background: #e8e3d8; }
.blog-card-media img { width: 100%; height: 100%; object-fit: cover; }
.blog-card-placeholder { display: grid; width: 100%; height: 100%; place-items: center; color: #a68c57; font-family: Georgia, serif; letter-spacing: .12em; }
.blog-card-body { display: flex; flex: 1; flex-direction: column; padding: 26px; }
.blog-meta { display: flex; gap: 12px; align-items: center; margin-bottom: 15px; color: var(--content-muted); font-size: .74rem; }
.blog-category { color: #8a6d36; font-weight: 800; letter-spacing: .08em; }
.blog-card h2 { margin: 0 0 14px; font-family: Georgia, "Yu Mincho", serif; font-size: 1.4rem; line-height: 1.5; }
.blog-card p { margin: 0 0 22px; color: var(--content-muted); font-size: .9rem; line-height: 1.8; }
.blog-read-more { margin-top: auto; color: var(--content-navy); font-size: .82rem; font-weight: 800; }
.content-state { padding: 44px; text-align: center; color: var(--content-muted); background: #fff; border: 1px solid var(--content-line); }

.article-shell { max-width: 920px; padding: clamp(62px, 8vw, 100px) 24px; margin: 0 auto; }
.article-header { margin-bottom: 54px; padding-bottom: 34px; border-bottom: 1px solid var(--content-line); }
.article-header h1 { margin: 14px 0 20px; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(2.15rem, 4vw, 3.8rem); line-height: 1.35; }
.article-summary { color: var(--content-muted); font-size: 1.05rem; line-height: 1.9; }
.article-cover { width: 100%; max-height: 580px; margin: 0 0 54px; object-fit: cover; }
.article-body { display: grid; gap: 28px; }
.article-body p { margin: 0; font-size: 1rem; line-height: 2; }
.article-body h2 { margin: 34px 0 0; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(1.65rem, 3vw, 2.3rem); line-height: 1.5; }
.article-body blockquote { margin: 12px 0; padding: 24px 28px; color: #4f493e; background: var(--content-ivory); border-left: 4px solid var(--content-gold); }
.article-body ul { margin: 0; padding-left: 1.4em; }
.article-body li { padding: 5px 0; }
.article-figure { margin: 18px 0; }
.article-figure img { display: block; width: 100%; max-height: 640px; object-fit: cover; }
.article-figure figcaption { margin-top: 10px; color: var(--content-muted); font-size: .78rem; text-align: center; }
.article-link { display: inline-flex; width: fit-content; padding: 13px 20px; color: #fff; background: var(--content-navy); font-weight: 800; }
.article-back { display: inline-flex; margin-top: 54px; color: #735c31; font-weight: 800; }

.assessment-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, .72fr); gap: clamp(34px, 7vw, 86px); align-items: start; }
.assessment-panel { padding: clamp(28px, 5vw, 48px); background: #fff; border-top: 4px solid var(--content-gold); box-shadow: 0 18px 48px rgba(14, 18, 22, .07); }
.assessment-panel h2 { margin-bottom: 8px; font-family: Georgia, "Yu Mincho", serif; font-size: 2rem; }
.assessment-guide { margin-bottom: 28px; color: var(--content-muted); font-size: .9rem; }
.assessment-form { display: grid; gap: 22px; }
.website-field { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.assessment-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.assessment-form-grid .wide { grid-column: 1 / -1; }
.assessment-form label { display: grid; gap: 7px; font-size: .84rem; font-weight: 700; }
.assessment-form input, .assessment-form select, .assessment-form textarea {
  width: 100%;
  min-height: 48px;
  padding: 11px 13px;
  color: var(--content-ink);
  background: #fff;
  border: 1px solid #cfc7b9;
  border-radius: 0;
  font: inherit;
}
.assessment-form textarea { min-height: 120px; resize: vertical; }
.assessment-form input:focus, .assessment-form select:focus, .assessment-form textarea:focus { outline: 2px solid rgba(190, 160, 100, .28); border-color: #987b43; }
.assessment-consent { display: grid !important; grid-template-columns: auto 1fr; align-items: start; gap: 10px !important; padding: 16px; background: #f7f5ef; font-weight: 500 !important; }
.assessment-consent input { width: 16px; min-height: auto; margin-top: 5px; }
.assessment-submit { min-height: 58px; padding: 14px 20px; color: #111; background: var(--content-gold); border: 0; font: inherit; font-weight: 800; cursor: pointer; }
.assessment-submit:disabled { cursor: wait; opacity: .65; }
.assessment-aside { position: sticky; top: 110px; padding: 34px; color: #fff; background: var(--content-navy); }
.assessment-aside h2 { font-family: Georgia, "Yu Mincho", serif; font-size: 1.7rem; }
.assessment-aside ol { padding-left: 1.3em; color: #d6dce3; }
.assessment-aside li { padding: 7px 0; }
.assessment-note { margin-top: 24px; padding-top: 20px; color: #bfc7d0; border-top: 1px solid rgba(255,255,255,.16); font-size: .77rem; }
.assessment-message { min-height: 28px; margin: 0; font-weight: 700; }
.assessment-message.is-error { color: var(--content-error); }
.assessment-result { padding: 28px; background: #f8f3e7; border: 1px solid #ddc78d; }
.assessment-result strong { display: block; margin: 7px 0; color: var(--content-navy); font-family: Georgia, serif; font-size: clamp(1.8rem, 4vw, 2.8rem); }

.assessment-page { background: #f5f3ee; }
.assessment-page main { font-size: 16px; }
.assessment-page main p { line-height: 1.9; }
.assessment-hero {
  display: flex;
  min-height: 430px;
  align-items: center;
  padding: clamp(72px, 8vw, 104px) clamp(22px, 7vw, 100px);
  color: #fff;
  background:
    linear-gradient(100deg, rgba(7, 13, 20, .78), rgba(18, 36, 58, .26)),
    url("/assets/assessment-hero-hq.webp") center center / cover no-repeat;
  background-color: #12243a;
}
.assessment-hero-inner { width: min(100%, 980px); }
.assessment-hero .eyebrow { color: var(--content-gold-light); }
.assessment-hero h1 {
  margin: 0 0 18px;
  font-family: Georgia, "Yu Mincho", serif;
  font-size: clamp(2.35rem, 4.2vw, 4rem);
  font-weight: 500;
  line-height: 1.35;
}
.assessment-hero-inner > p:not(.eyebrow) { max-width: 760px; margin: 0; color: #eef1f3; font-size: 1.05rem; }
.assessment-hero-points {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 30px;
  padding: 0;
  margin: 25px 0 30px;
  list-style: none;
}
.assessment-hero-points li {
  position: relative;
  padding-left: 18px;
  color: #fff;
  font-size: .95rem;
  font-weight: 700;
}
.assessment-hero-points li::before { content: "✓"; position: absolute; left: 0; color: var(--content-gold-light); }
.assessment-hero-action {
  display: inline-flex;
  min-width: 220px;
  min-height: 56px;
  align-items: center;
  justify-content: center;
  padding: 14px 28px;
  color: #111;
  background: var(--content-gold);
  font-size: .95rem;
  font-weight: 800;
}

.assessment-wizard-shell {
  max-width: 1040px;
  padding: clamp(58px, 7vw, 88px) 24px;
  margin: 0 auto;
  scroll-margin-top: 82px;
}
.assessment-wizard-heading { margin-bottom: 34px; text-align: center; }
.assessment-wizard-heading .eyebrow, .assessment-section-heading .eyebrow { color: #92723b; }
.assessment-wizard-heading h2, .assessment-section-heading h2 {
  margin: 8px 0 12px;
  color: var(--content-navy);
  font-family: Georgia, "Yu Mincho", serif;
  font-size: clamp(2rem, 4vw, 3.2rem);
  font-weight: 500;
}
.assessment-wizard-heading > p:last-child, .assessment-section-heading > p:last-child { color: var(--content-muted); font-size: 1rem; }
.assessment-progress {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  padding: 0;
  margin: 0 0 28px;
  list-style: none;
}
.assessment-progress li { position: relative; display: grid; gap: 7px; justify-items: center; color: #8a8d91; text-align: center; }
.assessment-progress li::before {
  content: "";
  position: absolute;
  top: 17px;
  right: 50%;
  z-index: 0;
  width: 100%;
  height: 2px;
  background: #d8d8d5;
}
.assessment-progress li:first-child::before { display: none; }
.assessment-progress span {
  position: relative;
  z-index: 1;
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  background: #dddeda;
  border-radius: 50%;
  font-weight: 800;
}
.assessment-progress small { font-size: .8rem; font-weight: 700; }
.assessment-progress .is-active, .assessment-progress .is-complete { color: var(--content-navy); }
.assessment-progress .is-active span { color: #111; background: var(--content-gold); box-shadow: 0 0 0 6px rgba(190,160,100,.16); }
.assessment-progress .is-complete span { color: #fff; background: var(--content-success); }
.assessment-progress .is-complete::before, .assessment-progress .is-active::before { background: var(--content-success); }

.assessment-wizard { position: relative; }
.assessment-step {
  position: relative;
  padding: clamp(28px, 5vw, 54px);
  margin: 0;
  background: #fff;
  border: 1px solid #dfdcd5;
  box-shadow: 0 20px 54px rgba(14, 18, 22, .08);
}
.assessment-step::before { content: ""; position: absolute; inset: 0 0 auto; height: 5px; background: var(--content-gold); }
.assessment-step[hidden] { display: none; }
.assessment-step legend {
  float: left;
  display: block;
  width: 100%;
  padding: 8px 0 0;
  margin: 0;
  color: var(--content-navy);
  font-family: Georgia, "Yu Mincho", serif;
  font-size: clamp(1.45rem, 2.8vw, 2.15rem);
  font-weight: 500;
  line-height: 1.5;
}
.assessment-step legend span { display: block; margin-bottom: 5px; color: #96753d; font-family: var(--sans, sans-serif); font-size: .68rem; font-weight: 800; letter-spacing: .16em; }
.assessment-step-lead { clear: both; padding-top: 10px; margin: 0 0 30px; color: var(--content-muted); font-size: 1rem; }
.assessment-question { margin-bottom: 28px; }
.assessment-question-label { display: block; margin-bottom: 12px; color: var(--content-navy); font-size: 1rem; font-weight: 800; }
.assessment-step em { color: #a44239; font-size: .78rem; font-style: normal; }
.assessment-choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.property-type-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.assessment-choice-grid label { position: relative; }
.assessment-choice-grid input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.assessment-choice-grid span {
  display: grid;
  min-height: 58px;
  padding: 12px;
  place-items: center;
  color: #3f4851;
  background: #fafaf8;
  border: 1px solid #cfd2d1;
  font-size: .94rem;
  font-weight: 800;
  text-align: center;
  cursor: pointer;
  transition: border-color .18s, background .18s, box-shadow .18s;
}
.assessment-choice-grid input:checked + span { color: var(--content-navy); background: #f3ead6; border-color: #a8864c; box-shadow: inset 0 0 0 2px #a8864c; }
.assessment-choice-grid input:focus-visible + span { outline: 3px solid rgba(190,160,100,.32); }
.assessment-step .assessment-form-grid label { display: grid; gap: 8px; color: var(--content-navy); font-size: .95rem; font-weight: 800; }
.assessment-step .assessment-form-grid label[hidden] { display: none; }
.assessment-step .assessment-form-grid label.is-dynamic-required::before { content: "必須"; width: fit-content; padding: 1px 5px; color: #a44239; background: #f8e8e5; font-size: .72rem; line-height: 1.5; }
.assessment-step input, .assessment-step select, .assessment-step textarea {
  width: 100%;
  min-height: 52px;
  padding: 12px 14px;
  color: var(--content-ink);
  background: #fff;
  border: 1px solid #c9c9c5;
  border-radius: 0;
  font: inherit;
}
.assessment-step textarea { min-height: 130px; resize: vertical; }
.assessment-step input:focus, .assessment-step select:focus, .assessment-step textarea:focus { outline: 3px solid rgba(190,160,100,.22); border-color: #92723b; }
.assessment-step-actions { display: flex; gap: 12px; justify-content: flex-end; margin-top: 32px; }
.assessment-next, .assessment-back, .assessment-submit {
  min-height: 58px;
  padding: 14px 28px;
  border: 0;
  font: inherit;
  font-size: .95rem;
  font-weight: 800;
  cursor: pointer;
}
.assessment-next, .assessment-submit { min-width: 250px; color: #111; background: var(--content-gold); }
.assessment-back { color: var(--content-navy); background: #fff; border: 1px solid #bfc4c8; }
.assessment-confirm-box { margin-top: 28px; padding: 20px; background: #f5f3ee; border-left: 4px solid var(--content-gold); }
.assessment-confirm-box strong { color: var(--content-navy); }
.assessment-confirm-box p { margin: 7px 0 0; color: var(--content-muted); font-size: .92rem; }
.assessment-step .assessment-consent { margin-top: 16px; }

.assessment-benefits, .assessment-flow-section, .assessment-faq {
  padding: clamp(70px, 9vw, 112px) clamp(22px, 7vw, 100px);
}
.assessment-benefits { background: #fff; }
.assessment-flow-section { color: #fff; background: var(--content-navy); }
.assessment-flow-section .assessment-section-heading h2 { color: #fff; }
.assessment-flow-section .assessment-section-heading > p:last-child { color: #c4ccd4; }
.assessment-section-heading { max-width: 800px; margin-bottom: 40px; }
.assessment-benefit-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: #dedbd4; border: 1px solid #dedbd4; }
.assessment-benefit-grid article { min-height: 290px; padding: 34px; background: #fbfaf7; }
.assessment-benefit-grid span { color: #9a7b43; font-family: Georgia, serif; font-size: 1.3rem; }
.assessment-benefit-grid h3 { margin: 34px 0 12px; color: var(--content-navy); font-family: Georgia, "Yu Mincho", serif; font-size: 1.45rem; }
.assessment-benefit-grid p { margin: 0; color: var(--content-muted); font-size: 1rem; }
.assessment-service-flow { display: grid; grid-template-columns: repeat(4, 1fr); padding: 0; margin: 0; list-style: none; border: 1px solid rgba(255,255,255,.17); }
.assessment-service-flow li { min-height: 210px; padding: 28px; border-right: 1px solid rgba(255,255,255,.17); }
.assessment-service-flow li:last-child { border-right: 0; }
.assessment-service-flow span { color: var(--content-gold-light); font-family: Georgia, serif; }
.assessment-service-flow strong { display: block; margin: 24px 0 10px; font-family: Georgia, "Yu Mincho", serif; font-size: 1.25rem; }
.assessment-service-flow p { margin: 0; color: #d7dde3; font-size: .95rem; }
.assessment-faq { max-width: 1100px; margin: 0 auto; }
.assessment-faq details { background: #fff; border-top: 1px solid var(--content-line); }
.assessment-faq details:last-child { border-bottom: 1px solid var(--content-line); }
.assessment-faq summary { padding: 24px 54px 24px 22px; color: var(--content-navy); font-size: 1rem; font-weight: 800; cursor: pointer; }
.assessment-faq details p { padding: 0 22px 26px; margin: 0; color: var(--content-muted); font-size: 1rem; }

.content-admin-page { background: #f1f3f5; }
.content-admin-main { max-width: 1480px; padding: 34px 24px 72px; margin: 0 auto; }
.admin-content-toolbar { display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; align-items: center; margin-bottom: 24px; }
.admin-content-toolbar nav { display: flex; flex-wrap: wrap; gap: 9px; }
.admin-content-grid { display: grid; grid-template-columns: 330px minmax(0, 1fr); gap: 22px; align-items: start; }
.admin-content-list, .admin-editor { padding: 24px; background: #fff; border: 1px solid #d9dee4; }
.admin-content-list { position: sticky; top: 20px; max-height: calc(100vh - 40px); overflow: auto; }
.admin-content-list button { width: 100%; margin-bottom: 8px; padding: 13px; text-align: left; background: #fff; border: 1px solid #d9dee4; cursor: pointer; }
.admin-content-list button.is-selected { background: #eef2f5; border-left: 4px solid var(--content-gold); }
.admin-post-title { display: block; color: var(--content-navy); font-weight: 800; }
.admin-post-meta { display: block; margin-top: 4px; color: #747d87; font-size: 11px; }
.admin-editor-form { display: grid; gap: 18px; }
.admin-editor-form label { display: grid; gap: 6px; color: var(--content-navy); font-size: 12px; font-weight: 800; }
.admin-editor-form input, .admin-editor-form select, .admin-editor-form textarea {
  width: 100%;
  padding: 11px 13px;
  border: 1px solid #cbd2d9;
  font: inherit;
}
.admin-editor-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.admin-editor-fields .wide { grid-column: 1 / -1; }
.cover-image-field { display: grid; gap: 10px; grid-column: 1 / -1; }
.cover-image-upload {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  padding: 14px;
  background: #f4f6f7;
  border: 1px solid #d9dee4;
}
.cover-image-upload input[type="file"] { flex: 1 1 280px; padding: 9px; background: #fff; }
.cover-image-upload button { min-height: 42px; padding: 10px 18px; color: #fff; background: var(--content-navy); border: 0; font-weight: 800; cursor: pointer; }
.cover-image-upload button:disabled { cursor: wait; opacity: .62; }
.cover-image-upload-status { margin: 0; color: #68727d; font-size: .8rem; }
.cover-image-preview { display: block; width: min(100%, 560px); max-height: 300px; object-fit: cover; border: 1px solid #d9dee4; }
.cover-image-preview[hidden] { display: none; }
.block-toolbar { display: flex; flex-wrap: wrap; gap: 8px; padding: 14px; background: #f4f6f7; }
.block-toolbar button { padding: 9px 12px; background: #fff; border: 1px solid #cbd2d9; cursor: pointer; }
.editor-blocks { display: grid; gap: 12px; }
.editor-block { display: grid; grid-template-columns: 1fr auto; gap: 10px; padding: 14px; background: #fafafa; border: 1px solid #d9dee4; }
.editor-block-fields { display: grid; gap: 8px; }
.editor-block header { display: flex; justify-content: space-between; color: #6d7680; font-size: 11px; font-weight: 800; }
.editor-block textarea { min-height: 110px; resize: vertical; }
.editor-block-remove { align-self: start; padding: 7px 9px; color: #9a3030; background: #fff; border: 1px solid #e0bcbc; cursor: pointer; }
.admin-save-row { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.admin-primary { padding: 13px 22px; color: #fff; background: var(--content-navy); border: 0; font-weight: 800; cursor: pointer; }
.admin-secondary { display: inline-flex; align-items: center; padding: 11px 16px; color: var(--content-navy); background: #fff; border: 1px solid #bfc7ce; font-weight: 700; cursor: pointer; }
.admin-message { min-height: 24px; color: var(--content-success); font-weight: 800; }
.admin-message.is-error { color: var(--content-error); }
.assessment-table-wrap { overflow-x: auto; background: #fff; border: 1px solid #d9dee4; }
.assessment-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.assessment-table th, .assessment-table td { padding: 13px 12px; text-align: left; vertical-align: top; border-bottom: 1px solid #e4e8ec; }
.assessment-table th { white-space: nowrap; color: #5d6772; background: #f6f7f8; }
.assessment-table select { padding: 7px; border: 1px solid #cbd2d9; }

@media (max-width: 980px) {
  .blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .assessment-layout, .admin-content-grid { grid-template-columns: 1fr; }
  .assessment-aside, .admin-content-list { position: static; max-height: none; }
  .assessment-benefit-grid { grid-template-columns: 1fr; }
  .assessment-service-flow { grid-template-columns: repeat(2, 1fr); }
  .assessment-service-flow li:nth-child(2) { border-right: 0; }
  .assessment-service-flow li:nth-child(-n + 2) { border-bottom: 1px solid rgba(255,255,255,.17); }
}
@media (max-width: 640px) {
  .content-hero { padding: 76px 20px 62px; }
  .content-toolbar { align-items: stretch; flex-direction: column; }
  .content-toolbar select { width: 100%; }
  .blog-grid, .assessment-form-grid, .admin-editor-fields { grid-template-columns: 1fr; }
  .assessment-form-grid .wide { grid-column: auto; }
  .admin-editor-fields .wide { grid-column: auto; }
  .content-shell, .article-shell { padding-right: 18px; padding-left: 18px; }
  .assessment-panel { padding: 26px 18px; }
  .assessment-hero { min-height: 380px; padding: 58px 20px; }
  .assessment-hero h1 { font-size: 2.15rem; }
  .assessment-hero-points { gap: 9px 18px; }
  .assessment-wizard-shell { padding: 56px 16px; }
  .assessment-progress small { font-size: .62rem; line-height: 1.35; }
  .assessment-progress span { width: 32px; height: 32px; }
  .assessment-progress li::before { top: 15px; }
  .assessment-step { padding: 28px 18px; }
  .assessment-choice-grid, .property-type-grid { grid-template-columns: 1fr 1fr; }
  .assessment-step-actions { align-items: stretch; flex-direction: column-reverse; }
  .assessment-next, .assessment-back, .assessment-submit { width: 100%; min-width: 0; }
  .assessment-benefits, .assessment-flow-section, .assessment-faq { padding: 62px 20px; }
  .assessment-service-flow { grid-template-columns: 1fr; }
  .assessment-service-flow li { min-height: auto; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.17); }
  .assessment-service-flow li:last-child { border-bottom: 0; }
}


/* Blog discovery and management */
.content-breadcrumb {
  width: min(1180px, calc(100% - 40px));
  margin: 0 auto;
  padding: 22px 0 16px;
}
.content-breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: 0;
  padding: 0;
  align-items: center;
  list-style: none;
  color: #6f7880;
  font-size: 13px;
}
.content-breadcrumb li + li::before {
  content: "/";
  margin-right: 7px;
  color: #a9afb5;
}
.content-breadcrumb a { color: #44515d; text-decoration: none; }
.content-breadcrumb a:hover { text-decoration: underline; }
.content-breadcrumb [aria-current="page"] {
  max-width: min(560px, 60vw);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.article-breadcrumb { padding-bottom: 0; }

.featured-articles-section {
  margin-top: clamp(42px, 6vw, 72px);
  padding-top: 0;
}
.featured-heading {
  display: flex;
  gap: 24px;
  margin-bottom: 24px;
  align-items: end;
  justify-content: space-between;
}
.featured-heading h2 { margin: 5px 0 0; }
.featured-heading > p { max-width: 520px; margin: 0; color: #65717c; white-space: nowrap; }
.featured-blog-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}
.featured-blog-card {
  position: relative;
  border-top: 3px solid var(--content-gold);
  box-shadow: 0 16px 42px rgb(13 31 48 / 13%);
}
.featured-blog-card:first-child { grid-column: span 1; }
.featured-badge {
  position: absolute;
  top: 14px;
  left: 14px;
  padding: 7px 11px;
  color: #fff;
  background: rgb(12 29 45 / 88%);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
}

.article-index-section { margin-top: clamp(44px, 7vw, 84px); }
.blog-index-toolbar { align-items: end; }
.blog-sort-control {
  display: grid;
  gap: 6px;
  min-width: 170px;
  color: #53616e;
  font-size: 12px;
  font-weight: 800;
}
.blog-sort-control select {
  min-height: 44px;
  padding: 9px 38px 9px 12px;
  border: 1px solid #ccd3da;
  background: #fff;
  color: #172535;
  font: inherit;
}
.blog-category-navigation {
  margin: 8px 0 24px;
  padding: 22px;
  border: 1px solid #dce1e5;
  background: #f7f8f9;
}
.blog-category-navigation > p {
  margin: 0 0 12px;
  color: #3e4b57;
  font-size: 13px;
  font-weight: 800;
}
.blog-category-tabs { display: flex; flex-wrap: wrap; gap: 9px; }
.blog-category-tab {
  min-height: 40px;
  padding: 8px 15px;
  border: 1px solid #c9d0d6;
  border-radius: 999px;
  color: #344250;
  background: #fff;
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
}
.blog-category-tab:hover { border-color: var(--content-gold); }
.blog-category-tab.is-active {
  color: #fff;
  border-color: var(--content-navy);
  background: var(--content-navy);
}
.blog-result-summary {
  display: flex;
  gap: 10px;
  margin: 0 0 18px;
  color: #707a83;
  font-size: 13px;
}
.blog-result-summary strong { color: #1b2a38; }

/* Blog admin list controls */
.admin-new-post-button {
  display: flex;
  width: 100%;
  min-height: 70px;
  margin: 0 0 24px;
  padding: 14px 16px;
  gap: 13px;
  align-items: center;
  border: 0;
  color: #fff;
  background: var(--content-navy);
  text-align: left;
  cursor: pointer;
  box-shadow: 0 8px 20px rgb(13 31 48 / 18%);
}
.admin-new-post-button > span:first-child {
  display: grid;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 50%;
  background: var(--content-gold);
  font-size: 24px;
}
.admin-new-post-button strong, .admin-new-post-button small { display: block; }
.admin-new-post-button strong { font-size: 15px; }
.admin-new-post-button small { margin-top: 3px; color: #c9d3dd; font-size: 11px; }
.admin-new-post-button:hover { background: #1c334a; }

.admin-post-list-heading {
  display: flex;
  gap: 12px;
  align-items: end;
  justify-content: space-between;
  margin-bottom: 15px;
}
.admin-post-list-heading h2 { margin: 4px 0 0; }
#admin-post-count { color: #6b7580; font-size: 12px; white-space: nowrap; }
.admin-post-filters {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 16px;
}
.admin-post-filters label {
  display: grid;
  gap: 5px;
  color: #56616c;
  font-size: 11px;
  font-weight: 800;
}
.admin-post-search { grid-column: 1 / -1; }
.admin-post-filters input, .admin-post-filters select {
  width: 100%;
  min-height: 40px;
  padding: 8px 10px;
  border: 1px solid #cfd5da;
  background: #fff;
  font: inherit;
  font-size: 12px;
}
.admin-post-meta {
  display: flex !important;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}
.admin-post-status, .admin-post-featured {
  padding: 3px 7px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 800;
}
.admin-post-status.is-published { color: #24643c; background: #e7f3eb; }
.admin-post-status.is-draft { color: #6b5b34; background: #f5eedc; }
.admin-post-featured { color: #725514; background: #f6e8bd; }
.admin-post-empty {
  padding: 20px 8px;
  color: #737d86;
  text-align: center;
  font-size: 13px;
}
.featured-toggle {
  display: flex !important;
  min-height: 62px;
  padding: 12px 14px;
  gap: 11px;
  align-items: center;
  border: 1px solid #d7c28c;
  background: #fffaf0;
}
.featured-toggle input { flex: 0 0 auto; width: 19px; height: 19px; accent-color: var(--content-gold); }
.featured-toggle span, .featured-toggle strong, .featured-toggle small { display: block; }
.featured-toggle small { margin-top: 3px; color: #746b59; font-weight: 500; }

@media (max-width: 820px) {
  .featured-blog-grid { grid-template-columns: 1fr; }
  .featured-heading { align-items: flex-start; flex-direction: column; }
  .featured-heading > p { white-space: normal; }
  .blog-index-toolbar { align-items: flex-start; }
  .blog-sort-control { width: 100%; }
}

@media (max-width: 560px) {
  .content-breadcrumb { width: calc(100% - 32px); padding-top: 16px; }
  .content-breadcrumb [aria-current="page"] { max-width: 52vw; }
  .blog-category-navigation { padding: 17px 14px; }
  .blog-category-tabs { gap: 7px; }
  .blog-category-tab { min-height: 38px; padding: 7px 12px; font-size: 12px; }
  .admin-post-filters { grid-template-columns: 1fr; }
  .admin-post-search { grid-column: auto; }
}

.pagination-load-more { display: block; margin: 28px auto 0; min-width: 220px; }
.blog-card, .investment-card { content-visibility: auto; contain-intrinsic-size: 360px; }


/* Blog publishing schedule calendar */
.publish-calendar-panel{
  margin:0 0 28px;
  padding:24px;
  border:1px solid #d9dfe4;
  background:#fff;
  box-shadow:0 10px 30px rgb(13 31 48 / 7%);
}
.publish-calendar-header{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
}
.publish-calendar-header h2{margin:4px 0 6px;font-size:24px}
.publish-calendar-summary{margin:0;color:#596875;font-size:14px}
.publish-calendar-controls{display:flex;gap:7px}
.publish-calendar-controls button{
  min-width:42px;
  min-height:40px;
  padding:7px 13px;
  border:1px solid #cbd3d9;
  background:#fff;
  color:#172535;
  font:inherit;
  font-weight:800;
  cursor:pointer;
}
.publish-calendar-controls button:hover{border-color:var(--content-gold);background:#fffaf0}
.publish-calendar-title-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin:24px 0 10px;
}
.publish-calendar-title-row>strong{font-size:20px}
.publish-calendar-title-row>span{display:flex;align-items:center;gap:7px;color:#61707c;font-size:12px;font-weight:700}
.publish-calendar-title-row i{width:10px;height:10px;border-radius:50%;background:var(--content-gold)}
.publish-calendar{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  border-top:1px solid #d8dee3;
  border-left:1px solid #d8dee3;
}
.publish-calendar-weekday{
  padding:9px 6px;
  border-right:1px solid #d8dee3;
  border-bottom:1px solid #d8dee3;
  background:#f4f6f7;
  color:#52606b;
  text-align:center;
  font-size:12px;
  font-weight:800;
}
.publish-calendar-weekday:first-child{color:#b5493c}
.publish-calendar-weekday:nth-child(7){color:#356786}
.publish-calendar-day{
  min-height:112px;
  padding:8px;
  border-right:1px solid #d8dee3;
  border-bottom:1px solid #d8dee3;
  background:#fff;
}
.publish-calendar-day.is-outside{background:#f8f9fa;color:#aab2b8}
.publish-calendar-date{
  display:grid;
  width:25px;
  height:25px;
  margin-bottom:5px;
  place-items:center;
  border-radius:50%;
  font-size:12px;
  font-weight:800;
}
.publish-calendar-day.is-today .publish-calendar-date{background:var(--content-navy);color:#fff}
.publish-calendar-event{
  display:block;
  width:100%;
  margin-top:5px;
  padding:7px 8px;
  overflow:hidden;
  border:0;
  border-left:4px solid var(--content-gold);
  border-radius:2px;
  background:#fff8e6;
  color:#253442;
  text-align:left;
  cursor:pointer;
}
.publish-calendar-event:hover{background:#f7ebc8}
.publish-calendar-event b,.publish-calendar-event span{display:block}
.publish-calendar-event b{margin-bottom:2px;color:#745816;font-size:11px}
.publish-calendar-event span{overflow:hidden;font-size:12px;font-weight:700;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:760px){
  .publish-calendar-panel{padding:18px 14px;overflow:hidden}
  .publish-calendar-header{align-items:flex-start;flex-direction:column}
  .publish-calendar-controls{width:100%}
  .publish-calendar-controls button:nth-child(2){flex:1}
  .publish-calendar-title-row{margin-top:20px}
  .publish-calendar-title-row>span{display:none}
  .publish-calendar{grid-template-columns:repeat(7,minmax(96px,1fr));overflow-x:auto}
  .publish-calendar-panel::after{content:"カレンダーは横にスクロールできます";display:block;margin-top:8px;color:#75818a;font-size:11px;text-align:right}
}


/* Keep the primary article action legible before hover. */
.admin-content-list .admin-new-post-button{
  color:#fff;
  border-color:var(--content-navy);
  background:var(--content-navy);
}
.admin-content-list .admin-new-post-button strong{
  color:#fff;
  opacity:1;
  visibility:visible;
}
.admin-content-list .admin-new-post-button small{
  color:#c9d3dd;
  opacity:1;
  visibility:visible;
}
.admin-content-list .admin-new-post-button:hover,
.admin-content-list .admin-new-post-button:focus-visible{
  color:#fff;
  border-color:#1c334a;
  background:#1c334a;
}


/* Calendar history, status legend and featured marker */
.publish-calendar-legend{display:flex;align-items:center;gap:14px}
.publish-calendar-legend span{display:flex;align-items:center;gap:7px;color:#61707c;font-size:12px;font-weight:700}
.publish-calendar-legend i{display:block;width:10px;height:10px;border-radius:50%;background:var(--content-gold)}
.publish-calendar-legend .is-published i{background:#78909f}
.publish-calendar-event.is-published{border-left-color:#78909f;background:#eef3f5}
.publish-calendar-event.is-published:hover{background:#e1e9ed}
.publish-calendar-event.is-published b{color:#526a77}
.publish-calendar-event-meta{display:flex!important;align-items:center;justify-content:space-between;gap:6px}
.publish-calendar-event-meta b{margin:0}
.publish-calendar-featured{display:inline-block;padding:2px 5px;border-radius:999px;background:#c8a45c;color:#fff;font-size:9px;font-style:normal;font-weight:800;line-height:1.4;white-space:nowrap}
.publish-calendar-event-title{margin-top:4px}
@media(max-width:760px){
  .publish-calendar-legend{display:none}
}
