/* =========================
   画像セクション
========================= */

.home-image-area {
  position: relative;
}

.home-image {
  position: relative;
  overflow: hidden;
}

.home-image img {
  display: block;
  width: 100%;
  height: auto;
}

/* =========================
   波
========================= */

.wave {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  line-height: 0;
  z-index: 3;
}

.wave svg {
  display: block;
  width: 100%;
  height: 200px;
}

/* =========================
   タブレット
========================= */

@media (max-width: 1024px) {

  .overlay-text {
    font-size: clamp(42px, 16vw, 160px);
  }

  .wave svg {
    height: 140px;
  }
}

/* =========================
   スマホ
========================= */

@media (max-width: 768px) {

  .overlay-text {
    font-size: clamp(36px, 14vw, 90px);
    letter-spacing: 0.05em;
    text-align: center;
    padding: 0 15px;
  }

  .wave svg {
    height: 80px;
  }
}

/* =========================
   小型スマホ
========================= */

@media (max-width: 480px) {

  .overlay-text {
    font-size: clamp(28px, 12vw, 60px);
  }

  .wave svg {
    height: 60px;
  }
}

/* =========================
   besmileとはセクション
========================= */
.home-besmileex{
    margin-top: 30px;
    margin-bottom: 100px;
}

/* 横並び */
.heart-list {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 300px;
  margin-top: 150px;
  margin-bottom: 150px;
}

/* 外枠 */
.heart-item {
  position: relative;
}

/* ★ハート形（ここ絶対いじらない） */
.heart {
  position: relative;
  width: 260px;
  height: 260px;
  transform: rotate(-45deg);
  background-color: #f19ca6;
}

/* 上の丸2つ */
.heart::before,
.heart::after {
  content: "";
  position: absolute;
  width: 260px;
  height: 260px;
  background-color: #f19ca6;
  border-radius: 50%;
}

.heart::before {
  top: -130px;
  left: 0;
}

.heart::after {
  top: 0;
  left: 130px;
}

.heart-inner {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;

  justify-content: center;
  align-items: center;

  transform: rotate(45deg);
  color: white;
  text-align: center;
  z-index: 2;

  padding-bottom: 40px; /* ★80→40で圧縮解消 */

  width: 160px;
  margin: 0 auto;
}

.heart-title {
  font-size: 26px;
  font-weight: 700;
  line-height: 1.2;

  background: rgba(255, 255, 255, 0.18);
  padding: 6px 10px;
  border-radius: 999px;

  margin-bottom: 6px;

  /* ★1行固定 */
  white-space: nowrap;
  overflow: hidden;

  transform: translateY(-20px);
}

/* 説明（軽くするのがポイント） */
.heart-p {
  font-size: 22px;
  background: rgba(241, 156, 166, 0.25);
  line-height: 1.5;
  opacity: 0.9;
  letter-spacing: 0.3px;
}

/* =========================
   ハート対応
========================= */
@media (max-width: 1400px) {
  .heart-list{
    flex-direction: column;
    align-items: center;
    gap: 180px;
  }
}
/* =========================
   スマホ対応
========================= */
@media (max-width: 768px) {

  .home-besmileex{
    margin-bottom: 70px;
  }

  .heart-list{
    flex-direction: column;
    align-items: center;
    gap: 90px;
    margin-top: 80px;
    margin-bottom: 80px;
  }

  .heart{
    width: 180px;
    height: 180px;
  }

  .heart::before,
  .heart::after{
    width: 180px;
    height: 180px;
  }

  .heart::before{
    top: -90px;
  }

  .heart::after{
    left: 90px;
  }

  .heart-inner{
    width: 120px;
    padding-bottom: 15px;
  }

  .heart-title{
    font-size: 16px;
    white-space: normal;
    overflow: visible;
    transform: translateY(-8px);
  }

  .heart-p{
    font-size: 13px;
    line-height: 1.5;
  }

  .policy-main-title{
    font-size: 24px;
    text-align: center;
  }

  .policy-main-title small{
    display: block;
    margin-top: 8px;
  }

  .policy-card-grid{
    grid-template-columns: 1fr;
    gap: 15px;
  }

  .policy-card-grid li{
    padding: 18px;
  }
}


/* =========================
   超小型スマホ
========================= */
@media (max-width: 480px) {

  .heart{
    width: 160px;
    height: 160px;
  }

  .heart::before,
  .heart::after{
    width: 160px;
    height: 160px;
  }

  .heart::before{
    top: -80px;
  }

  .heart::after{
    left: 80px;
  }

  .heart-inner{
    width: 105px;
  }

  .heart-title{
    font-size: 14px;
  }

  .heart-p{
    font-size: 12px;
  }

  .policy-main-title{
    font-size: 22px;
  }
}


/* =========================
   タイトル
========================= */
.policy-main-title {
    text-align: center;
    margin-bottom: 40px;
}

.policy-main-title span {
    display: block;
    font-size: 28px;
    font-weight: 800;
    color: #e29300;
    letter-spacing: 2px;
}

.policy-main-title small {
    display: inline-block;
    margin-top: 8px;
    font-size: 16px;
    color: #666;
    background: #fff;
    padding: 4px 16px;
    border-radius: 20px;
    border: 2px dashed #f2b705;
}

