@charset "utf-8";
/* ============================================================================
   SA 2026 下層ページ土台  (lower-2026.css)
   ----------------------------------------------------------------------------
   対象: #contents を持つ下層ページすべて
         （#invidual / #corporation / #company / #information / #contact、
           および旧PHPページ）

   【なぜ必要か】
   invidual.css / corporation.css / company.css / information.css の4本が
   ほぼ同じ内容の重複で、しかも旧・本文720px（2カラム）時代の固定px幅が
   そのまま残っている。本文幅を1080pxにしたので、下記が全部ズレていた。

     #kousijin_invi .frame p.left  488px  → 枠内1030pxに対し370px余る
     #smc2 .frame p.left           460px
     #kousijin_detail p.left       464px
     #kameiten .franchise_info table 534px
     div.buy_area p                400px
     #kanren p.kanrenitem_lead     400px
     .gallery .halfcube            360px 固定（正方形前提）
     .entry-title                  960px 固定（本文1080pxに120px足りない）

   【方針】
   - HTMLは触らない。1ページずつ直すのではなく、共通の土台でまとめて効かせる。
   - .frame を float 前提から flex に切り替える。DOM順がそのまま見た目順になるので
     既存マークアップ（h4 → p.left → img.right → ボタン）がそのまま成立する。
   - 固定px幅を全部やめて可変にする。
   - SPは1カラムに落とす。

   【読み込み順】
   invidual.css 等は functions.php の include_custom_css（wp_head 優先度10）で
   出力されるため、enqueue したCSSより後になる。このファイルは wp_head 優先度20で
   出すことで確実に最後に来るようにしている。セレクタの詳細度は旧指定と同点に
   合わせてあり、後勝ちで上書きする（無闇に !important を使わない）。
   ============================================================================ */

:root{
	/* 幅 */
	--sa-l-max: 1080px;

	/* 色 */
	--sa-c-brand:      #ff5a00;
	--sa-c-brand-dark: #e04e00;

	/* セクションごとのアクセント色。
	   このサイトは区分ごとに色を変えている（個人=オレンジ／法人=紺／
	   会社情報・インフォメーション=グレー）。4本のページCSSがそれぞれ
	   同じ役割の色を直書きしていたので、トークンにして土台側で一元管理する。
	   既定値は個人向けのオレンジ。 */
	--sa-c-accent:      #ff5a00;
	--sa-c-accent-dark: #e04e00;
	--sa-c-gold:       #c09e62;
	--sa-c-ink:        #333436;
	--sa-c-ink-2:      #5f6165;
	--sa-c-line:       #e3e3e1;
	--sa-c-line-soft:  #efefec;
	--sa-c-surface:    #ffffff;
	--sa-c-surface-2:  #faf9f7;

	/* 角丸・影 */
	--sa-r:    10px;
	--sa-r-s:   6px;
	--sa-shadow:      0 1px 2px rgba(0,0,0,.04), 0 6px 18px rgba(0,0,0,.045);
	--sa-shadow-hover:0 2px 4px rgba(0,0,0,.05), 0 12px 28px rgba(0,0,0,.08);

	/* 余白 */
	--sa-s-1: 4px;  --sa-s-2: 8px;  --sa-s-3: 12px; --sa-s-4: 16px;
	--sa-s-5: 24px; --sa-s-6: 32px; --sa-s-7: 48px; --sa-s-8: 64px;

	/* 文字 */
	--sa-f-body: 16px;
	--sa-lh-body: 1.95;
	--sa-f-mincho: "ヒラギノ明朝 Pro W3","Hiragino Mincho Pro","HGS明朝E","ＭＳ Ｐ明朝",serif;
}

/* 区分ごとのアクセント色。カスタムプロパティは継承するので、
   ラッパーの article に置くだけで中の見出し・ボタン・strong に伝わる。
   旧PHPページも <article id="invidual"> を使っているのでそのまま効く。 */
#invidual,
#contact{      --sa-c-accent:#ff5a00; --sa-c-accent-dark:#e04e00; }
#corporation{  --sa-c-accent:#161e5a; --sa-c-accent-dark:#0d1338; }
#company,
#information{  --sa-c-accent:#444548; --sa-c-accent-dark:#2c2d2f; }

/* ============================================================================
   0. ページCSS4本から移設した共通定義
   ----------------------------------------------------------------------------
   invidual.css / corporation.css / company.css / information.css に
   まったく同じ内容で書かれていたものを、ここ1か所にまとめた。

   置き場所をファイル先頭（トークン直後）にしているのは意図的。
   4本はもともと lower-2026.css より前に読み込まれていたので、
   「土台の各コンポーネント定義より前」という位置関係を保っておけば、
   詳細度が同点になったときの勝ち負けが移設前と変わらない。
   ========================================================================== */

/* ここに .entry-header / .entry-title / #content .wrap / .edit-link は置かない。
   これらは「そのページ区分で上部の帯を出すかどうか」のスイッチで、
   other.css / contact.css を使うページ（サイトマップ・個人情報保護方針・
   お問い合わせなど）はあえて出していない。土台に上げると全ページで出てしまう。
   実際に一度まとめてみたところ ID315/317/319 で帯が出てレイアウトが127px下がった。
   ページ区分ごとの判断なので、4本のCSSに残す。 */

/* 上部の画像並び */
.topimage{
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-end;
}

.clear_both{ clear: both; line-height: 1; padding: 0; margin: 0; }
#contents #top{ text-align: center; }

/* ピックアップ（個人／法人トップの横並び） */
#contents #pickup{ color: var(--sa-c-gold); display: flex; flex-wrap: nowrap; }
#contents #pickup div{ width: 100%; margin-right: 10px; }
#contents #pickup div:last-child{ margin-right: 0; }
#contents #pickup img{ margin-right: 16px; }
#contents #pickup h3{ font-weight: 400; font-size: 16px; margin: 0; padding-bottom: 8px; }

/* 講師陣（一覧・詳細）。invidual.css と corporation.css に同内容で重複していた */
#kousijin_invi .frame p.left{ width: 488px; font-size: 14px; letter-spacing: -0.5px !important; margin-right: 10px; }
#kousijin_invi img.right{ margin: 0; }
#kousijin div.frame{ padding: 49px 0 0 49px; }
#kousijin .frame img{ padding: 0; margin: 0 48px 48px 0; }
#kousijin .frame a:hover img{ opacity: .8; transition: all .5s; }
#kousijin_detail h2 span{ font-size: 20px; }
#kousijin_detail p.left{ width: 464px; padding: 0; line-height: 1.85; margin: 24px 0 2.5rem 0; }
#kousijin_detail p.left span{ letter-spacing: -0.04em !important; }
#kousijin_detail p.left + img{ width: 240px; margin: 24px 0 0 0; }
#kousijin_detail hr{ clear: both; background-color: #c09e62; height: 2px; margin: 0 0 20px 0; }
#kousijin_detail table{ margin: 1.3rem 0 2rem 0; }
#kousijin_detail table th{ width: 200px; font-weight: normal; padding: 16px 0 24px 24px; }
#kousijin_detail table td{ padding: 16px 24px !important; }
#kousijin_detail div.gallery{ width: 100%; display: flex; flex-wrap: wrap; flex-direction: row; margin: 0 0 3rem 0; }
#kousijin_detail .gallery .fullwidth{ width: 100%; height: 100%; }
#kousijin_detail .gallery .halfcube{ width: 360px; height: 360px; }
#kousijin_detail .gallery a,
#kousijin_detail .gallery a img{ box-shadow: none; }
#kousijin_detail .gallery a:hover > img{ opacity: .7; }
#kousijin_detail .gallery img{ display: block; }
#kousijin_detail .gallery div.halfarea{ width: 50%; }

