@charset "utf-8";
/* =========================
common
============================*/
html {
    font-size: 62.5%;
}
body {
    font-family:
        'Noto Sans JP',
        Arial,
        sans-serif;
    font-style: normal;
    color: #16160E;
    line-height: 1.5;
    font-size: 2.4rem;
}

img {
    max-width: 100%;
    height: auto;
    vertical-align: bottom;
}

.sub-title {
    font-size: 5.6rem;
    font-weight: 700;
    text-align: left;
    line-height: 1;
}

.programContent,.sns,.segment__wrap {
    max-width: 1107px;
    padding: 0 20px 100px 20px;
    margin: 0 auto;
}

/*タブレット表示（画面幅 1024px 以下）*/

@media screen and (max-width: 1024px) {
    .sub-title__box {
        margin: 0 auto;
    }
    .sub-title {
        text-align: center;
    }
}

/* ケータイ表示（画面幅 734px 以下）*/

@media screen and (max-width: 734px) {
    .programContent,.sns,.segment__wrap {
        padding: 0 16px 60px 16px;
    }

    body {
        font-size: 1.8rem;
    }

    .sub-title {
        font-size: 4rem;
    }
}

/* =========================
header
============================*/
.header {
    width: 100%;
    max-width: 1440px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 21px 60px;
    background:#FFFFFF;
    margin: 0 auto;
}

h1 img {
    width: 49px;
    display: block;
}

/* PC表示（画面幅 600px 以上）*/
@media screen and (min-width: 600px) {
    .drawer-trigger,
    .drawer-overlay {
        display: none;
    }

    /* ナビゲーションを横並びで常時表示 */
    .drawer {
        position: static;
        width: auto;
        height: auto;
        padding: 0;
        background: transparent;
        translate: none;
    }

    .drawer__list {
        display: flex;
        align-items: center;
        gap: 50px;
    }

    .drawer__list li + li {
        margin-top: 0; /* スマホ用の余白を打ち消し */
    }

    .drawer__list a {
        font-size: 1.6rem;
        color: #16160E;
        text-decoration: none;
    }
}

/* タブレット表示（画面幅 1024px 以下）*/
@media screen and (max-width: 1024px) {
    .header {
        padding: 10px 16px; /* スマホ用にヘッダーの余白を少し縮める */
    }
}


/* スマホ表示（画面幅 599px 以下）*/
@media screen and (max-width: 599px) {
    .header {
        width: 100%;
        max-width: 1440px;
        position: relative;
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 21px 60px;
        background:#FFFFFF;
        margin: 0 auto;
}

    .header {
        padding: 10px 16px;
    }

    /* ① ボタン: 二本線 */
    .drawer-trigger {
        position: relative;
        z-index: 3;
        width: 48px;
        height: 48px;
        background: none;
        border: none;
        cursor: pointer;
        display: block;
    }

    .drawer-trigger__bar {
        position: absolute;
        left: 12px;
        width: 24px;
        height: 2px;
        background-color: currentColor;
        transition: translate 0.4s ease-out, rotate 0.4s ease-out;
    }

    .drawer-trigger__bar:nth-child(1) { top: 19px; }
    .drawer-trigger__bar:nth-child(2) { top: 27px; }

    /* 開いた時の「✕」アニメーション */
    .header.is-open .drawer-trigger__bar:nth-child(1) {
        translate: 0 4px;
        rotate: 45deg;
    }

    .header.is-open .drawer-trigger__bar:nth-child(2) {
        translate: 0 -4px;
        rotate: -45deg;
    }

    /* ② ナビゲーション: 右からスライドイン */
    .drawer {
        position: fixed;
        top: 0;
        left: 0;
        z-index: 2;
        width: min(75%, 320px);
        height: 100dvh;
        padding: 80px 24px 24px;
        background-color: rgba(255, 255, 255, 0.85);
        backdrop-filter: blur(8px);
        translate: -100% 0;
        transition: translate 0.4s ease-out;
    }

    .header.is-open .drawer {
        translate: 0 0;
    }

    .drawer__list {
        list-style: none;
        margin: 0;
        padding: 0;
    }

    .drawer__list li + li {
        margin-top: 24px;
    }

    .drawer__list a {
        color: #16160E;
        text-decoration: none;
        font-size: 1.8rem;
        font-weight: 500;
    }

    /* ③ オーバーレイ */
    .drawer-overlay {
        position: fixed;
        inset: 0;
        z-index: 1;
        background-color: rgba(0, 0, 0, 0.4);
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.4s ease-out, visibility 0.4s;
    }

    .header.is-open .drawer-overlay {
        opacity: 1;
        visibility: visible;
    }
}
/* =========================
firstView
============================*/
.article__header {
    background-image: url('../img/background.webp');
    margin-bottom: 100px;
}

