@charset "utf-8";



/*Font Awesomeの読み込み
---------------------------------------------------------------------------*/
@import url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css");


/*Google Fontsの読み込み
---------------------------------------------------------------------------*/
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');
/* Google Fontsの読み込み（Robotoを追加） */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Roboto:wght@400;700&display=swap');


/*テンプレート専用cssファイルの読み込み
---------------------------------------------------------------------------*/
@import url("inview.css");
@import url("mainimg.css");


/*CSSカスタムプロパティ（サイト全体を一括管理する為の設定）
---------------------------------------------------------------------------*/
:root {
--primary-color: #8CCE70;			/*テンプレートのテーマカラー*/
--primary-inverse-color: #fff;		/*上のprimary-colorの対となる色*/

--secondary-color: #ffff;			/*テンプレートのサブカラー*/
--secondary-inverse-color: #ffff;	/*secondary-colorの対となる色*/

--accent-color: #e17b86;			/*テンプレートのアクセントカラー*/
--accent-inverse-color: #fff;		/*accent-colorの対となる色*/


/*余白の一括管理用。主に左右の余白に使っています。4rem＝4文字分。*/
/* スマホでの余白を基準にする（約20px） */
--content-space: 5rem 1.875rem 2.5em; 
}

@media screen and (min-width: 900px) {
:root {--content-space: 4rem;
}
}


/*animation11のキーフレーム設定（汎用的）
---------------------------------------------------------------------------*/
@keyframes animation1 {
0% {left: -200px;}
100% {left: 0px;}
}


/*opa1のキーフレーム設定（汎用的）
---------------------------------------------------------------------------*/
@keyframes opa1 {
0% {opacity: 0;}
100% {opacity: 1;}
}


/*全体の設定
---------------------------------------------------------------------------*/
body * {box-sizing: border-box;}
html,body {
font-size: 16px;	/*基準となるフォントサイズ。*/
}

/*画面幅900px以上の追加指定*/
@media screen and (min-width:900px) {

html, body {
font-size: 14px;	/*基準となるフォントサイズ。*/
}

}/*追加指定ここまで*/


body {
margin: 0;
padding:0;
font-family:"Roboto","Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", Meiryo, "メイリオ", "Osaka", "MS PGothic", "ＭＳ Ｐゴシック", sans-serif;	/*フォント種類（ゴシック）*/
-webkit-text-size-adjust: none;
background: #fff;	/*背景色*/
color: #555;		/*文字色*/
line-height: 2;		/*行間*/
overflow-x: hidden;
}

/* --- 見出し：Zen Kaku Gothic New を適用 --- */
.c .fade-in-text {
font-family: "Zen Kaku Gothic New";
font-weight: 500; 
}


/*リセット*/
figure {margin: 0;}
dd {margin: 0;}
nav,ul,li,ol {margin: 0;padding: 0;}
nav ul {list-style: none;}

/*table全般の設定*/
table {border-collapse:collapse;}

/*画像全般の設定*/
img {border: none;max-width: 100%;height: auto;vertical-align: middle;}

/*videoタグ*/
video {max-width: 100%;}

/*iframeタグ*/
iframe {width: 100%;}

/*他*/
input {font-size: 1rem;}

/*section*/
section {
padding: var(--content-space);	/*section内の余白。css冒頭のcontent-spaceを読み込みます。*/
}

h2, 
h2 span {
color: #444;
}


/*リンクテキスト全般の設定
---------------------------------------------------------------------------*/
a {
color: inherit;
transition: 0.3s;	/*hoverまでにかける時間。0.3秒。*/
}

/*マウスオン時*/
a:hover {
filter: brightness(1.1);	/*少しだけ明るくする*/
}


/*コンテナー（サイト全体を囲むブロック）
---------------------------------------------------------------------------*/
#container {
position: relative;
animation: opa1 0.2s 0.4s both;  /*0.4秒待機後、0.2秒かけてフェードイン*/
display: flex;
flex-direction: column;
min-height: 100vh;
margin: 0 auto;
}


/*header（ロゴが入った最上段のブロック）
---------------------------------------------------------------------------*/
/*ヘッダーブロック*/
header {
padding: 1rem 1rem;
position: absolute;
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
}

header a {color: inherit;}

/*ロゴ*/

#logo {
margin: 0;
padding: 0;

}
#logo a {text-decoration: none;}

#logo img {
display: block;
width: 150px;	/*ロゴの幅*/
}

/*画面幅900px以上の追加指定*/
@media screen and (min-width:900px) {

/*ヘッダーブロック*/
header {
display: flex;	/*中のコンテンツを横並びにする*/
justify-content: space-between;
gap: 2rem;	/*中のコンテンツ同士に空けるマージン的な余白。*/
align-items: center;
}

/*ロゴ*/
#logo a {text-decoration: none;}
#logo img {
display: block;
width: 180px;
}

}/*追加指定ここまで*/


/*header-box（ヘッダー右側にあるボタン）
---------------------------------------------------------------------------*/
/*ボックス全体*/
#header-box * {
margin: 0;padding: 0;
display: none;

}

/*画面幅900px以上の追加指定*/
@media screen and (min-width:900px) {

#header-box {
margin-right: 30px;	/*ハンバーガーアイコンと重ならないように適当な余白*/
}

}/*追加指定ここまで*/


/*ボタンが入ったボックス*/
#header-box .btn {
list-style: none;
display: flex;
gap: 1rem;	/*ボタン同士の間に空けるスペース。１文字分。*/
}

/*メニュー１個あたり（ここにない設定は、下の方にある「btn共通設定」にあります。）*/
#header-box .btn a {
display: block;text-decoration: none;
padding: 0.5rem 2rem;	/*上下、左右へのボタン内の余白*/
border-radius: 3px;		/*角を少し丸くする*/
}

/*ボタンに使用しているアイコン*/
#header-box .btn i {
margin-right: 1rem;		/*アイコンの右側に１文字分のスペースを空ける*/
transform: scale(1.4);	/*アイコンサイズを140%に。*/
}

/* 1番目のボタン：LINE専用（緑） */
#header-box .btn li:nth-of-type(1) a {
background-color: #06C755;
color: #fff !important;
border-radius: 50px;
font-weight: bold;
box-shadow: 0 4px 10px rgba(0,0,0,0.15);
}

/* 2番目のボタン：お問い合わせ（アクセントカラー） */
#header-box .btn li:nth-of-type(2) a {
background-color: #e17b86;
color: #fff !important;
border-radius: 50px;
font-weight: bold;
box-shadow: 0 4px 10px rgba(0,0,0,0.15);
}

/*画面幅500px以下の追加指定*/
@media screen and (max-width:500px) {

/*ボタンが入ったボックス*/
#header-box .btn {
display: inline-block;
}

/*ボタン１個あたり*/
#header-box .btn li {
margin-bottom: 0.5rem;
}

}/*追加指定ここまで*/


