@charset "utf-8";


/*slide.cssの読み込み*/
@import url(slide.css);


/*PC・タブレット・スマホ共通設定
------------------------------------------------------------------------------------------------------------------------------------------------------*/

/*全体の設定
---------------------------------------------------------------------------*/
body {
    margin: 0px;
    padding: 0px;
    color: #333;	/*全体の文字色*/
    font-family:"ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;	/*フォント種類*/
    font-size: 16px;	/*文字サイズ*/
    line-height: 2;		/*行間*/
    background: #fff;	/*背景色*/
    -webkit-text-size-adjust: none;
}
h1,h2,h3,h4,h5,p,ul,ol,li,dl,dt,dd,form,figure,form,select,input,textarea {margin: 0px;padding: 0px;font-size: 100%;}
ul {list-style-type: none;}
img {border: none;max-width: 100%;height: auto;vertical-align: middle;}
table {border-collapse:collapse;font-size: 100%;border-spacing: 0;}
iframe {width: 100%;}
video,audio {max-width: 100%;}

/*リンク（全般）設定
---------------------------------------------------------------------------*/
a {
    color: #333;		/*リンクテキストの色*/
    transition: 0.5s;	/*マウスオン時の移り変わるまでの時間設定。0.5秒。*/
}
a:hover {
    color: #7ebb77;			/*マウスオン時の文字色*/
    text-decoration: none;	/*マウスオン時に下線を消す設定。残したいならこの１行削除。*/
}

/*サイトの最大幅の設定
---------------------------------------------------------------------------*/
#container,#menubar,footer .inner {
    max-width: 1400px;	/*サイトの最大幅。これ以上大きくならない。*/
    margin: 0 auto;
}

/*containerの設定（footer以外の、ホームページを囲むブロック）
下の「1450px以下の設定」にあるbody.is-fixed #menubarのmarginの数字と合わせておく。
---------------------------------------------------------------------------*/
#container {
    padding: 0 50px;	/*上下、左右へのブロック内余白*/
}

/*ヘッダー（ロゴが入った最上段のブロック）
---------------------------------------------------------------------------*/
/*ヘッダーブロック*/
header {
    position: relative;
    margin: 0 auto;
    height: 170px;	/*ヘッダーの高さ*/
    background: url(../images/header_bg.jpg) no-repeat 65% center/500px;	/*背景画像の読み込み。左から65%、上下中央に配置。幅500px。*/
}
/*ロゴ画像*/
header #logo {
    width: 350px;		/*ロゴ画像の幅*/
    position: absolute;
    left: 2%;		/*ヘッダーブロックの左からの配置指定*/
    bottom: 65px;	/*ヘッダーブロックの下からの配置指定*/
}
/*TELブロック*/
header address {
    font-style: normal;
    position: absolute;
    right: 2%;		/*ヘッダーブロックの右からの配置指定*/
    bottom: 20px;	/*ヘッダーブロックの下からの配置指定*/
    text-align: center;	/*内容をセンタリング*/
    font-size: 80%;		/*文字サイズ*/
    line-height: 1.5;	/*行間を少し狭く*/
    text-shadow: 1px 1px 3px #fff, -1px -1px 3px #fff;
}
/*TELブロックの電話番号部分*/
header address .tel {
    color: #7ebb77;		/*文字色*/
    font-size: 250%;	/*文字サイズ*/
    background: url(../images/icon_tel.png) no-repeat left center / 26px;	/*電話アイコンの読み込み。左(left)に、上下中央(center)に配置。画像幅26px。*/
    padding-left: 35px;	/*電話アイコン部分の余白をここで作る*/
}

/*文字サイズ変更ボタン（※文字サイズを「大」にした時の設定はchange.cssで行う）
---------------------------------------------------------------------------*/
/*ボタンブロック全体*/
#fsize {
    position: absolute;
    right: 2%;		/*ヘッダーブロックに対して右からの配置指定*/
    top: 0px;		/*ヘッダーブロックに対して上からの配置指定*/
    width: 250px;	/*ブロック幅*/
    background: #fff;	/*背景色*/
    box-shadow: 0px 0px 8px rgba(0,0,0,0.2);	/*影の設定。右へ、下へ、ぼかし幅。rgbaは色設定で0,0,0は黒。0.2は20%色がついた状態の事。*/
    border-radius: 0px 0px 5px 5px;	/*角丸のサイズ。左上、右上、右下、左下への順。*/
    line-height: 50px;	/*高さ*/
    padding: 10px 0px;	/*上下、左右へのボックス内の余白*/
}
/*「文字サイズ」のテキスト*/
#fsize p {
    float: left;
    font-size: 18px;	/*文字サイズ*/
    padding: 0 20px;	/*上下、左右への余白*/
}
/*文字サイズボタン１個あたり*/
#fsize ul li {
    float: left;	/*左に回り込み*/
}
#fsize ul a {
    overflow: hidden;display: block;text-decoration: none;text-align: center;
    color: #fff;	/*文字色*/
}
/*「小」ボタン設定*/
#fsize ul li#small a::before {
    display: block;
    content: "小";		/*「小」の文字を出力*/
    font-size: 16px;	/*文字サイズ*/
    background: #7ebb77;	/*背景色*/
    width: 40px;		/*幅*/
    line-height: 40px;	/*高さ*/
    margin-top: 5px;
    margin-right: 10px;
}
/*「大」ボタン設定*/
#fsize ul li#large a::before {
    display: block;
    content: "大";		/*「大」の文字を出力*/
    font-size: 30px;	/*文字サイズ*/
    background: #ccc;	/*背景色*/
    width: 50px;		/*幅*/
    line-height: 50px;	/*高さ*/
}
/*マウスオン時の「大」ボタン設定*/
#fsize ul li#large a:hover::before {
    background: #7ebb77;	/*背景色*/
}

/*メインメニュー
---------------------------------------------------------------------------*/
/*メニューブロックの設定*/
#menubar {
    position: relative;
    margin: 0 auto 20px;	/*上、左右、下へのマージン。20pxを変更する際は、「body.is-fixed header」の数値も変更する。*/
    height: 75px;			/*メニューの高さ。下の「#menubar li a」の「height」と「padding-top」の数字を合計した数字に合わせる。*/
}
/*メニュー１個あたりの設定*/
#menubar li {
    float: left;	/*左に回り込み*/
    width: 16.66%;	/*メニュー幅（100÷6個=16.66%）　もし４個にするなら100÷4=25%になる。*/
    line-height: 1.8;	/*行間を少しだけ狭く*/
}
#menubar li a {
    text-decoration: none;display: block;
    text-align: center;
    height: 60px;		/*高さ*/
    padding-top: 15px;	/*上に追加する余白*/
    color: #fff;		/*文字色*/
    border-left: 1px dashed #fff;	/*メニューの左側の線の幅、線種、色（古いブラウザ用）*/
    border-left: 1px dashed rgba(255,255,255,0.4);	/*左の線の幅、線種、255,255,255は白の事で0.4は40%色がついた状態の事。*/
    background: #7ebb77;	/*背景色*/
}
/*最初のメニューへの追加設定*/
#menubar li:first-child a {
    border-left: none;
    border-radius: 10px 0px 0px 10px;	/*角丸の指定。左上、右上、右下、左下への順番。*/
}
/*最後のメニューへの追加設定*/
#menubar li:last-child a {
    border-radius: 0px 10px 10px 0px;	/*角丸の指定。左上、右上、右下、左下への順番。*/
}
/*飾り文字*/
#menubar li span {
    display: block;
    font-size: 10px;		/*文字サイズ*/
    font-weight: normal;	/*文字を太字でなく標準に戻す設定*/
    letter-spacing: 0.2em;	/*文字間隔を少しあける設定*/
    opacity: 0.5;			/*透明度50％*/
}
/*マウスオン時と、現在表示中(current)のメニューの設定*/
#menubar li a:hover, #menubar li.current a {
    background: #5b9f53;	/*背景色*/
}
/*スマホ用メニューを表示させない*/
#menubar-s {display: none;}
/*３本バーアイコンを表示させない*/
#menubar_hdr {display: none;}

/*ドロップダウンメニュー用
---------------------------------------------------------------------------*/
/*メニューブロック*/
#menubar ul.ddmenu {
    position:absolute;visibility: hidden;z-index: 10;
    width: 16.66%;		/*幅。上の「#menubar li」と合わせる。*/
    border-top: 1px solid #fff;	/*上の線の幅、線種、色*/
}
/*メニュー１個あたりの設定*/
#menubar ul.ddmenu li {
    float: none;
    width: 100%;
    line-height: 1.5;
}
#menubar ul.ddmenu li a {
    width: 100%;height: auto;font-weight: normal;border-radius: 0 !important;
    border: none;	/*線を一旦リセット*/
    border-bottom: 1px solid #fff;	/*下の線の幅、線種、色*/
    background: #000;	/*背景色（古いブラウザ用）*/
    background: rgba(0,0,0,0.7);	/*背景色。0,0,0は黒の事で0.7は70%色がついた状態の事。*/
    color: #fff;		/*文字色*/
    padding: 10px 0;	/*上下、左右への余白*/
}
/*マウスオン時*/
#menubar ul.ddmenu li a:hover {
    background: #000;	/*背景色*/
}