/* SP：詳しくはこちらボタン（4本に同内容であった） */
@media screen and (max-width: 62.5em){
	a.invi_linkarea,
	button.invi_linkarea,
	a.company_linkarea{
		width: 100% !important;
		float: none !important;
		display: block !important;
		font-size: 16px !important;
		padding: 14px 0 !important;
		margin: 12px 0 !important;
		border-radius: 4px;
		box-sizing: border-box;
	}
}

/* ============================================================================
   1. ページ上部の帯（.entry-title）
   ----------------------------------------------------------------------------
   旧: width:960px / height:120px 固定、line-height:1400px + overflow:hidden で
       <h1> のテキストを画面外へ飛ばして隠していた。
       → 本文1080pxに対して120px足りず、SPでは画像が縮んで下半分が白帯になる。
   新: 元画像（1920×240）の比率で可変にする。見出しテキストは読み上げ用に残す。
   ========================================================================== */
body.page:not(.twentyseventeen-front-page) .entry-header .entry-title{
	width: 100%;
	max-width: var(--sa-l-max);
	height: auto;
	aspect-ratio: 1920 / 240;
	background-size: cover;
	background-position: center;
	border-radius: var(--sa-r);
	overflow: hidden;

	/* テキストは消さずに読み上げだけ残す（旧 line-height:1400px の置き換え） */
	line-height: 0;
	font-size: 0;
	color: transparent;
}
body.page:not(.twentyseventeen-front-page) .entry-header{
	margin: 0 0 var(--sa-s-5) 0;
}

/* 旧PHPページの上部の帯（h2#mainimg）。
   WPページの .entry-title と同じ幅・同じ余白にして、行き来しても揃って見えるようにする。 */
h2#mainimg{
	box-sizing: border-box;
	width: 100%;
	max-width: calc(var(--sa-l-max) + 40px);
	margin: 0 auto var(--sa-s-5) auto;
	padding: 0 20px;
	line-height: 0;
}
h2#mainimg img{
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--sa-r);
}

/* ============================================================================
   2. 本文の基本タイポグラフィ
   ----------------------------------------------------------------------------
   旧: 本文14〜15px。1080px幅で14pxは1行が長すぎて読みにくい。
   ========================================================================== */
/* 本文コンテナ。
   WPページは #content .wrap（style.css の SA-2026-WIDTH）が幅を持っているが、
   旧PHPページは .wrap を通らないので #contents が body 直下にあり、
   幅の制限がまったく効いていなかった（加盟店ページなどが画面いっぱいに広がる）。
   #contents 自身にも同じ幅を持たせて、両方で揃うようにする。 */
#contents{
	box-sizing: border-box;
	width: 100%;
	max-width: calc(var(--sa-l-max) + 40px);   /* padding 20px×2 を足した値 */
	margin-left: auto;
	margin-right: auto;
	padding-left: 20px;
	padding-right: 20px;

	color: var(--sa-c-ink);
	font-size: var(--sa-f-body);
	line-height: var(--sa-lh-body);
}
/* WPページ側は .wrap が幅と余白を持っているので二重にしない */
.wrap #contents{
	max-width: none;
	padding-left: 0;
	padding-right: 0;
}
#contents p,
#contents li,
#contents dd,
#contents td{
	font-size: var(--sa-f-body);
	line-height: var(--sa-lh-body);
	color: var(--sa-c-ink);
}
/* 原寸のまま置かれた画像が本文幅を突き破らないように。
   （例: SMCページの section 直下にある幅1440pxのバナー） */
#contents img{
	max-width: 100%;
	height: auto;
}
#contents section{
	margin: 0 0 var(--sa-s-7) 0;
}
#contents section:last-child{ margin-bottom: 0; }

/* --- 本文とフッターの間の余白 --------------------------------------------
   WordPressのページは .entry-content が下マージン32pxを持っていて、
   フッターとの間に実測44pxの余白ができる。旧PHPページはそこを通らないので
   12pxしかなく、とくに「予約へ」「確認する」のようにボタンで終わる画面は
   フッター（濃い色のベタ面）に密着して見えていた（2026-09-19）。
   旧ページ側の相当する入れ物にも同じ役目の余白を入れる。
   article#invidual は旧ページ23枚すべてに入っている
   （残り3つの index.php は中身がWordPressの固定ページなのでこの経路を通らない）。 */
#main > article#invidual{
	margin-bottom: var(--sa-s-7);
}

/* --- h2: セクション見出し ------------------------------------------------- */
#contents section h2{
	font-size: 30px;
	line-height: 1.45;
	color: var(--sa-c-accent);
	text-align: left;
	font-weight: 600;
	letter-spacing: .02em;
	margin: 0 0 var(--sa-s-5) 0;
	padding: 0 0 var(--sa-s-3) 0;
	border-bottom: 2px solid var(--sa-c-line);
	position: relative;
	background-image: none;   /* 旧: 下線の画像を敷いていた */
}
#contents section h2::after{
	content: "";
	position: absolute;
	left: 0; bottom: -2px;
	width: 96px; height: 2px;
	background: var(--sa-c-accent);
}

/* 記事一覧の見出し（Shortcodes Ultimate の su-post-title）はセクション見出し
   ではないので、上のアクセント線を出さない。
   /info/ で1件ごとにタイトルの下へ96pxの線が入っていた。 */
#contents section h2.su-post-title::after{
	content: none;
}

/* 旧マークアップのページ（加盟店一覧の #Wrapper / .Contents / .Frame 大文字系）は
   ページ専用CSSが h2 を中央寄せにしている。左端のアクセントは位置が合わないので出さない。 */
#contents #Wrapper h2::after{ display: none; }

/* --- h3: セクション直下の見出し（中央寄せの飾り見出し） ------------------- */
#contents section > h3{
	font-size: 22px;
	line-height: 1.6;
	color: var(--sa-c-accent);
	text-align: center;
	font-weight: 500;
	letter-spacing: .02em;
	margin: var(--sa-s-6) 0 var(--sa-s-4) 0;
	padding: 0;
	background-image: none;
}
#contents section > h3:first-child{ margin-top: 0; }
#contents section > h3 span{ font-size: 16px; }

/* 講座区分の帯見出し（#kouza_sss 等）は既存のデザインをそのまま活かす */
#contents section > h3[id^="kouza_"]{
	text-align: left;
	color: #fff;
	font-size: 16px;
	margin: var(--sa-s-6) 0 var(--sa-s-4) 0;
	border-radius: var(--sa-r-s);
	overflow: hidden;
}

