/* =====================================
   CaseStudy container
===================================== */

#page-flow .case-container {
  max-width: 1020px;
  margin: 0 auto;
  padding: 0 20px;
  box-sizing: border-box;
}

#page-flow .case-container > section {
  width: 100%;
  box-sizing: border-box;
}
/* =====================================
   CaseStudy page-header
===================================== */

.page-header.page-header--case {
  min-height: auto;
  height: auto;
  padding-bottom: 0;
}

.page-header.page-header--case .page-header__inner {
  padding-bottom: 0;
}

/* $B%l%$%"%&%H!J(BPC$B!K(B */
.page-header.page-header--case .page-header-media {
  display: flex;
  gap: 40px;
  align-items: stretch;
}

/* $B:8!'2hA|(B */
.page-header-media__image {
  flex: 0 0 560px;
  max-width: 560px;
}

.page-header-media__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* $B1&!'%F%-%9%H(B */
.page-header-media__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* $B%i%Y%k!J>.8+=P$7!K(B */
.page-header-media__label {
  font-size: 18px;
  font-weight: 700;
  color: #1f4fa3;
  margin-bottom: 30px;
  letter-spacing: 0.04em;
}

/* $B%a%$%s%?%$%H%k(B */
.page-header-media__title {
  font-size: 30px;
  line-height: 1.6;
  font-weight: 700;
  margin-bottom: 30px;
}

.page-header-media__title .highlight {
  background: linear-gradient(transparent 65%, #ffeb3b 65%);
}

/* $B3X9;L>!&=j:_CO(B */
.page-header-media__school {
  font-size: 16px;
  line-height: 1.8;
  color: #555;
  margin-bottom: 24px;
}

.page-header-media__school .small {
  font-size: 14px;
  color: #777;
}


/* SP */
@media (max-width: 768px) {
  .page-header.page-header--case .page-header-media {
    display: block;
  }

  .page-header.page-header--case .page-header-media__image img {
    height: 220px;
  }

  .page-header.page-header--case .page-header-media__content {
    margin-top: 30px;
  }

  .page-header-media__title {
    font-size: 25px;
    margin-bottom: 10px;
  }

  .page-header.page-header--case {
    padding-bottom: 10px;
  }
}
/* =====================================
   Case Intro
===================================== */

.case-intro {
  padding: 0 0 40px;
}

.case-intro__inner {
  display: flex;
  gap: 60px;
}

/* $BK\J8(B */
.case-intro__text {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.case-intro__text p {
  margin: 0;
  font-size: 16px;
  line-height: 2;
  color: #333;
}

/* $B1&!'<L??(B2$BKg(B */
.case-intro__photos {
  display: grid;
  grid-template-columns: repeat(2, 260px);
  gap: 20px;
}

.case-intro__photo {
  width: 260px;
  height: 180px;
  overflow: hidden;
}

.case-intro__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* SP */
@media (max-width: 768px) {
  .case-intro__inner {
    flex-direction: column;
    gap: 24px;
  }

  .case-intro__text p {
    font-size: 15px;
    line-height: 1.9;
  }

  .case-intro__photos {
    grid-template-columns: repeat(2, 1fr);
  }

  .case-intro__photo {
    width: 100%;
    aspect-ratio: 260 / 180;
    height: auto;
  }
}
/* =====================================
   Case Message$B!J@D$$H"(B + teacher$B1&2<!K(B
===================================== */

/* $B%;%/%7%g%s<+BN!'30B&$NM>Gr!JGrCO!K(B */
#page-flow .case-message {
  background: #bfe9ff;
  padding: 10px 0;
}

#page-flow .case-message__inner {
  position: relative;
  max-width: 1020px;
  margin: 0 auto;
  padding: 0 25px 5px;
  box-sizing: border-box;
}

/* $B%?%$%H%k!'L@D+(B + $B%5%$%:(B */
#page-flow .case-message__title{
  font-family: "$B^bL@D+(B", "Yu Mincho", "Hiragino Mincho ProN",
               "Hiragino Mincho Pro", "Noto Serif JP", serif;
  font-size: 34px;             /* $B"+(B $B%5%$%:D4@0(B */
  font-weight: 300;            /* $BL@D+$O(B700$B$K$9$k$HDY$l$d$9$$(B */
  letter-spacing: .02em;
  color: #1f4fa3;

  margin: 0 0 15px;
}
/* $B!V$-$C$+$1!W(B */
#page-flow .case-message__title .title-main{
  font-size: 34px;
  letter-spacing: .04em;
}