/*fixmenu。メインメニューが画面上部に到達した際の設定
---------------------------------------------------------------------------*/
/*fixmenuブロック*/
body.is-fixed .nav-fix-pos {
    width: 100%;z-index: 100;position: fixed;top: 0;left: 0;
}
/*headerブロック*/
body.is-fixed header {
    margin-bottom: 95px;	/*メインメニューのheight(75)とmargin-bottom(20)を足した数字にする*/
}
/*最初のメニューへの追加設定*/
body.is-fixed #menubar li:first-child a {
    border-left: none;
    border-radius: 0px 0px 0px 10px;
}
/*最後のメニューへの追加設定*/
body.is-fixed #menubar li:last-child a {
    border-radius: 0px 0px 10px 0px;
}

/*コンテンツ（mainとsubブロックを囲むボックス）
---------------------------------------------------------------------------*/
#contents {
    clear: both;
    padding: 40px 0;
}

/*メインコンテンツ
---------------------------------------------------------------------------*/
/*メインコンテンツブロック*/
#main {
    float: right;	/*右に回り込み*/
    width: 75%;		/*ボックス幅*/
    padding-bottom: 40px;
}
/*１カラム時のメインコンテンツ*/
.c1 #main {
    float: none;
    width: auto;
}
/*mainコンテンツのh2タグ設定*/
#main h2 {
    clear: both;
    margin-bottom: 20px;
    padding: 10px 20px;	/*上下、左右への余白*/
    font-size: 120%;	/*文字サイズ*/
    color: #fff;		/*文字色*/
    background: #7ebb77;	/*背景色*/
    border-radius: 10px;	/*角丸のサイズ。この行を削除すれば角が尖った長方形になります。*/
}
/*h2タグの１文字目への追加設定*/
#main h2::first-letter {
    border-left: 3px solid #fff;	/*左の線の幅、線種、色*/
    padding-left: 15px;				/*線とテキストとの余白*/
}
/*mainコンテンツのh3タグ設定*/
#main h3 {
    clear: both;
    margin-bottom: 20px;
    padding: 5px 20px;	/*上下、左右への余白*/
    font-size: 110%;	/*文字サイズ*/
    border: 1px solid #ccc;	/*枠線の幅、線種、色*/
    border-radius: 10px;	/*角丸のサイズ。この行を削除すれば角が尖った長方形になります。*/
}
/*h3タグの１文字目への追加設定*/
#main h3::first-letter {
    border-left: 3px solid #7ebb77;	/*左の線の幅、線種、色*/
    padding-left: 15px;				/*線とテキストとの余白*/
}
/*mainコンテンツの段落タグ設定*/
#main p {
    padding: 0px 20px 20px;	/*上、左右、下への余白*/
}
/*他。微調整。*/
#main p + p {
    margin-top: -5px;
}
#main h2 + p,
#main h3 + p {
    margin-top: -10px;
}
#main section + section {
    padding-top: 30px;
}

/*サブコンテンツ
---------------------------------------------------------------------------*/
#sub {
    float: left;	/*左に回り込み*/
    width: 22%;		/*ブロックの幅*/
    padding-bottom: 40px;
}
/*１カラム字のサブコンテンツ*/
.c1 #sub {display: none;}
/*h2見出しタグ設定*/
#sub h2 {
    margin-bottom: 10px;
    font-size: 110%;	/*文字サイズ*/
}
/*subコンテンツのh2タグの１文字目への設定*/
#sub h2::first-letter {
    border-left: 3px solid #7ebb77;	/*左側のアクセント用ラインの幅、線種、色*/
    padding-left: 10px;
}
/*段落タグ（p）設定*/
#sub p {
    line-height: 1.6;	/*行間を少し狭く*/
}

/*サブコンテンツ内のメニュー
---------------------------------------------------------------------------*/
/*メニュー全体の設定*/
#sub .submenu {
    margin-bottom: 20px;	/*メニューブロックの下に空けるスペース*/
    border-top: solid 1px #e4e4e4;	/*上の線の線種、幅、色*/
}
/*メニュー１個ごとの設定*/
#sub .submenu li {
    border-bottom: solid 1px #e4e4e4;	/*下の線の線種、幅、色*/
}
#sub .submenu li a {
    text-decoration: none;display: block;
    padding: 10px 10px 10px 30px;	/*上、右、下、左へのメニュー内の余白*/
    background: #fff url(../images/arrow2.png) no-repeat 10px center / 10px;	/*矢印アイコンの読み込み。左から10px、上下中央に配置。幅10px。*/
}
/*サブコンテンツ内のbox1
---------------------------------------------------------------------------*/
#sub .box1 {
    padding: 15px;			/*ボックス内の余白*/
    margin-bottom: 20px;	/*ボックスの下に空けるスペース*/
    background: #f5f5f5;	/*背景色*/
    border: solid 1px #dbdbdb;	/*線の線種、幅、色*/
    box-shadow: 0px 0px 1px 1px #fff inset;	/*ボックスの影。右へ、下へ、ぼかし幅、距離。#fffは白のことでinsetは内側へ向けての影の指定。*/
    border-radius: 10px;	/*角丸のサイズ*/
}
/*box1内のメニューの設定*/
#sub .box1 .submenu {
    margin-bottom: 0px;
}
#sub .box1 .submenu li a {
    padding: 5px 10px;	/*上下、左右へのメニュー内の余白*/
    background: #fff;	/*背景色*/
}

/*フッター設定
---------------------------------------------------------------------------*/
/*footerボックス*/
footer {
    clear: both;overflow: hidden;
    border-top: 5px solid #7ebb77;	/*上の線の幅、線種、色*/
    background: #444;	/*背景色*/
    color: #fff;		/*文字色*/
    padding-top: 20px;	/*上に空けるボックス内の余白*/
}
/*footer内のinner*/
footer .inner {
    padding: 0 50px;	/*上下、左右へのブロック内余白*/
}
/*リンクテキスト、マウスオン時の文字色*/
footer a, footer a:hover {
    color: #fff;
}
/*フッター内のh2タグ*/
footer h2 {
    font-size: 200%;	/*文字サイズ*/
    font-weight: normal;
    text-align: center;	/*内容をセンタリング*/
    letter-spacing: 0.1em;	/*文字間隔を少し広く*/
}
/*フッター内のaddress（電話番号ブロック）タグ*/
footer address {
    font-style: normal;
    background: #333;		/*背景色*/
    border-radius: 10px;	/*角丸の指定*/
    text-align: center;		/*内容をセンタリング*/
    line-height: 1.5;		/*行間*/
    padding: 5px;			/*ボックス内の余白*/
}
/*フッター内のaddress（電話番号の行）タグ*/
footer address .tel {
    font-size: 40px;	/*文字サイズ*/
    background: url(../images/icon_tel.png) no-repeat left center / 30px;	/*電話番号アイコンの読み込み*/
    padding-left: 45px;	/*電話番号アイコンの幅をここで調整する*/
}

/*フッターメニュー
---------------------------------------------------------------------------*/
/*ボックス全体*/
#footermenu {
    clear: both;overflow: hidden;
    font-size: 80%;	/*文字サイズを少し小さく*/
    margin-left: -1%;
    padding: 20px 0;
}
/*１列分の設定*/
#footermenu ul {
    float: left;	/*左に回り込み*/
    width: 24%;		/*今回は４列作ったので、下のmarginを含めて25%になるよう指定。５列にするならこの行は19%にする。*/
    margin-left: 1%;
}
/*メニュー１個あたりの設定*/
#footermenu ul li {
    padding: 0 10px;	/*上下、左右への余白*/
}
/*見出し*/
#footermenu li.title {
    font-weight: bold;	/*太字にする*/
    background: rgba(0,0,0,0.3);	/*背景色*/
    border-radius: 2px;	/*角丸のサイズ*/
}
/*リンクテキスト*/
#footermenu a {
    text-decoration: none;
    opacity: 0.6;	/*透明度。70%色がでた状態の事。*/
}
/*マウスオン時*/
#footermenu a:hover {
    opacity: 1;	/*透明度。100%色がでた状態の事。*/
}

/*コピーライト
---------------------------------------------------------------------------*/
#copyright {
    clear: both;
    text-align: center;
    background: #333;	/*背景色*/
    color: #fff;		/*文字色*/
    padding: 20px;		/*ボックス内の余白*/
}
#copyright a {text-decoration: none;color: #fff;}
#copyright .pr {display: block;}

/*トップページ内「更新情報・お知らせ」ブロック
---------------------------------------------------------------------------*/
/*ブロック全体の設定*/
#new dl {
    padding: 0px 20px;	/*上下、左右へのブロック内の余白*/
    margin-bottom: 20px;	/*ブロックの下(外側)に空ける余白*/
}
/*日付設定*/
#new dt {
    float: left;
    width: 9em;
    letter-spacing: 0.1em;
}
/*記事設定*/
#new dd {
    padding-left: 9em;
    border-bottom: 1px solid #ccc;	/*下線の幅、線種、色*/
}

