@charset "utf-8";

/* =======================
section--activity
========================== */
.main {
    background-color: #fdfdfd; /* mainはページ全体の背景色として白系を維持 */
}

h4 {
    color: var(--primary-orange, #CC947F);
    text-align: center;
    font-family: 'M PLUS Rounded 1c', sans-serif;
    font-size: 2.4rem;
    line-height: 1;
    margin: 0 auto;
}

h5 {
    color: var(--primary-orange, #CC947F);
    text-align: left;
    font-family: 'M PLUS Rounded 1c', sans-serif;
    font-size: 2.0rem;
    line-height: 1;
    margin: 0 auto;
    padding-bottom: 10px;
}


/* activites_main の下部マージンをリセットし、背景画像と下の子要素を密着させる */
.activites_main {
    display: block;
    height: auto;
    margin: 0 auto; /* 上下左右のマージンを0に */
    /* width: 100%; */
    background-image: url(../images/wave.svg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center top;
    object-fit: cover;
    padding-bottom: 25px; /* 下部コンテンツとの隙間を確保するためにパディングを追加 */
    align-items: center;
}

.activites_maintext {
    display: block;
    text-align: left;
    margin: 0 auto;
    margin-bottom: 20px;
    max-width: 1160px; 

}

.activites_photo1 {
    display: block;
    height: auto;
    margin: 0 auto;
    width: 70%;
}


/* =======================
section--activity - Meeting Section Outer Wrapper (新しいラッパーのスタイル)
========================== */
/* 各交流会セクション（対面、オンライン、ランチ）を個別に囲むラッパー */
.meeting-section-outer-wrapper {
    background-color: rgba(253, 229, 221, 0.4); 
    /* padding-top: 25px; 
    padding-bottom: 25px; 
    margin: 0; /* 親要素の幅いっぱいに広げるためマージンは0 */
}


.custom-shape-divider-top-1753267660 {
    margin-top: 0;
    margin-bottom: 0;
    padding-top: 0;
    padding-bottom: 0;
}

.custom-shape-divider-top-1753267660 .shape-fill {
    fill: rgba(253, 229, 221, 0.4); /* ラッパーの色と合わせる */
}


/* =======================
section--activity - Meeting 
========================== */


.meeting_direct,
.metting_online,
.meeting_lunch {
    padding: 0 var(--contentPadding);
    margin: 0 auto; 
    max-width: 1160px; 
    ;
}

.activites_main,
.meeting_direct,
.metting_online,
.meeting_lunch {
    padding-top: 20px;
    padding-bottom: 0;
    padding-left: var(--contentPadding);
    padding-right: var(--contentPadding);
    margin-bottom: 0;
}


/* 共通の画像サイズ調整 (スマートフォン用) */
.meeting_direct_image,
.meeting_online_image,
.meeting_lunch_img {
    width: 90%; 
    max-width: 300px; 
    margin: 0 auto; 
    display: block; 
}

.meeting_lunch_img {
    padding-top: 20px;
    padding-bottom: 20px;
}


/* 対面交流会全体の設定（スマホ表示のデフォルト） */
.meeting_direct {
    /* 既存のスタイルはそのまま */
}

/* 対面交流会のテキストエリア（スマホ表示のデフォルト） */
.meeting_direct_text {
    padding-bottom: 20px;
}


/* PC表示時の調整 (769px以上) */
@media screen and (min-width: 769px) {
    .meeting_direct {
        display: flex;
        flex-direction: row;
        align-items: center;
    }

    .meeting_direct_text {
        flex: 1;
        padding-right: 30px;
    }

    .meeting_direct_image {
        width: auto;
        max-width: 400px;
        flex-shrink: 0;
    }
}


/* オンライン交流会全体の設定 */
.metting_online {
    /* padding は親の .meeting-section-outer-wrapper に移動したため調整 */
    padding-top: 0;
    padding-bottom: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* オンライン交流会のテキストエリア */
.meeting_online_text {
    padding-bottom: 20px; /* テキストと画像の間隔を確保 */
    order: 1; /* ★SP表示時にテキストを最初に配置 */
}

/* オンライン交流会の画像 */
.meeting_online_image {
    order: 2; /* ★SP表示時に画像をテキストの次に配置 */
}


/* PC表示時の調整 (769px以上) */
@media screen and (min-width: 769px) {
    /* PC表示ではFlexboxを使って横並びにする */
    .metting_online {
        flex-direction: row; /* 画像が左、テキストが右 */
        gap: 20px; /* 写真とテキストの間隔 */
        /* max-width と margin: auto は既に上記で設定済み */
        /* background-color は親のラッパーに任せるため削除済み */
    }

    /* PC表示時のテキストエリア */
    .meeting_online_text {
        flex: 1;
        order: 2; /* テキストを右に配置 */
        padding-bottom: 0;
    }

    /* PC表示時の画像 */
    .meeting_online_image {
        width: auto;
        max-width: 400px;
        flex-shrink: 0;
        order: 1; /* 画像を左に配置 */
    }
}

/* PC表示時のランチ交流会画像サイズ調整とレイアウト */
@media screen and (min-width: 769px) {
    .meeting_lunch {
        display: flex;
        flex-direction: row;
        align-items: center;
        gap: 20px;
    }
    .meeting_lunch_text {
        flex: 1;
        padding-right: 30px;
    }
    .meeting_lunch_img {
        width: auto;
        max-width: 400px;
        order: 2;
        padding-top: 0;
        padding-bottom: 0;
        margin: 0; /* Flexboxで配置するため中央寄せを解除！重要 */
        flex-shrink: 0;
    }
}


/* =======================
section--exhivision-
========================== */

/* exhibitionセクション全体のパディング */
.exhibition {
    padding: 25px var(--contentPadding);
    align-items: center;
}

/* exhibition_mainの全体設定 */
.exhibition_main {
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 1160px;
    margin: 0 auto;
    gap: 30px;
}

/* 上部のヘッダーとテキスト1のコンテナ */
.exhibition_header_content {
    width: 100%;
    text-align: center;
}

/* exhibition_text1 のスタイル */
.exhibition_text1 {
    text-align: left;
    margin: 0 auto;
    /* padding: 0 var(--contentPadding); */
}


/* 画像とテキスト2をまとめるコンテナ（スマホでのデフォルト設定） */
.exhibition_image_and_text_group {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    padding: 0 var(--contentPadding);
}

/* 画像（exhibition_imag）のスタイル */
.exhibition_imag {
    width: 100%;
    max-width: 70%;
    height: auto;
    display: block;
    margin: 0 auto;
    padding-top: 30px;
    padding-bottom: 30px;
}

/* テキストをまとめる新しいdiv */
.exhibition_texts_right {
    width: 100%;
    text-align: left;
}

/* テキスト2（exhibition_text2）のスタイル */
p.exhibition_text2 {
    width: 100%;
    text-align: left;
    margin-top: 0;
    padding: 0;
}

.exhibition_text3 {
    display: block;
    text-align: left;
    margin: 0 auto;
    margin-bottom: 20px;
    max-width: 1160px;
}




/* PC表示時の調整 (769px以上) */
@media screen and (min-width: 769px) {
    /* exhibition_main はPCでも縦並びを維持し、2つの主要セクションを並べる */
    .exhibition_main {
        flex-direction: column;
        gap: 50px;
    }

    /* 上部のヘッダーとテキスト1のコンテナ（PCでの調整） */
    .exhibition_header_content {
        text-align: left;
    }

    .exhibition_header_content h4 {
        text-align: center;
    }

    .exhibition_text1 {
        padding: 0;
    }


    /* 画像とテキスト2をまとめるコンテナ（PCでの調整） */
    .exhibition_image_and_text_group {
        flex-direction: row;
        gap: 30px;
        align-items: center;
        padding: 0;
    }

    /* 画像（exhibition_imag）のスタイル（PCでの調整） */
    .exhibition_imag {
        flex: 1;
        max-width: 45%;
        padding: 0;
        margin: 0;
        order: 1;
    }

    /* テキストをまとめるdiv（PCでの調整） */
    .exhibition_texts_right {
        flex: 1;
        width: auto;
        text-align: left;
        padding: 0;
        margin-top: 0;
        order: 2;
    }

    /* テキスト2（exhibition_text2）のスタイル（PCでの調整） */
    p.exhibition_text2 {
        margin-bottom: 1em;
    }

    /* テキスト3（exhibition_text3）のスタイル（PCでの調整） */
    .exhibition_text3 {
        margin-top: 1em;
        text-align: left; /* PCではテキストを左寄せ */
        padding: 0; /* PCでは .exhibition のパディングに合わせるためリセット */
    }
}


/* =======================
Slick Carousel Style (Slick Carousel導入後のカスタムスタイル)
========================== */

/* Slick Carouselのコンテナ設定 */
.carousel-container.slider {
    position: relative;
    max-width: 900px;
    margin: 50px auto;
}

/* Slick Carouselのスライド画像に高さを適用 */
.slick-slide img {
    display: block;
    width: 100%;
    height: 600px;
    object-fit: cover;
}

/* Slick Carouselのナビゲーションドットのカスタム */
.slick-dots {
    display: flex;
    justify-content: center;
    margin-top: 20px;
    padding: 0;
    list-style: none;
}

.slick-dots li {
    margin: 0 5px;
}

.slick-dots li button {
    font-size: 0;
    line-height: 0;
    display: block;
    width: 12px;
    height: 12px;
    padding: 5px;
    cursor: pointer;
    border: 0;
    outline: none;
    background-color: lightgray;
    border-radius: 50%;
    transition: background-color 0.3s;
}

.slick-dots li.slick-active button {
    background-color: var(--primary-orange, #CC947F);
}

/* Slick Carouselの矢印ボタンのカスタム */
.slick-prev,
.slick-next {
    font-size: 0;
    line-height: 0;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    display: block;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 1px solid var(--primary-orange, #CC947F);
    outline: none;
    background-color: rgba(255, 255, 255, 0.8);
    color: var(--primary-orange, #CC947F);
    border-radius: 50%;
    cursor: pointer;
    z-index: 10;
    transition: background-color 0.3s, color 0.3s;
}

/* 矢印のアイコン */
.slick-prev:before,
.slick-next:before {
    font-family: 'slick';
    font-size: 20px;
    line-height: 1;
    color: var(--primary-orange, #CC947F);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.slick-prev:before {
    content: '◀';
}

.slick-next:before {
    content: '▶';
}

.slick-prev {
    left: 10px;
}

.slick-next {
    right: 10px;
}

.slick-prev:hover,
.slick-next:hover {
    background-color: var(--primary-orange, #CC947F);
}

/* ホバー時に矢印アイコンの色も白に */
.slick-prev:hover:before,
.slick-next:hover:before {
    color: #fff;
}


/* disabled状態のスタイル */
.slick-prev.slick-disabled,
.slick-next.slick-disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* レスポンシブデザインの調整 */
@media (max-width: 600px) {
    .carousel-container.slider {
        max-width: calc(100vw - (var(--contentPadding) * 2));
    }

    .slick-slide img {
        height: 400px;
    }

    .slick-prev,
    .slick-next {
        width: 30px;
        height: 30px;
    }

    .slick-prev:before,
    .slick-next:before {
        font-size: 16px;
    }
}

@media (max-width: 480px) {
    .slick-slide img {
        height: 350px;
    }
}


/* スライドショーのコンテナ */
.slideshow-container {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: auto;
}

/* 各スライドのスタイル */
.slide {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity 1s ease-in-out;
}

/* 最初のスライドは初期表示 */
.slide:first-child {
  opacity: 1;
}



/* =======================
section--activity - Voice section
========================== */

.voice {
    text-align: center;
    /* Flexbox を導入し、子要素の配置を制御 */
    display: flex;
    flex-direction: column; /* 要素を縦に並べる */
    align-items: center; /* コンテナ内で中央寄せ */
    max-width: 1160px;
    margin: 0 auto;
}

.voice h4 {
    color: var(--primary-orange, #CC947F);
    font-size: 2.0rem;
    text-align: left;
    margin-top: 20px;
}

.voice>p {
    font-size: 1.6rem;
    color: #4D4D4D;
    margin-bottom: 30px;
    max-width: 1160px; /* テキストの最大幅を設定 */
    text-align: left;
}

/* 各Voiceセクションの共通ラッパー（新しいスタイル） */
.voice_mam_wrapper,
.voice_general_wrapper,
.voice_medical_wrapper {
    display: flex; 
    flex-direction: row; /* 要素を横に並べる */
    align-items: center; /* 垂直方向の中央揃え */
    width: 100%; /* 親要素の幅いっぱいに広げる */
    max-width: 1160px; /* ボイスブロックの最大幅を設定 */
    margin: 30px auto; 
}

/* ラッパー内の画像（共通スタイル） */
.voice_mam_wrapper > img,
.voice_general_wrapper > img,
.voice_medical_wrapper > img {
    flex-shrink: 0; /* 画像が縮小しないように */
    /* width: 100px; */
    height: auto;
    object-fit: contain;
    padding: 0 15px; 
    max-width: 1160px;

}


/* 各Voiceセクションの共通スタイル */
.voice_mam,
.voice_general,
.voice_medical {
    /* flex-grow: 1; 残りのスペースを埋める */
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    color: #4D4D4D;
    text-align: left;
    position: relative;
    padding: 20px 25px; 
    max-width: 1160px;
}


.voice_mam>p:first-of-type,
.voice_general>p:first-of-type,
.voice_medical>p:first-of-type {
    font-weight: bold;
    font-size: 1.8rem;
    color: #CC947F;
    margin-bottom: 15px;
    padding: 0; 
    text-align: center;
}

/* 各Voiceセクション内の本文テキスト */
.voice_mam p:last-of-type,
.voice_general p:last-of-type,
.voice_medical p:last-of-type {
    font-size: 1.5rem;
    line-height: 1.6;
    margin: 0;
    padding: 0; 
    max-width: 1160px;
}

.voice_mam{
    background-color:#FDE5DD ;
    max-width: 1160px;
    margin: 0auto;
}

.voice_general{
    background-color:#F0EDF8;
    max-width: 1160px;
    margin: 0 auto;
}

.voice_medical{
    background-color: #E3F5E8 ; 
    margin: 0 auto;
}



/* Instagramへのリンクボタンのスタイル */
.voice .btn {
    display: inline-block;
    background-color: #CC947F;
    color: #FFF;
    padding: 10px 20px;
    border-radius: 5px;
    text-decoration: none;
    margin-top: 30px;
    margin-bottom: 50px; /* 下部マージンを追加 */
    transition: opacity 0.3s ease;
}

.voice .btn:hover {
    opacity: 0.8;
}


/* PC表示時の調整 (例: 769px以上) */
@media screen and (min-width: 769px) {

    .voice_mam_wrapper > img,
    .voice_general_wrapper > img,
    .voice_medical_wrapper > img {
        width: 130px; 
        padding: 0 20px; 
    }

    .voice_mam>p:first-of-type,
    .voice_general>p:first-of-type,
    .voice_medical>p:first-of-type {
        font-size: 2.0rem;
    }

    .voice_mam p:last-of-type,
    .voice_general p:last-of-type,
    .voice_medical p:last-of-type {
        font-size: 1.6rem;
    }
}