/* =========================
   グリッド
========================= */
.policy-card-grid {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 20px;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}

/* =========================
   カード本体
========================= */
.policy-card-grid li {
    background: #ffffff;
    padding: 24px;
    border-radius: 20px;
    position: relative;
    transition: all 0.3s ease;

    border: 1px solid rgba(0, 0, 0, 0.04);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
}

/* hover */
.policy-card-grid li:hover {
    transform: translateY(-5px) scale(1.02);
    box-shadow: 0 12px 24px rgba(242, 183, 5, 0.12);
}

/* =========================
   テキスト
========================= */
.policy-card-grid li p {
    margin: 0;
    font-size: 15px;
    line-height: 1.6;
    color: #4a4a4a;
}

/* =========================
   タグベース
========================= */
.policy-tag,
.policy-tag-special {
    display: inline-block;
    font-size: 20px;
    font-weight: 700;
    padding: 4px 12px;
    border-radius: 10px;
    margin-bottom: 12px;
}

/* =========================
   7色（虹割り当て）
========================= */
.policy-card-grid li:nth-child(1) .policy-tag {
    color: #ff5a5f;
    background: rgba(255, 90, 95, 0.08);
}

.policy-card-grid li:nth-child(2) .policy-tag {
    color: #ff9f1c;
    background: rgba(255, 159, 28, 0.08);
}

.policy-card-grid li:nth-child(3) .policy-tag {
    color: #e0b84a;
    background: rgba(255, 209, 102, 0.12);
}

.policy-card-grid li:nth-child(4) .policy-tag {
    color: #06d6a0;
    background: rgba(6, 214, 160, 0.08);
}

.policy-card-grid li:nth-child(5) .policy-tag {
    color: #118ab2;
    background: rgba(17, 138, 178, 0.08);
}

.policy-card-grid li:nth-child(6) .policy-tag {
    color: #5e60ce;
    background: rgba(94, 96, 206, 0.08);
}

/* =========================
   7番目（特別枠）
========================= */
.policy-card-grid li:nth-child(7) .policy-tag-special {
    color: #555;

    background: linear-gradient(
        135deg,
        rgba(255, 90, 95, 0.12),
        rgba(255, 159, 28, 0.12),
        rgba(255, 209, 102, 0.12),
        rgba(6, 214, 160, 0.12),
        rgba(17, 138, 178, 0.12),
        rgba(94, 96, 206, 0.12)
    );

    border: 1px solid rgba(0, 0, 0, 0.05);

    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);

    animation: pulse 3s ease-in-out infinite;
}

/* =========================
   アニメーション
========================= */
@keyframes pulse {
    0% { transform: scale(1); }
    50% { transform: scale(1.05); }
    100% { transform: scale(1); }
}

/* =========================
   全体コンテナ（うっすら虹背景）
========================= */
.support-policy-section {
    margin: 60px auto;
    padding: 40px 20px;
    border-radius: 30px;
    position: relative;
    z-index: 0;
}

/* 虹フレーム（外枠） */
.support-policy-section::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 30px;
    padding: 3px; /* 枠の太さ */

    background: linear-gradient(
        90deg,
        rgba(255, 90, 95, 0.6),
        rgba(255, 159, 28, 0.6),
        rgba(255, 209, 102, 0.6),
        rgba(6, 214, 160, 0.6),
        rgba(17, 138, 178, 0.6),
        rgba(94, 96, 206, 0.6),
        rgba(238, 130, 238, 0.6)
    );

    /* 内側をくり抜くテクニック */
    -webkit-mask: 
        linear-gradient(#000 0 0) content-box, 
        linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
            mask-composite: exclude;

    pointer-events: none;
}

/* 中身を前に出す */
.support-policy-section > * {
    position: relative;
    z-index: 1;
}

/* =========================
   スマホ対応
========================= */
@media (max-width: 768px) {

    .support-policy-section {
        margin: 30px 10px;
        padding: 25px 15px;
        border-radius: 20px;
    }

    .support-policy-section::before {
        border-radius: 20px;
        padding: 2px;
    }

}


/* =========================
   Be Smile 特徴・強みセクション
========================= */

.be-smile-features {
  margin: 50px auto;
  padding: 50px 24px;
  background-color: #faf6ee; /* 温かみのあるミルク色 */
  border-radius: 30px; /* 大きめの丸みで優しく */
}

.be-smile-features-title {
  text-align: center;
  font-size: 26px;
  font-weight: 700;
  color: #6d523d; /* 深みのあるクッキーブラウン */
  margin-bottom: 45px;
}

.be-smile-features-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  padding: 0;
}

.be-smile-features-list li {
  list-style: none;
  background: #ffffff;
  border-radius: 20px;
  padding: 30px 24px;
  /* 線の種類を「破線（dashed）」にして手描き感を演出 */
  border: 3px dashed #e6ccb2; 
  position: relative;
  box-shadow: 0 4px 0 rgba(109, 82, 61, 0.05); /* ベタっとした薄い影 */
}

/* 強調部分：Pointの文字をバッジ風に */
.be-smile-features-list li strong {
  display: block;
  font-size: 18px;
  color: #6d523d;
  margin-bottom: 15px;
  padding-bottom: 10px;
  border-bottom: 2px dotted #eddcd2; /* ドットの区切り線 */
}