/*listブロック
---------------------------------------------------------------------------*/
/*ブロック１個あたりの設定*/
.list {
    overflow: hidden;
    width: 26.4%;	/*幅*/
    float: left;	/*左に回り込み*/
    margin: 0 0 20px 2%;	/*上、右、下、左へのボックスの外側に空けるスペース*/
    border: 1px solid #ccc;	/*枠線の幅、線種、色*/
    box-shadow: 3px 4px 2px rgba(0,0,0,0.1);	/*ボックスの影。右へ、下へ、ぼかし幅、色。0,0,0は黒の事で、0.1は色が10%出た状態。*/
    padding: 2%;	/*ボックス内の余白*/
    border-radius: 3px;	/*角丸のサイズ。ほんの少し角が丸くなってます。*/
}
.list a {
    display: block;text-decoration: none;overflow: hidden;
    margin: -2%;	/*ボックスのマージン。リンク設定する場合に、上の.listのpaddingを相殺するため。*/
    padding: 2%;	/*ボックス内の余白*/
    background: url(../images/arrow1.png) no-repeat right bottom / 40px;	/*リンク設定した際の右下の矢印マークの読み込み。right（右）、bottom（下）、40pxは画像の幅。*/
}
/*マウスオン時の設定*/
.list a:hover {
    position: relative;
    left: 1px;	/*マウスオン時に右に1px移動する*/
    top: 1px;	/*マウスオン時に下に1px移動する*/
}
/*h4（見出し）タグの設定*/
.list h4 {
    color: #7ebb77;		/*文字色*/
    font-size: 120%;	/*文字サイズ*/
    text-align: center;	/*文字をセンタリング*/
    height: 2em;		/*高さ*/
    overflow: hidden;	/*高さを超えた場合に非表示にする*/
}
/*p（段落）タグの設定*/
.list p {
    padding: 0 !important;
    line-height: 1.5;	/*行間を少し狭くする。デフォルトは最上部のbodyにあります。*/
    font-size: 90%;		/*文字サイズを少し小さく*/
    color: #333;		/*文字色*/
    height: 6em;		/*高さ。1.5emを１行分とカウントして下さい。6emなら４行です。*/
    overflow: hidden;	/*高さを超えた場合に非表示にする*/
}

/*サムネイル画像の設定
---------------------------------------------------------------------------*/
.thumbnail {
    width: 70px;	/*サムネイル画像の幅*/
    margin: 5px;	/*画像同士に空けるスペース*/
    opacity: 0.7;	/*透明度。色が70%出た状態。*/
}
/*マウスオン時*/
.thumbnail:hover {
    opacity: 1;	/*透明度。色が100%出た状態。*/
}

/*box（info1.htmlやstaff.htmlで使っている枠色がついたタイプのボックス）
---------------------------------------------------------------------------*/
/*box*/
.box {
    overflow: hidden;
    border: 3px solid #7ebb77;	/*枠線の幅、線種、色*/
    padding: 20px;				/*ボックス内の余白*/
    border-radius: 10px;		/*角丸のサイズ。この１行を削除すれば角のとれた長方形になります。*/
    margin-bottom: 20px;		/*ボックスの下に空けるスペース*/
}
/*box内のh4タグ*/
.box h4 {
    color: #7ebb77;		/*文字色*/
    font-size: 130%;	/*文字サイズ*/
}
/*box内のpタグ*/
.box p {
    padding: 0 !important;
}
/*box内のfrとflスタイルのリセット*/
.box .fr,.box .fl {margin-bottom: 0;}

/*ページナビ（メインメニューの下にある、現在の階層を示すナビメニュー）
---------------------------------------------------------------------------*/
/*ナビブロック全体*/
.nav {
    background: #eee;		/*背景色*/
    padding: 10px 20px;		/*上下、左右へのボックス内の余白*/
    margin-bottom: 30px;	/*ボックスの下（外側）に空けるスペース*/
    margin-top: -30px;		/*メニューとの余白が空きすぎるので少し上につめる*/
    border-radius: 10px;	/*角丸の指定*/
}
/*メニュー１個あたりの指定*/
.nav li {
    display: inline;	/*横並びになる指定*/
    padding: 0 5px;		/*上下、左右への余白*/
}
/*メニューの冒頭に入れる「>」のマーク*/
.nav li::before{
    content: ">";			/*このテキストを出力します。変更してもかまいませんが機種依存文字は化ける場合があるので使わない。*/
    padding-right: 12px;	/*文字サイズ*/
    color: #999;			/*文字色*/
}
/*最初のメニューには「>」は入れない*/
.nav li:first-child::before {
    content: none;
}

/*ページ内メニュー（info.htmlで使用）
---------------------------------------------------------------------------*/
/*ブロック全体*/
.menu {
    overflow: hidden;
    margin-bottom: 20px;	/*下に空けるスペース*/
    text-align: center;		/*内容をセンタリング*/
    font-size: 120%;		/*文字サイズ*/
}
/*メニュー１個あたりの指定*/
.menu li {
    display: inline;	/*横並びになる指定*/
    border-right: 1px solid #999;	/*右側の線の幅、線種、色*/
}
.menu li a {
    padding: 10px;	/*メニュー内余白*/
    color: #999;	/*リンクテキストの文字色*/
}
/*最初のメニューへの追加指定*/
.menu li:first-child {
    border-left: 1px solid #999;	/*左側の線の幅、線種、色*/
}
/*現在表示中(current)と、マウスオン(hover)時の指定*/
.menu li.current a, .menu li a:hover {
    text-decoration: none;	/*リンクの下線を非表示にする*/
    color: #333;	/*文字色*/
}

/*よく頂く質問
---------------------------------------------------------------------------*/
/*外側ブロック*/
.faq {
    padding: 0px 20px;	/*上下、左右への余白*/
}
/*質問*/
.faq dt {
    color: #7ebb77;		/*文字色*/
    font-weight: bold;	/*太字にする設定*/
    padding-left: 30px;	/*背景アイコンに重ならないよう左に余白を作る*/
    background: url(../images/faq_q.png) no-repeat left top / 30px;	/*「Q」アイコン*/
}
/*回答*/
.faq dd {
    padding-left: 30px;		/*背景アイコンに重ならないよう左に余白を作る*/
    margin-bottom: 20px;	/*ボックスの下側（外側）に空けるスペース*/
    padding-bottom: 20px;	/*ボックス内の下側に空けるスペース*/
    border-bottom: 1px solid #ccc;	/*下線の幅、線種、色*/
    background: url(../images/faq_a.png) no-repeat left top / 30px;	/*「A」アイコン*/
}

/*テーブル（ta1）
---------------------------------------------------------------------------*/
/*テーブル１行目に入った見出し部分（※caption）*/
.ta1 caption {
    border: 1px solid #ccc;	/*テーブルの枠線の幅、線種、色*/
    border-bottom: none;	/*下線だけ消す*/
    text-align: left;		/*文字を左寄せ*/
    background: #eee;		/*背景色*/
    color: #666;			/*文字色*/
    font-weight: bold;		/*太字に*/
    padding: 10px;			/*ボックス内の余白*/
}
/*テーブル１行目に入った見出し部分（※tamidashi）*/
.ta1 th.tamidashi {
    width: auto;
}
/*ta1設定*/
.ta1 {
    table-layout: fixed;
    width: 100%;
    margin: 0 auto 20px;
}
.ta1, .ta1 td, .ta1 th {
    word-break: break-all;
    border: 1px solid #ccc;	/*テーブルの枠線の幅、線種、色*/
    padding: 10px;	/*ボックス内の余白*/
}
/*ta1の左側ボックス*/
.ta1 th {
    width: 140px;		/*幅*/
    text-align: center;	/*センタリング*/
}

/*テーブル（ta2）サブブロックの受付テーブルに使用。
---------------------------------------------------------------------------*/
/*テーブル１行目に入った見出し部分（※caption）*/
.ta2 caption {
    border: 1px solid #b7b7b7;	/*テーブルの枠線の幅、線種、色*/
    border-bottom: none;	/*下線だけ消す*/
    text-align: center;
    background: #fff;		/*背景色*/
    color: #333;
    font-weight: bold;		/*太字に*/
    padding: 10px;			/*ボックス内の余白*/
}
/*ta2設定*/
.ta2 {
    table-layout: fixed;
    width: 100%;
    margin-bottom: 20px;
    text-align: center;	/*センタリング*/
    background: #fff;	/*背景色*/
    color: #333;
}
.ta2, .ta2 td, .ta2 th {
    word-break: break-all;
    border: 1px solid #b7b7b7;	/*テーブルの枠線の幅、線種、色*/
}
/*曜日*/
.ta2 th {
    background: #fffbe3;
}

/*btn（inputタグ用）
---------------------------------------------------------------------------*/
input[type="submit"].btn,
input[type="button"].btn,
input[type="reset"].btn {
    padding: 5px 10px;		/*上下、左右へのボタン内の余白*/
    border: 1px solid #ccc;	/*枠線の幅、線種、色*/
    border-radius: 3px;		/*角丸のサイズ*/
    background: #eee;		/*背景色*/
}
/*マウスオン時の設定*/
input[type="submit"].btn:hover,
input[type="button"].btn:hover,
input[type="reset"].btn:hover {
    border: 1px solid #999;	/*枠線の幅、線種、色*/
    background: #fff;		/*背景色*/
}