/* ============================================================================
   3. .frame —— カード
   ----------------------------------------------------------------------------
   旧: 5px の太いグレー枠 + overflow:hidden + 中身は float 頼り。
   新: 1px の枠 + 角丸 + flex。DOM順がそのまま横並び順になる。
   ========================================================================== */
#contents .frame{
	box-sizing: border-box;
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 0 var(--sa-s-5);

	background: var(--sa-c-surface);
	border: 1px solid var(--sa-c-line);
	border-radius: var(--sa-r);
	padding: var(--sa-s-5) var(--sa-s-6);
	margin: 0 0 var(--sa-s-4) 0;
	overflow: visible;
	clear: both;
}

/* カード内の文字。
   旧CSSが #invidual .frame p {font-size:14px; line-height:18pt} を持っていて、
   #contents p（詳細度101）では届かない。同じ詳細度(111)で後ろから上書きする。 */
#contents .frame p,
#contents .frame li,
#contents .frame dd,
#contents .frame td{
	font-size: var(--sa-f-body);
	line-height: var(--sa-lh-body);
	color: var(--sa-c-ink);
}
#contents .frame p span{ font-size: 13px; }

/* --- カード内の要素の並び方 ---------------------------------------------- */
/* カードの子は border-box。
   テーマ既定は content-box で、flex-basis:100% の子に padding が付くと
   その分だけカードをはみ出す（個人情報保護方針の ul.privacy で発生していた）。 */
#contents .frame > *{
	box-sizing: border-box;
	max-width: 100%;
}

/* リストの左インデントは margin ではなく padding で取る。
   margin は flex-basis:100% に加算されてしまい、はみ出す原因になる。 */
#contents .frame > ul,
#contents .frame > ol{
	margin-left: 0;
	padding-left: 2.2em;
}

/* 見出し・リスト・表・区切りは必ず1行使う */
#contents .frame > h2,
#contents .frame > h3,
#contents .frame > h4,
#contents .frame > h5,
#contents .frame > hr,
#contents .frame > ul,
#contents .frame > ol,
#contents .frame > dl,
#contents .frame > table,
#contents .frame > iframe{
	flex: 0 0 100%;
	max-width: 100%;
}

/* 段落は既定で1行まるごと使う（連続する <p> が横に並ばないように） */
#contents .frame > p{
	flex: 1 1 100%;
	max-width: 100%;
	width: auto;
	float: none;
	margin: 0 0 var(--sa-s-3) 0;
	padding: 0;
}
#contents .frame > p:last-child{ margin-bottom: 0; }

/* 画像は縮まない側。float は flex 下では無効になるので指定を戻しておく */
#contents .frame > img,
#contents .frame > a > img{
	flex: 0 0 auto;
	float: none;
	max-width: 100%;
	height: auto;
	margin: 0 0 var(--sa-s-3) 0;
	padding: 0;
	border-radius: var(--sa-r-s);
}
#contents .frame > a{
	flex: 0 0 auto;
}

/* 画像とセットで横に並べたい段落だけ、可変幅の「本文カラム」にする。
   ・p.left  … 講師陣など（DOM順: p.left → img.right）
   ・img + p … 関連商品など（DOM順: img → p）
   旧CSSの 488px / 460px / 464px / 400px 固定はここで全部上書きされる。 */
#contents .frame > p.left,
#contents .frame > div.left,
#contents .frame > img + p,
#contents .frame > div:has(> img:only-child) + p{
	flex: 1 1 22em;
	width: auto;
	max-width: 100%;
	min-width: 0;
	margin-right: 0;
}

/* 画像だけを包んだ <div>（SMC など）は画像と同じ扱い */
#contents .frame > div:has(> img:only-child){
	flex: 0 0 auto;
	margin: 0 0 var(--sa-s-3) 0;
}
#contents .frame > div:has(> img:only-child) > img{
	display: block;
	max-width: 100%;
	height: auto;
	border-radius: var(--sa-r-s);
}

/* それ以外の <div> は1行使う */
#contents .frame > div{
	flex: 1 1 100%;
	max-width: 100%;
}

/* 右側に置く画像 */
#contents .frame > img.right{
	margin-left: auto;
}

/* --- カード内の見出し ----------------------------------------------------- */
#contents .frame h4{
	font-size: 19px;
	line-height: 1.6;
	font-weight: 600;
	color: var(--sa-c-gold);
	text-align: left;
	margin: 0 0 var(--sa-s-3) 0;
	padding: 0;
	border-bottom: none;
}
#contents .frame h4 span{ font-size: 14px; font-weight: 400; }

#contents .frame h3{
	font-size: 19px;
	line-height: 1.6;
	font-weight: 600;
	color: var(--sa-c-gold);
	text-align: left;
	margin: 0 0 var(--sa-s-3) 0;
	padding: 0;
}
#contents .frame h3.invitop,
#contents .frame h3.corptop,
#contents .frame h3.companytop{
	color: var(--sa-c-accent);
	font-size: 21px;
}

/* リンクになっているカード（提携店など）はホバーで持ち上げる */
#contents .frame h4.franchise_name:hover{
	opacity: 1;
	color: var(--sa-c-accent);
}

/* ============================================================================
   4. ボタン
   ----------------------------------------------------------------------------
   旧: a.invi_linkarea は width:27% + float:right。本文幅が変わるたびに伸縮して
       278px になったり潰れたりしていた。
   ========================================================================== */
#contents a.invi_linkarea,
#contents button.invi_linkarea,
#contents a.company_linkarea,
#contents a.login_btn,
#contents a.buy_btn{
	flex: 0 0 auto;
	align-self: flex-end;   /* カード内では右下に置く */
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--sa-s-2);

	box-sizing: border-box;   /* テーマ既定が content-box。幅100%時に padding 分はみ出す */
	min-width: 200px;
	width: auto;
	margin-left: auto;
	padding: 10px var(--sa-s-5);

	background: var(--sa-c-accent);
	color: #fff;
	font-size: 14px;
	line-height: 1.4;
	font-weight: 500;
	text-align: center;
	text-decoration: none;
	border-radius: 999px;
	float: none;
	clear: none;
	transition: background-color .2s, transform .2s, box-shadow .2s;
}
#contents a.invi_linkarea::after,
#contents button.invi_linkarea::after,
#contents a.company_linkarea::after{
	content: "›";
	font-size: 16px;
	line-height: 1;
	transform: translateY(-1px);
}
#contents a.invi_linkarea:hover,
#contents button.invi_linkarea:hover,
#contents a.company_linkarea:hover,
#contents a.login_btn:hover{
	background: var(--sa-c-accent-dark);
	color: #fff;
	box-shadow: var(--sa-shadow);
	transform: translateY(-1px);
}

/* ページ内リンクの横並びグループ（関連商品のカテゴリ切り替えなど）。
   旧: a.itemmedia を width:137px + float:left で並べていた。 */
#contents div.kanrenitem_linkarea{
	display: flex;
	flex-wrap: wrap;
	gap: var(--sa-s-2);
	clear: both;
	margin: 0 0 var(--sa-s-6) 0;
}
#contents div.kanrenitem_linkarea > a{
	flex: 1 1 150px;
	min-width: 0;
	width: auto;
	margin: 0;
}

