@charset "utf-8";
/* =========================================================================
   flow-custom.css  ― 1日の流れ
   共通 .timeline は単一系列の縦並びのみのため、
   「児童発達支援／放課後等デイサービス」を左右で対比させる3カラム表を追加。
   ========================================================================= */

.shine-sec-flow {
  padding-top: 66px;
  padding-bottom: 90px;
}
.shine-sec-head--xl .heading__ja {
  font-size: 3.2rem;
}

.shine-flow {
  position: relative;
  overflow: hidden;
  margin-top: 40px;
  padding: 46px 40px 54px;
  background: #fff;
  border: 3px solid #7FB8C1;
  border-radius: 28px;
}
.shine-flow__scroll {
  position: relative;
  z-index: 1;
  width: 100%;
}

/* ちりばめるイラスト -------------------------------------------------------
   左（児童発達支援側）＝葉・ひよこ・花(deco_03)・リボン
   右（放課後等デイ側）＝星・花(deco_02)・クローバー・風船
   上から 左→右→左→右… と縦位置をずらしてジグザグに並べる。
   本文は左列＝右揃え／右列＝左揃えのため、外側（左端・右端）が空く。
   ※元画像のサイズがバラバラなので、幅のみ指定し
     aspect-ratio（元画像の 横/縦）で比率を固定する。               */
.shine-flow__deco {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}
.shine-flow__deco-item {
  position: absolute;
  height: auto;
  opacity: 0.55;
}

/* --- 左サイド（児童発達支援の列） --------------------------------------- */
/* 葉 167×230 */
.shine-flow__deco-item--leaf {
  top: 8%;
  left: 10px;
  width: 66px;
  aspect-ratio: 167/230;
  transform: rotate(-14deg);
}
/* ひよこ 234×289 */
.shine-flow__deco-item--chick {
  top: 33%;
  left: 24px;
  width: 76px;
  aspect-ratio: 234/289;
  transform: rotate(6deg);
}
/* 花 317×314 */
.shine-flow__deco-item--flower3 {
  top: 57%;
  left: 8px;
  width: 88px;
  aspect-ratio: 317/314;
  transform: rotate(-8deg);
}
/* リボン 418×329 */
.shine-flow__deco-item--ribbon {
  bottom: 4%;
  left: 26px;
  width: 108px;
  aspect-ratio: 418/329;
  transform: rotate(-5deg);
}

/* --- 右サイド（放課後等デイサービスの列） -------------------------------- */
/* 星 414×354 */
.shine-flow__deco-item--star {
  top: 4%;
  right: 20px;
  width: 100px;
  aspect-ratio: 414/354;
  transform: rotate(8deg);
}
/* 風船 576×928（縦長のため幅は控えめ、ただし存在感が出るサイズに） */
.shine-flow__deco-item--balloon {
  top: 22%;
  right: 6px;
  width: 96px;
  aspect-ratio: 576/928;
  transform: rotate(6deg);
  opacity: 0.5;
}
/* クローバー 271×300 */
.shine-flow__deco-item--clover {
  top: 47%;
  right: 26px;
  width: 82px;
  aspect-ratio: 271/300;
  transform: rotate(-10deg);
}
/* 花 280×291 */
.shine-flow__deco-item--flower2 {
  bottom: 6%;
  right: 4px;
  width: 80px;
  aspect-ratio: 280/291;
  transform: rotate(10deg);
}
.shine-flow__grid {
  display: grid;
  grid-template-columns: 1fr 152px 1fr;
  column-gap: 30px;
  align-items: stretch;
}
/* 行ラッパー。PC・タブレットではグリッドに溶かして3カラム表を維持する */
.shine-flow__row {
  display: contents;
}

/* 見出し行 ---------------------------------------------------------------- */
.shine-flow__head {
  display: flex;
  align-items: center;
  padding-bottom: 22px;
}
.shine-flow__head--left  { justify-content: flex-end; }
.shine-flow__head--right { justify-content: flex-start; }

