/* Webフォント読み込み前の代替書体。
   見出しは文字数から文字サイズを決めているので、字幅の違う書体で一瞬描かれると
   はみ出したり幅が飛んだりする。size-adjust で Noto Sans JP に字幅を合わせる。 */
@font-face{font-family: "NotoFallbackJP";
    src: local("Hiragino Sans"), local("Hiragino Kaku Gothic ProN"), local("Yu Gothic"), local("Meiryo");
    size-adjust: 92%;font-weight: 100 900;font-display: swap;
}

/*----------------------------------------
    top page
------------------------------------------*/

/* fv
------------------------------------------*/


/* ==========================================
   Audition Page Styles
========================================== */

.fix_btn{position: fixed;bottom: 0;right: 0;width: min(30%,200px);z-index: 200;overflow: hidden;transition: transform .3s ease, opacity .3s ease;
    /* フッターが見えている間は下へ隠す（script.js） */
    &.is_hidden{transform: translateY(100%);opacity: 0;pointer-events: none;}
}

/* 常時表示の応募ボタン（旧 contact.png をコードで再現）
   元画像 291x265px の実測値。すべて cqw（ボタン幅の1%）で持つ。
     黄色い円  直径335px（=115.1cqw）・中心(167.5,168)。右下がボタン枠で切れる
     文言      墨面 y44-60・x79-255（中心x=167）
     QR        144x144px・左上(93,81)
   文字サイズ（--fs）は文字数から ea_fit() が算出する。 */
.contact_btn{container-type: inline-size;position: relative;display: block;aspect-ratio: 291 / 265;
    /* 黄色い円 */
    &:before{content: "";position: absolute;left: 0;top: 0.2cqw;
        width: 115.1cqw;aspect-ratio: 1;border-radius: 50%;background: #fbe200;
    }
    .cb_label{position: absolute;top: 15.1cqw;left: 57.4cqw;transform: translateX(-50%);
        font-size: var(--fs, 6.4cqw);font-weight: 700;line-height: 1;
        color: var(--c_black_d);white-space: nowrap;
    }
    .cb_qr{position: absolute;left: 32cqw;top: 27.8cqw;width: 49.5cqw;background: #fff;
        img{display: block;width: 100%;}
    }
}

.section_title{text-align: center;margin-bottom: 50px;
    &:not(:has(img)){font-size: clamp(34px,7vw,60px);line-height: 1.3em;font-weight: bold;position: relative;color: var(--c_theme_color);padding-bottom: 50px;
        @media screen and (max-width: 835px) {padding-bottom: 30px;}
        &:before{position: absolute;content: attr(data-title);font-size: .35em;line-height: 1.3em; left: 50%;transform: translateX(-50%);bottom: 0;white-space: nowrap;}
    }
}
.content_title{text-align: center;font-weight: bold;color: var(--c_theme_color);font-size: clamp(28px,5vw,40px);line-height: 1.4em;margin-bottom: 40px;}

/* ==========================================
   Hero Section
========================================== */
.audition_hero {position: relative; width: 100%;   margin-bottom: 10vw;
    img{width: 100%;}
    .hero_flex{display: flex;
        .hero_kv { width: 40%; z-index: 0;
            img {width: 100%; height: 100%; object-fit: cover; }
        }
        .hero_content {position: relative; z-index: 1; text-align: center; color: #fff; padding: 5% 0 ;width: 60%;  
            .hero_title{width: 70%; margin:0 auto 4vw;}
            /* タイトル（旧 title.png をコードで再現）
               元画像 865x283px の実測値。すべて cqw（タイトル幅の1%）で持つ。
                 ロゴ    510x31px（画像のまま）
                 日本語  墨面 y74-146（高さ73px）。&は直径64pxの赤丸バッジ
                 英字    墨面 y192-282（高さ91px）・字間を広くとる
               文字サイズ（--fs）は文字数から ea_fit() が算出する。 */
            .hero_title{container-type: inline-size;text-align: center;color: var(--c_black_d);
                --squeeze: 1.05;--skew: -9deg;
                p{margin: 0;line-height: 1;}
                .ht_logo{width: 58.96cqw;margin: 0 auto;
                    img{display: block;width: 100%;}
                }
                .ht_main{margin-top: 4.63cqw;
                    > span{display: inline-block;white-space: nowrap;
                        font-size: var(--fs, 8.1cqw);font-weight: 900;line-height: 1.04;
                        font-feature-settings: "palt" 1;letter-spacing: -0.01em;
                        transform: scaleX(var(--squeeze)) skewX(var(--skew));
                        /* 縁取りで太らせると画数の多い漢字（掘・募・集）のすき間が埋まって潰れるため、太さは font-weight だけで出す */
                    }
                }
                /* &の赤丸バッジ。文字は傾けない */
                .ht_amp{display: inline-block;font-style: normal;
                    font-size: 0.62em;
                    width: 1.498em;height: 1.498em;line-height: 1.498em;
                    vertical-align: 0.205em;margin: 0 0.06em;
                    background: #cb000b;border-radius: 50%;color: #fff;text-align: center;
                    -webkit-text-stroke: 0;
                    /* 親の平体と傾きを打ち消して、真円・直立に戻す */
                    transform: skewX(9deg) scaleX(0.952);
                }
                .ht_en{margin-top: 3.35cqw;
                    > span{display: inline-block;white-space: nowrap;
                        font-size: var(--fs, 13.51cqw);font-weight: 900;line-height: 1;
                        /* 字間を広くとる。行末にも入るぶんを margin-right で相殺して中央に戻す */
                        letter-spacing: 0.342em;margin-right: -0.342em;
                    }
                }
            }
            .hero_logo{width: 60%;margin: 0 auto;}
        }
    }
    .hero_notice {width: 90%;margin-right: 0;margin-left: auto;margin-top: -18vw;position: relative;z-index: 5;margin-bottom: 3vw;}
}

/* キャッチ帯（旧 catch.webp をコードで再現）
   元画像 2000x325px を1000px相当に落として1px単位で実測した値をそのまま比率で持つ。
     ピンク帯   高さ7.1cqw／傾き 1下降につき0.333横移動（約18.4度）／左上 x=4.5cqw
     黒ラベル   高さ4.3cqw・帯の上下中央・平行四辺形・幅16.3cqw固定（元画像は2段とも同じ幅）
                帯より左へはみ出す（左上 x=0.9cqw）
     シアン帯   高さ0.8cqw・ピンクの真下・ピンクより右から始まる
     2段目以降  1段目より13.3cqw ずつ右へずれる階段状。段の間に隙間はない
   単位は cqw（帯の幅の1%）なので、どの横幅でも比率が崩れない。
   文字サイズ（--fs / --lfs）は文字数からPHPが算出する（ea_catch_style）。 */