/*開閉メニュー
---------------------------------------------------------------------------*/
/*メニューブロック共通*/
#menubar {
animation: animation1 0.2s both;
position: fixed;overflow: auto;z-index: 100;
right: 0px;top: 0px;
width: 100%;
height: 100%;
padding: 100px var(--content-space) 50px;		/*ブロック内の余白。上に100px、左右についてはcss冒頭のcontent-spaceを読み込む、下に50px。*/
background: var(--primary-color);		/*背景色。css冒頭のprimary-colorを読み込みます。*/
color: var(--primary-inverse-color);	/*文字色。css冒頭のprimary-inverse-colorを読み込みます。*/
}

/*メニュー１個あたり*/
#menubar a {
display: block;text-decoration: none;
color: inherit;
border: 1px solid #fff;	/*枠線の幅、線種、色*/
margin-bottom: 1rem;	/*下に１文字分のスペースを空ける。メニュー同士の間隔です。*/
padding: 1rem 2rem;		/*メニュー内の余白。上下に１文字分、左右に２文字分。*/
}


/*３本バー（ハンバーガー）アイコン設定
---------------------------------------------------------------------------*/
#menubar_hdr {
display: flex;
animation: opa1 0s 0.2s both;
position: fixed;
z-index: 101;
cursor: pointer;
right: 0px;	/*右からの配置場所*/
top: 0px;	/*上からの配置場所*/
width: 70px;	/*ボタンの幅*/
height: 70px;	/*ボタンの高さ*/
background: #06C755;	/*ボタン色*/
border-radius: 0px 0px 0px 20px;	/*角を丸くする指定。左上、右上、右下、左下の順番。この場合は左下だけ角を丸くする。*/
transform-origin: right top;
transform: scale(1);	/*大きさを調整したい場合はここの「1」を変更します。1.2や0.7など。*/
}

/*バツ印が出ている時のボタン色*/
#menubar_hdr.ham {
background: #fff;
}

/*ハンバーガーアイコンの線*/
#menubar_hdr span {
display: block;
position: absolute;
left: 18px;
width: 35px;
height: 2px;		/*線の高さ*/
background: #fff;	/*線の色*/
transition: 0.3s;
}

#menubar_hdr span:nth-of-type(1) {
top: 24px;
}
#menubar_hdr span:nth-of-type(2) {
top: 34px;
}
#menubar_hdr span:nth-of-type(3) {
top: 44px;
}

/* ハンバーガーメニュー展開時 */
#menubar_hdr.ham span:nth-of-type(1) {
transform: translateY(10px) rotate(-45deg);
background: #06C755; /* ここで1本目の線を緑に変更 */
}
#menubar_hdr.ham span:nth-of-type(2) {
opacity: 0;
}
#menubar_hdr.ham span:nth-of-type(3) {
transform: translateY(-10px) rotate(45deg);
background: #06C755; /* ここで1本目の線を緑に変更 */
}


/*ヘッダーにある１行のお知らせ
---------------------------------------------------------------------------*/
.new-top * {margin: 0;padding: 0;}

/*ブロック全体*/
.new-top {
position: absolute;
top: 80vh;	/*上から80%の場所に配置*/
z-index: 1;
width: 80vw;	/*幅は80%*/
margin-left: 10vw;	/*左に10%空ける*/
display: flex;
align-items: center;
padding: 1rem;	/*ボックス内の余白。1文字分。*/
background: #fff;	/*背景色。*/
border-radius: 5px;	/*角を丸くする*/
}

/*マウスオン時に透明度を80%に*/
.new-top a:hover {
opacity: 0.8;
}

/*テキストのブロック*/
.new-top .text {
flex: 1;

/*以下4行は、末尾を...として１行にまとめる為のスタイル*/
min-width: 0;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}

/*ブロック右側にある「一覧」*/
.new-top .new-list {
align-self: flex-end;
}


/*コンテンツ
---------------------------------------------------------------------------*/
/*コンテンツブロック*/
#contents {
flex: 1;
}

/*トップページ以外のコンテンツ*/
body:not(.home) #contents {
padding-top: 10rem;		/*上に10文字分の余白を空ける*/
padding-bottom: 10rem;	/*下に10文字分の余白を空ける*/
}

/*コンテンツ内で使用するul,ol要素（リストタグ）*/
#contents ul,#contents ol {
margin-left: 2rem;
margin-right: 2rem;
}


/*p要素（段落タグ）
---------------------------------------------------------------------------*/
p {
margin-left: 1rem;	/*左に１文字分のスペース*/
margin-right: 1rem;	/*右に１文字分のスペース*/
}


/*main（メインコンテンツ）
---------------------------------------------------------------------------*/
/*h2見出し*/
main h2 {
margin: 0;padding: 0;
font-size: 2.4rem;		/*文字サイズ。240%。*/
font-weight: normal;	/*h要素のデフォルトの太字を標準に*/
margin-bottom: 5vw;		/*下にスペースを空ける*/
display: flex;
flex-direction: column-reverse;
align-items: flex-start;
}

/*見出し内のspan（小さな装飾文字と上部のアクセントライン）*/
main h2 span.small {
display: inline-block;
border-top: 2px solid var(--primary-color);	/*上の線の幅、線種、varは色のことで冒頭のprimary-colorを読み込みます。*/
font-size: 0.9rem;		/*文字サイズ90%*/
opacity: 0.6;			/*透明度。色が60%出た状態。*/
letter-spacing: 0.1rem;	/*文字間隔を少しだけ広く*/
padding-top: 2rem;		/*上に空ける余白。ラインとの間の余白調整です。*/
}

/*見出しをセンタリングする場合*/
main h2.c {
align-items: center;
}


/* スマホではPC専用の改行を無効にする */
.pc-only {
display: none;
}

/* --- [PC上書き] 900px以上の指定 --- */
@media screen and (min-width: 900px) {
/* PCサイズになった時だけ改行を復活させる */
.pc-only {
    display: inline;
}
}

.ttl-wrapper {
position: relative;
display: flex;
justify-content: center;
align-items: center;
padding: 20px 0;    /* スマホ用に上下の余白を少し詰める */

}

.section-ttl-decoration {
position: absolute;
z-index: 1;
width: 100px;       /* スマホでは装飾を小さめに */
top: 50%;
left: 50%;
transform: translate(-150%, -140%) rotate(-4deg);
pointer-events: none;
}

#voice .ttl-wrapper h2 span{
color: #fff;
}

.ttl-wrapper h2 {
position: relative;
z-index: 2;
line-height: 1.4;
font-size: 1.5rem;
}


#price .section-ttl-decoration, 
#flow .section-ttl-decoration, 
#voice .section-ttl-decoration {
width: 80px;
top: 50%;
left: 50%;
transform: translate(-100%, -120%) rotate(-4deg);
}

#faq .section-ttl-decoration {
position: absolute;
width: 60px;
top: 50%;
left: 50%;
transform: translate(-150%, -100%) rotate(-4deg);
}


