@charset "utf-8";

/* SMN+
---------------------------------------------------- */

.smnplus										{ --cl-key: #3670B9; --cl-bg: #F7F6F2; --cl-txt: #333333; --cl-wh: #FFFFFF; --cl-gr: #E5E5E5; overflow: clip; color: var(--cl-txt); font-family: 'Zen Kaku Gothic New', sans-serif; font-weight: 500; font-size: 1.4rem; line-height: 1.9; }
.smnplus +	#btn_sns + footer .footer-request { display: none;}
.smnplus +	#btn_sns { display: none;}
.smnplus *,
.smnplus *::before,
.smnplus *::after								{ box-sizing: border-box; }
.smnplus ul										{ margin: 0; padding: 0; list-style: none; }
.smnplus img									{ max-width: 100%; height: auto; vertical-align: bottom; }

/* ダミーテキスト（★公開前に .is-dummy クラスごと削除する） */
.smnplus .is-dummy								{ background: rgba(255, 222, 0, 0.4); }

.smnplus-inner									{ max-width: 120rem; margin: 0 auto; padding: 0 2rem; }


/* 共通：セクション見出し
---------------------------------------------------- */
.smnplus-sec									{ position: relative; scroll-margin-top: 4rem; padding: 6rem 0; }
.smnplus-sec-label								{ display: flex; align-items: center; font-size: 1.3rem; font-weight: bold; line-height: 1.4; }
.smnplus-sec-num								{ color: var(--cl-key); font-weight: 500; }
.smnplus-sec-num::after							{ content: ""; display: inline-block; width: 1.6rem; height: 1px; margin: 0 1rem; background: currentColor; opacity: 0.4; vertical-align: middle; }
.smnplus-sec-title								{ margin-top: 1.2rem; color: var(--cl-key); font-size: 2.4rem; font-weight: bold; line-height: 1.5; letter-spacing: 0.05em; }
.smnplus-sec-lead								{ margin-top: 3rem; }
.smnplus-note									{ margin-top: 3rem; }

/* 左右2カラム */
.smnplus-row-body p + p							{ margin-top: 2.4em; }
.smnplus-row-body								{ margin-top: 3rem; }
.smnplus-row-lead								{ margin-top: 3rem; }

/* ボタン */
.smnplus-btn									{ display: inline-flex; align-items: center; justify-content: center; gap: 1rem; min-width: 26rem; padding: 1.6rem 2rem; border-radius: 99rem; background: var(--cl-key); color: var(--cl-wh); font-size: 1.2rem; font-weight: bold; letter-spacing: 0.05em; text-align: center; white-space: nowrap; }
.smnplus-btn-ico								{ flex: none; width: 2.2rem; height: 2.2rem; background: no-repeat center / contain; }
.smnplus-btn-ico._search						{ background-image: url("../images/smnplus/ico_search_wh.svg"); }
.smnplus-btn-ico._heart							{ background-image: url("../images/smnplus/ico_heart_wh.svg"); }
.smnplus-btnwrap								{ margin-top: 4rem; text-align: center; }


/* KV
---------------------------------------------------- */
.smnplus-kv										{ padding: 4rem 0 11rem; background: var(--cl-bg); text-align: center; }
.smnplus-kv-label								{ color: var(--cl-key); font-size: 1.6rem; font-weight: bold; line-height: 1.4; font-family: 'Passion One', cursive; }
.smnplus-kv-label-logo								{ max-width: 26rem !important;}
.smnplus-kv-title								{ margin-top: 1rem; color: var(--cl-key); font-size: 2.4rem; text-wrap: balance; font-weight: bold; line-height: 1.4; letter-spacing: 0.05em; }
.smnplus-kv-sub									{ margin-top: 2.4rem; font-size: 1.4rem; font-weight: bold; line-height: 1.8; }
.smnplus-kv-lead								{ margin-top: 2rem; font-size: 1.2rem; line-height: 2; }
.smnplus-kv-btns								{ display: flex; flex-direction: column; align-items: center; gap: 1.2rem; margin-top: 3rem !important; }
.smnplus-kv-pic									{ margin-top: 3rem; }
.smnplus-kv-pic img								{ width: auto; height: 15rem; max-width: initial; }


/* スライダー（流れ続ける）
---------------------------------------------------- */
.smnplus-slider									{ overflow: hidden; margin-top: -4rem; }
.smnplus-slider-track							{ display: flex; width: max-content; animation: smnplus-flow 60s linear infinite; }
.smnplus-slider-item							{ flex: none; width: 16rem; margin-right: 1.6rem; border-radius: 0.8rem; background: var(--cl-gr); overflow: hidden; aspect-ratio: 1 / 1; }
.smnplus-slider-item a,
.smnplus-slider-item img						{ display: block; width: 100%; height: 100%; }
.smnplus-slider-item img						{ object-fit: cover; object-position: center top; }

@keyframes smnplus-flow {
	to										{ transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
.smnplus-slider-track							{ animation: none; }
}


/* サブナビ（追従）
   navwrap は高さ0。KVと01の境目に中心がくるようにし、PCのみスクロールで画面上部に追従する（SPは追従せず全項目を表示）
---------------------------------------------------- */
.smnplus-navwrap								{ position: relative; z-index: 100; height: 0; }
.smnplus-nav									{ position: absolute; top: 0; left: 0; right: 0; width: calc(100% - 2rem); max-width: 126.4rem; margin: 0 auto; padding: 1rem 1.2rem; display: flex; flex-direction: column; gap: 1rem; border-radius: 1.2rem; background: var(--cl-wh); box-shadow: 0 0.2rem 1.2rem rgba(0, 0, 0, 0.12); transform: translateY(-50%); }
.smnplus-nav-list								{ display: grid; grid-template-columns: 1fr 1fr; gap: 0.2rem 1.2rem; }
.smnplus-nav-list a								{ display: block; padding: 0.6rem 0; line-height: 1.5; font-size: 1.2rem; font-weight: bold; }
.smnplus-nav-contact							{ display: flex; align-items: center; justify-content: center; gap: 0.6rem; padding: 1rem 1.4rem; border-radius: 0.6rem; background: var(--cl-key); color: var(--cl-wh); font-size: 1.2rem; font-weight: bold; }
.smnplus-nav-contact-ico						{ width: 1.6rem; height: 1.6rem; background: url("../images/smnplus/ico_mail_wh.svg") no-repeat center / contain; }


/* 01 SMN+とは
---------------------------------------------------- */
.smnplus-sec._about								{ padding: 11rem 0 0; background: var(--cl-key); color: var(--cl-wh); }
.smnplus-sec._about .smnplus-inner				{ position: relative; z-index: 2; }
.smnplus-sec._about .smnplus-sec-num,
.smnplus-sec._about .smnplus-sec-title			{ color: var(--cl-wh); }
.smnplus-sec-pic								{ margin-top: 4rem; margin-bottom: -3rem; position: relative; z-index: 1; }
.smnplus-sec-pic img							{ width: 85%; }


/* 02 活動するタレント・クリエイター
---------------------------------------------------- */
.smnplus-sec._talent							{ padding-top: 9rem; background: var(--cl-bg); }

.smnplus-cards									{ display: grid; gap: 1.6rem; }
.smnplus-card									{ padding: 2.4rem 2rem; border-radius: 0.8rem; background: var(--cl-wh); }
.smnplus-card-title								{ display: flex; align-items: center; gap: 0.8rem; color: var(--cl-key); font-size: 1.5rem; font-weight: bold; line-height: 1.5; letter-spacing: 0.05em; }
.smnplus-card p									{ margin-top: 1rem; font-size: 1.3rem; line-height: 2; }
.smnplus-card-ico								{ flex: none; width: 2rem; height: 2rem; background: no-repeat center / contain; }
.smnplus-card-ico._mic							{ background-image: url("../images/smnplus/ico_mic.svg"); }
.smnplus-card-ico._brush						{ background-image: url("../images/smnplus/ico_brush.svg"); }
.smnplus-card-ico._medal						{ background-image: url("../images/smnplus/ico_medal.svg"); }
.smnplus-card-ico._list							{ background-image: url("../images/smnplus/ico_list.svg"); }


/* 03 所属者を探す
---------------------------------------------------- */
.smnplus-sec._member							{ background: var(--cl-wh); border-top: 1px solid #E5E5E5; }
.smnplus-sec._member .smnplus-slider			{ margin-top: 4rem; }


/* 04 企業・団体の皆さまへ
---------------------------------------------------- */
.smnplus-sec._company							{ background: var(--cl-bg); border-top: 1px solid #E5E5E5; }
.smnplus-sec._company .smnplus-cards			{ margin-top: 3rem; }


/* 05 スポンサー募集
---------------------------------------------------- */
.smnplus-sec._sponsor							{ background: var(--cl-wh); text-align: center; }
.smnplus-sec._sponsor .smnplus-sec-label		{ justify-content: center; }
.smnplus-sec._sponsor .smnplus-cards			{ margin-top: 3rem; }
.smnplus-sec._sponsor .smnplus-card				{ background: var(--cl-bg); padding: 2.4rem 2rem 3rem; }
.smnplus-sec._sponsor .smnplus-card-title		{ justify-content: center; text-align: center; }
.smnplus-sec._sponsor .smnplus-card p			{ text-align: left; }

.smnplus-crowd									{ background: var(--cl-wh); line-height: 0; }
.smnplus-crowd img								{ width: auto; height: 15rem; max-width: initial; }


/* お問い合わせ（MW WP Form）
---------------------------------------------------- */
.smnplus-contact								{ margin-top: -2rem; scroll-margin-top: 4rem; padding: 6rem 0 8rem; background: var(--cl-key); color: var(--cl-wh); }
.smnplus-contact-title							{ font-size: 2.4rem; font-weight: bold; line-height: 1.5; letter-spacing: 0.05em; }
.smnplus-contact .smnplus-row-body				{ margin-top: 3rem; }
.smnplus-contact._page							{ margin-top: 0; min-height: 60vh; }
.smnplus-contact-lead							{ margin-top: 2rem; font-size: 1.3rem; }

.smnplus-form-item								{ margin-bottom: 2.4rem; }
.smnplus-form-label								{ margin-bottom: 0.8rem; font-size: 1.3rem; font-weight: bold; }
.smnplus-form-label .req						{ margin-left: 0.4rem; color: #FFDE00; }
.smnplus-contact input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),
.smnplus-contact textarea						{ display: block; width: 100%; padding: 1.2rem 1.6rem; border: none; border-radius: 0.8rem; background: var(--cl-wh); color: var(--cl-txt); font-size: 1.5rem; font-family: inherit; line-height: 1.6; }
.smnplus-contact input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]) { height: 5rem; }
.smnplus-contact textarea						{ height: 20rem; resize: vertical; }
.smnplus-contact .error							{ display: block; margin-top: 0.6rem; color: #FFDE00 !important; font-size: 1.2rem; }

/* チェックボックス（MW WP Form の出力に合わせる） */
.smnplus-contact .mwform-checkbox-field			{ display: inline-block; margin-right: 2.4rem; }
.smnplus-contact .mwform-checkbox-field label	{ display: inline-flex; align-items: center; gap: 0.8rem; font-size: 1.4rem; font-weight: bold; cursor: pointer; }
.smnplus-contact input[type="checkbox"]			{ appearance: none; -webkit-appearance: none; flex: none; width: 2rem; height: 2rem; margin: 0; border-radius: 0.3rem; background: var(--cl-wh); cursor: pointer; }
.smnplus-contact input[type="checkbox"]:checked	{ background: var(--cl-wh) url("../images/smnplus/ico_check_bl.svg") no-repeat center / 1.4rem; }

.smnplus-form-submit							{ margin-top: 3rem; text-align: center; }
.smnplus-contact input[type="submit"],
.smnplus-contact input[type="button"]			{ appearance: none; -webkit-appearance: none; min-width: 24rem; padding: 1.6rem 3rem; border: none; border-radius: 99rem; background: var(--cl-wh); color: var(--cl-key); font-size: 1.4rem; font-weight: bold; font-family: inherit; cursor: pointer; }
/* 戻るボタン：入力画面では非表示、確認画面のみ表示（白抜きの枠線で送信と区別） */
.smnplus-contact .mw_wp_form_input .smnplus-form-submit input[name="submitBack"]	{ display: none; }
.smnplus-contact .mw_wp_form_confirm .smnplus-form-submit input[name="submitBack"]	{ margin-right: 1.6rem; border: 1px solid var(--cl-wh); background: transparent; color: var(--cl-wh); }
/* 確認画面：入力値はテキストで出力されるため、ラベルの下に白い区切り線で並べる */
.smnplus-contact .mw_wp_form_confirm .smnplus-form-item	{ padding-bottom: 1.6rem; border-bottom: 1px solid rgba(255, 255, 255, 0.4); font-size: 1.5rem; word-break: break-all; }
/* 完了画面：トップへ戻るボタン */
.smnplus-contact-btn							{ display: inline-block; min-width: 24rem; padding: 1.6rem 3rem; border-radius: 99rem; background: var(--cl-wh); color: var(--cl-key); font-size: 1.4rem; font-weight: bold; text-align: center; }


/* PC（601px〜）
---------------------------------------------------- */
@media print, screen and (min-width: 601px) {

.smnplus										{ font-size: 1.5rem; line-height: 2; }

.smnplus-sec									{ padding: 10rem 0; }
.smnplus-sec-label								{ font-size: 1.6rem; }
.smnplus-sec-title								{ margin-top: 1.6rem; font-size: 4rem; }
.smnplus-sec-lead								{ margin-top: 4rem; }
.smnplus-note									{ margin-top: 4rem; }

.smnplus-row									{ display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.32fr); gap: 0 6rem; }
.smnplus-row-body								{ margin-top: 0; padding-top: 0.2rem; }
.smnplus-row-lead								{ margin-top: 4rem; }

.smnplus-btn									{ min-width: 34rem; padding: 2rem 4rem; font-size: 1.4rem; letter-spacing: 0.1em; }
.smnplus-btnwrap								{ margin-top: 6rem; }

/* KV */
.smnplus-kv										{ padding: 9rem 0 11rem; }
.smnplus-kv-label								{ font-size: 1.6rem; }
.smnplus-kv-title								{ margin-top: 2rem; font-size: 4rem; }
.smnplus-kv-sub									{ margin-top: 4rem; font-size: 2.4rem; }
.smnplus-kv-lead								{ margin-top: 2.4rem; font-size: 1.6rem; }
.smnplus-kv-btns								{ flex-direction: row; justify-content: center; gap: 2.4rem; margin-top: 4rem; }
.smnplus-kv-pic									{ margin-top: 4rem; }
.smnplus-kv-pic img								{ width: 100%; height: auto; max-width: 100%; }

/* スライダー */
.smnplus-slider-item							{ width: 25rem;  margin-right: 4rem; }
.smnplus-slider-track							{ animation-duration: 80s; }

/* サブナビ */
.smnplus-navwrap								{ position: sticky; top: 7rem; }
.smnplus-nav									{ flex-direction: row; align-items: center; padding: 2.4rem 5.2rem; gap: 3rem; border-radius: 2.4rem; }
.smnplus-nav-list								{ flex: 1; min-width: 0; display: flex; gap: 2.8rem; }
.smnplus-nav-list a								{ padding: 0; font-size: 1.5rem; white-space: nowrap; }
.smnplus-nav-contact							{ flex: none; display: inline-flex; gap: 0.8rem; padding: 1.3rem 3rem; font-size: 1.5rem; }
.smnplus-nav-contact-ico						{ width: 2rem; height: 2rem; }

/* 01 */
.smnplus-sec._about								{ padding: 16rem 0 20rem; }
.smnplus-sec-pic								{ position: absolute; left: 0; bottom: -5rem; width: 78rem; max-width: 55%; margin: 0; }
.smnplus-sec-pic img							{ width: 100%; }

/* 02 */
.smnplus-sec._talent							{ padding-top: 14rem; }
.smnplus-cards									{ gap: 2rem; }
.smnplus-card									{ padding: 3rem 3rem 2.6rem; }
.smnplus-card-title								{ gap: 1rem; font-size: 1.6rem; }
.smnplus-card p									{ font-size: 1.5rem; }
.smnplus-card-ico								{ width: 2.2rem; height: 2.2rem; }

/* 03 */
.smnplus-sec._member .smnplus-slider			{ margin-top: 6rem; }

/* 04 / 05 */
.smnplus-sec._company .smnplus-cards			{ margin-top: 4rem; }
.smnplus-sec._company .smnplus-cards._grid2		{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
.smnplus-sec._sponsor .smnplus-cards			{ margin-top: 4rem; }
.smnplus-cards._grid3							{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
.smnplus-sec._sponsor .smnplus-card				{ padding: 3.4rem 3rem 3.6rem; }
.smnplus-crowd img								{ width: 100%; height: auto; max-width: 100%; }


/* お問い合わせ */
.smnplus-contact								{ padding: 10rem 0 12rem; }
.smnplus-contact-title							{ font-size: 3.2rem; }
.smnplus-contact .smnplus-row-body				{ margin-top: 0; }
.smnplus-form-label								{ font-size: 1.4rem; }
.smnplus-contact input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]) { height: 6rem; }
.smnplus-contact textarea						{ height: 22rem; }

}


/* hover（1024px〜のみ）
---------------------------------------------------- */
@media print, screen and (min-width: 1024px) {
.smnplus a										{ transition: 0.3s; }
.smnplus-btn:hover,
.smnplus-nav-contact:hover,
.smnplus-contact-btn:hover						{ opacity: 0.8; }
.smnplus-nav-list a:hover						{ color: var(--cl-key); }
.smnplus-slider:hover .smnplus-slider-track		{ animation-play-state: paused; }
}