/* 本文 */
.be-smile-features-list li {
  font-size: 15px;
  line-height: 1.8;
  color: #4e3d30;
}

/* =========================
   タブレット
========================= */
@media (max-width: 1024px) {

  .be-smile-features {
    padding: 40px 20px;
  }

  .be-smile-features-list {
    grid-template-columns: 1fr;
    gap: 20px;
  }

}

/* =========================
   スマホ
========================= */
@media (max-width: 768px) {

  .be-smile-features {
    margin: 30px auto;
    padding: 30px 15px;
    border-radius: 20px;
  }

  .be-smile-features-title {
    font-size: 22px;
    margin-bottom: 30px;
    line-height: 1.4;
  }

  .be-smile-features-list {
    grid-template-columns: 1fr;
    gap: 15px;
  }

  .be-smile-features-list li {
    padding: 20px 16px;
    border-width: 2px;
  }

  .be-smile-features-list li strong {
    font-size: 16px;
    margin-bottom: 10px;
  }
}


/* =========================
   説明
========================= */

.explanation-text {
  margin: 40px auto;
  padding: 38px 34px;

  /* 🌼 クリームグラデーション */
  background: linear-gradient(135deg, #fffdf5 0%, #fff7e6 100%);

  border-radius: 20px;
  border: 1px solid #f2e6c9;

  /* やさしい影 */
  box-shadow: 0 10px 26px rgba(140, 110, 60, 0.08);

  position: relative;
  overflow: hidden;

  transition: box-shadow 0.25s ease, transform 0.25s ease;
}

.explanation-text .em {
  font-weight: 600;
  color: #7a5a1a;
  background: linear-gradient(transparent 60%, #ffe7a3 60%);
  padding: 0 2px;
  border-radius: 3px;
}


/* ホバーで少しだけ浮く（やさしく） */
.explanation-text:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 34px rgba(140, 110, 60, 0.12);
}

/* 段落 */
.explanation-text p {
  font-size: 16px;
  line-height: 2.05;
  color: #3a3a3a;

  margin: 0 0 16px;
  letter-spacing: 0.02em;

  padding: 12px 14px 12px 16px;


  /* やわらかいカード感 */
  background: rgba(255, 255, 255, 0.55);
  border-radius: 10px;
}

/* 最後の段落 */
.explanation-text p:last-child {
  margin-bottom: 0;

}

/* 🌤 ほんのり光の演出（控えめ） */
.explanation-text::before {
  content: "";
  position: absolute;
  top: -50px;
  right: -50px;
  width: 140px;
  height: 140px;
  background: radial-gradient(circle, rgba(255, 230, 180, 0.35), transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}

/* =========================
   スマホ
========================= */
@media (max-width: 768px) {

  .explanation-text {
    margin: 25px auto;
    padding: 20px 15px;
    border-radius: 16px;
  }

  .explanation-text p {
    font-size: 14px;
    line-height: 1.9;
    padding: 10px 12px;
  }

  .explanation-text::before {
    width: 90px;
    height: 90px;
    top: -30px;
    right: -30px;
  }

}


/* =========================
  Employment Support
========================= */

.employment_support_text {
    margin: 0 auto;
    padding: 40px 20px;
    text-align: center;
}

.support-worries {
    background: #fff8e8;
    border-radius: 15px;
    padding: 25px;
    margin-bottom: 30px;
}

.support-worries p {
    margin: 0 0 12px;
    font-size: 18px;
    font-weight: 600;
}

.support-worries p:last-child {
    margin-bottom: 0;
}

.support-worries p::before {
    content: "✓";
    margin-right: 10px;
    color: #c89a2b;
    font-weight: bold;
}

.support-message {
    text-align: center;
    font-size: 24px;
    font-weight: 700;
    color: #c89a2b;
    margin-bottom: 40px;
}

.employment_support_text p {
    line-height: 2;
    font-size: 17px;
}

.employment_support_text .em {
    font-weight: 700;
    color: #7a5a1a;
    background: linear-gradient(
        transparent 60%,
        #ffe7a3 60%
    );
}

.support-content-bg {
    position: relative;
    padding: 50px;
    overflow: hidden;
    border-radius: 20px;
    z-index: 1;
}

.support-content-bg::before {
    content: "";
    position: absolute;
    inset: 0;

    background:
        linear-gradient(
        rgba(255,255,255,0.8),
        rgba(255,255,255,0.8)
        ),
        url("/wp-content/themes/original_2/images/toppage/sien/支援.png")
        center center / cover no-repeat;

    z-index: -1;
}


/* スマホ */
@media (max-width: 600px) {
  .employment_support_text {
    padding: 28px 16px;
  }

  .employment_support_text p {
    font-size: 16px;
  }
}

/* =========================
  レスポンシブ
========================= */

@media (max-width: 1024px) {
    .employment_support_card {
        width: calc(50% - 12px);
    }
}

@media (max-width: 768px) {
    .employment_support {
        padding: 50px 15px;
    }

    .employment_support_title {
        font-size: 24px;
    }

    .employment_support_title-large {
        font-size: 30px;
    }

    .employment_support_card {
        width: 100%;
    }

    .employment_support_wrap_title {
        font-size: 22px;
    }
}


/* =========================
   NEWSセクション
========================= */

.home-news {
  margin: 80px 0;
}

.home-news h2 {
  text-align: center;
  font-size: 28px;
  margin-bottom: 40px;
}

.news-list {
  max-width: 900px;
  margin: 0 auto;
}

.news-card {
  display: flex;
  align-items: center;
  gap: 20px;

  padding: 18px 0;
  border-bottom: 1px solid #e5e5e5;

  text-decoration: none;
  color: #333;

  transition: opacity 0.3s ease;
}

.news-card:hover {
  opacity: 0.7;
}

.news-img {
  width: 80px;
  flex-shrink: 0;
}

.news-img img {
  width: 100%;
  height: 60px;
  object-fit: cover;
  border-radius: 6px;
  display: block;
}

.news-content {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 24px;
  min-width: 0;
}

.news-date {
  width: 90px;
  flex-shrink: 0;

  font-size: 12px;
  color: #999;

  margin: 0;
}

.news-title {
  flex: 1;

  font-size: 15px;
  font-weight: 500;
  line-height: 1.6;

  margin: 0;

  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.news-more {
  text-align: center;
  margin-top: 40px;
}

.news-more a {
  display: inline-block;

  padding: 12px 32px;

  border: 1px solid #333;
  border-radius: 999px;

  text-decoration: none;
  color: #333;

  transition: all 0.3s ease;
}

.news-more a:hover {
  background: #333;
  color: #fff;
}

/* =========================
   SP
========================= */

@media (max-width: 768px) {

  .news-card {
    align-items: flex-start;
    gap: 12px;
    padding: 14px 0;
  }

  .news-img {
    width: 70px;
  }

  .news-img img {
    height: 52px;
  }

  .news-content {
    display: block;
  }

  .news-date {
    width: auto;
    margin-bottom: 6px;
    font-size: 11px;
  }

  .news-title {
    font-size: 14px;
    white-space: normal;
  }

}

/* =========================
   セクションタイトル
========================= */

.section-title {
  font-weight: bold;
  font-size: 32px;
  margin-bottom: 60px;

  padding-bottom: 8px;
  position: relative;
}

.section-title::after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 0;

  width: 180px;  /* ←ここで調整 */
  height: 4px;

  background: linear-gradient(90deg, #f2b705, #f19ca6);
  border-radius: 999px;
}

.title-large {
  font-size: 2em;
  color: #f2b705;
  vertical-align: middle;
}

/* =========================
   スマホ対応
========================= */
@media (max-width: 768px) {

  .section-title {
    font-size: 24px;
    margin-bottom: 40px;
    padding-bottom: 6px;
    line-height: 1.4;
  }

  .section-title::after {
    width: 120px;
    height: 3px;
  }

  .title-large {
    font-size: 1.5em;
  }

}

/* =========================
   FLOW
========================= */

.flow {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 30px;
    margin-bottom: 100px;
}

.flow-item {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.flow-circle {
    width: 220px;
    height: 220px;
    border-radius: 50%;
    overflow: hidden;

    display: flex;
    align-items: center;
    justify-content: center;

    box-shadow: 0 6px 14px rgba(0,0,0,0.08);
    transition: all .3s ease;
}

.flow-circle:hover {
    transform: translateY(-6px);
    box-shadow: 0 10px 20px rgba(0,0,0,0.12);
}

.flow-circle img {
    width: 180%;
    height: auto;
    object-fit: contain;
}

.flow-num {
    position: absolute;
    top: -10px;
    left: 20px;

    width: 52px;
    height: 52px;

    border-radius: 50%;
    background: #c89a2b;
    color: #fff;

    display: flex;
    align-items: center;
    justify-content: center;

    font-size: 18px;
    font-weight: 700;

    border: 3px solid #fff;
    box-shadow: 0 4px 10px rgba(0,0,0,0.15);

    z-index: 100;
}

.flow-title {
    margin-top: 15px;
    font-size: 18px;
    font-weight: 700;
    text-align: center;
}

.flow-arrow {
    font-size: 40px;
    font-weight: bold;
    color: #c89a2b;
}

@media (max-width: 600px) {
    .flow {
        flex-direction: column;
        gap: 20px;
    }

    .flow-arrow {
        transform: rotate(90deg);
    }

    .flow-circle {
        width: 180px;
        height: 180px;
    }

    .flow-num {
        width: 46px;
        height: 46px;
        font-size: 16px;
        top: -8px;
        left: 15px;
    }
}

/* =========================
   WORK FLOW
========================= */

.timeline {
  max-width: 900px;
  margin: 0 auto;
  padding: 40px 20px;
  position: relative;
}

/* 縦ライン */
.timeline::before {
  content: "";
  position: absolute;
  left: 65px;
  top: 30px;
  bottom: 30px;
  width: 6px;
  border-radius: 10px;
  background: linear-gradient(
    to bottom,
    #8ecae6,
    #a8ddb5,
    #ffd6a5,
    #d0bdf4,
    #9adbcf
  );
}

.timeline-item {
  position: relative;
  padding-left: 110px;
  margin-bottom: 40px;
}

/* =========================
   STEP番号
========================= */

.dot {
  position: absolute;
  left: 18px;
  top: 20px;

  width: 52px;
  height: 52px;

  border-radius: 50%;

  display: flex;
  align-items: center;
  justify-content: center;

  color: #fff;
  font-size: 20px;
  font-weight: bold;

  z-index: 2;

  border: 4px solid #fff;

  box-shadow: 0 4px 12px rgba(0,0,0,.15);
}

/* =========================
   カード
========================= */

.timeline-content {
  background: #fff;
  border-radius: 24px;

  padding: 30px;

  box-shadow:
    0 10px 30px rgba(0,0,0,.06);

  transition: .3s;

  overflow: hidden;

  position: relative;
}

.timeline-content:hover {
  transform: translateY(-5px);
  box-shadow:
    0 15px 40px rgba(0,0,0,.12);
}

/* 上部カラー帯 */

.timeline-content::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;

  width: 100%;
  height: 8px;
}

/* =========================
   見出し
========================= */

.timeline-content h2 {
  margin: 0 0 25px;

  font-size: 1.4rem;
  font-weight: 700;

  color: #333;

  padding-bottom: 12px;

  border-bottom: 2px dashed #ddd;
}

/* =========================
   レイアウト
========================= */

.work-flow-flex {
  display: flex;
  gap: 30px;
  align-items: center;
}

.work-flow-image {
  flex-shrink: 0;
}

.work-flow-image img {
  width: 140px;
  height: auto;

  border-radius: 16px;

  background: #f8f9fa;
  padding: 10px;

  border: 3px solid #fff;

  box-shadow:
    0 4px 15px rgba(0,0,0,.08);
}

.work-flow-text {
  flex: 1;
}

.work-flow-text p {
  margin: 0;
  line-height: 2;

  color: #555;

  font-size: 15px;
}

/* =========================
   STEPごとの色
========================= */

/* STEP1 */
.step1 .dot {
  background: #6ec6ff;
}

.step2 .dot {
  background: #81c784;
}

.step3 .dot {
  background: #ffb74d;
}

.step4 .dot {
  background: #ba68c8;
}

.step5 .dot {
  background: #4db6ac;
}


.step1 .timeline-content {
  background: #f4fbff;
  border: 3px solid #6ec6ff;
}

.step2 .timeline-content {
  background: #f7fff7;
  border: 3px solid #81c784;
}

.step3 .timeline-content {
  background: #fffaf3;
  border: 3px solid #ffb74d;
}

.step4 .timeline-content {
  background: #fcf8ff;
  border: 3px solid #ba68c8;
}

.step5 .timeline-content {
  background: #f4fffd;
  border: 3px solid #4db6ac;
}
/* =========================
   スマホ
========================= */

@media (max-width: 768px) {

  .timeline-item {
    padding-left: 80px;
  }

  .timeline::before {
    left: 32px;
  }

  .dot {
    left: 6px;
    width: 50px;
    height: 50px;
  }

  .work-flow-flex {
    flex-direction: column;
    text-align: center;
  }

  .work-flow-image img {
    width: 120px;
  }

  .timeline-content {
    padding: 20px;
  }

  .timeline-content h2 {
    font-size: 1.2rem;
  }
}

/* =========================
   SCHEDULE画像
========================= */

.schedule-image {
  text-align: center;
}

.schedule-image img {
  max-width: 100%;
  height: auto;
}

/* =========================
   RECRUIT
========================= */


.recruit-image {
  text-align: center;
}

.recruit-image img {
  width: 100%;
  max-width: 600px; /* 必要なら調整 */
  height: auto;
  border-radius: 8px;
  object-fit: cover;
  display: inline-block;
}



/* 改行の余白を“ちゃんと段落”に見せる */
.recruit-text br {
  display: block;
  content: "";
  margin: 10px 0;
}

/* 重要っぽく見せる（任意） */
.recruit-text p strong {
  color: #2c91ff;
  font-weight: 700;
}

.section-title-yellow {
  display: block;
  width: fit-content;

  background: linear-gradient(135deg, #ffb300, #ffca28);
  color: #fff;
  padding: 14px 40px;
  margin: 20px auto;

  border-radius: 50px;
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: 0.1em;

  box-shadow: 0 6px 15px rgba(255, 179, 0, 0.35);
  position: relative;
  text-align: center;
}

.section-title-yellow::before {
  content: "WORK";
  position: absolute;
  top: -12px;
  left: 20px;
  background: #fff;
  color: #ff9800;
  font-size: 0.7rem;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 20px;
  border: 2px solid #ffca28;
}

.marker {
  background: linear-gradient(
    transparent 50%,
    #fff8a8 50%
  );
  padding: 0 .2em;
  font-weight: 600;
  border-radius: 3px;
}

.recruit-point {
    background: #fbfbfa;            /* 真っ白をやめ、安心感のあるアイボリーに */
    border: 2px dashed #a3d79e;     /* ★パキッとした直線をやめ、優しい緑の「点線」に */
    border-radius: 20px;            /* 角を大きく丸めて、コロンとした可愛い形に */
    padding: 24px 28px;
    margin-bottom: 24px;
    box-shadow: 0 4px 12px rgba(165, 150, 135, 0.06); /* 影はほんのり薄く */
    position: relative;
}

/* 中の文字の調整 */
.recruit-point p {
    margin: 0;
    line-height: 1.9;
    font-size: 15px;
    color: #4e453a;                /* ★文字を真っ黒から、温かみのある「焦げ茶」に */
}

.marker {
    background: linear-gradient(
        transparent 55%,
        #fff59d 55%
    );
    font-weight: 600;
}

/* =========================
   スマホ
========================= */
@media (max-width: 768px) {
    .home-recruit {
        padding-left: 16px;
        padding-right: 16px;
    }
}


/* =========================
   SKILL LIST
========================= */
.skill_list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;

  margin: 2rem auto 0;
  padding: 0;
  list-style: none;

}

.home-recruit {
  text-align: center;
}

.skill_title {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  margin: 28px auto 0;
  padding: 10px 24px;

  background: #f4faff;
  border: 1px solid #BDECCF;
  border-radius: 999px;

  color: #2E7D57;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: .08em;

  position: relative;

  box-shadow: 0 3px 8px rgba(0,0,0,.05);
}

/* 左アイコン */
.skill_title::before {
  content: "🌱";
  font-size: 18px;
  margin-right: 10px;
}

.skill_list li {
  position: relative;

  background: #F4FFF8;
  border: 1px solid #BDECCF;
  border-radius: 50px;

  color: #2E7D57;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .05em;

  padding: 14px 22px 14px 48px;

  box-shadow: 0 3px 8px rgba(0,0,0,.05);

  transition: .25s;
}

.skill_list li:hover {
  transform: translateY(-2px);
  background: #EDFFF4;
}

.skill_list li::before {
  content: "✓";

  position: absolute;
  left: 18px;
  top: 50%;
  transform: translateY(-50%);

  width: 20px;
  height: 20px;

  border-radius: 50%;

  background: #7ED9A7;
  color: #fff;

  font-size: 12px;
  font-weight: bold;

  display: flex;
  align-items: center;
  justify-content: center;
}

/* =========================
   SNS
========================= */

.sns-instagram #sb_instagram {
  width: 100% !important;
}

.sns-instagram #sbi_images {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 16px !important;
}

/* 1枚ずつのカード */
.sns-instagram .sbi_item {
  width: 100% !important;
  height: auto !important;
}

/* 画像を大きく */
.sns-instagram .sbi_photo_wrap {
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: 12px;
}

.sns-instagram .sbi_photo {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  transition: transform 0.3s ease;
}

/* ホバー拡大 */
.sns-instagram .sbi_item:hover .sbi_photo {
  transform: scale(1.05);
}

/* スマホ対応 */
@media (max-width: 768px) {

  .home-sns {
    padding: 0 16px;
  }


  .sns-instagram #sbi_images {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 10px !important;
  }

  .sns-instagram .sbi_photo_wrap {
    border-radius: 10px;
  }
}