/*画面幅900px以上の追加指定*/
@media screen and (min-width:900px) {
/* 見出し全体を囲うブロック */
.ttl-wrapper {
position: relative;
display: flex;
justify-content: center;
align-items: center;
padding: 60px 0; /* 装飾がはみ出しても大丈夫なように余白を確保 */
}

/* 見出しの装飾 */
.ttl-wrapper h2 {
position: relative;
font-size: 30px;
z-index: 2; /* 文字を画像より上に持ってくる */
margin: 0;
}

.section-ttl-decoration {
position: absolute;
z-index: 1;
width: 200px; 
top: 35%;
left: 34%; 
transform: translate(-50%, -50%); 
pointer-events: none;
/* translateで位置を固定したまま、rotateで左に10度傾ける */
transform: translate(-50%, -50%) rotate(-4deg);
}

#miryoku .section-ttl-decoration {
width: 140px;
}

#flow .section-ttl-decoration,
#voice .section-ttl-decoration {
position: absolute;
left: auto;
right: 54%;
top: 40% ;
width: 120px;
transform: translateY(-50%) rotate(-10deg) !important;
z-index: 0; 
}

#faq .section-ttl-decoration {
position: absolute;
left: 50%;
top: 40%; 
transform: translate(-180%, -50%) rotate(-10deg);
width: 100px;
}

#price .section-ttl-decoration {
position: absolute;
/* 中心を基準にする */
left: 50%;
top: 40%; 
transform: translate(-90%, -50%) rotate(-10deg);
width: 100px;
z-index: 0;
}
}

/*（fvのブロック）
---------------------------------------------------------------------------*/
#fv  {
padding: 0;
width: 100%;
}

.fv-bg {
width: 100%;    /* 横幅を画面いっぱいに */
height: auto;   /* アスペクト比を維持 */
display: block; /* 画像の下にできる隙間を解消 */
}


/*（エブリフィットプラスの特徴）
---------------------------------------------------------------------------*/


/* スマホ用の基本スタイル（900px未満の時にも適用される）
---------------------------------------------------------------------------*/
.about-content {
display: block; 
justify-content: center; /* これで左右の要素を中央に寄せます */
display: flex;
flex-direction: column; /* 最初から縦並び */
gap: 1.5rem;
}

/* テキスト側 */
.text-box {
flex: 1;
max-width: 400px;
}

.about-image img {
width: 100%;
height: auto;
border-radius: 28px;
}

/*画面幅900px以上の追加指定*/
@media screen and (min-width:900px) {
/* About 横並び */
.about-content {
display: flex;
align-items: center;
justify-content: center;
flex-direction: row;
}

#about h2.c .fade-in-text {
font-size: 2.4rem; 
}

.about-image img {
width: 100%;
height: auto;
max-width: 600px;
border-radius: 30px; 
margin-bottom: 20px; /* 下にあるテキストとの間に隙間を作る */
}

.text-box {
margin-right: 0;      /* PC用の横余白をリセット */
max-width: 600px;
}

#about h2.c {
letter-spacing: -0.05em; /* わずかに文字間を詰める（マイナス値） */
font-size: 1.8rem; /* 元のサイズより少し小さく調整 */
}
}

/*2カラムブロック　※900px未満では１カラム（エブリフィットネスプラスの魅力ブロック）
---------------------------------------------------------------------------*/
.list-half * {
max-width: 1200px;
margin: 0 auto;
width: 100%;
}

/*背景画像*/
#miryoku {
background: url("../images/bg-kodawari.png") no-repeat left top / 50vw;	/*left(左)、top(上)に配置し、幅は画面幅の50%に。*/
}

/*２カラムを囲むブロック*/
.list-half .list {
display: flex;			/*flexボックスを使う指定*/
flex-direction: column;	/*子要素を縦並びにする*/
margin-bottom: 2rem;	/*ボックスの下に2文字分のスペースを空ける*/
}

/*ブロック内のh4見出し*/
.list-half .list h4 {
font-size: 1.4rem;	/*文字サイズを1.4倍*/
/*margin-bottom: 1rem;	/*下に１文字分のスペースを空ける*/
}

/*ブロック内のh4内のspan（小さな装飾文字）*/
.list-half .list h4 span {
display: block;
opacity: 0.5;	/*透明度50%*/
font-weight: normal;
font-size: 0.5em;	/*文字サイズを親要素の50%*/
letter-spacing: 0.1em;	/*文字間隔をほんの少し広く*/
}

.list-half .text p {
line-height: 1.6; /* 2.0から1.6に調整（お好みで1.4〜1.7の間で選んでください） */
margin: 6px 0 20px 0; /* 見出しとの間隔が気になる場合はここも調整 */
}

/*画像ブロック共通*/
.list-half .image-l img, .list-half .image-r img {
border-radius: 50px;	/*角を丸くする指定。*/
box-shadow: 10px 10px rgba(0,0,0,0.1);	/*ボックスの影。右へ、下へ、0,0,0は黒の事で0.1は色が10%出た状態。*/
}

.list-half .list h4 .point-text {
display: block;          /* 改行して見出しの上に配置する場合 */
font-size: 2rem;
font-weight: 800;
color: #6BBA62;
margin-bottom: 10px;
letter-spacing: -0.02em; /* マイナスの値を指定して文字間を詰める */
}


/*画面幅900px以上の追加指定*/
@media screen and (min-width:900px) {

/*２カラムを囲むブロック*/
.list-half .list {
flex-direction: row;			/*子要素を横並びにする*/
justify-content: space-between;	/*並びかたの種類の指定*/
align-items: center;			/*垂直揃えの指定。天地中央に配置されるように。*/
}

/*画像ブロック共通*/
.list-half .image-l, .list-half .image-r {
width: 50%;			/*画像の幅*/
}

/*画像を右に配置する場合*/
.list-half .image-r {
margin-left: 2rem;	/*画像の左側に空けるスペース*/
}

/*画像を左に配置する場合*/
.list-half .image-l {
order: -1;
margin-right: 2rem;	/*画像の右側に空けるスペース*/
}

/*テキストブロック*/
.list-half .text {
flex: 1;
}

}/*追加指定ここまで*/

/*list-grid7（ctaバナーブロック）
---------------------------------------------------------------------------*/
.list-grid7 .list * {margin: 0;padding: 0;}

#cta-banner{
    width: 100%;
    display: flex;
    align-items: center;    /* 縦方向の中央寄せ */
    padding-left: 0 !important;
    padding-right: 0 !important;
    text-align: center;
}

/* 画像を包むコンテナ */
.cta-container {
    width: 100%;
    margin: 0 auto;
}

.cta-box img {
width: 100%;
}

/* リンクブロック */
.cta-container a {
    display: block;
    width: 100%;
    text-decoration: none;
}

#cta-banner a {
    display: inline-block !important; /* blockではなくinline-blockにすることで中央に寄りやすくなります */
    max-width: 80%; /* スマホで画面ギリギリにならないよう調整 */
}