/*checkブロック。赤い注意書きブロックです。
---------------------------------------------------------------------------*/
p.check {
    background: #ff0000;
    color:#fff;
    padding: 10px 25px !important;
    margin-bottom: 20px;
    border-radius: 3px;
}
#sub p.check {padding: 5px 10px !important;}
p.check a {color: #fff;}

/*PAGE TOP（↑）設定
---------------------------------------------------------------------------*/
/*アニメーションのキーフレーム設定（変更不要）*/
@keyframes scroll {
    0% {opacity: 0;}
    100% {opacity: 1;}
}
/*デフォルトでは非表示に*/
body .nav-fix-pos-pagetop a {display: none;}
/*ボタンの設定*/
body.is-fixed-pagetop .nav-fix-pos-pagetop a {
    display: block;text-decoration: none;text-align: center;z-index: 100;position: fixed;
    width: 60px;		/*幅*/
    line-height: 60px;	/*高さ*/
    bottom: 40px;		/*下から40pxの場所に配置*/
    right: 1%;			/*右から1%の場所に配置*/
    background: #7ebb77;	/*背景色*/
    color: #fff;		/*文字色*/
    border: 1px solid #fff;	/*枠線の幅、線種、色*/
    border-radius: 50%;		/*円形にする*/
    animation-name: scroll;	/*上のアニメーションで指定しているkeyframesの名前（scroll）*/
    animation-duration: 1S;	/*アニメーションの実行時間*/
    animation-fill-mode: forwards;	/*アニメーションの完了後、最後のキーフレームを維持する*/
}
/*マウスオン時*/
body.is-fixed-pagetop .nav-fix-pos-pagetop a:hover {
    background: #999;	/*背景色*/
}

/*ul.disc,olタグ
---------------------------------------------------------------------------*/
ul.disc {list-style: disc;padding: 0 20px 20px 45px;}
ol {padding: 0 20px 20px 45px;}
#sub ul.disc, #sub ol {padding: 0 0 0 20px;}

/*pdfアイコン
---------------------------------------------------------------------------*/
a[href$=".pdf"]{
    display: inline-block;
    background: url(../images/PDF_32.png) no-repeat right center;
    padding: 5px 40px 5px 0px;
}

/*「NEW」アイコン
---------------------------------------------------------------------------*/
.newicon {
    background: #F00;	/*背景色*/
    color: #FFF;		/*文字色*/
    font-size: 70%;		/*文字サイズ*/
    line-height: 1.5;
    padding: 2px 5px;
    border-radius: 2px;
    margin: 0px 5px;
    vertical-align: text-top;
}

/*その他
---------------------------------------------------------------------------*/
.look {color:#fff;background: #666;padding:5px;border-radius: 4px;}
.mb15,.mb1em {margin-bottom: 15px !important;}
.mb30 {margin-bottom: 30px !important;}
.clear {clear: both;}
.color1 {color: #7ebb77 !important;}
.bgcolor1 {background: #f2f2f2 !important;}
.bgcolor2 {background: #dbebf7 !important;}
.pr {font-size: 10px;}
.wl {width: 96%;}
.ws {width: 50%;}
.w40p {width: 40%;}
.w20p {width: 20%;}
.c {text-align: center;}
.r {text-align: right;}
.l {text-align: left;}
.fr {float: right;margin-left: 2%;margin-bottom: 20px;}
.fl {float: left;margin-right: 2%;margin-bottom: 20px;}
.big1 {font-size: 200%;letter-spacing: 0.2em;}
.mini1 {font-size: 80%;}
.sh {display: none;}
.half {width: 48%;}
.link {display: block;margin-top: -80px;padding-top: 80px;}



/*画面幅1450px以下の設定
------------------------------------------------------------------------------------------------------------------------------------------------------*/
@media screen and (max-width:1450px){

    /*上の#containerのpaddingの数字部分と合わせておく*/
    body.is-fixed #menubar {
        margin: 0 50px;
    }

}



/*画面幅900px以下の設定
------------------------------------------------------------------------------------------------------------------------------------------------------*/
@media screen and (max-width:900px){

    /*containerの設定（footer以外の、ホームページを囲むブロック）
    ---------------------------------------------------------------------------*/
    #container {
        padding: 0 3%;	/*上下、左右へのブロック内余白*/
    }

    /*ヘッダー（ロゴが入った最上段のブロック）
    ---------------------------------------------------------------------------*/
    /*ヘッダーブロック*/
    header {
        position: static;
        height: auto;
        background: none;
        padding: 10px 0;
        text-align: left;
    }
    /*ロゴ画像*/
    header #logo {
        position: static;
        margin: 0 auto;
    }
    /*TELブロック*/
    header address {
        position: static;
    }

    /*文字サイズ変更ボタン（※文字サイズを「大」にした時の設定はchange.cssで行う）
    ---------------------------------------------------------------------------*/
    /*ボタンブロック全体*/
    #fsize {
        display: none;	/*非表示にする*/
    }

    /*メインメニュー
    ---------------------------------------------------------------------------*/
    /*アニメーションのフレーム設定。全100コマアニメーションだと思って下さい。透明(0%)から色を100%出すアニメーション指定。*/
    @keyframes menu1 {
        0% {opacity: 0;}
        100% {opacity: 1;}
    }
    /*スマホ用メニューブロック*/
    #menubar-s {
        display: block;overflow: hidden;z-index: 1;
        position: fixed;
        top: 0px;			/*上からの配置場所指定*/
        left: 0px;			/*左からの配置場所指定*/
        width: 100%;		/*幅*/
        animation-name: menu1;		/*上のkeyframesの名前*/
        animation-duration: 0.5S;	/*アニメーションの実行時間。0.5秒。*/
        animation-fill-mode: both;	/*アニメーションの待機中は最初のキーフレームを維持、終了後は最後のキーフレームを維持。*/
    }
    /*メニュー１個あたりの設定*/
    #menubar-s li a {
        display: block;text-decoration: none;
        padding: 5px 10px;	/*上下、左右へのメニュー内の余白*/
        border-bottom: 1px solid #fff;	/*下の線の幅、線種、色*/
        background: #7ebb77;	/*背景色*/
        font-size: 18px;		/*文字サイズ*/
        color: #fff;		/*文字色*/
    }
    /*英語表記（飾り文字）*/
    #menubar-s li a span {
        font-size: 12px;	/*文字サイズ*/
        margin-left: 20px
    }
    /*PC用メニューを非表示にする*/
    #menubar {display: none;}

    /*３本バーアイコン設定
    ---------------------------------------------------------------------------*/
    /*３本バーブロック*/
    #menubar_hdr {
        display: block;position: fixed;z-index: 2;
        top: 25px;	/*上からの配置場所指定*/
        right: 3%;	/*右からの配置場所指定*/
        border: 1px solid #fff;	/*枠線の幅、線種、色*/
    }
    /*アイコン共通設定*/
    #menubar_hdr.close,
    #menubar_hdr.open {
        width: 50px;		/*幅*/
        height: 50px;		/*高さ*/
        border-radius: 50%;	/*円形にする。この行削除すれば正方形になります。*/
    }
    /*三本バーアイコン*/
    #menubar_hdr.close {
        background: #7ebb77 url(../images/icon_menu.png) no-repeat center top/50px;	/*背景色、アイコンの読み込み、上半分(top)を表示、幅50px*/
    }
    /*閉じるアイコン*/
    #menubar_hdr.open {
        background: #333 url(../images/icon_menu.png) no-repeat center bottom/50px;	/*背景色、アイコンの読み込み、上半分(bottom)を表示、幅50px*/
    }

    /*fixmenu。メインメニューが画面上部に到達した際の設定
    ---------------------------------------------------------------------------*/
    body.is-fixed header {
        margin-bottom: 0px;	/*fixmenuから折りたたみメニューになるので、ここはリセット。*/
    }

    /*main,sub
    ---------------------------------------------------------------------------*/
    #main, #sub {
        float: none;
        width: auto;
        overflow: hidden;
    }

    /*フッター設定
    ---------------------------------------------------------------------------*/
    /*footer内のinner*/
    footer .inner {
        padding: 0 3%;	/*上下、左右へのブロック内余白*/
    }
    /*footer内の２カラムブロックを１カラムにする*/
    footer .half.fr,footer .half.fl {
        float: none;
        margin: 0 0 20px;
        width: 100%;
    }

    /*その他
    ---------------------------------------------------------------------------*/
    body.s-n #sub,body.s-n #side {display: none;}
    .big1 {font-size: 150%;letter-spacing: normal;}
    .sh {display:block;}
    .pc {display:none;}
    .link {display: block;margin-top: 0px;padding-top: 0px;}

}



/*画面を横向きにした場合の高さが500px以下の場合の設定。
------------------------------------------------------------------------------------------------------------------------------------------------------*/
@media screen and (orientation: landscape) and (max-height:500px){

    /*メインメニュー。小さな端末用メニューを２列に。
    ---------------------------------------------------------------------------*/
    /*メニュー１個あたりの設定*/
    #menubar-s li {
        float: left;		/*左に回り込み*/
        width: 50%;			/*幅*/
    }

}