.sns-x {
  max-width: 500px;
  margin: 0 auto;
}

.tweet-mock {
  border: 1px solid #e1e8ed;
  border-radius: 16px;
  padding: 15px;
  background: #fff;
  font-family: sans-serif;
}

.tweet-header {
  display: flex;
  align-items: center;
  gap: 10px;
}

.icon {
  width: 40px;
  height: 40px;
  background: #ccc;
  border-radius: 50%;
}

.user .name {
  font-weight: bold;
}

.user .id {
  color: #536471;
  font-size: 14px;
  margin-left: 5px;
}

.time {
  margin-left: auto;
  color: #536471;
  font-size: 13px;
}

.tweet-text {
  margin: 10px 0;
  line-height: 1.6;
  font-size: 15px;
}

.tweet-image {
  width: 100%;
  aspect-ratio: 16/9;
  background: #ddd;
  border-radius: 12px;
  margin-top: 10px;
}

.tweet-actions {
  display: flex;
  justify-content: space-between;
  margin-top: 12px;
  color: #536471;
  font-size: 14px;
}

/* =========================
   Q&A
========================= */

.cp_qa h1 {
  margin-bottom: 0.5em;
  padding: 10px;
  border-radius: 0.2em;
  background: #faeef7;
  font-weight: bold;
  text-align: center;
}