.shine-flow__tag {
  display: block;
  padding: 10px 30px;
  border-radius: 12px;
  font-size: 2.1rem;
  white-space: nowrap;
}
.shine-flow__tag--green  { background: #8FBF7A; color: #fff; }
.shine-flow__tag--yellow { background: #F0C64A; color: #5C4300; }

/* 本文セル ---------------------------------------------------------------- */
.shine-flow__left,
.shine-flow__right {
  padding: 18px 4px;
  font-size: 1.7rem;
  line-height: 1.9;
  color: #414C50;
}
.shine-flow__left { text-align: right; }

/* 時刻カラム -------------------------------------------------------------- */
.shine-flow__time {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 18px 4px;
  background: #7FB8C1;
}
.shine-flow__time--first { border-radius: 18px 18px 0 0; }
.shine-flow__time--last  { border-radius: 0 0 18px 18px; }
.shine-flow__time img {
  width: 74px;
  height: 74px;
  display: block;
  background: #fff;
  border-radius: 50%;
}
.shine-flow__hour {
  font-size: 1.9rem;
  color: #fff;
}

@media screen and (max-width: 896px) {
  .shine-flow { padding: 30px 24px 36px; }
  .shine-flow__grid { column-gap: 16px; grid-template-columns: 1fr 120px 1fr; }
  .shine-flow__tag { padding: 8px 18px; font-size: 1.6rem; }
  .shine-flow__left,
  .shine-flow__right { font-size: 1.5rem; }
  .shine-flow__time img { width: 60px; height: 60px; }
  .shine-flow__hour { font-size: 1.6rem; }

  /* 左（児童発達支援側） */
  .shine-flow__deco-item--leaf    { width: 52px; left: 4px; }
  .shine-flow__deco-item--chick   { width: 58px; left: 10px; }
  .shine-flow__deco-item--flower3 { width: 68px; left: 2px; }
  .shine-flow__deco-item--ribbon  { width: 84px; left: 10px; }
  /* 右（放課後等デイ側） */
  .shine-flow__deco-item--star    { width: 78px; right: 8px; }
  .shine-flow__deco-item--balloon { width: 76px; right: 2px; }
  .shine-flow__deco-item--clover  { width: 64px; right: 10px; }
  .shine-flow__deco-item--flower2 { width: 62px; right: 2px; }
}

@media screen and (max-width: 639px) {
  .shine-sec-flow { padding-top: 44px; padding-bottom: 50px; }
  .shine-sec-head--xl .heading__ja { font-size: 2.4rem; }
  .shine-flow { padding: 20px 14px 26px; border-radius: 22px; }

  /* --- SPは3カラム表をやめ、時刻ごとの縦積みカードに組み替える --------- */
  .shine-flow__scroll { overflow: visible; }
  .shine-flow__grid {
    display: block;
    min-width: 0;
  }
  .shine-flow__row {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 2px solid #E7F2F4;
    border-radius: 18px;
    /* 背景イラストがうっすら透ける程度の白 */
    background: rgba(255, 255, 255, 0.88);
  }
  .shine-flow__row + .shine-flow__row {
    margin-top: 14px;
  }
  /* 見出し行は各カード内のラベルで代替するため非表示 */
  .shine-flow__row--head { display: none; }

  /* 時刻はカードのヘッダーとして最上部へ（時計＋時刻を横並び） */
  .shine-flow__time,
  .shine-flow__time--first,
  .shine-flow__time--last {
    order: -1;
    flex-direction: row;
    justify-content: center;
    gap: 10px;
    padding: 8px 12px;
    border-radius: 0;
  }
  .shine-flow__time img { width: 38px; height: 38px; }
  .shine-flow__hour { font-size: 1.7rem; letter-spacing: 0.02em; }

  /* 本文は左揃え。どちらのサービスかはラベルで示す */
  .shine-flow__left,
  .shine-flow__right {
    padding: 12px 14px;
    text-align: left;
    font-size: 1.5rem;
    line-height: 1.8;
  }
  .shine-flow__right { border-top: 1px dashed #DCE9EB; }
  /* 内容が無い時間帯のセルは出さない */
  .shine-flow__left:empty,
  .shine-flow__right:empty { display: none; }

  .shine-flow__left::before,
  .shine-flow__right::before {
    content: "";
    display: block;
    width: -webkit-fit-content;
    width: fit-content;
    margin-bottom: 6px;
    padding: 2px 12px;
    border-radius: 999px;
    font-size: 1.2rem;
    line-height: 1.7;
  }
  .shine-flow__left::before {
    content: "児童発達支援";
    background: #8FBF7A;
    color: #fff;
  }
  .shine-flow__right::before {
    content: "放課後等デイサービス";
    background: #F0C64A;
    color: #5C4300;
  }

  /* SP はカードの下にイラストが隠れるため、ジグザグは保ちつつ小さく・薄めに */
  .shine-flow__deco-item { opacity: 0.38; }
  /* 左（児童発達支援側） */
  .shine-flow__deco-item--leaf    { width: 40px; left: 2px; }
  .shine-flow__deco-item--chick   { width: 44px; left: 4px; }
  .shine-flow__deco-item--flower3 { width: 50px; left: 0; }
  .shine-flow__deco-item--ribbon  { width: 62px; left: 4px; }
  /* 右（放課後等デイ側） */
  .shine-flow__deco-item--star    { width: 56px; right: 2px; }
  .shine-flow__deco-item--balloon { width: 58px; right: 0; }
  .shine-flow__deco-item--clover  { width: 48px; right: 4px; }
  .shine-flow__deco-item--flower2 { width: 46px; right: 0; }
}