/* 画像の設定 */
.cta-container img {
    width: 100%;      /* 親要素の幅いっぱいに広げる */
    height: auto;
    display: block;
    margin: 0 auto;   /* 中央寄せ */
}

/* PCとスマホの切り替え設定 */
.img-pc { display: none !important; }
.img-sp { display: block !important; }

@media screen and (min-width: 900px) {
    #cta-banner {
        padding: 100px 20px; /* PCでは上下の余白を広げる */
    }
    .img-sp { display: none !important; }
    .img-pc { display: block !important; }
}



/*list-grid7（インストラクター紹介ブロック）
---------------------------------------------------------------------------*/
.list-grid7 .list * {margin: 0;padding: 0;}

/* インストラクター紹介セクションの背景グラデーション */
#instructor.bg1 {
/* linear-gradient(角度, 開始色, 終了色)
135deg（左上から右下へ）に設定しています。
*/
background: linear-gradient(45deg, #C3FFB4 0%, #FDFFA5 100%);
color: #555; 
padding: 60px 0; /* 上下の余白*/
}

.list-grid7 {
display: flex;
flex-direction: column; /* スマホでは縦1列 */
gap: 2rem;
width: 90%;
margin: 0 auto;
}

/* カード1個あたりの設定 */
.list-grid7 .list {
background: #fff; /* スマホでは視認性を高めるため白背景 */
border: 1px solid #eee;
border-radius: 15px;
padding: 1.5rem;
box-shadow: 0 4px 15px rgba(0,0,0,0.05);
}

.list-grid7 .list figure img {
width: 100%;
object-fit: cover; /* 縦横比を維持して切り抜く */
}

.list-grid7 .list h4 {
text-align: center;
font-size: 1.2rem;
color: var(--primary-color);
margin-bottom: 1rem;
font-weight: bold;
}

.list-grid7 .list p {
font-size: 0.95rem;
line-height: 1.6;
margin-bottom: 1.5rem;
}

/* 画像：スマホでは高さを固定せず、アスペクト比を保つ */
.list-grid7 .list figure {
width: 100%;
height: 300px; /* スマホでは少し控えめな高さ */
overflow: hidden;
border-radius: 10px;
margin-bottom: 1.5rem;
}

/* SNSアイコン */
.instructor-sns {
text-align: center;
font-size: 2.5rem;
color: #6BBA62;
margin-bottom: 1.5rem;
}

/* プロフィール表部分 */
.instructor-profile dl {
display: flex;
flex-direction: row; /* スマホでも横並びを維持 */
padding: 15px 0;
border-top: 1px dotted #ccc;
}

.instructor-profile dt {
width: 30%;
font-size: 0.9rem;
font-weight: bold;
}

.instructor-profile dd {
width: 70%;
font-size: 0.9rem;
}

.instructor-profile ul {
list-style: none;
padding: 0;
}


/*画面幅900px以上の追加指定*/
@media screen and (min-width:800px) {

/*ブロック全体を囲むブロック*/
.list-grid7 {
display: grid;
grid-template-columns: repeat(2, 1fr);	/*3列にする指定。4列にしたければrepeat(4, 1fr)とする。*/
gap: 2rem;	/*ブロックの間に空けるマージン的な指定。２文字分。*/
max-width: 1200px;
margin: 0 auto;
}


/* セクションID、クラス名、タグ名をすべて繋げて優先順位を最大にします */
section#voice .list-yoko-scroll div.list h4 {
color: #ffffff ;
-webkit-text-fill-color: #ffffff; /* iPhoneなどで上書きされるのを防ぐ */
}

/*ボックス１個あたり*/
.list-grid7 .list {
position: relative;
border-radius: 5px;		/*角を少しだけ丸く*/
background: #fafafa;	/*背景色*/
color: #555;			/*文字色*/
border: 1px solid #ccc;	/*枠線の幅、線種、色*/
padding: 2rem 2rem 2rem 2rem;			/*ボックス内の余白。２文字分。*/
margin-bottom: 2rem;	/*ボックスの下に空けるスペース。2文字分。*/
display: flex;
flex-direction: column;
height: 100%;               /* グリッドの中で高さを他と揃える */
justify-content: flex-start; /* 中身をすべて上に寄せる */
padding-bottom: 30px;        /* カードの下側に最低限の余白を確保 */
}

/*ボックス内のh4見出し*/
.list-grid7 .list h4 {
text-align: center;		/*テキストをセンタリング*/
font-size: 1.3rem;		/*文字サイズ130%*/
margin-bottom: 0.5rem;	/*下に0.5文字分の余白を空ける*/
color: var(--primary-color);	/*文字色。css冒頭のprimary-colorを読み込みます。*/
}

/*ボックス内のp要素*/
.list-grid7 .list p {

line-height: 1.5;	/*行間を少し狭く*/
}

/*ボックス内のfigure画像*/
.list-grid7 .list figure {
margin: 0 auto;
margin-bottom: 1rem;	/*画像の下に空けるスペース*/
width: 100%;
height: 500px; /* ★ここで高さを固定します（お好みで調整してください） */
overflow: hidden; /* はみ出た部分を隠す */
margin-bottom: 1.5rem;
border-radius: 15px; /* 角を丸くする場合 */
}

.list-grid7 .list .instructor-sns {
text-align: center;
margin: 2px 0;
font-size: 50px;
color: #6BBA62;
}

.instructor-profile {
margin-top: 40px;
}

.list-grid7 .list .instructor-profile dl {
display: flex;
padding: 25px 0;
border-top: 1px solid #ddd; /* 上の境界線 */
margin:  0;
}

/* 最後の項目に下の線を入れる */
.instructor-profile dl:last-child {
border-bottom: 1px solid #ddd;
}

.instructor-profile dt {
width: 30%; /* 左側の幅 */
font-weight: bold;
color: #333;
}

/* リスト部分 */
.instructor-profile dd {
width: 70%;
margin: 0;
}

.list-grid7 .list .instructor-profile ul {
list-style: none;/* 点を消す */
padding: 0;

}

.instructor-profile li {
list-style: none; /* 点を消す */
position: relative;
padding-left: 15px;
margin-bottom: 8px;
line-height: 1.5;
}

}
/*追加指定ここまで*/


/*ご利用の流れ
---------------------------------------------------------------------------*/
.flow-box * {margin: 0;padding: 0;}

/*背景画像*/
#flow {
background: url("../images/bg-flow.png") no-repeat right top / 50vw;	/*right(右)、top(上)に配置し、幅は画面幅の50%に。*/
padding: 60px 0;
}

/*ステップボックス１個あたりの設定*/
.flow-box {
position: relative;
margin-bottom: 4rem;	/*下に空けるスペース、2文字分。ステップボックス同士のスペースです。*/
}