/*画面幅480px以下の設定
------------------------------------------------------------------------------------------------------------------------------------------------------*/
@media screen and (max-width:480px){

    /*containerとfooterの文字サイズ指定
    ---------------------------------------------------------------------------*/
    #container, footer {
        font-size: 12px;
        font-size: 2.93vw;
    }

    /*ヘッダー（ロゴが入った最上段のブロック）
    ---------------------------------------------------------------------------*/
    /*ロゴ画像*/
    header #logo {
        width: 50%;	/*ロゴ画像の幅*/
    }
    /*TELブロックの電話番号部分*/
    header address .tel {
        font-size: 20px;
        background: url(../images/icon_tel.png) no-repeat left center / 18px;
        padding-left: 25px;
    }

    /*メインコンテンツ
    ---------------------------------------------------------------------------*/
    /*他。微調整。*/
    #main section + section {
        padding-top: 20px;
    }

    /*フッター設定
    ---------------------------------------------------------------------------*/
    /*フッター内のaddress（電話番号の行）タグ*/
    footer address .tel {
        font-size: 24px;
        background: url(../images/icon_tel.png) no-repeat left center / 20px;
        padding-left: 30px;
    }

    /*listブロック
    ---------------------------------------------------------------------------*/
    /*ブロック１個あたりの設定*/
    .list {
        width: auto;
        float: none;
        margin-left : 0;
    }
    .list figure {
        float: left;
        width: 40%;
        margin-right: 2%;
    }
    /*h4（見出し）とp(段落)タグの設定*/
    .list h4, .list p {
        height: auto;
    }

    /*よく頂く質問
    ---------------------------------------------------------------------------*/
    .faq dt,.faq dd {
        background-size: 25px;
    }

    /*テーブル（ta1）
    ---------------------------------------------------------------------------*/
    /*テーブル１行目に入った見出し部分（※caption）*/
    .ta1 caption {
        padding: 5px;	/*ボックス内の余白*/
    }
    /*ta1設定*/
    .ta1, .ta1 td, .ta1 th {
        padding: 5px;	/*ボックス内の余白*/
    }
    /*ta1の左側ボックス*/
    .ta1 th {
        width: 100px;
    }

    /*その他
    ---------------------------------------------------------------------------*/
    .ws,.wl {width: 94%;}

}

.visually-hidden {
    position:absolute;
    left:-9999px;
    width:1px;
    height:1px;
    overflow:hidden;
}

/* --- TOP メッセージデザイン --- */
.hero-message {
    background: #faf7f4;
    padding: 50px 20px;
    border-radius: 12px;
    margin: 30px auto;
    max-width: 1100px;   /* ← これ追加 */
}

/* h2 */
.hero-message h2 {
    font-size: 26px;
    font-weight: normal;
    letter-spacing: 0.08em;
    line-height: 1.6;
    color: #3e3a39;
    margin-bottom: 20px;
}

/* h2 内のサブ行 */
.hero-message h2 span {
    font-size: 32px;
    font-weight: bold;
    display: block;
    margin-top: 10px;
}

/* 下の細線 */
.hero-line {
    width: 120px;
    height: 2px;
    background: #b88b4a;
    margin: 0 auto 30px;
}

/* p */
.hero-message p {
    font-size: 16px;
    line-height: 2;
    color: #555;
    max-width: 900px;
    margin: 0 auto;
}

/* PCのみ改行制御 */
.pc { display: inline; }

/* --- スマホ版 --- */
@media screen and (max-width:900px) {

    .hero-message {
        padding: 40px 15px;
    }

    .hero-message h2 {
        font-size: 20px;
    }

    .hero-message h2 span {
        font-size: 24px;
    }

    .hero-message p {
        font-size: 14px;
        line-height: 1.9;
    }

    .pc { display: none; }
}

/* --- 選ばれる理由セクション --- */
.reason-section {
    padding: 50px 20px;
    text-align: center;
}

/* h2（テンプレの緑背景を打ち消す） */
.reason-section h2 {
    background: none !important;
    color: #3e3a39 !important;
    padding: 0 !important;
    border-radius: 0 !important;
}

/* 各理由ボックス */
.reason-box {
    text-align: left;
    width:auto;
}

/* h3 */
.reason-box h3 {
    font-size: 18px;
    color: #7ebb77;
    margin-bottom: 10px;
}

/* p */
.reason-box p {
    font-size: 14px;
    line-height: 1.8;
    padding: 0 !important;
}

/* --- スマホ版 --- */
@media screen and (max-width:900px) {

    .reason-section h2 {
        font-size: 20px;
    }

    .reason-box {
        width: 100%;
    }
}

/* ====== TOP専用デザイン上書き ====== */

/* hero-message 内はテンプレh2装飾を無効化 */
.hero-message h2,
.reason-section h2 {
    background: none !important;
    color: #3e3a39 !important;
    padding: 0 !important;
    border-radius: 0 !important;
}

/* first-letter装飾も無効化 */
.hero-message h2::first-letter,
.reason-section h2::first-letter {
    border:none !important;
    padding-left:0 !important;
}

/* p のテンプレpaddingを無効化 */
.hero-message p,
.reason-box p {
    padding: 0 !important;
}

/* --- 初回の流れセクション --- */
.flow-section {
    padding: 50px 20px;
    text-align: center;
}

/* h2（テンプレ装飾リセット） */
.flow-section h2 {
    background: none !important;
    color: #3e3a39 !important;
    padding: 0 !important;
    border-radius: 0 !important;
    font-size: 26px;
    letter-spacing: 0.08em;
    margin-bottom: 40px;
}

/* first-letterリセット */
.flow-section h2::first-letter {
    border: none !important;
    padding-left: 0 !important;
}

/* 全体wrap */
.flow-wrap {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    justify-content: center;
}

/* 各STEPボックス */
.flow-box {
    background: #faf7f4;
    border-radius: 8px;
    padding: 25px 20px;
    width: 30%;
    min-width: 260px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.05);
    position: relative;
    text-align: left;
}

/* STEP番号 */
.flow-step {
    display: inline-block;
    background: #7ebb77;
    color: #fff;
    font-size: 12px;
    letter-spacing: 0.1em;
    padding: 5px 12px;
    border-radius: 20px;
    margin-bottom: 15px;
    text-align: left;
}

/* h3 */
.flow-box h3 {
    font-size: 18px;
    color: #7ebb77;
    margin-bottom: 10px;
    text-align: left;
}

/* p */
.flow-box p {
    font-size: 14px;
    line-height: 1.8;
    padding: 0 !important;
    text-align: left;
}

/* スマホ版 */
@media screen and (max-width:900px) {
    .flow-section h2 {
        font-size: 20px;
    }
    .flow-box {
        width: 100%;
    }
}

.fixed-reserve a {
    display: block;
    background: #e85c5c;
    color: #fff;
    text-decoration: none;
    font-size: 16px;
    font-weight: bold;
    padding: 14px 26px;
    border-radius: 30px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.25);
    transition: 0.3s;
}

/* マウスオン */
.fixed-reserve a:hover {
    background: #c94b4b;
    transform: translateY(-2px);
}

/* スマホ最適化 */
@media screen and (max-width:900px) {
    .fixed-reserve {
        bottom: 10px;
    }
    .fixed-reserve a {
        font-size: 14px;
        padding: 12px 20px;
    }
}

/* ===== 選ばれる理由 2段レイアウト確定版 ===== */

@media screen and (min-width:901px){

    .reason-section{
        padding:20px 0;
        text-align:center;
    }

    .reason-wrap{
        display:grid;
        grid-template-columns: 1fr 1fr;
        gap:40px;
        max-width:none;      /* ← 1800px を解除 */
        margin:0;            /* ← auto を解除 */
    }

    .reason-box p{
        font-size:14px;
        line-height:1.8;
    }
}

/* スマホは縦並び */
@media screen and (max-width:900px){
    .reason-wrap{
        display:block;
    }
    .reason-box{
        width:100%;
        margin-bottom:20px;
    }
}

/* ===== 料金バナー 横並び最終完成版 ===== */

.price-section{
    padding:40px 20px;
    text-align:center;
}

.price-box{
    border:3px solid #7ebb77;
    padding:30px 20px;
    border-radius:12px;
    max-width:1100px;
    margin:0 auto;
    background:#fff;
}

/* 上段 横並び */
.price-head{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:20px;
    flex-wrap:nowrap;
    margin-bottom:20px;
}

/* 「料金」ラベル */
.price-label{
    background:#c80000;   /* ← 赤に変更 */
    color:#fff;
    font-size:18px;
    font-weight:bold;
    padding:8px 14px;
    border-radius:4px;
}

/* 「初回限定価格」 */
.price-sub{
    font-size:20px;
    font-weight:bold;
    color:#c80000;
}

/* 価格数字 */
.price-main{
    display:flex;
    align-items:flex-end;
    gap:6px;
}

.price-number{
    font-size:64px;
    font-weight:bold;
    color:#e60000;
    line-height:1;
}

.price-yen{
    font-size:24px;
    color:#e60000;
    font-weight:bold;
}

.price-tax{
    font-size:14px;
    color:#e60000;
    margin-left:4px;
}

/* 説明文 */
.price-text{
    font-size:15px;
    line-height:1.9;
    color:#333;
    margin-top:10px;
}

/* 注意文 */
.price-note{
    font-size:13px;
    color:#666;
    margin-top:15px;
}

