.ciel-body,
.ciel-body *:not(.fa):not(.fas):not(.far):not(.fab):not(i) {
  font-family: 'Zen Maru Gothic', sans-serif !important;
}
.ciel-body {
  color: #9b6d51 !important; /* 薄茶色 */
  background-color: #faf7f2; /* 温かみのあるオフホワイト */
}

/* メインビジュアル */

/* 悩み相談セクション */
.ciel-oval-container {
  background-image: url('img/ciel_oval_bg.png');
  background-size: 100% 100%;
  background-repeat: no-repeat;
  background-position: center;
  background-color: transparent;
  padding: 80px 40px 60px;
  margin: 60px 0;
  text-align: center;
  position: relative;
}
@media (max-width: 767.98px) {
  .ciel-oval-container {
    background-image: none; /* モバイルで縦に歪むのを防ぐため背景画像をクリア */
    /* 代わりにCSSのグラデーションでふわっとした柔らかい水色を表現 */
    background: radial-gradient(circle, rgba(171, 212, 235, 0.6) 0%, rgba(250, 247, 242, 0) 75%);
    padding: 60px 20px 40px;
    margin: 30px 0;
  }
}
.ciel-oval-title {
  font-size: 1.8rem;
  font-weight: 700;
  color: #9b6d51 !important;
  background-color: transparent;
  padding: 8px 30px;
  border-radius: 50px;
  position: absolute;
  top: -28px;
  left: 50%;
  transform: translateX(-50%);
  margin: 0;
  z-index: 10;
  white-space: nowrap;
  text-shadow: 0 2px 5px rgba(255, 255, 255, 0.9);
}
@media (max-width: 767.98px) {
  .ciel-oval-title {
    font-size: 1.3rem;
    padding: 6px 20px;
    top: -22px;
    width: 90%;
    max-width: 320px;
    text-align: center;
  }
}
.ciel-clouds-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 35px 25px;
  margin-top: 40px;
  margin-bottom: 40px;
  padding: 20px;
}
/* 雲のデザイン - 添付画像（cloud.png）を背景に使用 */
.ciel-cloud {
  background-image: url('img/cloud.png');
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  background-color: transparent;
  padding: 30px 20px;
  position: relative;
  /* 影は drop-shadow を使用して、PNGの輪郭に影をつける */
  filter: drop-shadow(0 8px 12px rgba(171, 212, 235, 0.4));
  display: flex;
  align-items: center;
  justify-content: center;
  width: 220px;
  aspect-ratio: 4 / 3; /* オリジナル比率 300x225 (4:3) を厳守 */
  min-height: auto;
  max-width: 100%;
  text-align: center;
  transition: transform 0.3s ease;
  animation: floatCloud 4s ease-in-out infinite alternate;
  z-index: 2;
}
.ciel-cloud span {
  position: relative;
  z-index: 5;
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1.4;
  display: block;
  margin-top: 12px; /* 雲の白いエリアの中央に合わせるため少し下げる */
}
/* 長めのテキストがある雲のフォントサイズ調整 */
.ciel-cloud-longText span {
  font-size: 0.95rem;
}
.ciel-cloud:hover {
  transform: scale(1.08) !important;
}

/* 浮遊アニメーションの定義（マージンを変えることでtransformと干渉させない） */
@keyframes floatCloud {
  0% { margin-top: 0px; }
  100% { margin-top: -10px; }
}

/* 各々の浮遊アニメーションに異なる設定 */
.ciel-cloud:nth-child(1) { transform: rotate(-2deg); animation-duration: 3.5s; animation-delay: 0.2s; }
.ciel-cloud:nth-child(2) { transform: rotate(1deg); animation-duration: 4.2s; animation-delay: 0.8s; }
.ciel-cloud:nth-child(3) { transform: rotate(-1deg); animation-duration: 3.8s; animation-delay: 0.5s; }
.ciel-cloud:nth-child(4) { transform: rotate(2deg); animation-duration: 4.5s; animation-delay: 1.1s; }
.ciel-cloud:nth-child(5) { transform: rotate(1deg); animation-duration: 3.6s; animation-delay: 0.3s; }
.ciel-cloud:nth-child(6) { transform: rotate(-2deg); animation-duration: 4.1s; animation-delay: 0.7s; }
.ciel-cloud:nth-child(7) { transform: rotate(-1deg); animation-duration: 3.9s; animation-delay: 0.4s; }
.ciel-cloud:nth-child(8) { transform: rotate(2deg); animation-duration: 4.4s; animation-delay: 1.0s; }