.catch_banner{container-type: inline-size;
    --bar_h: 7.1cqw;      --bar_cut: 2.37cqw;   --bar_x: 4.5cqw;
    --label_h: 4.3cqw;    --label_cut: 1.43cqw; --label_x: 0.9cqw; --label_w: 16.3cqw;
    --gap: 1.3cqw;                                   /* ラベルと文言の間 */
    --stripe_h: 0.8cqw;   --stripe_cut: 0.27cqw; --stripe_x: 4cqw;
    --row_h: 8.3cqw;                                 /* 段の高さ。帯＋シアン＋次の段までの余白 */
    --row_step: 13.3cqw;                             /* 段ごとの右へのずれ */

    .catch_row{position: relative;height: var(--row_h);
        --shift: calc(var(--row_step) * var(--i, 0));
    }
    .catch_bar{position: absolute;top: 0;right: 0;height: var(--bar_h);
        left: calc(var(--bar_x) - var(--bar_cut) + var(--shift));
        background: var(--c_theme_color);
        clip-path: polygon(var(--bar_cut) 0,100% 0,100% 100%,0 100%);
    }
    .catch_label{position: absolute;z-index: 1;
        top: calc((var(--bar_h) - var(--label_h)) / 2);height: var(--label_h);
        left: calc(var(--label_x) - var(--label_cut) + var(--shift));
        width: calc(var(--label_w) + var(--label_cut));
        display: flex;align-items: center;justify-content: center;white-space: nowrap;
        color: #fff;font-weight: 900;font-style: italic;
        font-size: var(--lfs, 2.7cqw);letter-spacing: -0.01em;font-feature-settings: "palt" 1;
        /* 背景だけ平行四辺形にする。文字まで傾けると読みにくくなるため */
        &:before{content: "";position: absolute;inset: 0;background: var(--c_black_d);
            clip-path: polygon(var(--label_cut) 0,100% 0,calc(100% - var(--label_cut)) 100%,0 100%);
        }
        span{position: relative;}
    }
    .catch_text{position: absolute;z-index: 1;top: 0;height: var(--bar_h);
        left: calc(var(--label_x) + var(--label_w) + var(--gap) + var(--shift));
        display: flex;align-items: center;
        color: #fff;font-weight: 900;font-style: italic;
        font-size: var(--fs, 3.5cqw);line-height: 1.15;
        letter-spacing: -0.02em;white-space: nowrap;font-feature-settings: "palt" 1;
    }
    .catch_stripe{position: absolute;top: var(--bar_h);right: 0;height: var(--stripe_h);
        left: calc(var(--stripe_x) - var(--stripe_cut) + var(--shift));
        background: var(--c_accent_color);
        clip-path: polygon(var(--stripe_cut) 0,100% 0,100% 100%,0 100%);
    }
}

@media screen and (max-width: 835px) {
    .audition_hero{padding-top: 40px;
        .hero_flex{flex-direction: column-reverse;
            .hero_kv{width: 100%;margin: 0 auto;}
            .hero_content{width: 100%;
                .hero_title{width: 85%;margin: 0 auto 6vw;}
                .hero_logo{width: 60%;margin: 0 auto 5vw;}
            }
        }
        .hero_notice{margin-top: 5vw;width: 100%; margin: 5vw 0;}
    }
}


/* 概要セクションの見出し（旧 about.png をコードで再現）
   元画像 1487x666px の実測値。文字サイズは cqw（見出し幅の1%）で持つ。
     ピンク3行  7.49cqw（1行の墨面 116px）
     ×印        90x85px・線幅14px。1行目と2行目の間、中心よりやや左
     黒2行      2.92cqw / 4.40cqw（ピンクとは別書体で、平体率も違う）
   元書体は Noto Sans JP 900 よりわずかに太く、横がやや詰まっている。
   横の差は --squeeze（平体）で埋める。太さの差を縁取りで補うのはやめた（画数の多い漢字が潰れるため）。
   数値は元画像との実測突き合わせで決めたもので、見た目の勘で置いていない。
   文字サイズ（--fs）は文字数から ea_fit() が算出する。 */
.about_catch{container-type: inline-size;display: block;text-align: center;
    margin-bottom: 50px;overflow: hidden;
    --squeeze: 1.05;        /* 横の伸ばし。元書体は Noto Sans JP 900 よりやや横に広い */
    --skew: -9deg;          /* 傾き。実測で最も一致した角度 */

    .ac_line, .ac_sub, .ac_lead{display: block;line-height: 1.38;
        > span{display: inline-block;white-space: nowrap;
            font-weight: 900;font-size: var(--fs);
            font-feature-settings: "palt" 1;letter-spacing: -0.01em;
            transform: scaleX(var(--squeeze)) skewX(var(--skew));
        }
    }
    .ac_line{color: var(--c_theme_color);}
    .ac_sub, .ac_lead{color: var(--c_black);
        /* 黒い2行はピンクとは別の書体。句読点のアキを詰めておらず、横がやや狭い */
        --squeeze: 0.948;
        > span{font-feature-settings: normal;}
    }
    .ac_sub{margin-top: 2.2cqw;}
    .ac_lead{margin-top: 0.6cqw;}

    /* 交差マーク。線2本で描く */
    .ac_cross{display: block;position: relative;
        width: 6.05cqw;height: 5.7cqw;
        margin: -1.35cqw auto -1.35cqw;
        transform: translateX(-3.46cqw);
        &:before, &:after{content: "";position: absolute;top: 50%;left: 0;
            width: 100%;height: 0.94cqw;margin-top: -0.47cqw;
            background: var(--c_theme_color);
        }
        &:before{transform: rotate(43deg);}
        &:after{transform: rotate(-43deg);}
    }
}

/* ==========================================
   ポータル（トップページ）
   LP一覧は固定ページから自動で組み立てるので、カードの数は決め打ちにしない。
   グリッドは auto-fill にして、LPが増えても列が自然に増えるようにする。
========================================== */
.portal_lead_section{
    .portal_lead{font-size: clamp(15px,2.2vw,18px);line-height: 1.9;text-align: center;}
}

.portal_cards{display: grid;gap: clamp(20px,3vw,32px);
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr));
}