/*ボックス内のh3見出し（大きな端末で左側に配置される背景色つきの見出し）*/
.flow-box .title h3 {
background: var(--primary-color);		/*背景色。css冒頭のprimary-colorを読み込みます。*/
color: var(--primary-inverse-color);	/*文字色。css冒頭のprimary-inverse-colorを読み込みます。*/
margin-left: calc(-1 * var(--content-space));
margin-right: calc(-1 * var(--content-space));
text-align: center;	/*テキストをセンタリング*/
padding: 2rem;		/*見出し内の余白。２文字分。*/
margin-bottom: 2rem;	/*見出しの下に空けるスペース。２文字分。*/
}


.flow-container {
display: grid;
grid-template-columns: 1fr; /* スマホは確実に1列 */
gap: 40px;
max-width: 1100px;
margin: 0 auto;
padding: 0 20px;
}

/* 2枚目のイメージ：グレーの大きなボックス */
.flow-card {
background-color: #f5f5f5; /* 薄いグレーの背景 */
border-radius: 20px;           /* 2枚目画像に合わせて角はシャープに（丸くするなら8px） */
padding: 20px;
display: flex;
flex-direction: column;
width: 100%; /* 横幅を統一 */
box-sizing: border-box;
}

/* 画像エリアの統一 */
.flow-image-box {
position: relative;
padding: 0; /* 余白を一旦リセットして統一感を出す */
margin-bottom: 15px;
}

/* 写真自体を囲う白枠のような効果 */
.image-inner {
box-shadow: 0 2px 10px rgba(0,0,0,0.05);
border-radius: 10px;
overflow: hidden;
}

.image-inner img {
width: 100%;
display: block;
aspect-ratio: 16 / 10; /* 写真の比率 */
object-fit: cover;
}

.card-box {
text-align: right;
margin: 20px 0 0 0;
}

.step-bg-num {
font-size: 4rem;
font-weight: 700;
color: rgba(107, 186, 98, 0.15); /* テーマカラーを透かす */
line-height: 0.7;
display: block;
}

/* テキストエリア：2枚目画像のようにグレー背景の上に配置 */
.flow-content {
padding: 10px 5px;
}

.flow-content .step-label {
color: #6BBA62;
font-size: 0.9rem;
font-weight: bold;

}

.flow-content h3 {
font-size: 1.2rem;
color: #444;
margin: 10px 0;
font-weight: 700;
}

.flow-content p {
font-size: 1rem;
line-height: 1.8;
color: #444;
margin: 0 !important;
}

/* --- [PC上書き] 900px以上の指定 --- */
@media screen and (min-width: 900px) {
#flow {
padding: 100px 0;
}

.flow-container {
/* PCでは3列に固定 */
grid-template-columns: repeat(3, 1fr); 
gap: 25px;
}

.step-bg-num {
font-size: 5rem;
}



}/*追加指定ここまで*/

/* 料金セクション全体
---------------------------------------------------------------------------*/
/* --- [スマホ基準] 料金セクション --- */
#price {
width: 100%;
background: linear-gradient(135deg, #C3FFB4 0%, #FDFFA5 100%);
display: flex;
justify-content: center;
box-sizing: border-box;
}

.price-container {
width: 100%;
max-width: 1000px;
display: flex;
flex-direction: column;
gap: 30px;
}

/* タイトル装飾 */
.price-sub-title {
font-family: 'Georgia', serif;
font-style: italic;
color: rgba(255, 255, 255, 0.8);
font-size: 2rem; /* スマホ用に少し小さく */
position: absolute;
top: -15px;
left: 50%;
transform: translateX(-50%); /* 確実に中央配置 */
z-index: 0;
white-space: nowrap;
}

/* 料金カード */
.price-card {
background: #fff;
border-radius: 20px;
padding: 40px 20px; /* スマホ用に内側の余白を調整 */
text-align: center;
box-shadow: 0 10px 30px rgba(0,0,0,0.03);
}

/* ラベル：基本は「斜体なし」にリセット */
.price-label {
display: inline-block;
background: #FFFD9C;
color: #333;
padding: 6px 25px;
border-radius: 30px;
font-size: 1rem;
font-style: italic; /* 基本はこれ */
margin-bottom: 20px;
}

/* 「自分に合っている？」のテキストを整える */
.price-text {
font-size: 1rem;      /* 文字を少し大きく */
line-height: 1.7;       /* 行間にゆとりを持たせる */
color: #444;            /* 真っ黒を避けて柔らかい印象に */
margin: 15px auto 0;    /* 上に少し隙間を作る */
text-align: center;     /* 中央揃え */
letter-spacing: 0.02em; /* 文字間をほんの少し広げる */
}

/* 金額の表示（Roboto適用） */
.price-amount {
display: flex;
justify-content: center;
align-items: baseline;
margin-bottom: 20px;
color: #333;
font-family: 'Roboto'
}

.price-amount .num {
font-size: 4rem;
font-weight: 550;
line-height: 1;
}

.price-amount .num.highlight {
color: #e17b86;
}

.price-amount .unit, 
.price-amount .tax-note {
font-size: 1.2rem;
margin-left: 4px;
}


/* --- [PC上書き] 900px以上の指定 --- */
@media screen and (min-width: 900px) {
#price {
padding: 100px 0;
}

.price-sub-title {
font-size: 2.5rem;
}

.price-card {
padding: 50px 30px;
}

.price-amount .num {
font-size: 5.5rem; /* PCでは大きく */
}

.price-amount .unit {
font-size: 1.8rem;
}

.price-amount .tax-note {
font-size: 1.6rem;
}
}


/* --- レッスンスケジュール セクション --- */
#lesson-schedule {
padding: 80px 0;
background-color: #f8f9fa;
}

.schedule-inner {
max-width: 1200px; /* コンテンツ幅に合わせる */
margin: 0 auto;
background: #fff;
padding: 60px 40px;
border-radius: 20px;
box-shadow: 0 10px 40px rgba(0,0,0,0.03);
box-sizing: border-box; /* パディングを含めて1200pxにする */
}

.schedule-ttl {
text-align: center;
width: 100%;
display: block;
}

#lesson-schedule h2.schedule-ttl  {
font-size: 26px;
}

/* テーブルの基本設定 */
.design-table {
width: 100%;
border-collapse: collapse;
table-layout: fixed; /* 全列の幅を固定して均等にする */
}

/* 見出し（グレー背景） */
.design-table th {
background-color: #e6e6e6;
padding: 20px 5px;
font-weight: 600;
color: #333;
font-size: 1.1rem;
}

/* 「時間」の列だけ少し幅を広げる（例: 160px） */
.design-table th:first-child {
width: 160px;
}

/* 残りの曜日列（8列）は自動的に均等（ (1200 - 160) / 8 ）になります */

.design-table td {
padding: 30px 5px;
text-align: center;
color: #444;
font-size: 1rem;
border-bottom: 1px solid #eee; /* 薄い線を入れると見やすくなります */
word-wrap: break-word; /* 枠からはみ出さないように改行 */
}

.time-cell {
font-weight: bold;
color: #333;
}