.mainImg {
    text-align: center;
}

.mainImag__pc {
    width: 100%;         
    max-width: 1172px;   
    height: auto;        
}

/* ケータイ表示（画面幅 734px 以下）*/
@media screen and (max-width: 734px) {
    .article__header {
        background-image: url('../img/background.webp');
        margin-bottom: 60px;
}
}

/* =========================
JavaScript
============================*/
.programContent__wrap,
.sns,
.segment__wrap {
  opacity: 0;
  transform: translateY(-20px); /* 先ほどの短いストローク */
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

/* 表示クラスが付与された時の状態 */
.programContent__wrap.is-visible,
.sns.is-visible,
.segment__wrap.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* =========================
programContent
============================*/
.programContent__wrap {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 60px;
    padding-bottom: 35px;
}

.programContent__content {
    width: 60.7%;
    min-width: 500px;
    flex-grow: 1;
}

.sub-title__txt {
    color: #23B14D;
    font-weight: 700;
}

.content__detail {
    line-height: 1.8;
}

.sub-title__box {
    padding-bottom: 35px;
}

.br1024 {
    display: none;
}
.br515 {
        display: none;
    }

.programContent__links {
    width: 32.6%;
    min-width: 300px;
    flex-grow: 1;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    box-sizing: border-box;
}

.programContent__links img {
    width: 100%;         
    max-width: 294px;   
    height: auto;
    padding-bottom: 5px;
}

.programContent__links a {
    width: 100%;
    max-width: 345px;
    box-sizing: border-box;
}

.message-link,.scoop-link {
    background-color: #23B14D;
    border-radius: 10px;
    padding: 15px 15px;
    width: 100%;
    box-sizing: border-box;
}

.message-link p,.scoop-link p {
    color: #FFFFFF;
}

.cast-list {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 1%;
}

.cast-item {
    text-align: center;
    width: 100%;
    max-width: 155px;
}

.cast-item img {
    width: 155px;
    aspect-ratio: 952 / 1049;;
    object-fit: cover;
    object-position: top;
    display: block;
    margin: 0 auto 10px;
}

.name-ja {
    font-size: 2rem;
    font-weight: 700;
    line-height: 1;
}

.name-en {
    font-size: 1.2rem;
    font-weight: 700;
}

/* タブレット表示（画面幅 1024px 以下）*/

@media screen and (max-width: 1024px) {
    .programContent__wrap {
        display: flex;
        flex-direction: column;
        gap: 60px;
        padding-bottom: 60px;
    }

    .programContent__content {
        width: 100%;
        min-width: 0px;
        flex-grow: 1;
        text-align: center;
    }

    .br1024 {
        display: block;
    }
    .br515 {
        display: none;
    }

    .programContent__links {
        width: 100%;
        min-width: 0; /* 【追加】PC用の min-width: 300px をリセット */
        gap: 20px;
    }

    .message-link, .scoop-link {
        width: 100%;        /* 【変更】固定幅から100%に変更 */
        max-width: 345px;  /* 【変更】最大幅を345pxにしつつ、狭い画面では縮むように設定 */
    }

    .cast-list {
        display: flex;
        justify-content: center;
        flex-wrap: wrap;
        column-gap: 20px;
    }

    .cast-item {
        width: 100%;
        max-width: 200px; 
    }

    .cast-item img {
        width: 100%;
        max-width: 200px;
    }

    /* 1〜3人目（渡辺・佐藤・平岡）を上段に設定 */
    .cast-item:nth-child(1) { order: 1; }
    .cast-item:nth-child(2) { order: 2; }
    .cast-item:nth-child(3) { order: 3; }

    /* 3人目の直後に幅100%の見えない壁を入れて強制改行 */
    .cast-list::after {
        content: "";
        display: block;
        width: 100%;
        height: 0;
        order: 4; /* 3人目と4人目の間に割り込ませる */
    }

    /* 4〜6人目（佐々木・浦部・鈴木）を下段に設定 */
    .cast-item:nth-child(4) { order: 5; }
    .cast-item:nth-child(5) { order: 6; }
    .cast-item:nth-child(6) { order: 7; }
}

/* ケータイ表示（画面幅 734px 以下）*/
@media screen and (max-width: 734px) {

    /* 1024px以下で入れた強制改行を無効化 */
    .cast-list::after {
        display: none;
    }

    .cast-list {
        display: grid;
        grid-template-columns: repeat(2, 1fr); /* 2列均等配置 */
        gap: 6px 4px; /* 上下6px、左右4pxの微小な隙間 */
        justify-items: center;
    }

    /* order設定をリセット（元のHTML順で1→2, 3→4, 5→6と並ぶ） */
    .cast-item:nth-child(n) {
        order: initial;
        width: 100%;
        max-width: 100%;
    }

    .cast-item img {
        width: 100%; /* 親要素いっぱいに広げてスキマ感を統一 */
        height: auto;
    }

}

/* ケータイ表示（画面幅 515px 以下）*/
@media screen and (max-width: 515px) {
    .br1024 {
        display: none;
    }

    .br515 {
        display: block;
    }
}

/* ケータイ表示（画面幅 319px 以下）*/
@media screen and (max-width: 319px) {
    .br1024 {
        display: none;
    }

    .br515 {
        display: none;
    }
}

/* =========================
SNS
============================*/

.sns__wrap {
    display: flex;
    justify-content: space-between;
    box-sizing: border-box;
}

.sns__inner {
    text-align: center;
    width: 48%;
    max-width: 434px;
}

.sns__inner img {
    width: 100%; /* 【変更】親要素（sns__inner）に合わせて伸縮 */
    max-width: 434px;
    height: auto;
    padding-bottom: 5px;
}

/* タブレット表示（画面幅 1024px 以下）*/
@media screen and (max-width: 1024px) {
    .sns__wrap {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 20px;
    }

    .sns__inner {
        width: 100%; 
    }
}

/* ケータイ表示（画面幅 734px 以下）*/
@media screen and (max-width: 734px) {
    .sns__inner img {
        width: 100%; /* 【変更】画面幅が小さくなっても100%で綺麗に縮む */
        max-width: 320px; /* 【変更】最大幅を320pxとしつつ縮小を許可 */
        height: auto;
        padding-bottom: 5px;
    }
}

/* =========================
タブレット表示（画面幅 1024px 以下）
============================*/

@media screen and (max-width: 1024px) {
    .sns__wrap {
        display: flex;
        flex-direction: column;
        gap: 20px;
}
}

/* =========================
segment
============================*/
.segment {
    background-color: #23B14D;
    padding-top: 100px;
}

.sub-title__box02 {
    padding-bottom: 35px;
}

.sub-title02 {
    font-size: 5.6rem;
    font-weight: 700;
    text-align: center;
    color: #FFFFFF;
}

.segment__list {
    display: flex;
    justify-content: space-around;
    flex-wrap: wrap;
    gap: 20px;
}

.segment__item {
    width: 100%;
    max-width: 320px;
    box-sizing: border-box;
    background-color: #FFFFFF;
    border-radius: 20px;
    text-align: center;
    padding: 20px 10px 60px 10px;
}

.segment__item img {
    padding-bottom: 10px;
}

.segment__txt {
    padding-bottom: 35px;
}

.segment__btn {
    background-color: #23B14D;
    border-radius: 10px;
    color: #FFFFFF;
    padding: 10px 20px;
}

/* ケータイ表示（画面幅 734px 以下）*/
@media screen and (max-width: 734px) {
    .sub-title02 {
        font-size: 4rem;
        font-weight: 700;
        text-align: center;
        color: #FFFFFF;
    }
}

/* =========================
footer
============================*/
footer {
    width: 100%;
    max-width: 1440px;
    padding: 21px 60px;
    background:#FFFFFF;
    margin: 0 auto;
    display: flex;
    justify-content: center;
}

footer img {
    width: 49px;
    display: block;
}