@charset "UTF-8";
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-size: 62.5%;
  scroll-behavior: smooth;
}

body {
  font-family: "Noto Sans JP", sans-serif;
  line-height: 1.8;
  -webkit-font-smoothing: antialiased;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  text-decoration: none;
  color: inherit;
}

ul,
ol {
  list-style: none;
}

button {
  cursor: pointer;
  border: none;
  background: none;
  font-family: inherit;
}

/* ---------- Summary block (LLMO) ---------- */
.ai-summary {
  border: 1px solid rgba(201, 165, 92, 0.22);
  border-left: 3px solid #c9a55c;
  background: rgba(201, 165, 92, 0.05);
  padding: 2.6rem 3rem;
  margin: 0 0 5.6rem;
  font-size: 1.5rem;
  color: #a7b0c3;
}

.ai-summary b {
  color: #e6cd90;
}

.ai-summary strong {
  color: #eceef4;
}

/* ---------- Pricing ---------- */
.pricing {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.2rem;
  align-items: stretch;
}

@media screen and (max-width: calc(821px - 1px)) {
  .pricing {
    grid-template-columns: 1fr;
  }
}
.price-card {
  background: #0e1830;
  border: 1px solid rgba(255, 255, 255, 0.08);
  padding: 4.4rem 3.4rem;
  display: flex;
  flex-direction: column;
  position: relative;
}

.price-card--main {
  border: 1px solid #c9a55c;
  background: linear-gradient(180deg, rgba(201, 165, 92, 0.08), rgba(201, 165, 92, 0) 55%), #0e1830;
}