/* $B!VC4G$$N@h@8$+$i$NF/$-$+$1!W(B */
#page-flow .case-message__title .title-sub{
  font-size: 20px;
  margin-left: 12px;
  letter-spacing: .01em;
}

#page-flow .case-message__content {
  max-width: 970px;
  line-height: 1.6;
  color: #333;

  /* teacher $B$N?/F~$rKI$0(B */
  padding-right:180px;
  padding-bottom: 0px;

  box-sizing: border-box;
}

#page-flow .case-message__content p{
  margin: -10px 0 16px;
}

#page-flow .case-message__name{
  margin-top: 20px;
  font-weight: 700;
}

#page-flow .case-message__illust {
  position: absolute;
  right: 10px;
  bottom: -10px;
  width:180px;
  pointer-events: none;
}

#page-flow .case-message__illust img {
  width: 100%;
  height: auto;
  display: block;
}

/* ---------- SP ---------- */
@media (max-width: 768px){

  #page-flow .case-message{
    padding: 8px 0;
  }

  #page-flow .case-message__inner {
    padding: 5px 20px;
  }

  #page-flow .case-message__title{
    font-size: 22px;
    margin-bottom: 10px;
  }

  #page-flow .case-message__title .title-main{
    font-size: 22px;
  }

  #page-flow .case-message__title .title-sub{
    font-size: 15px;
    margin-left: 8px;
  }

  #page-flow .case-message__content {
    padding-right: 0;
    padding-bottom: 50px; /* teacher$BJ,(B */
  }

  #page-flow .case-message__illust {
    width: 110px;
    right: 8px;
    bottom: -8px;
  }
}

/* =========================
   Case Voices (alternating)
========================= */

#page-flow .case-voices{
  padding: 40px 0;
}

/* $B8+=P$7!'BS!JGX7J!K(B */
#page-flow .case-voices__title{
  background: #eef5a6;          /* $BGv$$2+NP$NBS(B */
  padding: 24px 32px;
  margin: 0 0 36px;
}

/* $B!V<B:]$K<u83$7$F$_$F!W!a(B case-message title-main $B$HF1Ey(B */
#page-flow .case-voices__title .title-main{
  font-family: "$B^bL@D+(B","Yu Mincho","Hiragino Mincho ProN",
               "Hiragino Mincho Pro","Noto Serif JP",serif;
  font-size: 34px;
  font-weight: 300;
  letter-spacing: .04em;
  color: #1f4fa3;
}

/* $B!V!J9g3J<T$N@<!K!W!a(B case-message title-sub $B$HF1Ey(B */
#page-flow .case-voices__title .title-sub{
  font-family: "$B^bL@D+(B","Yu Mincho","Hiragino Mincho ProN",
               "Hiragino Mincho Pro","Noto Serif JP",serif;
  font-size: 20px;
  font-weight: 300;
  letter-spacing: .02em;
  color: #1f4fa3;
  margin-left: 12px;
}

/* 1$B9T!J2hA|!\K\J8!K(B */
#page-flow .voice{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 25px;
  margin: 0 0 25px;
}

/* $B8r8_$KH?E>(B */
#page-flow .voice.voice--rev{
  flex-direction: row-reverse;
}

/* $B2hA|!'(B145*145$B8GDj(B */
#page-flow .voice__img{
  flex: 0 0 145px;
  width: 145px;
  height: 145px;
}

#page-flow .voice__img img{
  width: 145px;
  height: 145px;
  object-fit: contain;   /* $B<L??$J$i(B cover $B$K(B */
  display: block;
}

