/* =========================================================
   CASE PAGE STYLES
   ・PC: 画像/テキスト=常に50:50（左右はクラスで制御）
   ・SP: 常に縦並び（画像→テキスト）
   ・画像なしセクション=テキスト100%
   ========================================================= */

/* Reset helpers */
.case-section img {
  max-width: 100%;
  height: auto;
  display: block;
  border: 0;
}

.case-section picture {
  display: block;
}

.employee-info img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* Tokens */
:root {
  --case-gutter: 24px;
  --case-gutter-lg: 40px;
  --case-radius: 8px;
  --case-shadow: 0 2px 10px rgba(0, 0, 0, .05);
  --case-muted: #6b7280;
  --case-border: #eef1f4;
  --case-bg: #f6f7f8;
}

/* ===== Hero ===== */
.case-intro {
  background: #fff;
  padding: 40px 0;
}

.case-intro-inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  align-items: center;
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 20px;
}

@media(min-width:769px) {
  .case-intro-inner {
    grid-template-columns: 1fr 1fr;
    gap: 40px;
  }
}

.case-intro-img {
  position: relative;
  width: 100%;
  overflow: hidden;
  border-radius: var(--case-radius);
  box-shadow: var(--case-shadow);
  background: var(--case-bg);
}

.case-intro-img img {
  width: 100%;
  height: auto;
  object-fit: cover;
  object-position: center;
}

.case-intro-text {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.case-intro-head {
  display: flex;
  align-items: center;
  gap: 10px;
}

.case-number {
  background: #0c2f57;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  padding: 5px 10px;
  border-radius: 999px;
}

.case-name {
  font-size: 24px;
  font-weight: 700;
  letter-spacing: .05em;
}

.case-intro-meta p {
  margin: 0;
  font-size: 14px;
  color: #444;
  line-height: 1.6;
}

.case-intro-desc p {
  margin: 0;
  color: #555;
  line-height: 1.9;
  text-align: left;
}

@media(max-width:768px) {
  .case-intro {
    padding: 24px 0;
  }
  .c-pagetitle__basis {
    flex-basis: 130px !important;
    padding-top: 15px;
    -webkit-box-pack: end;
    -webkit-justify-content: end;
    -ms-flex-pack: end;
    justify-content: end;
    flex-basis: 283px;
  }
  .case-intro-inner {
    grid-template-columns: 1fr;
  }
  .case-intro-meta {
    text-align: left;
  }
  .case-intro-head {
    align-items: center;
  }
  .case-intro-text {
    text-align: center;
  }
}

/* ===== Sections ===== */
.case-section {
  padding: 48px 0;
  border-top: 1px solid var(--case-border);
}

.case-section:first-of-type {
  border-top: none;
}

.case-flex {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--case-gutter);
  align-items: center;
}

/* PC: 常に左右50:50 */
@media(min-width:769px) {
  .case-flex {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: var(--case-gutter-lg);
  }

  .case-flex .case-imagearea,
  .case-flex .case-textarea {
    width: 100%;
    min-width: 0;
    flex-shrink: 0;
  }

  /* 左右はクラスで確定（nth-childは使わない）*/
  .case-flex.align-left .case-imagearea {
    order: 0;
  }

  .case-flex.align-left .case-textarea {
    order: 1;
  }

  .case-flex.align-right .case-textarea {
    order: 0;
  }

  .case-flex.align-right .case-imagearea {
    order: 1;
  }
}

/* SP: 画像→テキストの縦並び */
@media(max-width:768px) {
  .case-flex {
    grid-template-columns: 1fr;
  }

  .case-flex .case-imagearea,
  .case-flex .case-textarea {
    width: 100%;
  }
}

/* テキスト側 */
.case-textarea {
  display: grid;
  gap: 12px;
  word-break: break-word;
  overflow-wrap: anywhere;
}

.case-heading {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .02em;
}

@media(min-width:769px) {
  .case-heading {
    font-size: 22px;
  }
}

.case-text {
  color: var(--case-muted);
  line-height: 1.9;
  letter-spacing: .01em;
}

.case-text p {
  margin: 0 0 1em;
}

.case-text p:last-child {
  margin-bottom: 0;
}

/* 画像側（ボックス） */
.case-imagearea {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  overflow: hidden;
  box-shadow: var(--case-shadow);
  background: var(--case-bg);
}

.case-imagearea img {
  width: 100%;
  height: auto;
  object-fit: cover;
  object-position: center;
}

/* 画像なし */
.case-flex.no-image {
  grid-template-columns: 1fr;
  justify-items: center;
  text-align: center;
}

.case-flex.no-image .case-textarea {
  max-width: 800px;
  margin: 0 auto;
  text-align: left;
}

.case-flex.no-image .case-heading {
  text-align: center;
  font-size: 22px;
  color: #222;
  text-align: left;
}

/* ===== 下部 他の社員 ===== */
.employee-info {
  margin: 64px auto 40px;
  max-width: 1200px;
  padding: 0 20px;
  display: grid;
  gap: 24px;
}

@media(min-width:769px) {
  .employee-info {
    grid-template-columns: repeat(2, 1fr);
    gap: 28px;
  }
}

.employee-block {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
  padding: 16px;
  background: #fff;
  border: 1px solid var(--case-border);
  border-radius: var(--case-radius);
  box-shadow: var(--case-shadow);
  transition: transform .2s ease, box-shadow .2s ease;
}

.employee-block:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(0, 0, 0, .08);
}

.employee-block>img {
  width: 100%;
  aspect-ratio: 16 / 9;
  height: auto;
  object-fit: cover;
  border-radius: var(--case-radius);
  background: #f6f7f8;
}

.box3_text {
  margin: 15px;
}

.box3_text .name-border {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin: 10px 0;
  padding-bottom: 10px;
  border-bottom: 3px solid #000000;
}

.box3_text .casenumber {
  font-size: 11px;
  line-height: 1;
  padding: 5px 9px;
  background: #0c2f57;
  color: #fff;
  border-radius: 999px;
  letter-spacing: .06em;
}

.box3_text .initial {
  font-weight: 700;
  letter-spacing: .02em;
}

/* ボタン */
.scchedule-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 220px;
  padding: 12px 18px;
  font-weight: 700;
  letter-spacing: .08em;
  color: #fff;
  background: #0c2f57;
  border-radius: 999px;
  box-shadow: 0 3px 0 rgba(0, 0, 0, .15);
  transition: transform .15s ease, box-shadow .15s ease, opacity .15s ease;
}

.scchedule-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 12px rgba(0, 0, 0, .2);
  opacity: .95;
}

/* Misc */
.c-bread__list {
  margin-bottom: 16px;
}

.c-pagetitle {
  text-align: center;
  font-weight: 700;
  font-size: 22px;
  letter-spacing: .06em;
}

.c-pagetitle-second {
  color: #202A5A;
  text-align: center;
  font-weight: 700;
  font-size: 35px;
}

.c-pagetitle-txt {
  color: var(--case-muted);
  font-size: 14px;
  text-align: center;
}

.c-pagetitle-txt-second {
  color: #000000;
  font-size: 18px;
  text-align: center;
  font-weight: 600;
}

.case-section:last-of-type {
  padding-bottom: 24px;
}