.acd-check {
  display: none;
}

.fa-quora:before {
  content: "Q";
}

.acd-label {
  background: #faeef7;
  font-weight: bolder;
  color: #242222;
  display: flex;
  align-items: center;
  border-radius: 4px;
  margin-bottom: 6px;
  padding: 10px;
  height: 50px;
  position: relative;
  cursor: pointer;
}

.acd-label:after {
  background: #faeef7;
  box-sizing: border-box;
  content: '＋';
  display: block;
  font-weight: 900;
  height: 44px;
  padding: 10px 20px;
  position: absolute;
  right: 0;
  top: 6px;
}

.acd-content {
  display: flex;
  align-items: center;
  height: 0;
  opacity: 0;
  padding: 0 10px;
  transition: .5s;
  visibility: hidden;
}

.acd-check:checked + .acd-label:after {
  content: "－";
}

.acd-check:checked + .acd-label + .acd-content {
  height: 100px;
  opacity: 1;
  padding: 10px;
  visibility: visible;
}

@media (max-width: 768px) {

  .home-qa{
    padding: 0 16px;
  }

  /* Qラベル */
  .acd-label {
    padding: 12px 14px;
    padding-right: 50px;
    height: auto; /* ←固定解除 */
    font-size: 14px;
    line-height: 1.5;
  }

  /* ＋アイコン */
  .acd-label:after {
    height: auto;
    padding: 8px 14px;
    top: 50%;
    transform: translateY(-50%);
  }

  /* 開いた中身 */
  .acd-check:checked + .acd-label + .acd-content {
    height: auto; /* ←重要 */
    padding: 12px 14px;
  }

  .acd-content {
    font-size: 14px;
    line-height: 1.7;
  }
}