/* ===== スマホだけ縦並び ===== */
@media screen and (max-width:900px){

    .price-head{
        flex-direction:column;
        gap:10px;
    }

    .price-number{
        font-size:42px;
    }

    .price-sub{
        font-size:16px;
    }
}

/* ===== 初回ご来院の流れ：PCは2列で横幅を広く ===== */
@media screen and (min-width:901px){

    .flow-wrap{
        display:grid;
        grid-template-columns: 1fr 1fr;  /* ← 2列 */
        gap:40px;
        max-width:1200px;               /* ← 横幅を広めに */
        margin:0 auto;
    }

    .flow-box{
        width:auto;                     /* ← 既存width指定を解除 */
    }
}

/* スマホは今まで通り1列 */
@media screen and (max-width:900px){
    .flow-wrap{
        display:block;
    }
    .flow-box{
        width:100%;
        margin-bottom:20px;
    }
}

.reason-box-left { width: 35%; float: left; margin: 5px 5px 0px 5px; }
.flow-box-left { width: 35%; float: left; margin: 5px 5px 0px 5px; }

/* ===== 症状別導線 ===== */
.symptom-section {
    text-align: center;
    padding: 60px 20px;
    background: #f8f8f8;
}

.symptom-section h2 {
    font-size: 26px;
    margin-bottom: 10px;
}

.symptom-lead {
    margin-bottom: 30px;
    font-size: 15px;
}

.symptom-wrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 20px;
}

.symptom-box {
    display: block;
    width: 220px;
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    text-decoration: none;
    color: #333;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    transition: 0.3s;
}

.symptom-box:hover {
    transform: translateY(-5px);
    box-shadow: 0 6px 14px rgba(0,0,0,0.12);
}

.symptom-box img {
    width: 100%;
    height: auto;
    object-fit: contain;
    background: #fff;
}

.symptom-box h3 {
    font-size: 16px;
    margin: 12px 8px 6px;
}

.symptom-box p {
    font-size: 13px;
    padding: 0 10px 12px;
}

/* スマホ最適化 */
@media screen and (max-width: 600px) {
    .symptom-box {
        width: 45%;
    }
}

/* ===== お客様の声 ===== */

.review-section {
    padding: 60px 20px;
    text-align: center;
    background: #faf7f4;
}

.review-section h2 {
    background: none !important;
    color: #3e3a39 !important;
    padding: 0 !important;
    border-radius: 0 !important;
    font-size: 26px;
    margin-bottom: 10px;
}

.review-section h2::first-letter {
    border:none !important;
    padding-left:0 !important;
}

.review-lead {
    font-size: 15px;
    margin-bottom: 40px;
}

/* Gridで安定配置 */
.review-wrap{
    display:grid;
    grid-template-columns: repeat(3, 1fr);
    gap:25px;
}

/* スマホ */
@media screen and (max-width:900px){
    .review-wrap{
        grid-template-columns: 1fr;
    }
}

.review-box{
    background:#fff;
    border-radius:10px;
    padding:25px 20px;
    box-shadow:0 3px 8px rgba(0,0,0,0.05);
    text-align:left;
}

/* 以下はそのままでOK */
.review-head{ display:flex; gap:15px; align-items:center; margin-bottom:15px; }
.review-head img{ width:70px; height:70px; border-radius:50%; object-fit:cover; }
.review-age{ font-size:14px; color:#555; }
.review-star{ color:#f5a623; letter-spacing:2px; }
.review-box h3{ font-size:16px; color:#7ebb77; margin-bottom:10px; }
.review-box p{ font-size:14px; line-height:1.8; padding:0 !important; }

/* ===== ビフォーアフター ===== */

.beforeafter-section{
    padding:50px 20px;
    text-align:center;
}

.beforeafter-section h2{
    background:none !important;
    color:#3e3a39 !important;
    padding:0 !important;
    border-radius:0 !important;
    font-size:26px;
}

.beforeafter-section h2::first-letter{
    border:none !important;
    padding-left:0 !important;
}

.beforeafter-wrap{
    max-width:1000px;
    margin:0 auto;
}

.beforeafter-box{
    background:#faf7f4;
    border-radius:10px;
    padding:25px;
    box-shadow:0 3px 8px rgba(0,0,0,0.05);
}

.beforeafter-box h3{
    color:#7ebb77;
    margin-bottom:15px;
}

.beforeafter-images{
    display:flex;
    gap:20px;
    justify-content:center;
    flex-wrap:wrap;
}

.beforeafter-images figure{
    width:45%;
    text-align:center;
}

.beforeafter-images img{
    border-radius:8px;
    box-shadow:0 2px 6px rgba(0,0,0,0.08);
}

.beforeafter-images figcaption{
    margin-top:5px;
    font-size:13px;
}

/* スマホ */
@media screen and (max-width:900px){
    .beforeafter-images figure{
        width:100%;
    }
}

/* ===== トップ用ミニFAQ ===== */

.mini-faq-section{
    padding:50px 20px;
    text-align:center;
}

.mini-faq-section h2{
    background:none !important;
    color:#3e3a39 !important;
    padding:0 !important;
    border-radius:0 !important;
    font-size:26px;
}

.mini-faq-section h2::first-letter{
    border:none !important;
    padding-left:0 !important;
}

.mini-faq-lead{
    margin-bottom:25px;
    font-size:15px;
}

.mini-faq{
    max-width:900px;
    margin:0 auto 20px;
    text-align:left;
}

.mini-faq dt{
    font-weight:bold;
    color:#7ebb77;
    margin-top:15px;
}

.mini-faq dd{
    margin-left:0;
    padding-left:0;
    border-bottom:1px solid #eee;
    padding-bottom:15px;
    margin-bottom:15px;
}

.mini-faq-more{
    margin-top:10px;
}

.mini-faq-more a{
    text-decoration:none;
    font-weight:bold;
    color:#7ebb77;
}

/* ===== 予約ボタン横並び固定 ===== */

.fixed-reserve-wrap{
    position:fixed;
    left:50%;
    bottom:20px;
    transform:translateX(-50%);
    display:flex;
    gap:10px;
    z-index:999;
}

/* 赤い予約ボタン */
.fixed-reserve a{
    display:block;
    background:#e85c5c;
    color:#fff;
    text-decoration:none;
    font-size:15px;
    font-weight:bold;
    padding:14px 22px;
    border-radius:30px;
    box-shadow:0 4px 10px rgba(0,0,0,0.25);
}

/* LINEボタン */
.fixed-line a{
    display:flex;
    align-items:center;
    gap:6px;
    background:#06C755;
    color:#fff;
    text-decoration:none;
    font-size:14px;
    font-weight:bold;
    padding:14px 18px;
    border-radius:30px;
    box-shadow:0 4px 10px rgba(0,0,0,0.25);
}

.fixed-line img{
    width:20px;
    height:20px;
}

/* スマホ微調整 */
@media screen and (max-width:900px){
    .fixed-reserve-wrap{
        bottom:10px;
        gap:8px;
    }
    .fixed-reserve a,
    .fixed-line a{
        font-size:13px;
        padding:12px 16px;
    }
}

/* ===== ニュース一覧 ===== */

.news-list {
    margin-top: 40px;
}

.news-item {
    border-bottom: 1px solid #e5e5e5;
    padding: 20px 0;
}

.news-item a {
    display: flex;
    gap: 20px;
    text-decoration: none;
    color: inherit;
}

.news-thumb img {
    width: 140px;
    height: 100px;
    object-fit: cover;
    border-radius: 6px;
}

.news-text time {
    font-size: 14px;
    color: #7aa357;
    font-weight: bold;
}

.news-text h3 {
    font-size: 17px;
    margin: 6px 0;
}

.news-text p {
    font-size: 14px;
    color: #555;
}

/* スマホ対応 */
@media screen and (max-width: 600px) {
    .news-item a {
        flex-direction: column;
    }

    .news-thumb img {
        width: 100%;
        height: auto;
    }
}

/* ニュース見出し導入ブロック */
.news-head {
    text-align: center;
    margin: 20px 0 30px;
}

.news-head h2 {
    font-size: 26px;
    margin-bottom: 10px;
}

.news-head-lead {
    font-size: 15px;
    color: #555;
}

.news-head-link a {
    display: inline-block;
    margin-top: 8px;
    color: #7aa357;
    font-weight: bold;
    text-decoration: none;
}

.news-head-link a:hover {
    text-decoration: underline;
}

/* ニュース詳細 見出しデザイン */
.news-title-box {
    background: #7fbf73; /* ブランドグリーン */
    border-radius: 18px;
    padding: 18px 20px;
    margin-bottom: 18px;
}

.news-title-box h1 {
    margin: 0;
    font-size: 22px;
    font-weight: bold;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    letter-spacing: 0.05em;
}

.news-title-bar {
    font-size: 26px;
    margin-right: 12px;
    color: #ffffff;
}

@media screen and (max-width: 768px) {

    .news-title-box {
        padding: 14px 14px;
        border-radius: 14px;
    }

    .news-title-box h1 {
        font-size: 18px;
        line-height: 1.4;
        text-align: center;
    }

    .news-title-bar {
        font-size: 20px;
        margin-right: 8px;
    }


}

.news-eyecatch {
    margin: 20px 0 30px;
    text-align: center;
}

.news-eyecatch img {
    width: 100%;
    max-width: 900px;
    height: auto;
    border-radius: 6px;
}

.news-body .lead {
    font-size: 1.1em;
    font-weight: bold;
    margin-bottom: 20px;
}

.news-body h2 {
    font-size: 1.4em;
    margin: 30px 0 10px;
    padding-left: 10px;
    border-left: 4px solid #1c7d5a;
}

.news-body h3 {
    font-size: 1.2em;
    margin: 25px 0 8px;
    color: #1c7d5a;
}

.news-body p {
    line-height: 1.9;
    margin-bottom: 15px;
}

/* ===== ニュース詳細 モバイル最適化 ===== */
@media screen and (max-width: 768px) {

    .news-title-box h1 {
        font-size: 1.1em;
        line-height: 1.6;
    }

    .news-eyecatch img {
        max-width: 100%;
        border-radius: 4px;
    }

    .news-body .lead {
        font-size: 1.05em;
    }

    .news-body h2 {
        font-size: 1.2em;
        margin-top: 25px;
    }

    .news-body h3 {
        font-size: 1.05em;
    }

    .news-body p {
        font-size: 0.95em;
        line-height: 1.8;
    }
}

.top-news-item {
    border-bottom: 1px solid #eee;
    padding: 10px 0;
}

.top-news-item time {
    font-size: 0.9em;
    color: #888;
}

.top-news-item h3 {
    font-size: 1.05em;
    margin: 4px 0;
}

.top-news-item p {
    font-size: 0.95em;
    color: #555;
}

.news-list a {
    text-decoration: none;
}

.news-list .news-item a {
    text-decoration: none;
}

.news-list .news-item a:hover h3 {
    color: #7ebb77;
}

.news-text h3 {
    border: none !important;
    padding: 0 !important;
}

.news-text .category_text {
    color: #555555;
    font-weight: bold;
    font-size: 1.05em;
}

.blog-category-menu {
    text-align: center;
    margin: 10px 0 25px;
}

.blog-category-menu ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.blog-category-menu li {
    display: inline-block;
    margin: 0 8px;
}

.blog-category-menu a {
    display: inline-block;
    padding: 8px 16px;
    border: 1px solid #ccc;
    border-radius: 20px;
    font-size: 14px;
    color: #333;
    text-decoration: none;
    transition: 0.3s;
}

.blog-category-menu a:hover {
    background: #f5f5f5;
}

/* ブログカテゴリメニュー */
.blog-category-menu {
    text-align: center;
    margin: 15px 0 25px;
}

.blog-category-menu ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.blog-category-menu li {
    display: inline-block;
    margin: 0 6px;
}

.blog-category-menu a {
    display: inline-block;
    padding: 9px 18px;
    border: 1px solid #bbb;
    border-radius: 22px;
    font-size: 14px;
    color: #333;
    background: #fff;
    text-decoration: none;
    transition: 0.3s;
}

.blog-category-menu a:hover {
    background: #f2f2f2;
}

/* ===== スマホ最適化 ===== */
@media screen and (max-width: 768px) {

    .blog-category-menu {
        text-align: left;
        margin: 10px 0 20px;
    }

    .blog-category-menu li {
        display: block;
        margin: 8px 0;
    }

    .blog-category-menu a {
        display: block;
        width: 100%;
        padding: 14px;
        border-radius: 6px;
        font-size: 15px;
        border: 1px solid #ddd;
        background: #fafafa;
    }

    .blog-category-menu a:hover {
        background: #eee;
    }
}

/* ブログトップへ戻るリンク */
.blog-back-link {
    text-align: center;
    margin: 30px 0 10px;
}

.blog-back-link a {
    display: inline-block;
    padding: 10px 22px;
    border: 1px solid #bbb;
    border-radius: 20px;
    font-size: 14px;
    color: #333;
    background: #fff;
    text-decoration: none;
    transition: all 0.3s ease;
}

.blog-back-link a:hover {
    background: #f2f2f2;
}

/* ===== 施術者紹介 横並び 完成形 ===== */
.staff-card {
    display: flex;
    align-items: flex-start;
    gap: 20px;
}

/* 右側テキストを縦積み */
.staff-text {
    display: flex;
    flex-direction: column;
}

.staff-card img {
    width: 200px;
    height: auto;
    flex-shrink: 0;
}

/* スマホは縦並び */
@media screen and (max-width:900px){
    .staff-text p {
        text-align: left;
    }
    .staff-card {
        display: block;
        text-align: center;
    }
    .staff-card img {
        margin: 0 auto 15px;
        width: 140px;
    }
    .staff-text {
        display: block;
    }
}

.staff-link {
    text-decoration: none;
    color: inherit;
    display: inline-block;
}

.staff-link:hover h3 {
    color: #7ebb77;
}

.staff-fice {
    margin: 20px 0 30px;
    text-align: center;
}

.staff-fice img {
    width: 100%;
    max-width: 400px;
    height: auto;
    border-radius: 6px;
}

/* FAQ 見出し下リード文 */
.faq-lead {
    padding: 0 20px 25px;
    font-size: 15px;
    line-height: 1.9;
    color: #555;
}

/* スマホ最適化 */
@media screen and (max-width:900px){
    .faq-lead {
        font-size: 14px;
        line-height: 1.8;
        padding: 0 10px 20px;
    }
}

.google-map-wrap {
    width: 100%;
    margin-bottom: 10px;
}

.map-nap {
    font-size: 14px;
    line-height: 1.7;
    margin: 8px 0;
}

/* ===== サイドバー受付 専用（安全） ===== */

#sub .ta2 {
    font-size: 14px;
}

#sub .ta2 td,
#sub .ta2 th {
    padding: 6px 4px;
}

#sub .ta2 td {
    font-weight: bold;
}