/* 単体で右に置くボタン（ログインなど）。inline-flex だと margin:auto が効かない */
#contents a.login_btn{
	display: flex;
	width: fit-content;
	margin: 0 0 var(--sa-s-3) auto;
}

/* 大きいCTA */
#contents a.invi_bottan,
#contents a.company_bottan{
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 100%;
	max-width: 560px;
	margin: var(--sa-s-6) auto;
	padding: var(--sa-s-4) var(--sa-s-5);

	background: var(--sa-c-accent);
	color: #fff;
	font-family: var(--sa-f-mincho);
	font-size: 20px;
	line-height: 1.5;
	text-align: center;
	text-decoration: none;
	border-radius: var(--sa-r);
	box-shadow: var(--sa-shadow);
	transition: background-color .25s, transform .25s, box-shadow .25s;
}
#contents a.invi_bottan:hover,
#contents a.company_bottan:hover{
	background: var(--sa-c-accent-dark);
	color: #fff;
	transform: translateY(-2px);
	box-shadow: var(--sa-shadow-hover);
}

/* Amazonバナー等、中身が画像のボタンは着色しない */
#contents a.buy_btn{
	background: none;
	min-width: 0;
	padding: 0;
	border-radius: 0;
}
#contents a.buy_btn img{ display: block; margin: 0; padding: 0; }
#contents a.buy_btn:hover{ opacity: .8; background: none; box-shadow: none; }

/* ----------------------------------------------------------------------------
   4-2. 区分トップのメニューボタン（.sa-prog）（2026-10-22 高木さんの指摘）
   ----------------------------------------------------------------------------
   個人のお客様トップ（/invidual/）の
     SAプログラム／SAマスター倶楽部／SAセールス・スクール／SAマスター・クローザー養成講座
   は、353×102 の画像（btn_sapgm.webp ほか）を並べていた。画像は幅に合わせて縮むだけで、
   スマホでは文字が小さく潰れ、列の数も変えられなかったので、文字とCSSで描く。
   PC・スマホとも2列。画像に近い見た目（金色の明朝の名前＋細い金の線＋下に説明）に、
   ほかのカードと同じ角丸・枠・影をそろえた。
   ---------------------------------------------------------------------------- */
ul.sa-prog{
	list-style: none;
	margin: 0 0 var(--sa-s-4) 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--sa-s-4);
}
/* 本文の <ul><li> の余白（#contents section > ul li の margin-bottom）に負けないよう #contents を付ける */
#contents ul.sa-prog > li{
	margin: 0;
	padding: 0;
	list-style: none;
}
ul.sa-prog a{
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	box-sizing: border-box;
	height: 100%;
	min-height: 102px;
	padding: var(--sa-s-4) var(--sa-s-5);
	background: var(--sa-c-surface-2);
	border: 1px solid var(--sa-c-line);
	border-radius: var(--sa-r);
	text-align: center;
	text-decoration: none;
	transition: box-shadow .2s, border-color .2s;
}
ul.sa-prog a:hover,
ul.sa-prog a:focus-visible{
	border-color: var(--sa-c-gold);
	box-shadow: var(--sa-shadow-hover);
}
.sa-prog__name{
	display: block;
	box-sizing: border-box;
	width: 100%;
	padding: 0 0 var(--sa-s-2) 0;
	border-bottom: 1px solid var(--sa-c-gold);
	font-family: var(--sa-f-mincho);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: .06em;
	color: var(--sa-c-gold);
	/* 折れてよい所は本文の <wbr> だけ（「スク／ール」のような所で切れない）。
	   幅が足りなくて <wbr> でも収まらないときだけ、どこでも折る */
	word-break: keep-all;
	overflow-wrap: anywhere;
}
.sa-prog__sub{
	display: block;
	font-size: 14px;
	line-height: 1.5;
	letter-spacing: .08em;
	color: var(--sa-c-ink-2);
}
@media screen and (max-width: 767px){
	ul.sa-prog{ gap: var(--sa-s-3); }
	ul.sa-prog a{ min-height: 88px; padding: var(--sa-s-3) var(--sa-s-2); gap: 8px; }
	.sa-prog__name{ font-size: 15px; letter-spacing: .02em; padding-bottom: 6px; }
	.sa-prog__sub{ font-size: 12px; letter-spacing: .04em; }
}

/* ============================================================================
   5. 価格まわり（関連商品）
   ----------------------------------------------------------------------------
   旧: p.buy_area 218px / div.price_area 244px を margin-left:auto で右端に
       押し出していた。本文が広がると本文と価格の間が大きく空く。
   新: カード下部の「価格レール」として1行使い、右寄せで並べる。
   ========================================================================== */
#contents .frame > p.buy_area,
#contents .frame > div.buy_area,
#contents .frame > div.price_area{
	flex: 0 0 100%;
	width: auto;
	max-width: 100%;
	margin: var(--sa-s-4) 0 0 0;
	padding: var(--sa-s-3) 0 0 0;
	border-top: 1px solid var(--sa-c-line-soft);

	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: var(--sa-s-2) var(--sa-s-5);

	font-size: 15px;
	text-align: right;
}
#contents .frame > div.price_area + p,
#contents .frame > div.price_area ~ p.buy_area{
	border-top: none;
	margin-top: var(--sa-s-2);
	padding-top: 0;
}
#contents .frame .price_area p,
#contents .frame .buy_area p{
	float: none;
	width: auto;
	margin: 0;
	padding: 0;
	font-size: 15px;
	line-height: 1.5;
}
#contents .frame .price_area span,
#contents .frame .buy_area span{
	font-family: var(--sa-f-mincho);
	color: var(--sa-c-accent);
	font-size: 19px;
}
#contents .frame .price_area p.normal_price{ margin-right: 0; }
/* <br> で改行させていた「定価：」を横並びに戻す */
#contents .frame > p.buy_area br{ display: none; }

/* ============================================================================
   6. 表
   ----------------------------------------------------------------------------
   旧: 全ページ共通の td{padding:24px} と、#kameiten の width:534px 固定。
   ========================================================================== */
/* 独自デザインを持つ表は対象外にする。
   .sa-cal  … /schedule/ のカレンダー
   .sa-table-raw … 今後「土台の表スタイルを当てたくない」表に付ける逃げ道 */
#contents table:not(.sa-cal):not(.sa-table-raw){
	width: 100%;
	max-width: 100%;
	border-collapse: collapse;
	margin: 0 0 var(--sa-s-5) 0;
	font-size: 15px;
}
#contents table:not(.sa-cal):not(.sa-table-raw) th,
#contents table:not(.sa-cal):not(.sa-table-raw) td{
	padding: var(--sa-s-4) var(--sa-s-5);
	border: none;
	border-bottom: 1px solid var(--sa-c-line-soft);
	vertical-align: top;
	line-height: 1.85;
	text-align: left;
}
#contents table:not(.sa-cal):not(.sa-table-raw) th{
	width: 12em;
	font-weight: 500;
	color: var(--sa-c-ink-2);
	background: var(--sa-c-surface-2);
	/* nowrap にすると、見出しが長い表（会社概要の実績表など）が
	   本文幅を突き破る。折り返させる。 */
	white-space: normal;
}
#contents table:not(.sa-cal):not(.sa-table-raw) tr:last-child th,
#contents table:not(.sa-cal):not(.sa-table-raw) tr:last-child td{ border-bottom: none; }
#contents table:not(.sa-cal):not(.sa-table-raw) thead th{
	background: var(--sa-c-surface-2);
	border-bottom: 2px solid var(--sa-c-line);
	white-space: normal;
	width: auto;
}