@keyframes floatCloud {
  0% { transform: translateY(0px); }
  100% { transform: translateY(-8px); }
}

/* 雲のテキストカラー */
.ciel-text-red { color: #e76f51 !important; font-weight: bold; }
.ciel-text-orange { color: #f4a261 !important; font-weight: bold; }
.ciel-text-yellow { color: #b58d12 !important; font-weight: bold; }
.ciel-text-pink { color: #e75a7c !important; font-weight: bold; }
.ciel-text-green { color: #2a9d8f !important; font-weight: bold; }
.ciel-text-yellowgreen { color: #7cb518 !important; font-weight: bold; }
.ciel-text-blue { color: #4a90e2 !important; font-weight: bold; }
.ciel-text-purple { color: #9b5de5 !important; font-weight: bold; }

/* メッセージセクション */
.ciel-concept {
  margin: 80px auto;
}
.ciel-concept-title {
  font-size: 2rem;
  font-weight: 700;
  color: #4a90e2 !important; /* 青文字 */
  margin-bottom: 20px;
  line-height: 1.4;
  text-align: left;
}
.ciel-concept-text {
  font-size: 1.1rem;
  line-height: 1.8;
  color: #9b6d51 !important;
  text-align: left;
}
.ciel-concept-img-container {
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 8px 20px rgba(0,0,0,0.05);
}
.ciel-concept-img-container img {
  width: 100%;
  height: auto;
  display: block;
}
@media (max-width: 767.98px) {
  .ciel-concept-title, .ciel-concept-text {
    text-align: center;
  }
}

/* 特徴セクション */
/* 共通セクション見出し（左に虹アイコン） */
.ciel-section-title {
  display: flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  margin: 0 auto 30px !important;
  font-size: 2rem !important;
  font-weight: 700;
  color: #9b6d51 !important;
  text-align: center;
  border: none;
  background: none;
  padding: 0;
}
.ciel-title-icon {
  width: 55px;
  height: auto;
  margin-right: 15px;
  vertical-align: middle;
}
@media (max-width: 767.98px) {
  .ciel-section-title {
    font-size: 1.6rem !important;
  }
  .ciel-title-icon {
    width: 45px;
    margin-right: 10px;
  }
}

.ciel-features-title-container {
  text-align: center;
  margin-bottom: 40px;
}
.ciel-features-title-container img {
  max-width: 120px;
  height: auto;
  margin-bottom: 15px;
}
.ciel-features-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px 30px;
  margin: 0 auto 60px;
  max-width: 760px; /* 左右のカードが中央に引き寄せられるよう最大幅を制限 */
  width: 100%;
}
@media (min-width: 768px) {
  /* 偶数番目のカード（右側の列）を少し下にずらして互い違い（ジグザグ）にする */
  .ciel-feature-card:nth-child(even) {
    transform: translateY(50px);
  }
  .ciel-features-grid {
    padding-bottom: 50px; /* 下にずれた分、グリッドの底に余白を追加して重なりを防ぐ */
  }
}
@media (max-width: 767.98px) {
  .ciel-features-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}
.ciel-feature-card {
  background-color: transparent;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  border: none;
  box-shadow: none;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding: 75px 40px 40px; /* 上部パディングを増やして文字を虹の枠から下に押し下げる */
  aspect-ratio: 1 / 1;
  width: 100%;
  max-width: 360px;
  margin: 0 auto;
  box-sizing: border-box;
}
/* 1つ目と3つ目（右側に虹があるサークル） */
.ciel-feature-card:nth-child(1),
.ciel-feature-card:nth-child(3) {
  background-image: url('img/ciel_circle_r.png');
}
/* 2つ目と4つ目（左側に虹があるサークル） */
.ciel-feature-card:nth-child(2),
.ciel-feature-card:nth-child(4) {
  background-image: url('img/ciel_circle_l.png');
}

.ciel-feature-card h3 {
  font-size: 1.15rem;
  font-weight: 700;
  color: #9b6d51 !important; /* 全て薄茶色 */
  margin-top: 0;
  margin-bottom: 12px;
  text-align: center;
  position: relative;
  z-index: 2;
  width: 80%;
  line-height: 1.4;
}
.ciel-feature-card p {
  font-size: 0.9rem;
  line-height: 1.6;
  color: #9b6d51 !important; /* 全て薄茶色 */
  margin-bottom: 0;
  z-index: 2;
  width: 82%;
}
@media (max-width: 480px) {
  .ciel-feature-card {
    padding: 55px 20px 25px;
  }
  .ciel-feature-card h3 {
    font-size: 1.0rem;
    margin-bottom: 8px;
    width: 85%;
  }
  .ciel-feature-card p {
    font-size: 0.78rem;
    width: 88%;
  }
}

/* 1日の流れセクション */
.ciel-timeline {
  max-width: 800px;
  margin: 0 auto 60px;
  padding: 0 20px;
}
.ciel-timeline-title-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-bottom: 40px;
}
.ciel-timeline-title-container img {
  max-width: 100px;
  height: auto;
}

.ciel-timeline-step {
  background: #3ab5f0; /* 資料と同じような鮮やかな水色 */
  border-radius: 15px;
  padding: 30px 40px;
  margin-bottom: 30px;
  position: relative;
  box-shadow: 0 8px 25px rgba(58, 181, 240, 0.25);
}
.ciel-timeline-badge {
  position: absolute;
  top: -15px; /* 上枠からはみ出させる */
  background-color: #fff;
  border-radius: 50px;
  padding: 4px 18px;
  font-size: 0.9rem;
  font-weight: bold;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}
.ciel-timeline-badge-1 {
  left: 40px; /* 1部の時間の真上 */
  color: #007aff;
  border: 2px solid #007aff;
}
.ciel-timeline-badge-2 {
  right: 40px; /* 2部の時間の真上 */
  color: #ff6b4a;
  border: 2px solid #ff6b4a;
}
.ciel-timeline-step-content {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
}
.ciel-timeline-time-col {
  font-size: 1.3rem;
  font-weight: 700;
  color: #fff !important; /* 文字は白 */
  flex: 1;
}
.ciel-timeline-title-col {
  font-size: 1.35rem;
  font-weight: 700;
  color: #fff !important; /* 文字は白 */
  flex: 2;
  text-align: center;
}
.ciel-timeline-step-content-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
}
.ciel-timeline-step-desc {
  font-size: 0.95rem;
  line-height: 1.6;
  color: #fff !important; /* 文字は白 */
  margin-top: 15px;
  margin-bottom: 0;
  text-align: center;
  border-top: 1px dashed rgba(255, 255, 255, 0.4);
  padding-top: 12px;
  width: 100%;
}
.ciel-timeline-arrow {
  text-align: center;
  font-size: 1.8rem;
  color: #abd4eb;
  margin: -15px 0 10px;
  animation: bounceArrow 1.5s infinite alternate;
}
@keyframes bounceArrow {
  0% { transform: translateY(0); }
  100% { transform: translateY(5px); }
}

@media (max-width: 575.98px) {
  .ciel-timeline-step {
    padding: 35px 15px 20px; /* バッジのための上部スペース */
  }
  .ciel-timeline-step-content {
    flex-direction: column;
    gap: 8px;
  }
  .ciel-timeline-time-col {
    text-align: center !important;
    font-size: 1.15rem;
  }
  .ciel-timeline-title-col {
    font-size: 1.2rem;
    order: -1;
    margin-bottom: 4px;
  }
  .ciel-timeline-badge-1 {
    left: 15px;
  }
  .ciel-timeline-badge-2 {
    right: 15px;
  }
}

/* 概要セクション */
.ciel-summary-box {
  background: #eef7fc;
  border-radius: 30px;
  padding: 40px;
  margin-bottom: 60px;
}

.ciel-summary-content {
  background: #fff;
  border-radius: 20px;
  padding: 30px;
  margin-bottom: 30px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.01);
}
.ciel-summary-table {
  width: 100%;
}
.ciel-summary-table th {
  width: 30%;
  color: #4a90e2 !important;
  padding: 15px 10px;
  border-bottom: 1px solid #eef7fc;
  font-weight: 700;
  vertical-align: top;
}
.ciel-summary-table td {
  padding: 15px 10px;
  border-bottom: 1px solid #eef7fc;
  color: #9b6d51 !important;
  line-height: 1.6;
}
@media (max-width: 575.98px) {
  .ciel-summary-table th, .ciel-summary-table td {
    display: block;
    width: 100%;
  }
  .ciel-summary-table th {
    padding-bottom: 5px;
    border-bottom: none;
  }
}
.ciel-maps-row {
  display: flex;
  gap: 30px;
}
@media (max-width: 767.98px) {
  .ciel-maps-row {
    flex-direction: column;
  }
}
.ciel-map-container, .ciel-photo-container {
  flex: 1;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 8px 20px rgba(0,0,0,0.05);
}
.ciel-map-container iframe {
  width: 100%;
  height: 100%;
  min-height: 300px;
  border: 0;
  display: block;
}
.ciel-photo-container img {
  width: 100%;
  height: 100%;
  min-height: 300px;
  object-fit: cover;
  display: block;
}

/* 問い合わせ誘導 */
.ciel-contact-box {
  background: #3ab5f0; /* 資料と同じような鮮やかな水色 */
  border-radius: 24px;
  padding: 50px 40px;
  text-align: center;
  box-shadow: 0 12px 30px rgba(58, 181, 240, 0.3);
  margin-bottom: 60px;
  max-width: 580px; /* 横幅を約半分に制限 */
  margin-left: auto;
  margin-right: auto;
}
.ciel-contact-title {
  font-size: 1.6rem;
  font-weight: 700;
  color: #fff !important; /* 資料通り、白文字で記載 */
  margin-bottom: 25px;
}
.ciel-tel-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff !important; /* ボタンにせず、テキスト単体のリンクとして白文字で記載 */
  font-size: 2.2rem;
  font-weight: 700;
  text-decoration: none;
  margin-bottom: 25px;
  transition: opacity 0.2s;
}
.ciel-tel-link:hover {
  opacity: 0.9;
  text-decoration: underline;
}
.ciel-tel-link i {
  color: #ff6b8b; /* 受話器マークを資料通りのピンクに */
  margin-right: 12px;
  font-size: 2.2rem;
}
.ciel-form-btn {
  display: inline-block;
  background-color: #007aff; /* 資料通りの「青の長方形」ボタン */
  color: #fff !important; /* 白文字で記載 */
  border-radius: 12px; /* カプセル型でなく、角を落とした「長方形」 */
  padding: 12px 50px;
  font-size: 1.3rem;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 5px 15px rgba(0, 122, 255, 0.35);
  transition: transform 0.2s, background-color 0.2s;
}
.ciel-form-btn:hover {
  background-color: #0056b3;
  color: #fff !important;
  transform: translateY(-2px);
  text-decoration: none;
}

/* コピーライト文字色 */
.copyright-wrapper p {
  color: #fff !important;
}

/* 施設概要の支援プログラムPDFボタン */
.ciel-summary-btn {
  position: absolute;
  right: 40px;
  top: 35px;
  background-color: #00a4e4;
  border: 1px solid #0087be;
  color: #fff !important;
  font-weight: bold;
  border-radius: 12px;
  padding: 10px 24px;
  font-size: 1.1rem;
  text-decoration: none;
  text-align: center;
  line-height: 1.4;
  box-shadow: 0 4px 10px rgba(0,164,228,0.2);
  transition: transform 0.2s, background-color 0.2s;
}
.ciel-summary-btn:hover {
  background-color: #0086bb;
  transform: translateY(-2px);
  text-decoration: none;
}
@media (max-width: 767.98px) {
  .ciel-summary-btn {
    position: static;
    display: block;
    margin: 0 auto 20px;
    width: fit-content;
    font-size: 1.0rem;
    padding: 8px 20px;
  }
}