/* =========================
   DAILY SCHEDULE
========================= */

#daily-schedule-board {
  max-width: 1100px;
  margin: 0 auto;
  padding: 60px 20px;
}

#timeline-schedule-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
}

.timeline-block-morning,
.timeline-block-afternoon {
  background: #fff;
  border-radius: 24px;
  padding: 32px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.06);
  position: relative;
  transition: all 0.3s ease;
}

.timeline-block-morning {
  border-top: 8px solid #ffb347;
}

.timeline-block-afternoon {
  border-top: 8px solid #6c8cff;
}

.timeline-label {
  font-size: 28px;
  font-weight: 700;
  margin-bottom: 28px;
  color: #222;
}

.timeline-block-morning ul,
.timeline-block-afternoon ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.timeline-block-morning li,
.timeline-block-afternoon li {
  display: flex;
  align-items: flex-start;
  gap: 18px;
  padding: 20px 0;
  border-bottom: 1px solid #eee;
  transition: 0.3s;
}

.timeline-block-morning li:last-child,
.timeline-block-afternoon li:last-child {
  border-bottom: none;
}

.timeline-block-morning li:hover,
.timeline-block-afternoon li:hover {
  transform: translateY(-2px);
  background: #fafcff;
  border-radius: 12px;
  padding-left: 10px;
  padding-right: 10px;
}