/* ============================================================================
   7. ギャラリー
   ----------------------------------------------------------------------------
   旧: .halfcube が 360px×360px 固定。画面幅が変わっても追従しない。
   ========================================================================== */
#contents .gallery{
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: var(--sa-s-3);
	width: 100%;
	margin: 0 0 var(--sa-s-6) 0;
}
#contents .gallery .halfcube,
#contents .gallery .fullwidth,
#contents .gallery .halfarea{
	width: auto;
	height: auto;
	margin: 0;
}
#contents .gallery .fullwidth{ grid-column: 1 / -1; }
#contents .gallery img{
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: var(--sa-r-s);
}
#contents .gallery a{ display: block; }
#contents .gallery a:hover > img{ opacity: .82; }

/* ============================================================================
   8. 旧・固定px幅の打ち消し
   ----------------------------------------------------------------------------
   .frame の外にいて上の指定が届かないものを、詳細度を合わせて個別に潰す。
   ========================================================================== */
#contents p.kanrenitem_lead{            /* 旧 400px */
	width: auto;
	max-width: 44em;
	float: none;
}
#contents img.concept_image2{           /* 旧 720px */
	width: 100%;
	max-width: 720px;
	height: auto;
}
#contents img.concept_image1{
	width: 100%;
	max-width: 418px;
	height: auto;
}
#contents div.franchise_info table{     /* 旧 534px */
	width: 100%;
}
#contents div.franchise_info table th{
	width: 9em;
	text-align: right;
	white-space: nowrap;
}
#contents .frame dl{                    /* SMC の dl（旧 85%） */
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0 var(--sa-s-4);
	border: 1px solid var(--sa-c-line);
	border-radius: var(--sa-r-s);
	padding: 0;
	overflow: hidden;
	margin: 0 0 var(--sa-s-2) 0;
}
#contents .frame dt{
	float: none;
	margin: 0;
	padding: var(--sa-s-3) var(--sa-s-5);
	min-width: 7em;
	text-align: center;
	font-size: 16px;
	align-self: stretch;
	display: flex;
	align-items: center;
	justify-content: center;
}
#contents .frame dd{
	margin: 0;
	padding: var(--sa-s-3) var(--sa-s-4) var(--sa-s-3) 0;
	font-size: 15px;
	flex: 1 1 16em;
}

/* 入会の流れ（#follow）は 30% / 70% の比率を保つ */
#contents .frame > div.frame_bk{
	flex: 0 0 clamp(200px, 30%, 320px);
	width: auto;
	float: none;
	border-radius: var(--sa-r-s);
}
#contents .frame > p.tetuzuki{
	flex: 1 1 20em;
	width: auto;
	float: none;
	padding: 0;
}

/* ============================================================================
   9. リンク・リスト・区切り
   ========================================================================== */
#contents a:not([class]){
	color: var(--sa-c-brand);
	text-decoration: underline;
	text-underline-offset: .2em;
	text-decoration-thickness: 1px;
}
#contents a:not([class]):hover{ color: var(--sa-c-brand-dark); }

#contents .frame ul li,
#contents section > ul li{
	margin: 0 0 var(--sa-s-2) 0;
}
#contents hr{
	border: none;
	border-top: 1px solid var(--sa-c-line);
	height: 0;
	background: none;
	margin: var(--sa-s-5) 0;
	clear: both;
}
#contents strong{
	color: var(--sa-c-accent);
	font-family: var(--sa-f-mincho);
	font-size: 1.06em;
	font-weight: 600;
}

/* ============================================================================
   10. タブレット（768〜1000px）—— 旧SPブロックの打ち消し
   ----------------------------------------------------------------------------
   style.css には 62.5em（=1000px）以下で効く古いSPブロックがあり、
   .frame img / .frame p / a.invi_linkarea を !important で1カラムに固定している。
   タブレット幅ではカードを2カラムのまま見せたいので、ここで無効化する。
   （!important を使うのは、相手が !important だからで、他では使わない）
   ========================================================================== */
@media screen and (min-width: 768px) and (max-width: 1000px){
	#contents .frame{
		padding: var(--sa-s-5);
		gap: 0 var(--sa-s-4);
	}
	#contents section h2{ font-size: 24px; }
	#contents section > h3{ font-size: 19px; }

	/* width は HTML の width 属性に任せる（auto にすると原寸まで伸びる） */
	#contents .frame > img,
	#contents .frame > a > img{
		float: none !important;
		display: block !important;
		max-width: 40% !important;
		height: auto !important;
		margin: 0 0 var(--sa-s-3) 0 !important;
	}
	#contents .frame > p,
	#contents .frame > div{
		float: none !important;
		width: auto !important;
	}
	/* invidual.css の SP 指定が margin:12px 0 !important で右寄せを潰すので戻す */
	#contents a.invi_linkarea,
	#contents button.invi_linkarea,
	#contents a.company_linkarea,
	#contents a.login_btn{
		width: auto !important;
		display: inline-flex !important;
		font-size: 14px !important;
		padding: 10px var(--sa-s-5) !important;
		margin: var(--sa-s-3) 0 0 auto !important;
		border-radius: 999px !important;
	}
}

/* ============================================================================
   11. スマホ（〜767px）—— 1カラム
   ========================================================================== */