/* モバイル最適化 */
@media screen and (max-width:900px){

    #sub .ta2 {
        font-size: 13px;
    }

    #sub .ta2 td,
    #sub .ta2 th {
        padding: 5px 2px;
    }

}

/* ===== 営業時間一覧（安全追加） ===== */

.week-hours{
    margin:10px 0 20px;
    font-size:14px;
}

.wh-row{
    display:flex;
    justify-content:flex-start;
    gap:12px;
    padding:4px 0;
}

.wh-day{
    width:30px;
    font-weight:bold;
}

.wh-time{
    text-align:left;
}

.wh-time.off{
    color:#999;
}

.wh-time.short{
    color:#e67e22;
    font-weight:bold;
}

/* モバイル */
@media screen and (max-width:900px){
    .week-hours{
        font-size:13px;
    }
}

/* ===== お客様の声（安全版） ===== */

.voice-box{
    border:1px solid #ddd;
    padding:20px;
    margin-bottom:25px;
    background:#fff;
    border-radius:8px;
}

/* PC表示 */
.voice-head{
    display:flex;
    gap:20px;
    align-items:flex-start;
}

.voice-img{
    width:120px;
    height:120px;
    object-fit:cover;
    border-radius:60px;
    flex-shrink:0;
}

.voice-meta{
    font-weight:bold;
    margin-bottom:5px;
}

.voice-stars{
    color:#f5a623;
    font-size:18px;
}

.voice-symptom{
    color:#7ebb77;
    margin:5px 0;
}

/* ===== モバイル最適化 ===== */
@media screen and (max-width:900px){

    .voice-head{
        flex-direction:column;
        align-items:center;
        text-align:center;
    }

    .voice-img{
        width:90px;
        height:90px;
        border-radius:45px;
        margin-bottom:10px;
    }

    .voice-stars{
        font-size:16px;
    }

}

.seo-catch{
    font-size:14px;
    color:#555;
    margin:10px 0 30px;
    text-align:center;
}

/* =====================================
   PRICE PAGE – 完全独立デザイン
   他と絶対に干渉しない版
===================================== */

.price-lp{
    max-width:1000px;
    margin:40px auto;
    text-align:center;
}

/* テンプレh2装飾を無効化 */
.price-lp h2{
    background:none !important;
    color:#333 !important;
    padding:0 !important;
    border-radius:0 !important;
    font-size:26px;
    margin-bottom:25px;
}

.price-lp h2::first-letter{
    border:none !important;
    padding-left:0 !important;
}

/* 価格メイン枠 */
.price-lp-box{
    border:3px solid #7ebb77;
    border-radius:14px;
    padding:35px 25px;
    background:#fff;
}

/* 上段横並び */
.price-lp-row{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:25px;
    flex-wrap:wrap;
}

/* 赤ラベル */
.price-lp-badge{
    background:#d80000;
    color:#fff;
    padding:10px 16px;
    font-weight:bold;
    border-radius:6px;
    font-size:18px;
}

/* 初回限定 */
.price-lp-sub{
    font-size:22px;
    font-weight:bold;
    color:#d80000;
}

/* 金額 */
.price-lp-price{
    display:flex;
    align-items:flex-end;
    gap:6px;
}

.price-lp-num{
    font-size:72px;
    font-weight:bold;
    color:#e60000;
    line-height:1;
}

.price-lp-yen{
    font-size:26px;
    font-weight:bold;
    color:#e60000;
}

/* 説明文 */
.price-lp-text{
    margin-top:25px;
    font-size:15px;
    line-height:1.9;
    padding:0 !important;
}