.timeline-block-morning li i,
.timeline-block-afternoon li i {
  width: 54px;
  height: 54px;
  min-width: 54px;

  border-radius: 50%;
  background: #f4f7ff;
  color: #4c6fff;

  display: flex;
  align-items: center;
  justify-content: center;

  font-size: 20px;
}

.timeline-item-content {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.timeline-item-content p:first-child {
  margin: 0;
  font-size: 15px;
  font-weight: 700;
  color: #4c6fff;
}

.timeline-item-content p:last-child {
  margin: 0;
  font-size: 18px;
  font-weight: 600;
  color: #222;
  line-height: 1.6;
}

.schedule-note-text {
  margin-top: 28px;
  text-align: center;
  font-size: 14px;
  color: #666;
  line-height: 1.8;
}


/* =========================
   home-work-recruit
========================= */
.home-work-recruit {
  padding: 80px 20px;
  background: #eef7ff;
}

/* ======================
タイトル
====================== */

.home-work-section-title {
  text-align: center;
  margin-bottom: 50px;
}

.home-work-section-title span {
  display: inline-flex;
  align-items: center;
  gap: 25px;
  font-size: 2.5rem;
  font-weight: 700;
  color: #1d3557;
}

.home-work-section-title span::before,
.home-work-section-title span::after {
  content: "";
  width: 120px;
  height: 2px;
  background: #4a90a4;
}

/* ======================
導入
====================== */

.recruit-intro {
  text-align: center;
  max-width: 1000px;
  margin: 0 auto 60px;
}

.lead {
  font-size: 2rem;
  font-weight: 700;
  color: #1d3557;
  margin-bottom: 25px;
}

.blue {
  color: #005bac;
}

.trouble-list p {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;

  margin-bottom: 15px;

  font-size: 1.2rem;
  font-weight: 600;
}

.trouble-list i {
  color: #005bac;
}

.sub-text {
  margin-top: 25px;
  font-size: 0.95rem;
}

/* ======================
業務例
====================== */

.work-title {
  text-align: center;
  margin-bottom: 35px;
}

.work-title span {
  display: block;
  margin-top: 5px;

  font-size: 2rem;
  font-weight: bold;
}

/* ======================
カード
====================== */

.work-card-wrap {
  display: flex;
  justify-content: center;
  gap: 25px;
  flex-wrap: wrap;

  max-width: 1100px;
  margin: auto;
}

.work-card {
  position: relative;

  width: 320px;
  background: #fff;

  padding: 30px 25px;

  border-radius: 12px;

  box-shadow:
      0 4px 12px rgba(0,0,0,.08);

  transition: .3s;
}

.work-card::before {
  content: "";

  position: absolute;
  top: 0;
  left: 0;

  width: 90px;
  height: 6px;

  background: #005bac;

  border-radius: 12px 0 12px 0;
}

.work-card:hover {
  transform: translateY(-5px);
}

.work-card h4 {
  text-align: center;

  color: #005bac;

  font-size: 2rem;
  font-weight: 700;

  margin-bottom: 15px;
}

.work-img img{
  width: 100%;
  height: auto;
}

.work-card p {
  font-size: 0.95rem;
  line-height: 1.8;
}

.company-link {
  color: #0a7a4f;
  font-weight: 700;
  text-decoration: underline;
  transition: opacity 0.3s;
}

.company-link:hover {
  opacity: 0.7;
}

@media (max-width: 768px) {

  /* セクション全体 */
  .home-work-recruit {
    padding: 30px 15px;
  }

  /* タイトル */
  .home-work-section-title span {
    font-size: 22px;
    line-height: 1.4;
  }

  /* 冒頭テキスト */
  .recruit-intro .lead {
    font-size: 16px;
    line-height: 1.6;
  }

  .trouble-list p {
    font-size: 14px;
    line-height: 1.6;
  }

  .sub-text {
    font-size: 13px;
    line-height: 1.7;
  }

  /* カードエリア：横→縦 */
  .work-card-wrap {
    display: flex;
    flex-direction: column;
    gap: 20px;
  }

  /* カード */
  .work-card {
    padding: 18px 14px;
  }

  .work-card h4 {
    font-size: 16px;
  }

  .work-card p {
    font-size: 14px;
    line-height: 1.7;
  }

  .work-img img {
    width: 100%;
    height: auto;
  }

  /* 最後のメッセージ */
  .recruit-message .msg-box {
    font-size: 14px;
    padding: 15px;
    line-height: 1.6;
  }

  .company-link {
    display: inline-block;
  }
}

/* ======================
メッセージ
====================== */

.recruit-message {
  margin-top: 60px;
}

.msg-box {
  max-width: 900px;

  margin: auto;

  background: #fff;
  border-left: 8px solid #005bac;

  padding: 25px 35px;

  font-size: 1.4rem;
  font-weight: 700;

  box-shadow:
      0 4px 10px rgba(0,0,0,.08);
}

/* =========================
   access
========================= */
.access-info {
    display: flex;
    gap: 20px;
    justify-content: center;
    margin: 40px auto;
    max-width: 900px;
    flex-wrap: wrap;
}

.access-box {
    flex: 1;
    min-width: 320px;

    background: #fff;

    border-radius: 8px;

    overflow: hidden;

    box-shadow:
        0 2px 8px rgba(0,0,0,.12);

    border: 1px solid #e5e7eb;
}

/* タイトル部分 */

.access-box h3 {
    display: flex;
    align-items: center;
    gap: 10px;

    margin: 0;
    padding: 12px 18px;

    font-size: 1rem;
    font-weight: 700;

    background: #dfe6ee;
    color: #222;
}

.access-box h3 i {
    color: #4a627a;
    font-size: 1rem;
}

/* 本文 */

.access-box p {
    margin: 0;
    padding: 18px 24px;

    line-height: 1.9;
    font-size: 0.95rem;

    color: #333;
}

/* レスポンシブ */

@media (max-width: 768px) {

  /* セクション余白 */
  .home-acsess {
    padding: 30px 15px;
  }

  /* タイトル */
  .home-acsess .section-title {
    margin-bottom: 30px;
    font-size: 22px;
  }

  /* 情報エリア：横→縦 */
  .access-info {
    display: flex;
    flex-direction: column;
    gap: 20px;
  }

  /* ボックス */
  .access-box {
    padding: 18px 14px;
  }

  .access-box h3 {
    font-size: 16px;
  }

  .access-box p {
    font-size: 14px;
    line-height: 1.7;
  }

  /* 地図 */
  .home-map iframe {
    height: 280px;
  }
}

/* =========================
   スコア表
========================= */

.score-wrap {
  display: flex;
  justify-content: center;
  gap: 40px;
  flex-wrap: wrap;
  margin: 40px auto;
}

/* カード化 */
.pdf-card {
  flex: 1;
  min-width: 280px;
  max-width: 500px;
  background: #fff;
  padding: 30px 20px;
  border-radius: 20px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.05);
  text-align: center;
}