@media screen and (max-width: 767px){
	:root{ --sa-f-body: 15.5px; }

	#contents .frame{ gap: 0 var(--sa-s-4); }

	body.page:not(.twentyseventeen-front-page) .entry-header .entry-title{
		border-radius: 0;
	}

	#contents section{ margin-bottom: var(--sa-s-6); }
	#contents section h2{
		font-size: 22px;
		padding-bottom: var(--sa-s-2);
		margin-bottom: var(--sa-s-4);
	}
	#contents section > h3{ font-size: 18px; }

	/* カード内は全部たて積み */
	#contents .frame{
		display: block;
		padding: var(--sa-s-4);
		margin-bottom: var(--sa-s-3);
	}
	/* 画像は横幅いっぱいまで（ただし最大320px）。
	   style.css の SP ブロックに max-width:100% !important があるため、
	   max-width で頭打ちにすると効かない。width 側で決める。 */
	#contents .frame > img,
	#contents .frame > div:has(> img:only-child) > img{
		display: block;
		width: min(100%, 320px);
		height: auto;
		margin: 0 auto var(--sa-s-3) auto;
	}
	#contents .frame > p,
	#contents .frame > p.left,
	#contents .frame > div.left,
	#contents .frame > div.frame_bk,
	#contents .frame > p.tetuzuki{
		width: auto;
		max-width: none;
		float: none;
	}
	#contents .frame h4,
	#contents .frame h3{ font-size: 17px; }

	/* ボタンは横いっぱい */
	#contents a.invi_linkarea,
	#contents button.invi_linkarea,
	#contents a.company_linkarea,
	#contents a.login_btn{
		display: flex;
		width: 100%;
		min-width: 0;
		margin: var(--sa-s-3) 0 0 0;
		padding: 13px var(--sa-s-4);
		font-size: 15px;
	}
	#contents a.invi_bottan,
	#contents a.company_bottan{
		font-size: 17px;
		margin: var(--sa-s-5) auto;
		padding: var(--sa-s-3) var(--sa-s-4);
	}

	/* 価格レールは左寄せに戻す（右寄せだと読みにくい） */
	#contents .frame > p.buy_area,
	#contents .frame > div.buy_area,
	#contents .frame > div.price_area{
		display: flex;
		justify-content: flex-start;
		text-align: left;
		margin-top: var(--sa-s-3);
	}

	/* 見出し＋値の表はブロックに崩す（thead のある表と多列ヘッダは除く） */
	#contents table:not(.sa-cal):not(.sa-table-raw):not(:has(thead)):not(:has(tr > th + th)),
	#contents table:not(.sa-cal):not(.sa-table-raw):not(:has(thead)):not(:has(tr > th + th)) tbody,
	#contents table:not(.sa-cal):not(.sa-table-raw):not(:has(thead)):not(:has(tr > th + th)) tr,
	#contents table:not(.sa-cal):not(.sa-table-raw):not(:has(thead)):not(:has(tr > th + th)) th,
	#contents table:not(.sa-cal):not(.sa-table-raw):not(:has(thead)):not(:has(tr > th + th)) td{
		display: block;
		width: auto;
	}
	#contents table:not(.sa-cal):not(.sa-table-raw):not(:has(thead)):not(:has(tr > th + th)) tr{
		border-bottom: 1px solid var(--sa-c-line-soft);
		padding: var(--sa-s-2) 0;
	}
	#contents table:not(.sa-cal):not(.sa-table-raw):not(:has(thead)):not(:has(tr > th + th)) th{
		background: none;
		padding: var(--sa-s-2) 0 0 0;
		font-size: 13px;
		color: var(--sa-c-ink-2);
		text-align: left;
		white-space: normal;
		border-bottom: none;
	}
	#contents table:not(.sa-cal):not(.sa-table-raw):not(:has(thead)):not(:has(tr > th + th)) td{
		padding: 0 0 var(--sa-s-2) 0;
		border-bottom: none;
	}
	#contents div.franchise_info table th{ text-align: left; width: auto; }

	/* dl も縦積み */
	#contents .frame dt{ width: 100%; min-width: 0; }
	#contents .frame dd{ padding: var(--sa-s-3) var(--sa-s-4); }

	#contents .gallery{
		grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
		gap: var(--sa-s-2);
	}
}

/* ============================================================================
   12. 会員ページ（/login/ と /mypage/）
   ----------------------------------------------------------------------------
   旧 invidual/member/ の置き換え。土台のトークンをそのまま使う。
   ========================================================================== */

/* --- ログイン --------------------------------------------------------------- */
#contents .sa-login{ max-width: 520px; margin-left: auto; margin-right: auto; display: block; }
#contents .sa-login__form{ margin: var(--sa-s-5) 0 0; }
#contents .sa-login__row{ margin: 0 0 var(--sa-s-4); }
#contents .sa-login__row label{
	display: block; font-size: 14px; font-weight: 600;
	color: var(--sa-c-ink-2); margin: 0 0 var(--sa-s-2);
}
#contents .sa-login__row input[type="text"],
#contents .sa-login__row input[type="password"]{
	box-sizing: border-box; width: 100%;
	padding: 12px var(--sa-s-4);
	font-size: 16px;   /* 16px未満だとiOSでフォーカス時に拡大される */
	border: 1px solid var(--sa-c-line); border-radius: var(--sa-r-s);
	background: #fff;
}
#contents .sa-login__row input:focus{
	outline: 2px solid var(--sa-c-accent); outline-offset: -1px; border-color: var(--sa-c-accent);
}
#contents .sa-login__row--check label{ font-weight: 400; font-size: 14px; }
#contents .sa-login__submit{
	-webkit-appearance: none; appearance: none; cursor: pointer;
	box-sizing: border-box; width: 100%;
	padding: 14px var(--sa-s-5); margin: var(--sa-s-2) 0 0;
	border: 0; border-radius: 999px;
	background: var(--sa-c-accent); color: #fff;
	font-family: inherit; font-size: 16px; font-weight: 600; line-height: 1.4;
	transition: background-color .2s, box-shadow .2s, transform .2s;
}
#contents .sa-login__submit:hover{
	background: var(--sa-c-accent-dark); box-shadow: var(--sa-shadow); transform: translateY(-1px);
}
#contents .sa-login__help{ margin: var(--sa-s-3) 0 0; font-size: 14px; text-align: center; }
#contents .sa-login__error{
	max-width: 520px; margin: 0 auto var(--sa-s-4);
	padding: var(--sa-s-3) var(--sa-s-4);
	border: 1px solid #e3b9b9; border-radius: var(--sa-r-s);
	background: #fdf4f4; color: #9c3030; font-size: 15px;
}
#contents .sa-login__notice{
	max-width: 520px; margin: 0 auto var(--sa-s-4);
	padding: var(--sa-s-3) var(--sa-s-4);
	border: 1px solid #b9d3e3; border-radius: var(--sa-r-s);
	background: #f2f8fc; color: #1f4f6e; font-size: 15px; line-height: 1.7;
}

/* --- マイページ ------------------------------------------------------------- */
#contents .sa-mypage__head{
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
	gap: var(--sa-s-3); margin: 0 0 var(--sa-s-5);
	padding: 0 0 var(--sa-s-3); border-bottom: 1px solid var(--sa-c-line);
}
#contents .sa-mypage__greet{ margin: 0; font-size: 17px; }
#contents .sa-mypage__greet strong{ font-size: 1em; font-family: inherit; }
#contents .sa-mypage__code{
	display: inline-block; margin-left: var(--sa-s-3);
	font-size: 13px; color: var(--sa-c-ink-2);
}
#contents a.sa-mypage__logout{
	font-size: 14px; color: var(--sa-c-ink-2); text-decoration: underline;
}