/* 注意書き */
.price-lp-note{
    margin-top:15px;
    font-size:13px;
    color:#777;
}

/* ===== スマホ ===== */
@media screen and (max-width:900px){

    .price-lp h2{
        font-size:20px;
    }

    .price-lp-num{
        font-size:46px;
    }

    .price-lp-sub{
        font-size:16px;
    }

}

/* ===============================
   INFO CARD（支払い・未成年）
   完全独立デザイン
=============================== */

.info-card{
    background:#f7f7f7;
    padding:30px;
    border-radius:12px;
    margin:40px auto;
}

/* 見出し */
.info-title{
    display:flex;
    align-items:center;
    gap:12px;
    font-size:22px;
    margin-bottom:20px;
}

/* テンプレ装飾打ち消し */
.info-title,
.info-title::first-letter{
    background:none !important;
    border:none !important;
    padding:0 !important;
}

/* 緑バー */
.info-title .bar{
    width:5px;
    height:26px;
    background:#2f8f2f;
    display:inline-block;
}

/* 英語 */
.info-title small{
    font-size:16px;
    color:#888;
    font-weight:normal;
    margin-left:6px;
}

/* 本文 */
.info-card p{
    font-size:15px;
    line-height:2;
    padding:0 !important;
}

/* カードロゴ */
.card-logos{
    display:flex;
    gap:18px;
    flex-wrap:wrap;
    margin-top:25px;
    align-items:center;
}

.card-logos img{
    height:34px;
    width:auto;
    background:#fff;
    padding:6px 10px;
    border-radius:6px;
    box-shadow:0 1px 4px rgba(0,0,0,0.08);
}

/* ===== スマホ ===== */
@media screen and (max-width:900px){

    .info-card{
        padding:20px;
    }

    .info-title{
        font-size:18px;
    }

    .info-title small{
        font-size:13px;
    }

    .card-logos img{
        height:28px;
    }

}

.price-ogp-visual{
    margin:25px auto;
    text-align:center;
    max-width:900px; /* ←PCでデカくなりすぎ防止 */
}

.price-ogp-visual img{
    width:100%;
    height:auto;
    border-radius:10px;
    box-shadow:0 4px 12px rgba(0,0,0,0.15);
}

@media (max-width:768px){
    .price-ogp-visual{
        margin:15px 0;
    }
}

/* =================================
   RECRUIT LP 完全独立版
   他ページ絶対非干渉
================================= */

/* 背景 */
body.recruit-page{
    background:#f7f8f6;
}

/* セクションカード */
body.recruit-page .cv-future,
body.recruit-page .cv-voice,
body.recruit-page .cv-day,
body.recruit-page .cv-faq{
    background:#fff;
    padding:50px 40px;
    border-radius:14px;
    box-shadow:0 10px 30px rgba(0,0,0,0.06);
    max-width:900px;
    margin:60px auto;
}

/* 見出し（テンプレ完全無効化） */
body.recruit-page #main h2{
    background:none !important;
    color:#333 !important;
    padding:0 !important;
    border:none !important;
    text-align:center;
    font-size:28px;
    letter-spacing:0.08em;
}

/* 左線も消す */
body.recruit-page #main h2::first-letter{
    border:none !important;
    padding-left:0 !important;
}

/* 下線アクセント */
body.recruit-page #main h2::after{
    content:"";
    display:block;
    width:60px;
    height:3px;
    background:#7ebb77;
    margin:15px auto 0;
}

/* 箇条書き */
body.recruit-page .cv-future ul{
    list-style:disc;
    padding-left:25px;
    max-width:650px;
    margin:30px auto 0;
}

body.recruit-page .cv-future li{
    font-size:16px;
    padding:10px 0;
    border-bottom:1px solid #eee;
}

/* スタッフの声 */
body.recruit-page .voice-item{
    background:#fafafa;
    padding:25px;
    border-radius:10px;
    margin-top:20px;
    border-left:5px solid #7ebb77;
}

/* CTA */
body.recruit-page .recruit-cta{
    text-align:center;
    margin:50px 0;
}

body.recruit-page .recruit-cta a{
    display:inline-block;
    padding:18px 32px;
    border-radius:40px;
    font-size:18px;
    font-weight:bold;
    text-decoration:none;
    margin:10px;
    color:#fff;
}

body.recruit-page .cta-main{
    background:#e85c5c;
}

body.recruit-page .cta-line{
    background:#06C755;
}

/* モバイル */
@media(max-width:900px){

    body.recruit-page .cv-future,
    body.recruit-page .cv-voice,
    body.recruit-page .cv-day,
    body.recruit-page .cv-faq{
        padding:30px 20px;
        margin:30px 12px;
    }

    body.recruit-page #main h2{
        font-size:20px;
    }

    body.recruit-page .recruit-cta a{
        display:block;
        width:90%;
        margin:12px auto;
        font-size:16px;
    }
}

/* ===== 採用：歓迎する人セクション ===== */

body.recruit-page .cv-welcome{
    background:#fff;
    padding:50px 40px;
    border-radius:14px;
    box-shadow:0 10px 30px rgba(0,0,0,0.06);
    max-width:900px;
    margin:60px auto;
}

/* 見出し */
body.recruit-page .cv-welcome h3{
    background:none !important;
    border:none !important;
    padding:0 !important;
    font-size:26px;
    text-align:center;
    color:#333;
}

/* 緑ライン */
body.recruit-page .cv-welcome h3::after{
    content:"";
    display:block;
    width:60px;
    height:3px;
    background:#7ebb77;
    margin:15px auto 0;
}

/* チェックリスト */
body.recruit-page .cv-welcome p{
    padding:0 !important;
    max-width:650px;
    margin:30px auto 0;
    line-height:2.2;
    font-size:16px;
}

/* モバイル */
@media(max-width:900px){
    body.recruit-page .cv-welcome{
        padding:30px 20px;
        margin:30px 12px;
    }

    body.recruit-page .cv-welcome h3{
        font-size:20px;
    }
}

body.recruit-page .cv-welcome h3::after{
    display:none !important;
}

/* ===== Privacy Policy 医療サイト級 ===== */

.pp-intro{
    max-width:900px;
    margin:40px auto;
    text-align:left;
}

.pp-date{
    font-size:13px;
    color:#777;
    margin-top:10px;
}

.pp-toc{
    max-width:900px;
    margin:30px auto;
    padding:25px;
    background:#f7f7f7;
    border-radius:8px;
}

.pp-toc h3{
    margin-bottom:15px;
}

.pp-toc ul{
    columns:2;
}

.pp-toc li{
    margin:6px 0;
}

.pp-toc a{
    text-decoration:none;
    color:#333;
}

.pp-toc a:hover{
    color:#7ebb77;
}

/* スマホ */
@media(max-width:900px){
    .pp-toc ul{
        columns:1;
    }
}
/* プライバシーポリシー信頼表記 */

.pp-trust{
    text-align:center;
    font-size:13px;
    color:#666;
    margin:30px 0 10px;
    line-height:1.8;
}

/* =========================
腰痛ページH1デザイン
========================= */

.lumbago-page .lumbago-hero{
    background: linear-gradient(135deg,#f5f7f6,#ffffff);
    padding:40px 30px;
    border-radius:12px;
    margin-bottom:30px;
}

.lumbago-page h1{
    font-size:32px;
    line-height:1.4;
    margin-bottom:15px;
    color:#2c7a4b;
    font-weight:700;
}

.lumbago-page .lumbago-lead{
    font-size:16px;
    line-height:1.9;
    color:#444;
}

/* モバイル最適化 */
@media(max-width:768px){

    .lumbago-page .lumbago-hero{
        padding:25px 18px;
    }

    .lumbago-page h1{
        font-size:24px;
    }

    .lumbago-page .lumbago-lead{
        font-size:14px;
    }
}

/* 腰痛ページ専用 */
.lumbago-page .lumbago-hero{
    background:linear-gradient(135deg,#f5f7f6,#fff);
    padding:40px 30px;
    border-radius:12px;
    margin-bottom:30px;
}

.lumbago-page h1{
    font-size:30px;
    color:#2c7a4b;
    margin-bottom:15px;
}

.lumbago-label{
    display:inline-block;
    background:#2c7a4b;
    color:#fff;
    padding:5px 12px;
    border-radius:20px;
    font-size:12px;
    margin-bottom:10px;
}

.lumbago-lead{
    font-size:16px;
    line-height:1.9;
}

/* モバイル */
@media(max-width:768px){
    .lumbago-page h1{font-size:22px;}
    .lumbago-lead{font-size:14px;}
}

/* ===== H1直下リード文の最適化 ===== */

.hero-message h1{
    font-size:32px;
    line-height:1.4;
    margin-bottom:18px;
    color:#3e3a39;
}

/* ← 新規追加 */
.hero-lead{
    max-width:unset !important;
    margin:0 !important;
    padding:0 20px 0 0 !important;

    font-size:16px;
    line-height:1.9;
    color:#555;

    text-align:left;
}

/* ===== H1直下リード文の最適化（モバイル） ===== */

@media screen and (max-width:900px){

    .hero-message h1{
        font-size:24px;
        line-height:1.5;
        margin-bottom:12px;
    }

    .hero-lead{
        font-size:14px;
        line-height:1.8;
        padding:0 !important;
    }

}