/* スマホ対応（1200px以下になった時のスクロール設定） */
@media screen and (max-width: 1240px) {
.schedule-inner {
margin: 0 20px; /* 左右に少し余白を作る */
}
.table-scroll-box {
overflow-x: auto;
}
.design-table {
min-width: 1000px; /* 窮屈になりすぎないよう最小幅を確保 */
}
}
/*追加指定ここまで*/

/*ステップボックス
---------------------------------------------------------------------------*/
ul.step {
margin: 0 !important;padding: 0 !important;
list-style: none;
}

/*ステップ１個あたり*/
ul.step li {
border: 2px solid var(--primary-color);	/*枠線の幅、線種、varは色の指定で、css冒頭のprimary-colorを読み込みます。*/
padding: 1rem;			/*ボックス内の余白。１文字分。*/
margin-bottom: 2rem;	/*ボックスの下に空けるスペース。２文字分。ボックス同士に空ける余白です。*/
position: relative;
}

/*「▼」のマーク*/
ul.step li::after {
content: "▼";	/*このテキストを出す*/
transform: scaleX(2);	/*２倍の大きさ*/
position: absolute;
left: 50%;	/*左からの配置場所。厳密に中央ではありませんが、テキストが小さいので問題ないかと。*/
bottom: -2rem;	/*下からの配置場所。本来の場所より上に２文字分の場所。*/
color: var(--primary-color);	/*文字色。css冒頭のprimary-colorを読み込みます。*/
opacity: 0.3;	/*透明度。色が30%出た状態。*/
}

/*最後のステップボックスには「▼」を出さない*/
ul.step li:last-child::after {
content: "";
}


/*list-yoko-scroll（お客様の声ブロック）
---------------------------------------------------------------------------*/

/* --- 1. お客様の声全体の設定 --- */
section#voice {
overflow: hidden;
width: 100%;
/* 背景画像の設定 */
background: url("../images/voice_bg_sp.jpg") no-repeat center center;
background-size: cover; /* 画面いっぱいに広げ、比率を保つ */
background-attachment: scroll; /* スマホでの挙動を安定させる */
padding: 60px 0;
}

/* --- 2. 動くコンテナ（親要素） --- */
.list-yoko-scroll {
display: flex;             /* 横並びにする */
gap: 2rem;                 /* カード同士の隙間 */
width: max-content;        /* 中身の幅いっぱいに広がる */

/* PCより少し速めに動かす */
animation: scroll-left 25s linear infinite;
}

/* --- 3. アニメーションの定義 --- */
@keyframes scroll-left {
0% { transform: translateX(0); }
100% { transform: translateX(-50%); } /* 7枚×2セット並べている前提 */
}

/* --- 4. 個別の吹き出しカード --- */
.list-yoko-scroll .list {
width: 350px;              /* カードの幅を固定（引き伸ばし防止） */
flex-shrink: 0;            /* 潰れないように固定 */
position: relative;
color: var(--primary-inverse-color);
background: var(--primary-color);
border-radius: 1rem;
padding: 2rem;

/* 内部のテキスト配置：ここを安定させるとズレません */
display: block;            /* 内部をflexにせずblockにする */
text-align: left;
}

/* 奇数番目 (1, 3, 5...) */
.list-yoko-scroll .list:nth-of-type(odd) {
align-self: flex-start;
}

/* 偶数番目 (2, 4, 6...) を下にずらす */
.list-yoko-scroll .list:nth-of-type(even) {
margin-top: 60px;         /* 交互に段差をつける */
}

/* --- 5. 内部のテキスト（h4, p） --- */
.list-yoko-scroll .list h4 {
font-size: 1.1rem;
margin-bottom: 10px;
display: block;
font-weight: bold;
}

.list-yoko-scroll .list .text {
font-size: 0.85rem;
line-height: 1.6;
display: block;
}

.list-yoko-scroll p {
margin: 0;
}

/* --- 6. 吹き出しの▲ --- */
.list-yoko-scroll .list::before {
content: "▲";
color: var(--primary-color);
font-size: 30px;
position: absolute;
left: 50%;
transform: translateX(-50%); /* 矢印を中央に固定 */
top: -30px;
}

/* マウスホバーで停止（任意） */
.list-yoko-scroll:hover {
animation-play-state: paused;
}

/*よく頂く質問ブロック
---------------------------------------------------------------------------*/
/*ブロック全体*/
/* --- [スマホ基準] よくある質問（FAQ） --- */

/* ブロック全体 */
.faq {
max-width: 1200px;
margin: 0 auto;
font-size: 1rem;
border-bottom: 1px solid rgba(255,255,255,0.3);
}

/* 質問（Q） */
.faq dt.openclose2 {
display: flex;
align-items: center;
background-color: #8CCE70;
margin: 10px 0 0;
padding: 1rem;
border-radius: 15px;
cursor: pointer;
color: #fff;
font-weight: bold;
position: relative;
}

/* 質問のテキストと「Q」の文字 */
.q_letter {
margin-right: 10px;
font-size: 1.2rem;
}

/* 「＋」アイコン（右側に配置） */
.faq dt.openclose2::before {
content: "＋";
order: 1; /* 右側に配置 */
margin-left: auto; 
color: #fff;
width: 1.8rem;
height: 1.8rem;
line-height: 1.8rem;
text-align: center;
border-radius: 50%;
flex-shrink: 0;
font-size: 1rem;
transition: transform 0.3s; /* 動きを滑らかに */
}

/* 「ー」アイコン（開いている場合） */
.faq dt.active::before {
content: "－";
transform: rotate(180deg); /* くるっと回る演出 */
}

/* 回答（A） */
.faq dd {
/* スマホでは左側の余白を削り、読みやすくする */
margin: 0 10px 15px 10px; 
padding: 1.2rem;
background: #fff;
color: #333;
border-radius: 10px;
font-size: 0.95rem;
line-height: 1.7;
display: none; /* jQuery等で開閉させる場合は初期状態を非表示に */
}

/* --- [PC上書き] 900px以上の指定 --- */
@media screen and (min-width: 900px) {
.faq {
font-size: 1.1rem;
}

.faq dt.openclose2 {
margin: 14px 0;
padding: 1.2rem 2rem;
}

.faq dd {
margin: 0 0 20px 0;
padding: 1.5rem 2.5rem;
font-size: 1rem;
}
}

/*がん検診バナーブロック
---------------------------------------------------------------------------*/
.ctc-container {
max-width: 1000px;
margin: 40px auto;
padding: 20px;
}

/* フレックスボックスで左右に分ける */
.ctc-content {
display: flex;
align-items: center;
gap: 40px; /* 画像とテキストの間隔 */
}

/* テキスト側 */
.ctc-text-side {
flex: 1;
text-align: left;
}

/* pタグ全般に効いている1remのマージンを、このエリアだけ解除する */
.ctc-text-side .ctc-text {
margin-left: 0;
margin-right: 0;
text-align: left;
}