/* --- 予約一覧 --------------------------------------------------------------- */
#contents .sa-reserve{ display: block; }
#contents .sa-reserve__empty{ margin: 0 0 var(--sa-s-4); color: var(--sa-c-ink-2); }
#contents .sa-reserve__list{ list-style: none; margin: 0; padding: 0; }
#contents .sa-reserve__item{
	display: flex; flex-wrap: wrap; gap: var(--sa-s-2) var(--sa-s-5);
	padding: var(--sa-s-3) 0; margin: 0;
	border-bottom: 1px solid var(--sa-c-line-soft);
}
#contents .sa-reserve__item:last-child{ border-bottom: 0; }
#contents .sa-reserve__date{
	flex: 0 0 9em; font-weight: 700; color: var(--sa-c-accent); font-size: 15px;
}
#contents .sa-reserve__body{ flex: 1 1 18em; min-width: 0; }
#contents .sa-reserve__name{ display: block; font-weight: 600; }
/* 名前から詳細へ（2026-10-13）。行の右に「詳細 ›」を出して、押せることが分かるようにする */
#contents a.sa-reserve__link{ color: var(--sa-c-ink); text-decoration: none; }
#contents a.sa-reserve__link:hover{ color: var(--sa-c-accent); text-decoration: underline; }
#contents .sa-reserve__go{ margin-left: .6em; font-size: 13px; font-weight: 600; color: var(--sa-c-accent); white-space: nowrap; }
#contents .sa-reserve__meta{ display: block; font-size: 14px; color: var(--sa-c-ink-2); }
#contents .sa-reserve__action{ margin: var(--sa-s-4) 0 0; display: flex; }
#contents .sa-reserve__sub{ margin: var(--sa-s-4) 0 var(--sa-s-2); font-weight: 700; font-size: 15px; }
#contents .sa-reserve__tag{
	display: inline-block; margin: 0 .5em 0 0; padding: 1px 8px; border-radius: 3px;
	background: #fff4e5; color: #9a5a00; border: 1px solid #f0c98c; font-size: 12px; font-weight: 700; vertical-align: 1px;
}
#contents .sa-reserve__note{ margin: var(--sa-s-2) 0 0; font-size: 13px; color: var(--sa-c-ink-2); }
#contents .sa-reserve__more{ margin: var(--sa-s-3) 0 0; font-size: 13px; color: var(--sa-c-ink-2); }
#contents .sa-reserve--past .sa-reserve__date{ color: var(--sa-c-ink-2); font-weight: 600; }
#contents .sa-reserve--past{ opacity: .85; }

@media screen and (max-width: 767px){
	#contents .sa-mypage__head{ display: block; }
	#contents a.sa-mypage__logout{ display: inline-block; margin-top: var(--sa-s-2); }
	#contents .sa-mypage__code{ display: block; margin: var(--sa-s-1) 0 0; }
	#contents .sa-reserve__date{ flex: 0 0 100%; }
	#contents .sa-reserve__item{ gap: var(--sa-s-1); }
}

/* --- 旧フォームの見出しに入れた <label for> を、見た目に響かせない（2026-09-20）---
   読み上げが「お名前・編集」になるよう <dt> の中を <label for> で包んだが、
   テーマは label に font-weight:800 と margin-bottom:7px を当てている。
   そのままだと見出しが太くなり、下に7pxの隙間が増えて行送りがずれる。
   実測で気づいたので、dt の直下にある label だけ dt の値を継がせる。

   .table-form は Contact Form 7 のフォーム（/inquiry/ など）。
   そちらの <dt> にも label を入れたので同じ扱いにする（2026-09-20 追記）。 */
/* 子セレクタ（dt > label）にしていたら CF7 側で当たらなかった。
   WordPress の wpautop が <dt> の中身を <p> で包むため
   実際は dt > p > label になる（実測）。子孫セレクタにする。 */
#ContentsArea #Data dt label,
#invidual dt label,
.table-form dt label {
	display: inline;
	margin: 0;
	padding: 0;
	font: inherit;
	color: inherit;
	letter-spacing: inherit;
}

/* --- 送信ボタンを <a> から <button> にしたぶんの調整（2026-09-20 追加）---
   a.invi_linkarea と同じ見た目にする。button は既定で枠・独自フォント・
   中央寄せを持つので、そこだけ打ち消す。 */
   #contents button.invi_linkarea{
	border: 0;
	/* font: inherit だと上の font-weight:500 まで打ち消してしまい、
	   文字が細くなって高さが 50px → 59px に伸びた（実測）。
	   button が独自に持つのは font-family なので、そこだけ揃える。 */
	font-family: inherit;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}

/* --- 旧フォームのスマホ表示（2026-09-21 追加）---------------------------
   会員のセミナー予約・一般の講座予約・キャンセル待ち・関連商品の申込は、
   ラベルと入力欄を dl の flex で横に並べている。375px で見ると
   入力欄が 113px しかなく、自分のメールアドレスすら読めなかった。

   さらに親テーマ（twentyseventeen）の
     body, button, input, select, textarea { font-size: 0.9375rem }
   が 768px 未満でだけ効いていて 15px。**iOS は 16px 未満の入力欄を
   タップするとページごと拡大する。**
   実測で name/kanaName/mobilePhone/mailAddr の4つとも 15px だった。

   狭い画面ではラベルを上に積んで、入力欄を横いっぱい・16px・
   指で押せる高さにする。PC（768px以上）の見た目は変えない。

   セレクタに [class] を足してあるのは詳細度を1つ上げるため。
   旧ページ側の member.css / ippan_kouza.css / kanren.css が
   同じ詳細度で display:flex と width:75% を持っていて、
   読み込み順で負けていた（最初それで効かなかった）。 */
@media screen and (max-width: 767px) {

	#ContentsArea #Data #Form[class] .TextArea dl,
	#ContentsArea #Data .Frame[class] .TextArea dl {
		display: block;
	}
	#ContentsArea #Data #Form[class] .TextArea dl dt,
	#ContentsArea #Data .Frame[class] .TextArea dl dt {
		width: auto;
		padding-bottom: 0;
	}
	#ContentsArea #Data #Form[class] .TextArea dl dd,
	#ContentsArea #Data .Frame[class] .TextArea dl dd {
		width: auto;
		padding-top: 6px;
	}

	#ContentsArea #Data #Form[class] .TextArea dl dd input[type="text"],
	#ContentsArea #Data #Form[class] .TextArea dl dd input[type="email"],
	#ContentsArea #Data #Form[class] .TextArea dl dd input[type="tel"],
	#ContentsArea #Data #Form[class] .TextArea dl dd select,
	#ContentsArea #Data #Form[class] .TextArea dl dd textarea,
	#ContentsArea #Data .Frame[class] .TextArea dl dd input[type="text"],
	#ContentsArea #Data .Frame[class] .TextArea dl dd input[type="email"],
	#ContentsArea #Data .Frame[class] .TextArea dl dd input[type="tel"],
	#ContentsArea #Data .Frame[class] .TextArea dl dd select,
	#ContentsArea #Data .Frame[class] .TextArea dl dd textarea {
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
		/* 16px を切ると iOS がフォーカス時に拡大する */
		font-size: 16px;
		/* 指で押せる高さ */
		min-height: 44px;
		padding: 8px 10px;
	}
}

/* 旧フォームのラジオ・チェックを文字クリックでも選べるように（2026-09-22）
   HTML側で <label class="sa-choice"> に包んである。
   ここは「押せると分かる」ための見た目と、指で押せる高さの確保だけ。 */
label.sa-choice {
	display: inline-block;
	cursor: pointer;
	padding: 6px 12px 6px 6px;
	margin: 2px 0;               /* 負のマージンにすると隣と当たり判定が重なるので使わない */
	border-radius: 4px;
	vertical-align: middle;
}
label.sa-choice:hover {
	background: rgba(0, 0, 0, .05);
}
label.sa-choice input {
	margin-right: 4px;
	vertical-align: middle;
	cursor: pointer;
}
@media screen and (max-width: 767px) {
	/* スマホは行ごと押せるようにして、指1本分の高さを持たせる */
	label.sa-choice {
		display: block;
		min-height: 44px;
		line-height: 32px;
		padding: 6px 10px;
		margin: 2px 0;
	}
}