/* $BK\J8!J9g3J<T$N@<!K(B */
#page-flow .voice__body{
  flex: 1;
  color: #1f4fa3;
  line-height: 2.0;
  font-size: 15px;

  font-family: "$B^bL@D+(B","Yu Mincho","Hiragino Mincho ProN",
               "Hiragino Mincho Pro","Noto Serif JP",serif;
}

#page-flow .voice__body p{
  margin: 0;
}

/* $B:G8e$NM>Gr$@$1>C$9(B */
#page-flow .voice:last-child{
  margin-bottom: 0;
}

/* ---------- SP$B!':81&8r8_$r0];}!J(Brow / row-reverse $B$N$^$^!K(B ---------- */
@media (max-width: 768px){

  #page-flow .case-voices{
    padding: 20px 0;
  }

  #page-flow .case-voices__title{
    padding: 15px 15px;
    margin-bottom: 24px;
  }

  #page-flow .case-voices__title .title-main{
    font-size: 22px;
  }

  #page-flow .case-voices__title .title-sub{
    font-size: 16px;
    margin-left: -5px;
  }

  #page-flow .voice{
    gap: 16px;
    margin-bottom: 25px;
    align-items: flex-start;
  }

  /* SP$B$OK\J8$,D9$$$N$G!"2hA|$HK\J8$N%P%i%s%9$rD4@0(B */
  #page-flow .voice__img{
    flex: 0 0 105px;     /* $B%5%$%:$O8GDj$N$^$^(B */
    width: 115px;
    height: 115px;
    position: relative;
    top: -15px;
  }

  #page-flow .voice__body{
    font-size: 14px;
    line-height: 1.8;
  }
}

/* =====================================
   Case Class Photos (4-up grid)
===================================== */

#page-flow .case-class{
  padding: 40px 0;
}

#page-flow .case-class__title{
  margin: 0 0 24px;
  text-align: center;
  font-size: 20px;     /* 20pt$BAjEv$N8+$?L\$K6a$$(B */
  font-weight: 700;
  color: #000;
  line-height: 1.6;
}

#page-flow .case-class__grid{
  display: grid;
  grid-template-columns: repeat(4, 240px); /* PC$B!'2#(B4$BKg(B */
  gap: 20px;
  justify-content: center; /* $BA4BN$rCf1{4s$;(B */
}

#page-flow .case-class__item{
  margin: 0;
  width: 240px;
  height: 180px;
  overflow: hidden;
}

#page-flow .case-class__item img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* SP$B!'(B2$B9T(B2$BNs!J(B= 2$B%+%i%`!K(B */
@media (max-width: 768px){
  #page-flow .case-class{
    padding: 28px 0;
  }

  #page-flow .case-class__title{
    font-size: 18px;
    margin-bottom: 18px;
  }

  #page-flow .case-class__grid{
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    justify-content: initial;
  }

  #page-flow .case-class__item{
    width: 100%;
    height: auto;
    aspect-ratio: 240 / 180;
  }
}
/* =========================
   Group Button (note inside)
========================= */

#page-flow .buttons--group{
  text-align: center;
  margin: 40px auto 60px;
}

/* $B%\%?%sFb%l%$%"%&%H$r=D@Q$_$K(B */
#page-flow .buttons--group .g-btn-entry1{
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 6px;                 /* $BCm0UJ8$H%a%$%sJ88@$N4V3V(B */
  line-height: 1.3;
}

/* $B2+?'$$Cm0UJ8!J%\%?%sFb!K(B */
#page-flow .buttons--group .buttons__note{
  font-size: 18px;
  font-weight: 700;
  color: #ffe44d;           /* $BE:IU$K6a$$2+?'(B */
  letter-spacing: .02em;
}

/* SP$BD4@0(B */
@media (max-width: 768px){
  #page-flow .buttons--group{
    margin: 20px auto 40px;
  }

  #page-flow .buttons--group .buttons__note{
    font-size: 12px;
  }
}

/* $B6/@)%G%P%C%0!'(Bpage-header$B2<M>Gr$N<WCG(B */
.page-header.page-header--case { padding-bottom: 0 !important; }
.page-header.page-header--case .page-header__inner { padding-bottom: 0 !important; }