.portal_card{display: flex;flex-direction: column;background: #fff;border-radius: 16px;
    overflow: hidden;text-decoration: none;color: inherit;position: relative;
    border: 2px solid var(--c_theme_color);
    transition: transform .2s ease, box-shadow .2s ease;
    &:hover, &:focus-visible{transform: translateY(-4px);box-shadow: 10px 10px 0 var(--c_accent_color);}

    /* 募集LPのサムネイルはOGP画像（1200×630）を流用するので、枠も同じ比率にして文字が切れないようにする */
    .pc_thumb{display: block;aspect-ratio: 1200 / 630;overflow: hidden;background: var(--c_black);
        img{width: 100%;height: 100%;object-fit: cover;display: block;}
    }
    .pc_body{display: flex;flex-direction: column;gap: .7em;flex: 1;
        padding: clamp(18px,2.4vw,26px);
    }
    .pc_title{font-size: clamp(19px,2.4vw,24px);line-height: 1.45;font-weight: bold;
        color: var(--c_theme_color);
    }
    .pc_lead{font-size: clamp(14px,1.8vw,15px);line-height: 1.8;flex: 1;}

    /* ボタン風の締め。サイト内のほかのボタン（.btn_primary など）と同じカプセル型に揃える */
    .pc_cta{align-self: flex-start;margin-top: .3em;
        background: var(--c_theme_color);color: #fff;font-weight: bold;
        font-size: clamp(13px,1.6vw,15px);line-height: 1;
        padding: .85em 1.8em;border-radius: 999px;
    }

    /* 受付が終わった募集。写真を落ち着かせ、サムネイルの角に「終了しました」を重ねる */
    &.is_ended{border-color: #9a9a9a;
        .pc_thumb img{filter: grayscale(1);opacity: .5;}
        .pc_title{color: #6b6b6b;}
        .pc_cta{background: #6b6b6b;}
    }
    .pc_ended{position: absolute;top: 0;left: 0;z-index: 1;
        background: var(--c_black);color: #fff;font-weight: bold;
        font-size: clamp(13px,1.7vw,15px);line-height: 1;letter-spacing: .04em;
        padding: .75em 1.2em;border-radius: 0 0 8px 0;
    }

    /* 未公開のLPは編集者にだけ見える。誤って公開済みと思わないよう明示する */
    &.is_draft{border-style: dashed;opacity: .78;}
    .pc_draft{align-self: flex-start;background: var(--c_black);color: #fff;
        font-size: 12px;line-height: 1;padding: .5em .9em;border-radius: 4px;
    }
}

.portal_empty{text-align: center;font-size: clamp(15px,2vw,17px);padding: 2em 0;}
.portal_note{text-align: center;font-size: clamp(13px,1.8vw,15px);line-height: 1.8;margin-top: clamp(24px,3vw,36px);}

@media screen and (max-width: 835px) {
    .portal_cards{grid-template-columns: 1fr;}
    .portal_card:hover{transform: none;box-shadow: none;}
}

/* ==========================================
   Section Common Styles
========================================== */
.audition_types_section { position: relative;}
.section_title_box {text-align: center;}
.section_title {
	.title_main {display: block; font-size: clamp(22px, 4vw, 36px); font-weight: bold; line-height: 1.5em; background: var(--audition_gradient_multi); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;}
}
.section_subtitle {font-size: clamp(14px, 2.5vw, 18px); line-height: 1.8; margin-top: 20px; color: #666;}


/* ==========================================
   About Academy
========================================== */
.about_academy_box {background: #fff; border: 2px solid var(--c_theme_color); border-radius: 16px; padding: clamp(24px, 5vw, 60px); text-align: center;position: relative;
    &:before{position: absolute;content: "";background: var(--c_accent_color);width: 100%;height: 100%;top: 20px;left: 20px;z-index: -1;border-radius: 16px;}
    .academy_title {font-size: clamp(20px, 3.5vw, 40px);line-height: 1.4em; font-weight: bold;  color: var(--c_theme_color);position: relative;z-index: 2;margin-bottom:clamp(30px,4vw,60px);}
    .academy_logo {margin-bottom: clamp(30px,4vw,60px);position: relative;z-index: 2;
        img {max-width: 500px; margin: 0 auto;width: 90%;}
    }
    .academy_description {font-size: clamp(16px, 2.5vw, 18px); line-height: 1.9;text-align: left;position: relative;z-index: 2;
        p {margin-bottom: 16px;}
    }
	.academy_logo2{ display: flex; justify-content: center;margin-top: 2em;
		img{ width: 40%; max-width: 250px; margin: 0 5%;}
	}
}

.badge_link{ position: absolute; top: -5%; right: -5%; width: 20%; z-index: 2;
	img{ width: 100%;}
}

@media screen and (max-width: 835px) {
    .about_academy_box {
        &:before {top: 10px;
            left: 10px;}
    }
	.badge_link{
		position: inherit; top: 0; left: 0; width: 50%; margin: 2em auto 0;
	}
}


/* ==========================================
   受賞者特典セクション Campaign Benefits Section
========================================== */

.campaign_benefits_section {color: white;padding: clamp(60px, 8vw, 100px) 0;position: relative; margin-bottom:calc(var(--base_distance)*1);
    &:before{position: absolute;content: "";background:var(--c_theme_color);top: 0;left: 0;width: 100%;height: 100%;opacity: .8;}
    .section_title{color: #fff;}
}

.benefits_header {text-align: center;margin-bottom: 60px;}

.benefits_description {font-size: clamp(14px, 2.5vw, 16px);line-height: 1.9;text-align: center;}
.benefits_card {background: white;border-radius: 20px; position: relative;}
.benefits_card .badge{ position: absolute; background-color: #ff0; padding: 2% 5%; color: #000; text-align: center; position: absolute; right: 0; top: -15px; font-weight: bold; border-radius: 10px;box-shadow: 8px 8px black; line-height: 1.5em;}

.card_content {padding: clamp(28px, 5vw, 70px) clamp(22px,3vw,40px);}
.department_title {font-size: clamp(24px, 4vw, 32px);font-weight: bold;line-height: 1.5em;color: var(--c_theme_color);margin-bottom: 1em;text-align: center;position: relative;}


.benefit_items {display: flex;flex-direction: column;gap: 24px;}
.benefit_item {display: flex;gap: 30px;padding: 24px;align-items: center;
    .benefit_rank {text-align: center;padding: 20px;width: 25%;
        .rank_label {display: block;font-size: clamp(18px, 3vw, 22px);font-weight: bold;color: var(--c_theme_color);margin-bottom: 0;line-height: 1.4;}
    }
    .benefit_details {border-left: 2px solid var(--c_theme_color);width: 75%;padding: 20px;color: var(--c_font_color);font-size: clamp(16px,2vw,20px);line-height: 1.5em;font-weight: 500;}
    .benefit_note {font-size: clamp(14px, 2vw, 16px);line-height: 1.5em;}
}

@media screen and (max-width: 835px) {
    .benefits_description{text-align: left;}
    .benefit_item{padding: 0;flex-direction: column;gap:6px;
        .benefit_rank{width: 100%;padding: 0;}
        .benefit_details{width: 100%;border-left:none;border-top: 1px solid var(--c_theme_color);padding: 14px 0;}
    }
	.benefits_card .badge{ font-size: 14px; top: -20px; right: -5px; box-shadow: 5px 5px black;}
}


/* ==========================================
   Skill Sheet Banner
========================================== */
.skill_sheet_banner {border: 4px solid var(--c_accent_color);border-radius: 20px;color: #fff; padding: clamp(30px, 5vw, 60px) clamp(20px,4vw,70px);position: relative;font-size: clamp(14px, 2.5vw, 20px);font-weight: bold;
    .banner_title {font-size: clamp(18px, 4vw, 32px);font-weight: bold;line-height: 1.4em; margin-bottom: clamp(20px,3vw,40px);text-align: center;}
    .banner_description {margin-bottom: 24px;}
    .banner_highlight {border: 1px solid #fff; color: white;padding: 20px 20px;text-align: center;margin-bottom: 40px;
        p {margin: 0;}
        .pc_only{ display: inline-block;}
    }
	.skill_img{ background-color: #050508; text-align: center; padding-bottom: 1em; margin-bottom: 1em;
		img{ width: 100%; max-width: 400px; margin: 0 auto 0.5em;}
		.skill_imgtxt{ font-weight: 300; font-size: 14px; margin-bottom: 0; line-height: 1.5em;}
	}
    .banner_footer {}
}
@media screen and (max-width: 835px) {
    .skill_sheet_banner{
        .banner_highlight{padding: 16px 12px;margin-bottom: 24px; text-align: left;}
    }
	.skill_img{ padding: 5%;}
}


.person_types_grid{
    .person_type_item{display: flex;align-items: flex-start;gap:40px;
        &:not(:last-of-type){margin-bottom: 40px;}
        .type_label{background: var(--c_theme_color);color: #fff;display: flex;align-items: center;justify-content: center;width: 25%;font-size: clamp(18px,3vw,24px);line-height: 1.4em;min-height: 70px;}
        .type_content{font-weight: 500;font-size: clamp(15px,2vw,18px);line-height: 1.6em; width: calc(100% - 25%);
            p:last-of-type{margin: 0;}
        }
    }
}
@media screen and (max-width: 835px) {
    .person_types_grid{
        .person_type_item{flex-direction: column;gap:16px;
            .type_label{width: 100%;min-height: initial;padding: 6px 0;}
			.type_content{ width: 100%;}
			
        }
    }
}


.requirements_list{background: rgba(255, 255, 255, 0.733);padding: clamp(24px,4vw,50px);
    .requirement_row{display: flex;padding-bottom: 20px;margin-bottom: 20px;border-bottom: 1px solid #ccc;gap:30px;align-items: flex-start;
        .requirement_label{background: #000;color: #fff;padding: .5em 1em;width: 14%;text-align: center;}
        .requirement_value{font-weight: 500;font-size: clamp(15px,2vw,18px);line-height: 1.5em;padding-top: .4em;
            p{margin-bottom: 0;
                &:not(:last-of-type){margin-bottom: 1em;}
            }
        }
    }
}
@media screen and (max-width: 835px) {
    .requirements_list{
        .requirement_row{flex-direction: column;gap:10px;
            .requirement_label{width: 100%;}
        }
    }
}

.achievements_section{    padding: 0 0 calc(var(--base_distance) * 1.5); }

.achievments{
	ul{ border-top: 1px dashed #ccc;}
	li{display: flex; align-items: center; padding: 0.7em 0; border-bottom: 1px dashed #ccc; line-height: 1.5em; 
		
		&:before{ content: ""; display: block; background-image: url("../images/badge.webp"); width: 65px; height: 50px; background-size: contain; background-repeat: no-repeat;}
		
		p{ margin: 0; width: calc(100% - 65px);}
	}
	
}

.evaluation_section{
    .evaluation_description{font-weight: bold;text-align: center;}
    .entry_period_box{border: 3px solid var(--c_theme_color);padding: 30px 20px;text-align: center;
        .entry_period_label{font-weight: bold;color: var(--c_theme_color);font-size: clamp(16px,2vw,22px);line-height: 1.5em;margin-bottom: 0.5em;}
        .entry_period_date{font-size: min(24px, 2vw); line-height:2em;font-weight: bold;margin-bottom: 0;
            .big{font-size: 32px;line-height: 1.1em;}
            /* 終わった期は薄く。受付中の期を先に目に入れてもらう */
            /* 薄くしすぎると読めないので、透明度ではなく濃いグレー（白地で 4.95:1）にする */
            .period_row.is_ended{color: var(--c_darkgray);text-decoration: line-through;text-decoration-thickness: 1px;}
            .period_ended{font-size: .7em;margin-left: .4em;text-decoration: none;display: inline-block;}
            /* 日時の途中では折り返さない（折り返すのはラベルの後と「〜」の後だけ） */
            .period_dt{white-space: nowrap;}
        }
    }
}
@media screen and (max-width: 835px) {
    .evaluation_section{
        .entry_period_box{padding: 20px 14px;
            /* 「（一次選考は2期に分けて…）」が1行に収まる大きさ */
            .entry_period_label{font-size: 14px;}
            .entry_period_date{font-size: 16px;line-height: 1.3em;
                .big{font-size: 28px;line-height: 1.3em;}
                /* スマホは「第1期受付期間：」を1行、開始日時と終了日時をそれぞれ1行に */
                .period_row{display: block;margin-top: .6em;}
                .period_row:first-child{margin-top: 0;}
                .period_label, .period_dt{display: block;}
            }
        }
    }
}

.entry_wrap{background: rgba(255, 255, 255, 0.733);padding: clamp(24px,4vw,50px) clamp(12px,3vw,40px);}


/* 部門の凡例。部門は増減するので固定2列にせず、数だけ横に等分する。
   色は部門ごとの設定を --dept / --dept_on としてPHPがインラインで渡す。 */
.department_selection_box{display: flex;gap:40px;margin-bottom: 40px;
    .department_box{flex: 1 1 0;min-width: 0;display: block;text-align: center;padding: .7em;font-weight: bold;font-size: 20px;line-height: 1.3em;position: relative;
        background: var(--dept, var(--c_theme_color));color: var(--dept_on, #fff);
        &:before{position: absolute;content: "";background: var(--c_font_color);width: 20px;height:14px;left: 50%;transform: translateX(-50%);bottom: -28px;clip-path: polygon(50% 100%, 0 0, 100% 0);}
    }
}

.flow_chart{
    .flow_step{border: 4px solid #ccc;padding: 24px 20px;text-align: center;font-weight: 500;margin-bottom: 40px;position: relative;
        &.final_step{
            &:before{display: none;}
        }
        &:before{position: absolute;content: "";background: var(--c_font_color);width: 20px;height:14px;left: 50%;transform: translateX(-50%);bottom: -28px;clip-path: polygon(50% 100%, 0 0, 100% 0);}
        .step_box{font-size: clamp(16px,2vw,20px);line-height: 1.5em;
            /* 部門ごとの見出し色。--dept_text は白地で読める明るさにPHPが調整済み */
            &.dept_box .step_title{color: var(--dept_text, var(--c_theme_color));}
        }
        .step_title{font-weight: bold;text-align: center;color: var(--c_theme_color);font-size: clamp(20px,2.2vw,28px);line-height: 1.3em;margin-bottom: 14px;}
        .step_date{margin-bottom: 0;}
        .step_description{margin-bottom: 0;}
    }
    .flow_step_split{display: flex;gap:40px;
        .flow_step{flex: 1 1 0;min-width: 0;}
    }
}
@media screen and (max-width: 835px) {
    .department_selection_box{gap:18px;
        .department_box{display: flex;align-items: center;justify-content: center;font-size: 17px;}
    }
    .flow_chart{
        .flow_step{padding: 18px 12px;
            .step_title{}
            .step_date{margin-bottom: 8px;}
            .step_description{text-align: left;}
        }
        .flow_step_split{gap:18px;}
    }
}


.sns_wrap{margin-bottom: 100px;
    .tit{text-align: center;font-weight: bold;margin-bottom: 20px;font-family: var(--f_en);font-size: clamp(20px,2vw,26px);line-height: 1.2em;}
    .sns{display: flex;justify-content: center;gap:30px;
        a{display: block;width: 40px;}
    }
}



.fix_bg {position: fixed; background: url(../images/bg.webp) no-repeat center; background-size: cover; width: 100%; height: 100%; top: 0; left: 0; opacity: 0.2;z-index: -1;}




/** contact *************************************************************/
#contactarea{margin-bottom: 120px; background-color: #fff; padding: 5vw 0;}
#contactarea .container{max-width: 800px;}
#contactarea form{ max-width: 1200px; width: 100%; margin: 0 auto; position: relative;}
#contactarea .f_contents{ display: table; width: 100%; margin-bottom: 30px;}
#contactarea .f_contents p{display: table-cell;width: 24%;font-size: 0.94em;line-height: 1.6em;text-align: left;vertical-align: middle;}
#contactarea .top.f_contents p{ vertical-align: top;}
#contactarea .f_contents p:nth-child(2){ display: table-cell; width: 76%;}
#contactarea .f_contents input,
#contactarea .f_contents textarea{ width: 100%; font-size: 16px; line-height: 1.5em; display: block; vertical-align: middle; padding: 12px 16px; background-color: rgba(255,255,255,0.8); border: 1px solid #bababa; color: #000;font-family:var(--fontd);}
#contactarea .f_contents textarea{height: 16vw; vertical-align: inherit;}
#contactarea .send{width: 100%;background: var(--c_theme_color);border: none;font-size: 24px;line-height: 1.5em;padding: 26px 0;cursor: pointer;transition: 0.3s;display: block;margin-left: auto;-webkit-appearance: none;color: #fff;letter-spacing: 0.1em;font-family:var(--fontd);}
#contactarea .send:hover{opacity: 0.8;}
#contactarea .f_contents input::placeholder{color: #ccc;font-size: 14px;}
#contactarea .f_contents .subtxt{ display: block;font-size: 12px; line-height: 1.5em;}

#contactarea .other_contact .f_contents p{ font-size: 20px;}

.wpcf7-radio{ display:flex; flex-wrap:wrap;}
.wpcf7-radio .wpcf7-list-item{ margin: 0; text-align: left; margin-right:2em;}
.wpcf7-radio .wpcf7-list-item label{ display:flex; align-items:center;}
.wpcf7-radio .wpcf7-list-item input{height: 20px;width: 20px !important;margin-right:0.5em;-webkit-appearance: auto;}
.wpcf7-radio .wpcf7-list-item .wpcf7-list-item-label{ }

span.wpcf7-not-valid-tip{font-size: 12px !important;line-height: 2em;font-weight: bold !important}
div.wpcf7-validation-errors, 
div.wpcf7-acceptance-missing{ border:none !important; color: #ff0000; background-color: #fff; font-size: 14px; font-weight: bold;}
div.wpcf7-mail-sent-ok{ border:none !important; color: #000; background-color: #fff; font-size: 14px; font-weight: bold;}
div.wpcf7-response-output{margin: 0 !important;width: 100%;margin-top: -2.6em !important;margin-left: auto !important;border: none !important;color: #dc3232;font-weight: bold;font-size: 0.9em;text-align: center;}

#contactarea .other_contact div.wpcf7-response-output{ margin: 0 !important; width: 76%; margin-top: inherit !important; margin-left: inherit !important; position: absolute; bottom: -7px; right: 0;}

.form_note{ margin-top: 4em;}

.entry_end{ background-color: var(--c_theme_color); color: #fff; text-align: center; padding: 5% 0;}

@media only screen and (max-width: 768px){
	#contactarea{}
	#contactarea .notice{ font-size: 12px; line-height: 1.5em; margin-bottom: 20px;}
	#contactarea .f_contents{ display: block; margin-bottom: 12px;}
	#contactarea .f_contents p{display: block;width: 100%;font-size: 1.1em;line-height: 1.5em;margin-bottom: 0;}
	#contactarea .f_contents p:nth-child(2){ display:block; width: 100%;}
	#contactarea .f_contents input,
	#contactarea .f_contents textarea{ display: block; padding: 6px;  }
	#contactarea .f_contents textarea{height: 50vw;}
	#contactarea .send{ width: 100%; font-size: 18px; padding: 12px 0; margin-left: 0;}
	#contactarea .other_contact .f_contents p{ font-size: 18px; margin-bottom: 4px;}

	.wpcf7-radio .wpcf7-list-item{ width:100%; margin-bottom:0.5em;}

	#contactarea .other_contact div.wpcf7-response-output,
	div.wpcf7-response-output{ width: 100%;}
}

.movie{}
.youtube {position:relative;width:100%;padding-top:56.25%;}
.youtube iframe {position:absolute;top:0;right:0;width:100% !important;height:100% !important;}



            /* Swiper Navigation Buttons Styling */
            .carousel-section {
                position: relative;
                padding: 0vw 0 7vw;
              }
              
              .mySwiper {
                position: relative;
                padding: 0 50px;
              }
              
              /* Next and Previous Button Styling */
              .swiper-button-next,
              .swiper-button-prev {
                width: 44px;
                height: 44px;
                color: var(--c_theme_color);
                border-radius: 50%;
                margin-top: -22px;
              }
              
              .swiper-button-next:after,
              .swiper-button-prev:after {
                font-size: 20px;
                font-weight: bold;
              }
              
              .swiper-button-next:hover,
              .swiper-button-prev:hover {
                background: rgba(255, 255, 255, 0.5);
              }
              
              .swiper-button-next {
                right: 0;
              }
              
              .swiper-button-prev {
                left: 0;
              }
              
              /* Pagination Styling */
              .swiper-pagination {
                position: relative;
                margin-top: 20px;
              }
              
              .swiper-pagination-bullet {
                width: 12px;
                height: 12px;
                background: #999;
                opacity: 0.5;
              }
              
              .swiper-pagination-bullet-active {
                opacity: 1;
                background: #000;
              }
              
              /* Responsive adjustments */
              @media (max-width: 768px) {
                .mySwiper {
                  padding: 0 5%;
                }
                
                .swiper-button-next,
                .swiper-button-prev {
                  width: 36px;
                  height: 36px;
                  margin-top: -18px;
                }
                
                .swiper-button-next:after,
                .swiper-button-prev:after {
                  font-size: 16px;
                }
              }
/* ---- LINE応募導線（フォーム廃止に伴い追加） ---- */
/* a要素をボタン化した際の中央揃え */
#contactarea a.send{text-align: center;}
#contactarea .line_lead{text-align: center; line-height: 1.9em; margin-bottom: 2em;}
#contactarea .line_lead strong{color: var(--c_theme_color);}
#contactarea .line_qr{text-align: center; margin-bottom: 2em;}
#contactarea .line_qr img{width: 200px; height: auto; border: 1px solid var(--c_border_color);}
#contactarea .line_qr_note{font-size: 14px; line-height: 1.6em; margin: .6em 0 0;}
@media screen and (max-width: 835px){
	#contactarea .line_lead{text-align: left; margin-bottom: 1.5em;}
}

/* ==========================================
   協力会社（フッター上部・全ページ）
   5社以上は横に流し続ける（JS不使用）。4社以下は中央に並べるだけ。
   流すときは同じリストを2本並べて -50% 動かし、継ぎ目なくつなぐ。
   継ぎ目がずれないよう、リストの右余白を社間の間隔（--gap）と同じにしている。
========================================== */
.partners{--gap: clamp(28px,4vw,56px);
    background: #fff;color: var(--c_black);text-align: center;overflow: hidden;
    padding: clamp(18px,2.6vw,28px) 0;

    .partners_heading{font-size: clamp(13px,1.6vw,15px);font-weight: bold;letter-spacing: .1em;margin-bottom: clamp(10px,1.6vw,14px);}
    .partners_viewport{overflow: hidden;}
    .partners_track{display: flex;justify-content: center;}
    .partners_list{display: flex;flex-wrap: wrap;justify-content: center;align-items: flex-end;gap: var(--gap);
        margin: 0;padding: 0 clamp(12px,3vw,24px);list-style: none;
    }
    .partner_inner{display: flex;flex-direction: column;align-items: center;gap: 8px;color: inherit;text-decoration: none;}
    .partner img{display: block;height: clamp(36px,5vw,56px);width: auto;max-width: 180px;object-fit: contain;}
    .partner_name{font-size: 12px;line-height: 1.4;white-space: nowrap;}
    a.partner_inner:hover .partner_name{text-decoration: underline;}

    &.is_marquee{
        .partners_track{justify-content: flex-start;width: max-content;
            animation: ea_marquee calc(var(--count) * 3.5s) linear infinite;
        }
        .partners_list{flex-wrap: nowrap;padding: 0 var(--gap) 0 0;}
        /* マウスを乗せる・キーボードで入ると止まる（ロゴを読める・押せるように） */
        .partners_viewport:hover .partners_track,
        .partners_viewport:focus-within .partners_track{animation-play-state: paused;}
    }
}
@keyframes ea_marquee{
    from{transform: translateX(0);}
    to{transform: translateX(-50%);}
}
/* 動きを減らす設定の端末では流さず、全社を折り返して並べる */
@media (prefers-reduced-motion: reduce){
    .partners.is_marquee{
        .partners_track{animation: none;width: auto;justify-content: center;}
        .partners_list{flex-wrap: wrap;justify-content: center;padding: 0 clamp(12px,3vw,24px);}
        .partners_list[aria-hidden="true"]{display: none;}
    }
}

/* ==========================================
   イベント・コラムの共通部品
========================================== */
.breadcrumb{padding: 18px 0 0;font-size: 13px;line-height: 1.6;
    ol{display: flex;flex-wrap: wrap;gap: .4em;margin: 0;padding: 0;list-style: none;}
    li:not(:last-child)::after{content: "›";margin-left: .4em;opacity: .6;}
    a{color: inherit;}
    [aria-current]{opacity: .75;}
}

.content_page{padding-bottom: clamp(48px,8vw,96px);}
.archive_section{padding-top: clamp(24px,4vw,40px);}

.content_article{background: rgba(255,255,255,.94);border-radius: 16px;margin-top: 20px;
    padding: clamp(24px,4vw,56px);
}
.article_header{margin-bottom: clamp(20px,3vw,32px);}
.article_title{font-size: clamp(24px,3.6vw,36px);line-height: 1.45;font-weight: bold;margin: .35em 0;}
.article_dates{font-size: 13px;opacity: .8;
    time{display: inline;}   /* reset.css が time を block にしているため、「公開日 2026.09.01／更新日…」を1行に戻す */
}
.article_eyecatch{margin: 0 0 clamp(24px,3vw,36px);
    img{display: block;width: 100%;height: auto;border-radius: 12px;}
}

/* 本文（ブロックエディタで書いた記事） */
.entry_content{font-size: clamp(15px,1.9vw,17px);line-height: 1.95;
    > * + *{margin-top: 1.2em;}
    h2{font-size: clamp(20px,2.8vw,26px);line-height: 1.5;font-weight: bold;margin-top: 2.2em;
        padding: .5em 0 .5em .8em;border-left: 6px solid var(--c_theme_color);background: rgba(230,0,71,.05);
    }
    h3{font-size: clamp(18px,2.4vw,21px);line-height: 1.5;font-weight: bold;margin-top: 1.8em;
        padding-bottom: .3em;border-bottom: 2px solid var(--c_accent_color);
    }
    ul, ol{padding-left: 1.5em;}
    ul{list-style: disc;}
    ol{list-style: decimal;}
    li + li{margin-top: .4em;}
    a{color: var(--c_theme_color);text-decoration: underline;}
    img{max-width: 100%;height: auto;}
    blockquote{border-left: 4px solid #ccc;padding: .2em 0 .2em 1em;color: #555;}
    table{width: 100%;border-collapse: collapse;font-size: .95em;}
    th, td{border: 1px solid #ddd;padding: .6em .8em;text-align: left;vertical-align: top;}
    th{background: #f6f6f6;font-weight: bold;}
    figure{margin-left: 0;margin-right: 0;}
    figcaption{font-size: .85em;opacity: .75;margin-top: .4em;}
}

.card_meta{display: flex;flex-wrap: wrap;align-items: center;gap: 6px;font-size: 12px;line-height: 1;
    time{opacity: .75;}
}
.card_tag{display: inline-block;padding: .45em .8em;border-radius: 999px;background: #f1f1f1;color: var(--c_black);text-decoration: none;}
a.card_tag:hover{background: #e4e4e4;}

.btn_primary{display: inline-block;min-width: min(100%,360px);padding: 1.1em 2em;border-radius: 999px;
    background: var(--c_theme_color);color: #fff;font-weight: bold;font-size: clamp(15px,2vw,18px);
    text-align: center;text-decoration: none;transition: opacity .2s;
    &:hover{opacity: .85;}
}

.archive_filter{display: flex;flex-wrap: wrap;justify-content: center;gap: 8px;margin-bottom: clamp(24px,3vw,40px);
    a{display: inline-block;padding: .55em 1.1em;border: 1px solid var(--c_theme_color);border-radius: 999px;
        color: var(--c_theme_color);font-size: 14px;text-decoration: none;background: #fff;
        &.is_current{background: var(--c_theme_color);color: #fff;}
    }
}
.archive_sub{font-size: clamp(18px,2.4vw,22px);font-weight: bold;line-height: 1.5;
    margin: clamp(28px,4vw,44px) 0 clamp(16px,2vw,24px);padding-left: .7em;border-left: 5px solid var(--c_theme_color);
}
.portal_more{text-align: center;margin-top: clamp(20px,3vw,32px);
    a{display: inline-block;padding: .8em 2.4em;border: 2px solid var(--c_theme_color);border-radius: 999px;
        background: #fff;color: var(--c_theme_color);font-weight: bold;text-decoration: none;
    }
}
.back_link{text-align: center;margin-top: clamp(28px,4vw,40px);
    a{color: inherit;}
}
.navigation.pagination{margin-top: clamp(28px,4vw,40px);
    .nav-links{display: flex;flex-wrap: wrap;justify-content: center;gap: 6px;}
    .page-numbers{display: inline-block;min-width: 2.4em;padding: .5em .8em;border: 1px solid #ddd;border-radius: 6px;
        background: #fff;color: inherit;text-align: center;text-decoration: none;
        &.current{background: var(--c_theme_color);border-color: var(--c_theme_color);color: #fff;}
    }
}

/* ==========================================
   イベント
========================================== */
.ev_status{display: inline-block;padding: .45em .8em;border-radius: 4px;font-weight: bold;background: var(--c_black);color: #fff;
    &.is_open{background: var(--c_theme_color);}
}
.event_card{
    .ev_date{font-size: clamp(14px,1.8vw,15px);font-weight: bold;line-height: 1.6;}
    .ev_place{font-size: 13px;line-height: 1.6;opacity: .8;}
    &.is_ended{opacity: .72;}
}
.event_table{width: 100%;border-collapse: collapse;margin-bottom: clamp(24px,3vw,36px);font-size: clamp(14px,1.8vw,16px);
    th, td{padding: .9em 1em;border-bottom: 1px solid #e5e5e5;text-align: left;vertical-align: top;line-height: 1.7;}
    th{width: 7em;white-space: nowrap;color: var(--c_theme_color);font-weight: bold;}
    .event_address{font-size: .9em;opacity: .8;}
}
.event_apply{text-align: center;margin-top: clamp(28px,4vw,44px);}
.event_apply_closed{display: inline-block;padding: 1em 2em;border-radius: 8px;background: #eee;font-weight: bold;}

/* ==========================================
   コラム
========================================== */
.article_supervisor{margin-top: 2em;padding: 1em 1.2em;border-radius: 8px;background: #f7f7f7;font-size: 14px;line-height: 1.7;
    span{display: block;margin-bottom: .2em;font-size: 12px;font-weight: bold;color: var(--c_theme_color);}
}
.column_cta{margin-top: clamp(36px,5vw,56px);padding: clamp(20px,3vw,32px);border: 2px solid var(--c_theme_color);border-radius: 16px;background: #fff;
    .column_cta_title{font-weight: bold;margin-bottom: 12px;}
    .portal_card{max-width: 420px;margin: 0 auto 24px;}
    .column_cta_line{text-align: center;
        .line_lead{margin-bottom: 1em;line-height: 1.8;}
    }
}
.related_columns{margin-top: clamp(36px,5vw,56px);}

@media screen and (max-width: 835px) {
    .event_table th{width: 5.5em;}
}

/* ロゴの帯がフッターの先頭なら、帯の上に黒い余白を作らない */
footer:has(> .partners:first-child){padding-top: 0;}

/* 「ロゴを流す」役割が2つ以上あるときの区切り */
.partners + .partners{border-top: 1px solid #eee;}
/* プライバシーポリシー・オーディション規約へのリンク */
.legal_consent{margin-top: 1.4em;text-align: center;font-size: 14px;line-height: 1.8;
    a{color: inherit;text-decoration: underline;}
}

/* コラム末尾のボタン：色を選んだときは枠とボタンをその色に（文字色は ea_cta_style が白か黒を選ぶ） */
.column_cta{border-color: var(--cta_bg, var(--c_theme_color));
    .btn_primary{background: var(--cta_bg, var(--c_theme_color));color: var(--cta_fg, #fff);}
}
/* 絞り込みの子カテゴリー */
.archive_filter a.is_child{font-size: 13px;padding: .45em .95em;}
/* 記事・規約などの本文は、英単語の途中で改行しない（サイト全体の改行指定を、読み物の範囲だけ戻す）。長いURLははみ出す前に折る */
.content_article{word-break: normal;overflow-wrap: anywhere;}

/* 404：ひと目で「ページが無い」とわかる大きな数字と、戻り先のリンク */
.notfound{text-align: center;padding-top: clamp(40px,7vw,88px);padding-bottom: clamp(40px,7vw,88px);}
.notfound_code{font-size: clamp(80px,18vw,168px);line-height: 1;font-weight: 900;letter-spacing: .04em;color: var(--c_theme_color);}
.notfound_title{font-size: clamp(22px,3.4vw,32px);line-height: 1.4;font-weight: bold;margin-top: .35em;}
.notfound_lead{margin-top: 1.2em;line-height: 1.9;}
.notfound_home{margin-top: 2em;}
.notfound_links{display: flex;flex-wrap: wrap;justify-content: center;gap: 10px 28px;margin: 1.8em 0 0;padding: 0;list-style: none;font-size: 15px;
    a{color: inherit;text-decoration: underline;}
}
/* 404：数字と見出しの間を詰める（サイト全体の h1・p の余白を打ち消す） */
.notfound .notfound_code{margin: 0;}
.notfound .notfound_title{margin: .3em 0 0;padding: 0;}

/* 画面には出さず、検索エンジンと読み上げだけに伝える文字 */
.ea_visually_hidden{position: absolute !important;width: 1px;height: 1px;padding: 0;margin: -1px;overflow: hidden;clip: rect(0 0 0 0);white-space: nowrap;border: 0;}
.hero_logo > a{display: block;}


/* LP：応募欄の下の「ほかの募集」「コラム」 */
.lp_more{padding-top: clamp(40px,6vw,72px);}
.lp_more_block + .lp_more_block{margin-top: clamp(48px,7vw,80px);}

/* コラム末尾：ほかの募集へのリンク */
.column_cta_others{text-align: center;font-size: 14px;line-height: 1.9;margin-top: 16px;
    a{color: var(--c_theme_color);text-decoration: underline;}
}

/* イベント詳細：募集中のオーディション */
.event_lps{margin-top: clamp(36px,5vw,56px);}

/* 一覧の紹介文 */
.archive_intro{max-width: 760px;margin: 0 auto clamp(20px,3vw,32px);text-align: center;font-size: clamp(14px,1.8vw,16px);line-height: 1.9;}

/* ==========================================
   フッター（構造化）
   本体は「サイト名と応募ボタン／募集／情報／運営」の区画、下帯に規約とコピーライト。
   黒地の文字は白と #bdbdbd（黒地で 11:1）だけを使う。
========================================== */
footer{text-align: left;padding-top: clamp(36px,5vw,56px);padding-bottom: clamp(24px,3vw,32px);}
footer .partners + .footer_inner{margin-top: clamp(32px,4vw,48px);}
.footer_inner{width: 90%;max-width: 1100px;margin: 0 auto;}
.footer_grid{display: grid;grid-template-columns: minmax(0,1.1fr) minmax(0,1fr) minmax(0,.8fr) minmax(0,1.5fr);gap: 28px clamp(24px,4vw,48px);}
.footer_site{margin: 0 0 14px;font-size: 17px;font-weight: bold;line-height: 1.4;
    a{display: inline-block;color: #fff;text-decoration: none;}
    /* ロゴは黒い文字の透過画像。色を変えるとブランドロゴの改変になるので、白い板に元の色のまま載せる */
    img{display: block;height: 40px;width: auto;box-sizing: content-box;padding: 8px 14px;background: #fff;border-radius: 6px;}
}
.footer_cta{display: inline-block;padding: .65em 1.4em;border: 1px solid #fff;border-radius: 999px;color: #fff;font-size: 14px;font-weight: bold;text-decoration: none;transition: background .2s, color .2s;
    &:hover{background: #fff;color: #000;}
}
.footer_h{margin: 0 0 10px;font-size: 12px;letter-spacing: .12em;color: #bdbdbd;}
.footer_col{
    ul{display: grid;gap: 9px;margin: 0;padding: 0;list-style: none;font-size: 14px;line-height: 1.5;}
    a{color: #fff;text-decoration: none;}
    a:hover{text-decoration: underline;}
    a[aria-current="page"]{text-decoration: underline;text-underline-offset: 3px;}
    /* 募集の項目は頭に小さな印を付けて、1件ずつの区切りを見やすくする */
    #footer_h_recruit + ul li{position: relative;padding-left: 1em;}
    #footer_h_recruit + ul li::before{content: "";position: absolute;left: 0;top: .6em;width: .35em;height: .35em;border-top: 1px solid #bdbdbd;border-right: 1px solid #bdbdbd;transform: rotate(45deg);}
}
/* 一覧へのリンクは項目と区別するため、リストの外に矢印付きで置く */
.footer_more{display: inline-block;margin-top: 14px;padding-top: 10px;border-top: 1px solid rgba(255,255,255,.2);font-size: 13px;color: #fff;text-decoration: none;
    &::after{content: " →";}
    &:hover{text-decoration: underline;}
}
.footer_org dl{display: grid;grid-template-columns: auto minmax(0,1fr);gap: 8px 16px;margin: 0;font-size: 13px;line-height: 1.6;
    dt{color: #bdbdbd;white-space: nowrap;}
    dd{margin: 0;}
    a{text-decoration: underline;}
}
.footer_bottom{margin-top: clamp(28px,4vw,40px);padding-top: 16px;border-top: 1px solid rgba(255,255,255,.2);font-size: 12px;line-height: 1.8;color: #bdbdbd;}
.footer_group{margin: 0 0 8px;}
.footer_bottom_row{display: flex;flex-wrap: wrap;justify-content: space-between;align-items: center;gap: 6px 24px;}
.footer_legal{display: flex;flex-wrap: wrap;gap: 4px 20px;margin: 0;padding: 0;list-style: none;
    a{color: #fff;text-decoration: underline;}
}
.footer_copyright{margin: 0;}

@media screen and (max-width: 835px) {
    footer{padding-top: 32px;padding-bottom: 20px;}
    footer .partners + .footer_inner{margin-top: 28px;}
    .footer_grid{grid-template-columns: minmax(0,1fr) minmax(0,1fr);gap: 20px 16px;}
    /* サイト名とボタンは横に並べる（ボタンを全幅にすると、それだけで1段増える） */
    .footer_brand{grid-column: 1 / -1;display: flex;flex-wrap: wrap;align-items: center;justify-content: space-between;gap: 10px 16px;}
    .footer_site{margin: 0;font-size: 15px;
        img{height: 30px;padding: 6px 10px;}
    }
    .footer_cta{padding: .55em 1.1em;font-size: 13px;}
    .footer_org{grid-column: 1 / -1;}
    .footer_h{margin-bottom: 6px;}
    /* 2列に分けたとき、募集名が2行に折り返さない大きさ */
    .footer_col ul{gap: 7px;font-size: 13px;letter-spacing: 0;}
    .footer_org dl{gap: 5px 12px;font-size: 12px;}
    .footer_bottom{margin-top: 20px;padding-top: 12px;font-size: 11px;}
    .footer_bottom_row{flex-direction: column;align-items: flex-start;gap: 4px;}
}

/* ==========================================
   応援コメント（parts/support-comments.php）
========================================== */
.support_comments{display: grid;grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));gap: clamp(20px,3vw,32px);}
.support_comment{background: #fff;border: 2px solid var(--c_theme_color);border-radius: 16px;padding: clamp(20px,2.6vw,28px);display: flex;flex-direction: column;gap: 16px;}
.support_person{display: flex;align-items: center;gap: 16px;}
.support_photo{flex: none;width: 96px;height: 96px;border-radius: 50%;object-fit: cover;object-position: 50% 20%;   /* 縦長の宣材写真は顔が上寄りなので、切り抜きの中心を上げる */
    &.is_initial{display: flex;align-items: center;justify-content: center;background: var(--c_theme_color);color: #fff;font-size: 36px;font-weight: 900;}
}
.support_title{margin: 0 0 2px;font-size: 13px;line-height: 1.5;color: #555;}
.support_name{margin: 0;font-size: clamp(20px,2.4vw,24px);line-height: 1.4;font-weight: 900;}
.support_text{margin: 0;font-size: clamp(15px,1.8vw,16px);line-height: 1.95;
    /* 最初の5行だけ見せる（JSが付けたときだけ） */
    &.is_clamped{display: -webkit-box;-webkit-line-clamp: 5;-webkit-box-orient: vertical;overflow: hidden;}
}
.support_more{align-self: flex-start;margin-top: -6px;padding: 0;border: 0;background: none;color: var(--c_theme_color);font-size: 14px;font-weight: bold;text-decoration: underline;cursor: pointer;}
/* 経歴は応援の説得力そのものなので畳まずに見せる（名前のすぐ下） */
.support_bio{margin: 0;font-size: 13px;line-height: 1.8;color: #333;}

/* ==========================================
   LPの途中の応募ボタン（parts/lp-cta.php）
========================================== */
.lp_inline_cta{text-align: center;padding: clamp(28px,4vw,48px) 5%;}
.lp_inline_cta_btn{display: inline-block;min-width: min(100%,420px);padding: 1.05em 2em;border-radius: 999px;background: var(--c_theme_color);color: #fff;font-weight: 900;font-size: clamp(17px,2.2vw,22px);text-decoration: none;transition: opacity .2s;
    &:hover{opacity: .85;}
}
.lp_inline_cta_note{margin: 12px 0 0;font-size: 13px;line-height: 1.8;
    a{color: inherit;text-decoration: underline;}
}