/* ===== 申込フォームのエラー（2026-09-30） =====
   以前はエラーをページ上部にまとめて出し、メールアドレスだけブラウザの吹き出しで
   欄の横に出ていた（出る場所がそろわず分かりにくいと指摘）。
   今は各入力欄の下に出し、上には件数だけ出す（invidual/kouza|member/reserve.php）。 */
.sa-form-errsum,
#contents .sa-form-errsum {
	margin: 0 0 16px;
	padding: 10px 14px;
	border: 1px solid #d63638;
	border-radius: 4px;
	background: #fcf0f1;
	color: #b32d2e;
	font-weight: bold;
	line-height: 1.6;
}
/* #contents p（本文の文字色）に負けるので、同じ強さで指定する */
.sa-field-err,
#contents p.sa-field-err {
	margin: 6px 0 0;
	color: #b32d2e;
	font-size: 0.92em;
	font-weight: bold;
	line-height: 1.5;
}
input[aria-invalid="true"] {
	border-color: #d63638 !important;
	background: #fff6f6 !important;
}

/* ===== セミナーの資料（PDF）（2026-10-01） =====
   詳細画面の「資料」の行。invidual/kouza|member/detail.php の saSeminarPdfsHtml() */
.sa-sem-pdfs ul { margin: 0; padding: 0; list-style: none; }
.sa-sem-pdfs li { margin: 0 0 8px; }
.sa-sem-pdfs li:last-child { margin-bottom: 0; }
.sa-sem-pdf {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 14px;
	border: 1px solid #c09e62;
	border-radius: 4px;
	background: #fff;
	color: #333 !important;
	text-decoration: none !important;
	font-weight: bold;
	line-height: 1.4;
}
.sa-sem-pdf:hover { background: #fffaf0; }
.sa-sem-pdf__tag {
	padding: 1px 6px;
	border-radius: 3px;
	background: #b32d2e;
	color: #fff;
	font-size: 11px;
	letter-spacing: .05em;
}

/* ============================================================================
   申し込みの流れのボタンと、送信完了画面のボタン（2026-10-13 吉岡さんの確認）
   ----------------------------------------------------------------------------
   お問い合わせ（CF7 の確認画面 / contact.css）・メルマガ登録（sa-melmaga）と同じ見た目にそろえる：
   226x52・角4px・太字16px・中央・横並び。進むはオレンジ、戻るは灰色。
   スマホ（〜767px）は縦に積んで幅いっぱい、進むを上に。

   - 講座・会員限定セミナーの 詳細 / 入力 / 確認 / キャンセル待ち … .ButtonArea.sa-formbtns（旧PHPに付けた目印）
     それまでは丸いボタン（200x40・角999px）が右寄せで、問い合わせやメルマガと形がちがっていた
   - 送信完了画面の「TOPへ」など … .ThanksButtonArea（WPの完了ページと旧PHPの完了画面の両方）
     それまでは .invi_bottan の大きいCTA（幅560px・明朝20px）が左寄せで細長く出ていた

   旧PHPの各ページの css（ippan_kouza.css・member.css）が #ContentsArea #Data で
   スマホに !important を付けているので、こちらもIDを2つ重ねて !important で上書きする。
   ========================================================================== */
#contents #ContentsArea .ButtonArea.sa-formbtns ul,
#contents #main .ThanksButtonArea ul{
	display: flex !important;
	flex-wrap: wrap;
	justify-content: center !important;
	align-items: center;
	gap: 16px;
	width: auto !important;
	margin: 2rem auto 0 !important;
	padding: 0 !important;
	list-style: none;
}
#contents #ContentsArea .ButtonArea.sa-formbtns ul li,
#contents #main .ThanksButtonArea ul li{
	flex: 0 0 auto !important;
	margin: 0 !important;
	order: 0 !important;
}
/* 単独のボタン（WPの完了ページは ul が無く a だけ） */
#contents #main .ThanksButtonArea{
	text-align: center;
}
#contents #main .ThanksButtonArea.ButtonArea > a.invi_bottan{   /* 下の margin:0 !important より強く */
	margin-top: 2rem !important;
}
#contents #ContentsArea .ButtonArea.sa-formbtns ul li .invi_linkarea,
#contents #ContentsArea .ButtonArea.sa-formbtns ul li .sa-full,
#contents #main .ThanksButtonArea a.invi_bottan{
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: auto !important;
	min-width: 226px !important;
	max-width: 100%;
	height: 52px;
	margin: 0 !important;
	padding: 0 2em !important;
	border: 0;
	border-radius: 4px !important;
	box-shadow: none;
	background: #ff5a00;
	color: #fff !important;
	font-family: inherit !important;
	font-size: 16px !important;
	font-weight: bold;
	line-height: 1.4;
	letter-spacing: .05em;
	text-decoration: none;
	transform: none;
	transition: opacity .2s;
}
#contents #ContentsArea .ButtonArea.sa-formbtns ul li .invi_linkarea::after{
	content: none;
}
/* 戻る・ほかの画面へ（灰色） */
#contents #ContentsArea .ButtonArea.sa-formbtns ul li .invi_linkarea.gray_linkarea,
#contents #main .ThanksButtonArea a.invi_bottan.btn_scheduletop,
#contents #main .ThanksButtonArea a.invi_bottan.btn_kanrenetop{
	background: #888 !important;
}
/* 満席（押せない） */
#contents #ContentsArea .ButtonArea.sa-formbtns ul li .sa-full{
	background: #efefef;
	border: 1px solid #d6d6d6;
	color: #6f6c66 !important;
	font-weight: normal;
}
#contents #ContentsArea .ButtonArea.sa-formbtns ul li .invi_linkarea:hover,
#contents #main .ThanksButtonArea a.invi_bottan:hover{
	opacity: .85;
	box-shadow: none;
	transform: none;
}
#contents #ContentsArea .ButtonArea.sa-formbtns ul li .invi_linkarea:not(.gray_linkarea):hover,
#contents #main .ThanksButtonArea a.invi_bottan:not(.btn_scheduletop):not(.btn_kanrenetop):hover{
	background: #ff5a00;
}
@media screen and (max-width: 767px){
	#contents #ContentsArea .ButtonArea.sa-formbtns ul,
	#contents #main .ThanksButtonArea ul{
		gap: 12px;
	}
	#contents #ContentsArea .ButtonArea.sa-formbtns ul li,
	#contents #main .ThanksButtonArea ul li{
		flex: 1 1 100% !important;
	}
	/* 進むを上に（2026-10-09 の吉岡さんの確認 4-2） */
	#contents #ContentsArea .ButtonArea.sa-formbtns ul li.Previous{
		order: 2 !important;
	}
	#contents #ContentsArea .ButtonArea.sa-formbtns ul li .invi_linkarea,
	#contents #ContentsArea .ButtonArea.sa-formbtns ul li .sa-full,
	#contents #main .ThanksButtonArea a.invi_bottan{
		width: 100% !important;
		min-width: 0 !important;
	}
}