.ctc-title {
font-size: 24px;
font-weight: bold;
color: #333;
margin-bottom: 20px;
position: relative;
}

.ctc-description {
font-size: 16px;
line-height: 1.8;
color: #555;
}

/* 画像側 */
.ctc-image-side {
flex: 1;
}

.ctc-img {
width: 100%;
height: auto;
box-shadow: 0 4px 15px rgba(0,0,0,0.1); /* 軽い影をつけて浮かせる */
}

/* スマホ対応：縦並びにする */
@media (max-width: 768px) {
.ctc-content {
flex-direction: column-reverse; /* 画像を上、テキストを下にする */
text-align: center;
}

.ctc-title {
font-size: 20px;
}
}


/*btn共通設定（ヘッダーと、フッターの上のボックス内にあるボタンの共通設定）
---------------------------------------------------------------------------*/
.btn a {
display: block;text-decoration: none;
background: var(--accent-color);	/*背景色。css冒頭のaccent-colorを読み込みます。*/
color: var(--accent-inverse-color);	/*背景色。css冒頭のaccent-inverse-colorを読み込みます。*/
text-align: center;	/*テキストをセンタリング*/
}

/*マウスオン時*/
.btn a:hover {
background: var(--accent-inverse-color);	/*背景色。css冒頭のaccent-inverse-colorを読み込みます。*/
color: var(--accent-color);					/*文字色。css冒頭のaccent-colorを読み込みます。*/
}

/*ctaブロック
---------------------------------------------------------------------------*/
#cta {
width: 100%;
padding: 20px 0 !important;      /* sectionの標準余白をリセット */
}

.cta-content {
max-width: 1000px;
margin: 0 auto;
padding: 30px 30px 60px;
}

#cta .text-box {
color: #fff;
max-width: 600px; /* 読みやすい幅を指定 */
margin: 0 auto 30px;
}

.cta-catch {
font-size: 18px;
font-weight: bold;
line-height: 1.4;
color: #fff;
margin: 10px 0 10px 0;
}

.cta-subtext {
font-size: 16px;
line-height: 1.4;
margin: 0;
}

/*画面幅900px以上の追加指定*/
@media screen and (min-width:900px) {
.cta-content {
padding: 120px 30px 120px;
}
.cta-catch {
font-size: 22px;
}

#cta .text-box {
color: #fff;
max-width: 600px; /* 読みやすい幅を指定 */
margin: 0 auto 50px;
}

.cta-subtext {
font-size: 16px;
}

.cta-catch {
color: #fff;
font-size: 22px;
text-align: center;
line-height: 1.5;
font-weight: 550;
}
}


/*フッターの上のボックス内にあるボタン（ここにない設定は、すぐ上の「btn共通設定」にあります。）
---------------------------------------------------------------------------*/
/*ボタンに使用しているアイコン*/
.btn-box .btn i {
margin-right: 2rem;		/*アイコンの右側に２文字分のスペースを空ける*/
transform: scale(1.4);	/*アイコンサイズを140%に。*/
}

/*ボタンブロック*/
.btn-box .btn {
list-style: none;margin:0;padding:0;
display: flex;
flex-direction: column;	/*縦並びに*/
justify-content: center;
align-items: center;
gap: 2rem;			/*ボタン同士に空けるスペース。２文字分。*/
height: auto;		/*ブロックの高さ。画面の高さの80%。お好みで。*/
font-size: 1.2rem;	/*文字サイズを150%に*/
margin-top: 2rem;
}

/*ボタン１個あたり*/
.btn-box .btn li {
width: 40vh;	/*幅。画面幅の80%*/
}
.btn-box .btn a {
border-radius: 40px;	/*角を丸くする指定*/
padding: 1rem 2rem;		/*ボタン内の余白。上下、左右へ。*/
}

/* 1番目のボタン：LINE専用カラー */
.btn-box .btn li:nth-of-type(1) a {
background-color: #06C755; /* LINE公式の緑 */
color: #ffffff;
}

/* 2番目のボタン：サイトのメインカラー（先頭のカラー） */
.btn-box .btn li:nth-of-type(2) a {
background: var(--accent-color); /* 設定されているメインの色 */
color: var(--primary-inverse-color); /* 反転色（白など） */
}
/*画面幅900px以上の追加指定*/
@media screen and (min-width:900px) {

/*ボタンブロック*/

.btn-box .btn {
flex-direction: row;	/*横並びに変更*/
}

/*ボタン１個あたり*/
.btn-box .btn li {
width: 28vw;	/*幅。画面幅の40%*/
}

}/*追加指定ここまで*/


/*波のアニメーション
---------------------------------------------------------------------------*/
/*アニメーション*/
@keyframes move-wave {
0% { transform: translateX(0); }
100%   { transform: translateX(-50%); }
}

/*波を囲む全体のブロック*/
.wave-section {
position: relative;

/*以下の３行の数字については、下のwaveのheight(波の高さ)から1を差し引いた形です。隙間が出る場合があるのでそれが出ないようにしています。*/
padding-top: 79px;
top: -79px;
margin-bottom: -79px;
}

/*波の色（２つとも揃えておけばOK）*/
.wave-section .text {
background: var(--primary-color);	/*背景色。css冒頭のprimary-colorを読み込みます。*/
}
.wave-wrap use {
fill: var(--primary-color);			/*塗りつぶしの色。css冒頭のprimary-colorを読み込みます。*/
}

/*上下の波（共通）*/
.wave {
position: absolute;
left: 0;
width: 100%;
height: 80px;	/*波の高さ。ここを変更する場合は上の.wave-sectionの３箇所の数字も合わせて変更して下さい。*/
}
.wave svg {
display: block;
width: 100%;
height: 100%;
}

.wave .wave-wrap {
transform-box: fill-box;
transform-origin: 0 0;
animation: move-wave 10s linear infinite;	/*ここの10sを変更すれば波のアニメーション速度が変わります*/
}

/*上の波*/
.wave-top {
top: 0;
}

/*下の波*/
.wave-bottom {
bottom: 0;
transform: rotate(180deg);
}


/*フッター
---------------------------------------------------------------------------*/
#footer {
padding: 40px 30px 40px;
background-color: #8CCE70; /* 背景色は適宜変更してください */
}

.footer-container {
max-width: 1000px;
margin: 0 auto;
display: flex;
flex-direction: column; /* 縦並びにする */
align-items: flex-start; /* 左寄せにする */
}

.footer-logo img{
max-width: 280px;
width: 280px;
}

.footer-terms h3 {
font-size: 1.2rem;
margin-bottom: 15px;
text-align: center;
display: block;
color: #fff;
}

.terms-box {
display: flex;
gap: 20px; /* PCサイズで規約を横に並べる場合 */
flex-wrap: wrap;
color: #fff;
}

.terms-item {
flex: 1;
min-width: 300px; /* スマホで崩れないよう調整 */
}

.terms-item h4 {
margin: 10px;
}

