@charset "UTF-8";
/*-----------------------------------------------------
  導入事例：株式会社医薬経済社 専用パーツ
  依存: base.css / common.css / subpage.css / case.css
  接頭辞 .ik- は本ページ専用。既存 .case-* パーツはそのまま利用。
------------------------------------------------------*/
:root{
  --ik-red:#dd122b;
  --ik-navy:#0e1336;
  --ik-ink:#2b2b33;
  --ik-grey:#7f7f92;
  --ik-line:#e3e5ea;
  --ik-paper:#f7f8fa;
}

/* ---------- ヒーロー ---------- */
.ik-hero{
  margin:0 0 18px;
}
.ik-hero img{
  width:100%;
  height:auto;
  display:block;
  border-radius:8px;
  box-shadow:0 10px 30px rgba(14,19,54,.12);
}
.ik-hero figcaption{
  margin-top:12px;
  font-size:13px;
  color:var(--ik-grey);
  text-align:right;
}

/* 導入リード文 */
.case-editor .ik-lead{
  font-size:18px;
  line-height:1.9;
  color:var(--ik-ink);
  margin:0 0 40px;
  padding-left:22px;
  border-left:3px solid var(--ik-red);
}

/* ---------- 3年の歩み（タイムライン） ---------- */
.ik-timeline{
  margin:0 0 48px;
}
.ik-timeline__ttl{
  font-size:14px;
  color:var(--ik-grey);
  margin:0 0 16px;
}
.ik-timeline ol{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(5,1fr);
  position:relative;
}
.ik-timeline ol::before{
  content:'';
  position:absolute;
  left:0; right:0; top:9px;
  height:2px;
  background:linear-gradient(90deg,var(--ik-red) 0%,var(--ik-navy) 100%);
}
.ik-timeline li{
  position:relative;
  padding:28px 16px 0 0;
}
.ik-timeline li::before{
  content:'';
  position:absolute;
  left:0; top:3px;
  width:14px; height:14px;
  border-radius:50%;
  background:#fff;
  border:3px solid var(--ik-red);
  box-sizing:border-box;
}
.ik-timeline li:nth-child(n+3)::before{ border-color:#5a2350; }
.ik-timeline li:nth-child(n+4)::before{ border-color:var(--ik-navy); }
.ik-timeline li.is-now::before{ background:var(--ik-navy); }
.ik-timeline__date{
  display:block;
  font-family:'Lato',sans-serif;
  font-size:13px;
  letter-spacing:.02em;
  color:var(--ik-grey);
  margin-bottom:4px;
}
.ik-timeline__label{
  display:block;
  font-size:14px;
  font-weight:bold;
  line-height:1.55;
  color:var(--ik-ink);
}

/* ---------- BEFORE / AFTER ---------- */
.ik-ba{
  margin:0 0 52px;
  border:1px solid var(--ik-line);
  border-radius:10px;
  overflow:hidden;
}
.ik-ba__head{
  display:grid;
  grid-template-columns:1fr 56px 1fr;
}
.ik-ba__head span{
  padding:14px 22px;
  font-family:'Lato',sans-serif;
  font-weight:900;
  font-size:15px;
  letter-spacing:.08em;
  color:#fff;
}
.ik-ba__head span:first-child{ background:#8a8a99; }
.ik-ba__head span:nth-child(2){ background:#fff; }
.ik-ba__head span:last-child{ background:var(--ik-navy); }
.ik-ba__row{
  display:grid;
  grid-template-columns:1fr 56px 1fr;
  border-top:1px solid var(--ik-line);
}
.ik-ba__row > div{
  padding:20px 22px;
  font-size:15px;
  line-height:1.8;
}
.ik-ba__before{
  color:#5a5a66;
  background:#fafafb;
}
.ik-ba__arrow{
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--ik-red);
  background:#fff;
}
.ik-ba__arrow::before{
  content:'';
  width:10px; height:10px;
  border-top:2px solid var(--ik-red);
  border-right:2px solid var(--ik-red);
  transform:rotate(45deg);
}
.ik-ba__after{
  color:var(--ik-ink);
  font-weight:500;
  background:#fff;
}

/* ---------- 支援内容フェーズ ---------- */
.ik-phase{
  display:grid;
  grid-template-columns:72px 1fr;
  gap:0 26px;
  padding:34px 0;
  border-top:1px solid var(--ik-line);
}
.ik-phase:last-of-type{ border-bottom:1px solid var(--ik-line); margin-bottom:48px; }
.ik-phase__no{
  font-family:'Lato',sans-serif;
  font-weight:900;
  font-size:44px;
  line-height:1;
  color:var(--ik-red);
  padding-top:2px;
}
.ik-phase__no small{
  display:block;
  font-size:11px;
  font-weight:700;
  letter-spacing:.06em;
  color:var(--ik-grey);
  margin-bottom:6px;
}
.ik-phase__body{ min-width:0; }
.case-editor .ik-phase__ttl{
  font-size:21px;
  font-weight:bold;
  color:var(--ik-navy);
  margin:0 0 6px;
  line-height:1.5;
}
.ik-phase__period{
  display:inline-block;
  font-family:'Lato',sans-serif;
  font-size:13px;
  color:var(--ik-grey);
  margin-bottom:18px;
}
.case-editor .ik-phase__body p{ margin-bottom:16px; }
.case-editor .ik-phase__body p:last-child{ margin-bottom:0; }
.case-editor .ik-phase__body strong.ik-sub{
  display:block;
  color:var(--ik-navy);
  margin-bottom:4px;
}

/* ---------- 主要な数字 ---------- */
.ik-figures{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  margin:0 0 36px;
  border-top:2px solid var(--ik-navy);
  border-bottom:1px solid var(--ik-line);
}
.ik-figures > div{
  padding:26px 20px 24px;
  border-right:1px solid var(--ik-line);
}
.ik-figures > div:last-child{ border-right:none; }
.ik-figures__num{
  display:block;
  font-family:'Lato',sans-serif;
  font-weight:900;
  font-size:40px;
  line-height:1;
  color:var(--ik-navy);
  letter-spacing:-.01em;
}
.ik-figures__num small{
  font-size:16px;
  font-weight:700;
  margin-left:2px;
}
.ik-figures__num em{
  font-style:normal;
  font-size:16px;
  font-weight:700;
  color:var(--ik-grey);
  margin:0 6px;
}
.ik-figures__num .ik-figures__hl{ color:var(--ik-red); }
.ik-figures__label{
  display:block;
  margin-top:10px;
  font-size:13px;
  line-height:1.6;
  color:#4d4d4d;
}

/* ---------- お客様の声 ---------- */
.ik-voice{
  display:grid;
  grid-template-columns:1.15fr 1fr;
  gap:0;
  margin:8px 0 40px;
  background:var(--ik-paper);
  border-radius:10px;
  overflow:hidden;
}
.ik-voice figure{ margin:0; }
.ik-voice figure img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  margin:0;
}
.ik-voice__body{
  padding:38px 36px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.case-editor .ik-voice__quote{
  position:relative;
  font-size:19px;
  line-height:1.85;
  font-weight:500;
  color:var(--ik-navy);
  margin:0 0 18px;
  padding-top:30px;
}
.ik-voice__quote::before{
  content:'“';
  position:absolute;
  left:-4px; top:-14px;
  font-family:Georgia,'Times New Roman',serif;
  font-size:64px;
  line-height:1;
  color:var(--ik-red);
  opacity:.9;
}
.case-editor .ik-voice__from{
  font-size:13px;
  color:var(--ik-grey);
  margin:0;
}

/* ---------- タグ ---------- */
.ik-tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:36px 0 0;
  padding-top:24px;
  border-top:1px solid var(--ik-line);
}
.ik-tags li{
  list-style:none;
  padding:6px 12px 5px;
  border:1px solid var(--ik-grey);
  border-radius:30px;
  color:var(--ik-grey);
  font-size:12px;
  line-height:1;
}

/* ---------- 補助 ---------- */
.case-editor .ik-note{
  font-size:13px;
  color:var(--ik-grey);
}

/* ---------- レスポンシブ ---------- */
@media (max-width: 900px){
  .ik-figures{ grid-template-columns:repeat(2,1fr); }
  .ik-figures > div:nth-child(2){ border-right:none; }
  .ik-figures > div:nth-child(-n+2){ border-bottom:1px solid var(--ik-line); }
  .ik-voice{ grid-template-columns:1fr; }
  .ik-voice figure img{ aspect-ratio:16/9; }
}
@media (max-width: 599px){
  .case-editor .ik-lead{ font-size:16px; padding-left:16px; margin-bottom:30px; }
  .ik-timeline ol{ grid-template-columns:1fr; gap:14px; padding-left:22px; }
  .ik-timeline ol::before{
    left:6px; right:auto; top:0; bottom:0;
    width:2px; height:auto;
    background:linear-gradient(180deg,var(--ik-red) 0%,var(--ik-navy) 100%);
  }
  .ik-timeline li{ padding:0 0 0 12px; }
  .ik-timeline li::before{ left:-22px; top:3px; }
  .ik-ba__head{ display:none; }
  .ik-ba__row{ grid-template-columns:1fr; }
  .ik-ba__row > div{ padding:16px 18px; font-size:14px; }
  .ik-ba__before::before,
  .ik-ba__after::before{
    display:block;
    font-family:'Lato',sans-serif;
    font-weight:900;
    font-size:11px;
    letter-spacing:.08em;
    margin-bottom:6px;
  }
  .ik-ba__before::before{ content:'BEFORE'; color:#8a8a99; }
  .ik-ba__after::before{ content:'AFTER'; color:var(--ik-navy); }
  .ik-ba__arrow{ height:26px; }
  .ik-ba__arrow::before{ transform:rotate(135deg); }
  .ik-phase{ grid-template-columns:1fr; gap:10px; padding:26px 0; }
  .ik-phase__no{ font-size:34px; }
  .case-editor .ik-phase__ttl{ font-size:18px; }
  .ik-figures{ grid-template-columns:1fr 1fr; }
  .ik-figures > div{ padding:18px 12px; }
  .ik-figures__num{ font-size:30px; }
  .ik-voice__body{ padding:26px 22px; }
  .case-editor .ik-voice__quote{ font-size:16px; }
}