.price-card__tag {
  position: absolute;
  top: -1.3rem;
  left: 50%;
  transform: translateX(-50%);
  background: linear-gradient(105deg, #b18a3e 0%, #e6cd90 50%, #c9a55c 100%);
  color: #080d1a;
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  padding: 4px 2rem;
  white-space: nowrap;
}

.price-card__name {
  font-family: "Zen Old Mincho", "Hiragino Mincho ProN", serif;
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 0.6rem;
}

.price-card__en {
  font-family: "Montserrat", "Helvetica Neue", sans-serif;
  font-size: 1.1rem;
  letter-spacing: 0.26em;
  color: #c9a55c;
  text-transform: uppercase;
  margin-bottom: 2.4rem;
}

.price-card__price {
  border-top: 1px solid rgba(201, 165, 92, 0.22);
  border-bottom: 1px solid rgba(201, 165, 92, 0.22);
  padding: 2rem 0;
  margin-bottom: 2.4rem;
}

.price-card__price b {
  font-family: "Montserrat", "Helvetica Neue", sans-serif;
  font-size: 3.6rem;
  font-weight: 700;
  color: #e6cd90;
}

.price-card__price span {
  font-size: 1.25rem;
  color: #6f7a92;
  display: block;
  margin-top: 2px;
}

.price-card ul {
  flex: 1;
  margin-bottom: 2.8rem;
}

.price-card li {
  font-size: 1.35rem;
  color: #a7b0c3;
  padding: 0.9rem 0 0.9rem 2.4rem;
  border-bottom: 1px dashed rgba(255, 255, 255, 0.08);
  position: relative;
}

.price-card li::before {
  content: "◆";
  position: absolute;
  left: 2px;
  font-size: 0.9rem;
  color: #c9a55c;
  top: 1.4rem;
}

.price-note {
  margin-top: 2.2rem;
  font-size: 1.2rem;
  color: #6f7a92;
  text-align: center;
}

/* ---------- Table ---------- */
.table-wrap {
  overflow-x: auto;
}

/* cmp クラスを持たない素の table も横スクロールさせる */
.table-wrap > table {
  min-width: 64rem;
}

table.cmp {
  width: 100%;
  border-collapse: collapse;
  font-size: 1.4rem;
  min-width: 64rem;
}

.cmp th,
.cmp td {
  padding: 1.6rem 1.8rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
  text-align: left;
  vertical-align: top;
}

.cmp thead th {
  background: #13203e;
  font-size: 1.3rem;
  letter-spacing: 0.08em;
}

.cmp th[scope=row] {
  background: #0b1224;
  width: 20rem;
  font-weight: 700;
  color: #e6cd90;
  font-size: 1.3rem;
}

.cmp td.good {
  color: #e6cd90;
  font-weight: 700;
}

.cmp td {
  color: #a7b0c3;
}

/* ---------- FAQ ---------- */
.faq {
  border-top: 1px solid rgba(201, 165, 92, 0.22);
}

.faq details {
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.faq summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  gap: 1.8rem;
  align-items: baseline;
  padding: 2.6rem 0.8rem;
  font-size: 1.55rem;
  font-weight: 700;
}

.faq summary::-webkit-details-marker {
  display: none;
}

.faq summary::before {
  content: "Q.";
  font-family: "Montserrat", "Helvetica Neue", sans-serif;
  color: #c9a55c;
  font-size: 1.8rem;
}

.faq summary::after {
  content: "+";
  margin-left: auto;
  font-family: "Montserrat", "Helvetica Neue", sans-serif;
  color: #c9a55c;
  font-size: 2.2rem;
  transition: transform 0.3s;
}

.faq details[open] summary::after {
  transform: rotate(45deg);
}

.faq .faq__a {
  display: flex;
  gap: 1.8rem;
  padding: 0 0.8rem 2.8rem;
  color: #a7b0c3;
  font-size: 1.45rem;
}

.faq .faq__a::before {
  content: "A.";
  font-family: "Montserrat", "Helvetica Neue", sans-serif;
  color: #e6cd90;
  font-size: 1.8rem;
}

/* ---------- Page hero (lower) ---------- */
.page-hero {
  padding: 5rem 0;
  background: radial-gradient(ellipse 80rem 40rem at 80% 0%, rgba(27, 44, 82, 0.5), transparent 60%), #080d1a;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
@media screen and (min-width: 640px) {
  .page-hero {
    padding: 10rem 0 7rem;
    background: radial-gradient(ellipse 80rem 40rem at 80% 0%, rgba(27, 44, 82, 0.5), transparent 60%), #080d1a;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  }
}

.page-hero__kicker {
  font-family: "Montserrat", "Helvetica Neue", sans-serif;
  font-size: 1.2rem;
  letter-spacing: 0.34em;
  color: #c9a55c;
  text-transform: uppercase;
  margin-bottom: 1.4rem;
}

.page-hero h1 {
  font-family: "Zen Old Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(2.6rem, 3.8vw, 4.2rem);
  font-weight: 900;
  letter-spacing: 0.06em;
  line-height: 1.5;
  margin-bottom: 1.8rem;
}

.page-hero p {
  color: #a7b0c3;
  max-width: 76rem;
  font-size: 1.5rem;
}

.breadcrumb {
  display: flex;
  gap: 1rem;
  font-size: 1.15rem;
  color: #6f7a92;
  margin-bottom: 3.4rem;
  flex-wrap: wrap;
}

.breadcrumb a {
  color: #6f7a92;
}

.breadcrumb a:hover {
  color: #e6cd90;
}

.breadcrumb li:not(:last-child)::after {
  content: "/";
  margin-left: 1rem;
  color: #6f7a92;
}

/* ---------- Works ---------- */
.work {
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: #0e1830;
  padding: 3.8rem 3.4rem;
  display: grid;
  grid-template-columns: 1fr 24rem;
  gap: 3rem;
}

@media screen and (max-width: calc(821px - 1px)) {
  .work {
    grid-template-columns: 1fr;
  }
}
.work + .work {
  margin-top: 2.2rem;
}

.work__cat {
  font-size: 1.1rem;
  letter-spacing: 0.2em;
  color: #c9a55c;
  margin-bottom: 1.2rem;
  font-family: "Montserrat", "Helvetica Neue", sans-serif;
  text-transform: uppercase;
}

.work h3 {
  font-family: "Zen Old Mincho", "Hiragino Mincho ProN", serif;
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 1.2rem;
}

.work p {
  font-size: 1.35rem;
  color: #a7b0c3;
}

.work__result {
  border-left: 1px solid rgba(201, 165, 92, 0.22);
  padding-left: 3rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

@media screen and (max-width: calc(821px - 1px)) {
  .work__result {
    border-left: none;
    border-top: 1px solid rgba(201, 165, 92, 0.22);
    padding: 2rem 0 0;
  }
}
.work__result b {
  font-family: "Montserrat", "Helvetica Neue", sans-serif;
  font-size: 3.8rem;
  font-weight: 700;
  color: #e6cd90;
  line-height: 1.1;
}

.work__result span {
  font-size: 1.2rem;
  color: #6f7a92;
  margin-top: 0.6rem;
}

/* ---------- Column list ---------- */
.post {
  display: grid;
  grid-template-columns: 15rem 1fr;
  gap: 2.6rem;
  padding: 3rem 0.8rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  align-items: baseline;
}

.post time {
  font-family: "Montserrat", "Helvetica Neue", sans-serif;
  font-size: 1.3rem;
  color: #6f7a92;
  letter-spacing: 0.1em;
}

.post__cat {
  display: inline-block;
  font-size: 1.05rem;
  border: 1px solid rgba(201, 165, 92, 0.22);
  color: #e6cd90;
  padding: 2px 1rem;
  margin-bottom: 0.8rem;
  letter-spacing: 0.12em;
}

.post h3 {
  font-size: 1.65rem;
  font-weight: 700;
  line-height: 1.7;
}

.post h3 a:hover {
  color: #e6cd90;
}

.post p {
  font-size: 1.3rem;
  color: #6f7a92;
  margin-top: 0.6rem;
}

@media screen and (max-width: calc(821px - 1px)) {
  .post {
    grid-template-columns: 1fr;
    gap: 0.6rem;
  }
}
/* ---------- Profile ---------- */
.profile {
  display: grid;
  grid-template-columns: 30rem 1fr;
  gap: 5rem;
  align-items: start;
}

@media screen and (max-width: calc(821px - 1px)) {
  .profile {
    grid-template-columns: 1fr;
  }
}
.profile__photo {
  aspect-ratio: 3/3.4;
  background: linear-gradient(160deg, #1b2c52, #0b1224);
  border: 1px solid rgba(201, 165, 92, 0.22);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #6f7a92;
  font-size: 1.2rem;
  letter-spacing: 0.2em;
}

.profile h3 {
  font-family: "Zen Old Mincho", "Hiragino Mincho ProN", serif;
  font-size: 2.4rem;
  font-weight: 700;
  margin-bottom: 4px;
}

.profile__en {
  font-family: "Montserrat", "Helvetica Neue", sans-serif;
  font-size: 1.2rem;
  letter-spacing: 0.26em;
  color: #c9a55c;
  margin-bottom: 2.2rem;
}

.profile p {
  font-size: 1.45rem;
  color: #a7b0c3;
  margin-bottom: 1.6rem;
}

.dl {
  border-top: 1px solid rgba(201, 165, 92, 0.22);
}

.dl > div {
  display: grid;
  grid-template-columns: 18rem 1fr;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.dl dt {
  padding: 1.6rem 1rem;
  font-size: 1.3rem;
  color: #e6cd90;
  letter-spacing: 0.1em;
  font-weight: 700;
}

.dl dd {
  padding: 1.6rem 1rem;
  font-size: 1.4rem;
  color: #a7b0c3;
}

@media screen and (max-width: calc(821px - 1px)) {
  .dl > div {
    grid-template-columns: 1fr;
  }
  .dl dd {
    padding-top: 0;
  }
}
/* ---------- Form ---------- */
.form {
  max-width: 72rem;
  margin: 0 auto;
}

.form__row {
  margin-bottom: 2.6rem;
}

.form label {
  display: block;
  font-size: 1.3rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  margin-bottom: 1rem;
  color: #e6cd90;
}

.form label .req {
  color: #d98a8a;
  font-size: 1.05rem;
  margin-left: 1rem;
  border: 1px solid #d98a8a;
  padding: 1px 0.8rem;
}

.form input,
.form select,
.form textarea {
  width: 100%;
  background: #0e1830;
  border: 1px solid rgba(255, 255, 255, 0.08);
  padding: 1.5rem 1.6rem;
  color: #eceef4;
  font-size: 1.5rem;
  font-family: "Noto Sans JP", -apple-system, sans-serif;
  transition: border-color 0.3s;
}

.form input:focus,
.form select:focus,
.form textarea:focus {
  outline: none;
  border-color: #c9a55c;
}

.form textarea {
  min-height: 17rem;
  resize: vertical;
}

.form__submit {
  text-align: center;
  margin-top: 4rem;
}

.form__note {
  font-size: 1.2rem;
  color: #6f7a92;
  text-align: center;
  margin-top: 1.8rem;
}

/* ---------- Bridge (service → advisory) ---------- */
.bridge {
  border: 1px solid rgba(201, 165, 92, 0.22);
  padding: 4.4rem 4rem;
  margin-top: 7rem;
  background: linear-gradient(120deg, rgba(201, 165, 92, 0.07), transparent 60%), #0e1830;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 3rem;
  align-items: center;
}

@media screen and (max-width: calc(821px - 1px)) {
  .bridge {
    grid-template-columns: 1fr;
  }
}
.bridge h3 {
  font-family: "Zen Old Mincho", "Hiragino Mincho ProN", serif;
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 1rem;
}

.bridge p {
  font-size: 1.35rem;
  color: #a7b0c3;
}

/* ---------- Books ---------- */
.book {
  display: grid;
  grid-template-columns: 20rem 1fr;
  gap: 4rem;
  align-items: start;
  background: #0e1830;
  border: 1px solid rgba(255, 255, 255, 0.08);
  padding: 4rem;
  transition: border-color 0.3s, transform 0.3s;
}

a.book:hover {
  border-color: rgba(201, 165, 92, 0.22);
  transform: translateY(-4px);
}

.book + .book {
  margin-top: 2.2rem;
}

@media screen and (max-width: calc(821px - 1px)) {
  .book {
    grid-template-columns: 1fr;
    gap: 2.6rem;
  }
}
.book__cover {
  aspect-ratio: 10/14.6;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1.8rem;
  text-align: center;
  padding: 2.4rem 1.8rem;
  position: relative;
  background: radial-gradient(ellipse 90% 60% at 50% 0%, rgba(201, 165, 92, 0.22), transparent 65%), linear-gradient(160deg, #1b2c52, #0b1224 75%);
  border: 1px solid rgba(201, 165, 92, 0.22);
  box-shadow: 1.2rem 1.4rem 3.4rem rgba(0, 0, 0, 0.45);
}

.book__cover::after {
  content: "";
  position: absolute;
  inset: 0.8rem;
  border: 1px solid rgba(201, 165, 92, 0.3);
  pointer-events: none;
}

.book__cover span {
  font-family: "Zen Old Mincho", "Hiragino Mincho ProN", serif;
  font-weight: 700;
  font-size: 1.7rem;
  line-height: 1.8;
  color: #e6cd90;
}

.book__cover small {
  font-family: "Montserrat", "Helvetica Neue", sans-serif;
  font-size: 0.9rem;
  letter-spacing: 0.3em;
  color: #6f7a92;
}

.book__body h3 {
  font-family: "Zen Old Mincho", "Hiragino Mincho ProN", serif;
  font-size: 2.1rem;
  font-weight: 700;
  margin-bottom: 1rem;
  line-height: 1.6;
}

.book__body p {
  font-size: 1.4rem;
  color: #a7b0c3;
  margin-bottom: 1.4rem;
}

.book__meta {
  font-size: 1.25rem;
  color: #6f7a92;
}

.book--single {
  background: transparent;
  border: none;
  padding: 0;
}

.book--single:hover {
  transform: none;
}

/* ---------- 導入事例（case） ---------- */
.case-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.2rem;
}
@media screen and (max-width: calc(1000px - 1px)) {
  .case-cards {
    grid-template-columns: 1fr 1fr;
  }
}
@media screen and (max-width: calc(640px - 1px)) {
  .case-cards {
    grid-template-columns: 1fr;
  }
}

.case-card {
  background: #0e1830;
  border: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transition: transform 0.3s ease, border-color 0.3s ease;
}
.case-card:hover {
  transform: translateY(-4px);
  border-color: rgba(201, 165, 92, 0.22);
}
.case-card__thumb {
  aspect-ratio: 16/9;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  background: radial-gradient(ellipse 70% 90% at 80% 0%, rgba(201, 165, 92, 0.14), transparent 60%), linear-gradient(145deg, #1b2c52, #0b1224 70%);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.case-card__thumb img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.case-card__thumb span {
  font-family: "Montserrat", "Helvetica Neue", sans-serif;
  font-size: 1.2rem;
  letter-spacing: 0.3em;
  font-weight: 600;
  color: rgba(230, 205, 144, 0.75);
  text-transform: uppercase;
}
.case-card__body {
  padding: 2.2rem 2.2rem 2.6rem;
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 1rem;
}
.case-card__industry {
  align-self: flex-start;
  font-size: 1.05rem;
  letter-spacing: 0.14em;
  border: 1px solid rgba(201, 165, 92, 0.22);
  color: #e6cd90;
  padding: 0.2rem 1rem;
}
.case-card h3 {
  font-size: 1.55rem;
  font-weight: 700;
  line-height: 1.7;
  flex: 1;
}
.case-card__kpi {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding-top: 1.4rem;
  font-size: 1.2rem;
  color: #6f7a92;
}
.case-card__kpi b {
  display: block;
  font-family: "Montserrat", "Helvetica Neue", sans-serif;
  font-size: 2.2rem;
  font-weight: 700;
  color: #e6cd90;
}

.case-single__stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.2rem;
  margin-bottom: 6.4rem;
}
@media screen and (max-width: calc(640px - 1px)) {
  .case-single__stats {
    grid-template-columns: 1fr;
  }
}
.case-single__stat {
  border: 1px solid rgba(201, 165, 92, 0.22);
  background: rgba(201, 165, 92, 0.05);
  padding: 2.8rem 2.4rem;
  text-align: center;
}
.case-single__stat b {
  display: block;
  font-family: "Montserrat", "Helvetica Neue", sans-serif;
  font-size: 3.4rem;
  font-weight: 700;
  color: #e6cd90;
  line-height: 1.2;
}
.case-single__stat span {
  font-size: 1.2rem;
  color: #6f7a92;
  letter-spacing: 0.1em;
}
.case-single__block {
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: #0e1830;
  padding: 3.4rem 3rem;
}
.case-single__block + .case-single__block {
  margin-top: 2.2rem;
}
.case-single__block h3 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  justify-content: flex-start;
  gap: 1.4rem;
  font-size: 1.7rem;
  font-weight: 700;
  color: #e6cd90;
  margin-bottom: 1.2rem;
}
.case-single__block h3::before {
  content: attr(data-en);
  font-family: "Montserrat", "Helvetica Neue", sans-serif;
  font-size: 1.1rem;
  letter-spacing: 0.26em;
  color: #c9a55c;
  text-transform: uppercase;
}
.case-single__block p {
  font-size: 1.45rem;
  color: #a7b0c3;
}
.case-single__testimonial {
  margin-top: 6.4rem;
  border-left: 3px solid #c9a55c;
  background: rgba(201, 165, 92, 0.05);
  padding: 3rem 3.4rem;
}
.case-single__testimonial p {
  font-size: 1.5rem;
  color: #eceef4;
  margin-bottom: 1.2rem;
}
.case-single__testimonial cite {
  font-size: 1.25rem;
  color: #6f7a92;
  font-style: normal;
}
.case-single__meta {
  margin-top: 6.4rem;
}
.case-single__gallery {
  margin-top: 6.4rem;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2.2rem;
}
@media screen and (max-width: calc(640px - 1px)) {
  .case-single__gallery {
    grid-template-columns: 1fr;
  }
}
.case-single__gallery img {
  border: 1px solid rgba(255, 255, 255, 0.08);
}

/* ---------- 記事本文（column / book 詳細） ---------- */
.entry-content {
  max-width: 76rem;
  margin: 0 auto;
}
.entry-content > * + * {
  margin-top: 2.4rem;
}
.entry-content h2 {
  font-family: "Zen Old Mincho", "Hiragino Mincho ProN", serif;
  font-size: 2.4rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.6;
  padding-bottom: 1.4rem;
  border-bottom: 1px solid rgba(201, 165, 92, 0.22);
  margin-top: 6.4rem;
}
.entry-content h3 {
  font-size: 1.8rem;
  font-weight: 700;
  color: #e6cd90;
  margin-top: 4.8rem;
}
.entry-content p {
  font-size: 1.55rem;
  color: #a7b0c3;
  line-height: 2.1;
}
.entry-content ul,
.entry-content ol {
  padding-left: 2.4rem;
}
.entry-content ul li,
.entry-content ol li {
  font-size: 1.5rem;
  color: #a7b0c3;
  margin-bottom: 0.8rem;
  list-style: disc;
}
.entry-content ol li {
  list-style: decimal;
}
.entry-content a {
  color: #e6cd90;
  text-decoration: underline;
}
.entry-content blockquote {
  border-left: 3px solid #c9a55c;
  background: rgba(201, 165, 92, 0.05);
  padding: 2rem 2.4rem;
  color: #a7b0c3;
}
.entry-content img {
  border: 1px solid rgba(255, 255, 255, 0.08);
}
.entry-content table {
  width: 100%;
  border-collapse: collapse;
  font-size: 1.4rem;
}
.entry-content table th,
.entry-content table td {
  padding: 1.4rem 1.6rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
}
.entry-content table th {
  background: #13203e;
}
.entry-content table td {
  color: #a7b0c3;
}

.entry-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  justify-content: flex-start;
  gap: 1.6rem;
  max-width: 76rem;
  margin: 0 auto 4rem;
}
.entry-meta time {
  font-family: "Montserrat", "Helvetica Neue", sans-serif;
  font-size: 1.3rem;
  color: #6f7a92;
  letter-spacing: 0.12em;
}

/* ---------- 著者ボックス（E-E-A-T） ---------- */
.author-box {
  max-width: 76rem;
  margin: 6.4rem auto 0;
  border: 1px solid rgba(201, 165, 92, 0.22);
  background: #0e1830;
  padding: 2.8rem 3rem;
  display: grid;
  grid-template-columns: 8rem 1fr;
  gap: 2.4rem;
  align-items: center;
}
@media screen and (max-width: calc(640px - 1px)) {
  .author-box {
    grid-template-columns: 1fr;
  }
}
.author-box__avatar {
  width: 8rem;
  height: 8rem;
  border-radius: 50%;
  border: 1px solid rgba(201, 165, 92, 0.22);
  background: linear-gradient(160deg, #1b2c52, #0b1224);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Montserrat", "Helvetica Neue", sans-serif;
  font-size: 1rem;
  color: #6f7a92;
  overflow: hidden;
}
.author-box__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.author-box h4 {
  font-size: 1.5rem;
  margin-bottom: 0.6rem;
}
.author-box h4 b {
  color: #e6cd90;
}
.author-box p {
  font-size: 1.25rem;
  color: #6f7a92;
}

/* ---------- 2カラムレイアウト+サイドバー ---------- */
.layout-2col {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 32rem;
  gap: 4.8rem;
  align-items: start;
}

.layout-2col > * {
  min-width: 0;
}

@media screen and (max-width: calc(821px - 1px)) {
  .layout-2col {
    grid-template-columns: minmax(0, 1fr);
  }
}
.sidebar {
  position: sticky;
  top: 9.6rem;
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
}

@media screen and (max-width: calc(821px - 1px)) {
  .sidebar {
    position: static;
  }
}
.side-widget {
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: #0e1830;
  padding: 2.6rem 2.4rem;
}

.side-widget--gold {
  border-color: rgba(201, 165, 92, 0.22);
  background: linear-gradient(160deg, rgba(201, 165, 92, 0.08), rgba(201, 165, 92, 0) 60%), #0e1830;
}

.side-widget__kicker {
  font-family: "Montserrat", "Helvetica Neue", sans-serif;
  font-size: 1.05rem;
  letter-spacing: 0.3em;
  color: #c9a55c;
  text-transform: uppercase;
  margin-bottom: 0.6rem;
}

.side-widget__title {
  font-size: 1.5rem;
  font-weight: 700;
  margin-bottom: 1.6rem;
  padding-bottom: 1.2rem;
  border-bottom: 1px solid rgba(201, 165, 92, 0.22);
}

.side-feed li {
  border-bottom: 1px dashed rgba(255, 255, 255, 0.08);
}

.side-feed li:last-child {
  border-bottom: none;
}

.side-feed a {
  display: block;
  padding: 1.2rem 2px;
  font-size: 1.3rem;
  line-height: 1.7;
  color: #a7b0c3;
  transition: color 0.25s;
}

.side-feed a:hover {
  color: #e6cd90;
}

.side-feed time {
  display: block;
  font-family: "Montserrat", "Helvetica Neue", sans-serif;
  font-size: 1.1rem;
  color: #6f7a92;
  letter-spacing: 0.12em;
  margin-bottom: 2px;
}

.side-feed b {
  display: block;
  font-family: "Montserrat", "Helvetica Neue", sans-serif;
  font-size: 1.6rem;
  color: #e6cd90;
  font-weight: 700;
}

.side-cats {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
}

.side-cats a {
  font-size: 1.15rem;
  letter-spacing: 0.08em;
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: #a7b0c3;
  padding: 5px 1.2rem;
  transition: all 0.25s;
}

.side-cats a:hover, .side-cats a.is-active {
  border-color: #c9a55c;
  color: #e6cd90;
}

.side-cta p {
  font-size: 1.25rem;
  color: #a7b0c3;
  margin-bottom: 1.6rem;
}

.side-cta .btn {
  width: 100%;
  padding: 1.3rem 1rem;
  font-size: 1.3rem;
}

.side-cta__note {
  font-size: 1.05rem;
  color: #6f7a92;
  margin-top: 1rem;
  text-align: center;
}

/* 2カラム内のカードは2列 */
.layout-2col .pcards, .layout-2col .case-cards {
  grid-template-columns: 1fr 1fr;
}

@media screen and (max-width: calc(821px - 1px)) {
  .layout-2col .pcards, .layout-2col .case-cards {
    grid-template-columns: 1fr;
  }
}
/* ---------- 目次(TOC) ---------- */
.toc {
  border: 1px solid rgba(201, 165, 92, 0.22);
  background: rgba(201, 165, 92, 0.04);
  padding: 2.6rem 3rem;
  margin-bottom: 4.8rem;
}

.toc__title {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  font-size: 1.4rem;
  font-weight: 700;
  color: #e6cd90;
  margin-bottom: 1.4rem;
}

.toc__title::before {
  content: "INDEX";
  font-family: "Montserrat", "Helvetica Neue", sans-serif;
  font-size: 1.05rem;
  letter-spacing: 0.3em;
  color: #c9a55c;
}

.toc ol {
  counter-reset: toc;
  list-style: none;
}

.toc li {
  counter-increment: toc;
}

.toc li a {
  display: flex;
  gap: 1.2rem;
  padding: 0.8rem 2px;
  font-size: 1.35rem;
  color: #a7b0c3;
  border-bottom: 1px dashed rgba(255, 255, 255, 0.08);
  transition: color 0.25s;
}

.toc li:last-child a {
  border-bottom: none;
}

.toc li a::before {
  content: "0" counter(toc);
  font-family: "Montserrat", "Helvetica Neue", sans-serif;
  color: #c9a55c;
  font-size: 1.2rem;
}

.toc li a:hover {
  color: #e6cd90;
}

.toc li li {
  margin-left: 3.4rem;
}

.toc li li a::before {
  content: "—";
}

/* ---------- クラスターナビ(コラム一覧) ---------- */
.cluster-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 5.6rem;
}

.cluster-nav a {
  font-size: 1.25rem;
  letter-spacing: 0.08em;
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: #a7b0c3;
  padding: 0.8rem 1.8rem;
  transition: all 0.25s;
}

.cluster-nav a:hover {
  border-color: #c9a55c;
  color: #e6cd90;
}

.cluster-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1.6rem;
  margin: 6.4rem 0 2.4rem;
  padding-bottom: 1.4rem;
  border-bottom: 1px solid rgba(201, 165, 92, 0.22);
  flex-wrap: wrap;
}

.cluster-head:first-of-type {
  margin-top: 0;
}

.cluster-head h2 {
  font-family: "Zen Old Mincho", "Hiragino Mincho ProN", serif;
  font-size: 2.2rem;
  font-weight: 700;
  letter-spacing: 0.06em;
}

.cluster-head h2 small {
  font-family: "Montserrat", "Helvetica Neue", sans-serif;
  font-size: 1.1rem;
  letter-spacing: 0.3em;
  color: #c9a55c;
  display: block;
  margin-bottom: 4px;
  text-transform: uppercase;
}

.cluster-head a {
  font-size: 1.2rem;
  letter-spacing: 0.1em;
  color: #c9a55c;
  font-family: "Montserrat", "Helvetica Neue", sans-serif;
}

.cluster-head a:hover {
  color: #e6cd90;
}

/* ---------- チェックリスト(こんな課題) ---------- */
.checklist {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.2rem;
}

@media screen and (max-width: calc(821px - 1px)) {
  .checklist {
    grid-template-columns: 1fr;
  }
}
.checklist li {
  display: flex;
  gap: 1.4rem;
  align-items: flex-start;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: #0e1830;
  padding: 1.6rem 2rem;
  font-size: 1.4rem;
  color: #a7b0c3;
  line-height: 1.8;
}

.checklist li::before {
  content: "✓";
  flex-shrink: 0;
  width: 2.2rem;
  height: 2.2rem;
  margin-top: 3px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(105deg, #b18a3e 0%, #e6cd90 50%, #c9a55c 100%);
  color: #080d1a;
  font-size: 1.2rem;
  font-weight: 700;
}

/* ---------- 図解(インフォグラフィック) ---------- */
.diagram {
  display: flex;
  align-items: stretch;
  gap: 0;
  flex-wrap: wrap;
  border: 1px solid rgba(201, 165, 92, 0.22);
  padding: 3rem 2.6rem;
  background: rgba(201, 165, 92, 0.03);
}

.diagram__step {
  flex: 1;
  min-width: 13rem;
  text-align: center;
  position: relative;
  padding: 1rem 1.8rem;
}

.diagram__step:not(:last-child)::after {
  content: "→";
  position: absolute;
  right: -0.9rem;
  top: 50%;
  transform: translateY(-50%);
  color: #c9a55c;
  font-family: "Montserrat", "Helvetica Neue", sans-serif;
  font-size: 1.8rem;
  z-index: 2;
}

.diagram__step b {
  display: block;
  font-size: 1.45rem;
  font-weight: 700;
  color: #e6cd90;
  margin-bottom: 0.6rem;
}

.diagram__step span {
  font-size: 1.15rem;
  color: #6f7a92;
  line-height: 1.7;
  display: block;
}

.diagram__icon {
  width: 5.2rem;
  height: 5.2rem;
  margin: 0 auto 1.2rem;
  border: 1px solid rgba(201, 165, 92, 0.22);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Montserrat", "Helvetica Neue", sans-serif;
  font-size: 1.1rem;
  letter-spacing: 0.1em;
  color: #c9a55c;
  background: #0e1830;
}

@media screen and (max-width: calc(821px - 1px)) {
  .diagram {
    flex-direction: column;
    gap: 1.8rem;
  }
  .diagram__step:not(:last-child)::after {
    content: "↓";
    right: auto;
    left: 50%;
    top: auto;
    bottom: -1.8rem;
    transform: translateX(-50%);
  }
}
.diagram-note {
  font-size: 1.2rem;
  color: #6f7a92;
  margin-top: 1.2rem;
}

/* ---------- 特長カード(番号付き) ---------- */
.feature {
  display: grid;
  grid-template-columns: 7.2rem 1fr;
  gap: 2.4rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: #0e1830;
  padding: 3rem 3rem;
  align-items: start;
}

.feature + .feature {
  margin-top: 1.8rem;
}

.feature__num {
  font-family: "Montserrat", "Helvetica Neue", sans-serif;
  font-size: 1.3rem;
  letter-spacing: 0.14em;
  color: #c9a55c;
  border: 1px solid rgba(201, 165, 92, 0.22);
  padding: 0.8rem 0;
  text-align: center;
}

.feature h3 {
  font-size: 1.7rem;
  font-weight: 700;
  color: #e6cd90;
  margin-bottom: 0.8rem;
}

.feature p {
  font-size: 1.4rem;
  color: #a7b0c3;
}

@media screen and (max-width: calc(821px - 1px)) {
  .feature {
    grid-template-columns: 1fr;
    gap: 1.2rem;
  }
  .feature__num {
    width: 8rem;
  }
}
/* ---------- 進め方(期間付きステップ) ---------- */
.steps {
  counter-reset: step;
  border-left: 1px solid rgba(201, 165, 92, 0.22);
  margin-left: 0.8rem;
}

.steps__item {
  position: relative;
  padding: 0 0 3.6rem 4rem;
}

.steps__item:last-child {
  padding-bottom: 0;
}

.steps__item::before {
  counter-increment: step;
  content: counter(step);
  position: absolute;
  left: -1.7rem;
  top: 0;
  width: 3.4rem;
  height: 3.4rem;
  border-radius: 50%;
  background: #080d1a;
  border: 1px solid #c9a55c;
  color: #e6cd90;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Montserrat", "Helvetica Neue", sans-serif;
  font-size: 1.4rem;
  font-weight: 700;
}

.steps__item h3 {
  font-size: 1.65rem;
  font-weight: 700;
  margin-bottom: 0.6rem;
  padding-top: 5px;
}

.steps__item h3 small {
  font-size: 1.1rem;
  color: #c9a55c;
  letter-spacing: 0.1em;
  margin-left: 1.2rem;
  border: 1px solid rgba(201, 165, 92, 0.22);
  padding: 2px 1rem;
  font-weight: 500;
}

.steps__item p {
  font-size: 1.4rem;
  color: #a7b0c3;
}

/* ---------- サイドバー:他のサービス ---------- */
.side-services li {
  border-bottom: 1px dashed rgba(255, 255, 255, 0.08);
}

.side-services li:last-child {
  border-bottom: none;
}

.side-services a {
  display: flex;
  gap: 1rem;
  align-items: baseline;
  padding: 1.1rem 2px;
  font-size: 1.3rem;
  color: #a7b0c3;
  transition: color 0.25s;
}

.side-services a:hover {
  color: #e6cd90;
}

.side-services a::before {
  content: "→";
  font-family: "Montserrat", "Helvetica Neue", sans-serif;
  color: #c9a55c;
  font-size: 1.2rem;
}

.side-services a.is-current {
  color: #e6cd90;
  pointer-events: none;
}

/* 2カラム内のカードは2列 */
.layout-2col .pcards, .layout-2col .case-cards {
  grid-template-columns: 1fr 1fr;
}

@media screen and (max-width: calc(821px - 1px)) {
  .layout-2col .pcards, .layout-2col .case-cards {
    grid-template-columns: 1fr;
  }
}/*# sourceMappingURL=page.css.map */