.terms-item p{
padding-left: 1em;      /* 左側に1文字分の余白を作る */
text-indent: -1em;      /* 最初の行だけ左に1文字分戻す */
line-height: 1.6;       /* 行間を少し空けると読みやすくなります */
margin-bottom: 0.5em;   /* 項目ごとの間隔 */
}

.zoom-links {
list-style: none;    /* 中黒（点）を消す */
}

#footer small {
color: #ffffff; /* 文字色を白に強制 */
padding-top: 26px;
display: block;
margin: 0 auto;
}


/*著作部分（※意図的に見えなくしたりしないで下さい。規約違反になります。）
---------------------------------------------------------------------------*/
.pr a {
text-decoration: none;display: block;
background: #555;
color: #ccc;
text-align: right;
padding: 0.5rem 1rem;
font-size: 0.8rem;
}
.pr a::before {
font-family: "Font Awesome 6 Free";
content: "\e2ca";
font-weight: bold;
margin-right: 0.5em;
}


/*PAGE TOP（↑）設定
---------------------------------------------------------------------------*/
.pagetop-show {display: block;}

/*ボタンの設定*/
.pagetop a {
display: block;text-decoration: none;text-align: center;z-index: 99;
animation: opa1 1s 0.4s both;
position: fixed;	/*スクロールに追従しない(固定で表示)為の設定*/
right: 20px;		/*右からの配置場所指定*/
bottom: 20px;		/*下からの配置場所指定*/
color: #fff;		/*文字色*/
font-size: 1.5rem;	/*文字サイズ*/
background: rgba(0,0,0,0.2);	/*背景色。0,0,0は黒の事で0.2は色が20%出た状態。*/
width: 60px;		/*幅*/
line-height: 60px;	/*高さ*/
border-radius: 50%;	/*円形にする*/
}


/*bg1
---------------------------------------------------------------------------*/
.bg1 {
background: var(--secondary-color);		/*背景色。css冒頭のsecondary-colorを読み込みます。*/
color: var(--secondary-inverse-color);	/*背景色。css冒頭のsecondary-inverse-colorを読み込みます。*/
}


/*背景画像が少しずつ上に移動する
---------------------------------------------------------------------------*/
/*共通設定*/
.bg-slideup {
background-repeat: no-repeat;
background-size: cover;
width: 100%;
}

/*slideup1画像*/
.slideup1 {
background-image: url("../images/voice_bg_pc.jpg");	/*背景画像の読み込み*/
color: #fff;
border-radius: 10vw 10vw 0 0;
background-size: 100%;      /* 1. 画像が全部収まるサイズにする。隙間が出るなら 80% 等の数値指定も可 */
}

/*slideup2画像*/
.slideup2 {
background-image: url("../images/cta_bg_pc.jpg");	/*背景画像の読み込み*/
position: relative;
}

/*slideup2の上部にグラデーションをかけて、「よくあるご質問」ブロックとの境界をなめらかにする*/
.slideup2::before {
content: "";
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 20vh;	/*高さ。画面の高さの20%。お好みで。*/
}

/*お知らせブロック
---------------------------------------------------------------------------*/
/*記事の下に空ける余白*/
.new dd {
padding-bottom: 1rem;
}

/*ブロック内のspan。日付の横のアイコン的な部分の共通設定*/
.new dt span {
display: inline-block;
text-align: center;
line-height: 1.8;		/*行間（アイコンの高さ）*/
border-radius: 2px;		/*角を丸くする指定*/
padding: 0 1rem;		/*上下、左右へのブロック内の余白*/
width: 8rem;			/*幅。8文字分。*/
transform: scale(0.85);	/*85%のサイズに縮小*/
border: 1px solid #777;	/*枠線の幅、線種、色*/
}

/*icon-bg1。サンプルテンプレートでは「重要」と書いてあるマーク*/
.new .icon-bg1 {
border-color: transparent;	/*枠線を透明に*/
background: #cd0000;		/*背景色*/
color: #fff;				/*文字色*/
}

/*icon-bg2。サンプルテンプレートでは「サービス」と書いてあるマーク*/
.new .icon-bg2 {
border-color: transparent;				/*枠線を透明に*/
background: var(--primary-color);		/*背景色。冒頭のprimary-colorを読み込みます。*/
color: var(--primary-inverse-color);	/*文字色。冒頭のprimary-inverse-colorを読み込みます。*/
}

/*画面幅700px以上の追加指定*/
@media screen and (min-width:700px) {

/*ブロック全体*/
.new {
display: grid;	/*gridを使う指定*/
grid-template-columns: auto 1fr;	/*横並びの指定。日付とアイコン部分の幅は自動で、内容が入るブロックは残り幅一杯とる。*/
}

}/*追加指定ここまで*/


/*テキストのフェードイン設定
---------------------------------------------------------------------------*/
/*fadeInのキーフレーム設定*/
@keyframes fadeIn {
0% {opacity: 0;transform: scale(0.1) rotate(-30deg);}
100% {opacity: 1;transform: scale(1) rotate(0deg);}
}

/* 初期状態でテキストを非表示にする */
.fade-in-text {
visibility: hidden;
color: #6BBA62;
margin: 0 auto;
}

/* アニメーションを適用するクラス。
animationの行の「0.2s」が文字の出現のなめらかさで、大きいほどなめらかに出てきます。
１文字ずつの出現する際の時差は、js/main.jsの「テキストのフェードイン効果」の中にある「0.1」で調整できます。*/
.char {
display: inline-block;
opacity: 0;
animation: fadeIn 0.2s linear both;
}


/*マニュアルページ用
---------------------------------------------------------------------------*/
#manual {background-image: none;}
.manual {
padding: 5rem;
}
.manual h2,.manual h3 {
margin-top: 3rem;
}
pre {white-space: pre-wrap;word-wrap: break-word;overflow-wrap: break-word;}


/*その他
---------------------------------------------------------------------------*/
.clearfix::after {content: "";display: block;clear: both;}
.color-check, .color-check a {color: #ff0000 !important;}
.l {text-align: left !important;}
.c {text-align: center !important;}
.r {text-align: right !important;}
.ws {width: 95%;display: block;}
.wl {width: 95%;display: block;}
.mb0 {margin-bottom: 0px !important;}
.mb30 {margin-bottom: 30px !important;}
.mb5rem {margin-bottom: 5rem !important;}
.look {display: inline-block;padding: 0px 10px;background: #eee;border: 1px solid #ccc; color: #888; border-radius: 3px;margin: 5px 0; word-break: break-all;}
.small {font-size: 0.75em;}
.large {font-size: 2em; letter-spacing: 0.1em;}
.pc {display: none;}
.dn {display: none !important;}
.block {display: block !important;}

/*画面幅900px以上の追加指定*/
@media screen and (min-width:900px) {

.ws {width: 48%;display: inline;}
.sh {display: none;}
.pc {display: block;}

}/*追加指定ここまで*/