/* =========================
   タイトル
========================= */

.section-title {
  font-weight: bold;
  font-size: 28px;
  margin-bottom: 30px;
  position: relative;
}

.section-title::after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 0;
  width: 140px;
  height: 4px;
  background: linear-gradient(90deg, #f2b705, #f19ca6);
  border-radius: 999px;
}

/* =========================
   ボタン
========================= */

.pdf-download{
  margin-bottom: 30px;
}

.pdf-list {
  display: none;
  margin-top: 10px;
  flex-direction: column;
  gap: 8px;
}

.pdf-dropdown.active .pdf-list {
  display: flex;
}

.pdf-toggle {
  padding: 8px 14px;
  border-radius: 999px;
  border: 1px solid #ccc;
  background: #fff;
  cursor: pointer;
  font-weight: 600;
  font-size: 14px;
}

.pdf-btn {
  display: inline-block;
  padding: 12px 22px;
  background: #f6fbf7;
  border: 1px solid #cfe6d6;
  color: #2f5e38;
  font-weight: 600;
  border-radius: 999px;
  text-decoration: none;
  transition: 0.2s ease;
}

.pdf-btn:hover {
  background: #eaf6ee;
  transform: translateY(-2px);
}

/* =========================
   スマホ
========================= */

@media (max-width: 768px) {

  .pdf-wrap {
    flex-direction: column;
    gap: 20px;
  }

  .pdf-card {
    padding: 20px 15px;
  }

  .section-title {
    font-size: 22px;
  }

  .section-title::after {
    width: 100px;
  }
}