@charset "UTF-8";
/* ============================================================
   Soso留学 テーマ メインスタイル
   PC: 横幅1280px  / SP: レスポンシブ
   ============================================================ */

/* ---- カラートークン ---------------------------------------- */
:root{
  --maxw: 1280px;
  --pink:        #F4A0A5; /* 柔らかいサーモンピンク（装飾円・ブロブ） */
  --pink-deep:   #E85E85; /* 濃いローズ（ヒーロー円・番号・ボタン） */
  --pink-bright: #F46E9C; /* 鮮やかピンク（SP追従ボタン・NEWバッジ） */
  --pink-pale:   #EFD8D8; /* 淡いピンク（Find Schoolsの大きな円） */
  --cream:       #E8D6C3; /* News背景 */
  --cream-light: #F8EDE2; /* Reason/Flow/Contact上部の背景 */
  --tan:         #E2C3A7; /* お問い合わせ背景・STEP説明ボックス・フッター帯 */
  --brown:       #5b4a3f; /* 見出しの茶系 */
  --text:        #4a443f; /* 本文 */
  --rose-btn:    #F3E1E4; /* 送信ボタンの淡ピンク */
  --white:       #ffffff;
}

/* ---- リセット ---------------------------------------------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  color:var(--text);
  background: var(--cream-light);
  line-height:1.8;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
button{ font-family:inherit; cursor:pointer; }

/* ---- サイトコンテナ（1280px・中央寄せ・白の上に乗る）-------- */
.site{
  max-width:var(--maxw);
  margin:0 auto;
  background:var(--white);
  overflow:hidden;               /* はみ出す装飾円をコンテナ幅でクリップ */
  position:relative;
}

/* 内側の左右余白用ラッパ */
.inner{ width:100%; max-width:1040px; margin:0 auto; padding:0 24px; }

/* ============================================================
   PC / SP 表示切替ユーティリティ
   ============================================================ */
.pc-only{ display:block; }
.sp-only{ display:none; }
.pc-only-inline{ display:inline-block; }
.sp-only-inline{ display:none; }
@media (max-width:950px){
  .pc-only{ display:none !important; }
  .sp-only{ display:block !important; }
  .pc-only-inline{ display:none !important; }
  .sp-only-inline{ display:inline-block !important; }
}

/* ============================================================
   共通：セクション見出し（英字大 + 日本語小）
   ============================================================ */
.sec-head{ text-align:center; margin-bottom:36px; margin-top:30px; }
.sec-head .ja-sub{ font-size:13px; letter-spacing:.18em; color:var(--brown); display:block; margin-bottom:6px;font-weight: 800; }
.sec-head .en{ font-size:34px; font-weight:800; letter-spacing:.06em; color:var(--brown); line-height:1.2; }
/* .sec-head .en::after{ content:""; display:block; width:46px; height:2px; background:var(--brown); margin:14px auto 0; } */
.sec-head .lead{ font-size:14px; color:var(--text); margin-top:14px; }

.header-nav .social-icons{
  display:none;
}

/* 初期状態：PCを表示、SPを非表示 */
.PC {
	display: block;
}

.SP {
	display: none;
}

/* スマホ表示 */
@media screen and (max-width: 767px) {
	.PC {
		display: none;
	}
	.SP {
		display: block;
	}
	.site-header::before{
		display: none !important;
	}
}

/* ============================================================
   SP: スクロール追従ミニヘッダー
   - 初期状態では非表示（画面外に退避）
   - 元のヘッダーが上にスクロールアウトしたら is-visible が付与され
     上部に固定表示される（main.js で制御）
   ============================================================ */
.sp-sticky-header{
  display:none;
}
@media screen and (max-width: 767px) {
	.sp-sticky-header{
		display:flex;
		align-items:center;
		justify-content:space-between;
		position:fixed;
		top:0; left:0; right:0;
		z-index:900;
		padding:8px 16px;
		background:#fff;
		box-shadow:0 4px 14px rgba(0,0,0,.1);
		transform:translateY(-100%);
		visibility:hidden;
		transition:transform .3s ease, visibility .3s ease;
	}
	.sp-sticky-header.is-visible{
		transform:translateY(0);
		visibility:visible;
	}
	.sp-sticky-header__logo{ display:flex; align-items:center; }
	.sp-sticky-header__logo img{ height:36px; width:auto; display:block; }
	.sp-sticky-header .hamburger{ width:44px; height:44px; gap:5px; }
	.sp-sticky-header .hamburger span{ width:20px; height:2px; }
}
/* ============================================================
   ヘッダー
   ============================================================ */
.site-header{
  position: absolute;
  z-index: 40;
  width: 1280px;
}
.header-bar{ /* 中央に浮かぶ連絡先カード（PC） */
  font-size:12px; color:#6b6258; background:#fff;
  padding:10px 20px; display:flex; gap:18px; align-items:center;
  border:1px solid #e0d4c8; border-radius:8px;
  box-shadow:0 2px 10px rgba(0,0,0,.1);
}
.header-main{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 24px;
}
.site-logo img,.site-logo svg{ height:65px; width:auto; }
.header-nav{ display:flex; align-items:center; gap:14px; }
.social-icons{ display:flex; gap:10px; align-items:center; }
.social-icons a{
  width:54px; height:54px; border-radius:14px; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
}
/* SNSは画像アイコン（sns_*.png）を使用するため背景色は不要 */
.ic-line,.ic-insta,.ic-yt,.ic-fb{ background:none; }
.social-icons a img{ width:100%; height:100%; object-fit:contain; display:block; }
.social-icons svg{ width:30px; height:30px; }

/* ハンバーガー（丸ピンク） */
.hamburger{
  position:relative;
  width:62px; height:62px; border-radius:50%;
  background:var(--pink); border:none; cursor:pointer;
}
/* バーは絶対配置で全てボタン中心に重ねる → is-active でズレなく×に集約できる（gap依存を排除） */
.hamburger span{
  position:absolute; left:50%; top:50%;
  width:26px; height:2px; background:#fff; border-radius:2px;
  transition:transform .3s ease, opacity .3s ease;
}
.hamburger span:nth-child(1){ transform:translate(-50%,-50%) translateY(-8px); }
.hamburger span:nth-child(2){ transform:translate(-50%,-50%); }
.hamburger span:nth-child(3){ transform:translate(-50%,-50%) translateY(8px); }

/* ============================================================
   スライドインメニュー（右からのドロワー）
   ============================================================ */
.drawer-overlay{
  position:fixed; inset:0; z-index:990;
  background:rgba(45,35,30,.45);
  opacity:0; visibility:hidden;
  transition:opacity .35s ease, visibility .35s ease;
}
.drawer-overlay.is-open{ opacity:1; visibility:visible; }
.drawer{
  position:fixed; top:0; right:0; z-index:1000;
  width:340px; max-width:84vw; height:100%;
  display:flex; flex-direction:column;
  padding:88px 32px 32px;
  background:#fff;
  box-shadow:-10px 0 34px rgba(0,0,0,.18);
  transform:translateX(100%);
  visibility:hidden;
  transition:transform .38s cubic-bezier(.4,0,.2,1), visibility .38s ease;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
.drawer.is-open{ transform:translateX(0); visibility:visible; }
.drawer__close{
  position:absolute; top:24px; right:24px; width:40px; height:40px;
  background:none; border:none; cursor:pointer;
}
.drawer__close span{
  position:absolute; left:6px; top:19px; width:28px; height:2px;
  background:var(--brown); border-radius:2px;
}
.drawer__close span:first-child{ transform:rotate(45deg); }
.drawer__close span:last-child{ transform:rotate(-45deg); }
.drawer__list{ list-style:none; margin:0; padding:0; }
.drawer__list li{ border-bottom:1px solid #efe3d6; }
.drawer__list a{
  display:block; position:relative; padding:17px 24px 17px 6px;
  font-size:15px; font-weight:700; color:var(--brown);
  transition:color .2s ease;
}
.drawer__list a::after{
  content:"›"; position:absolute; right:8px; top:50%; transform:translateY(-50%);
  color:var(--pink); font-size:20px; line-height:1;
}
.drawer__list a:hover{ color:var(--pink-deep); }
.drawer__sns{ display:flex; flex-wrap:wrap; gap:16px; margin-top:auto; padding-top:28px; }
.drawer__sns a{ width:46px; height:46px; }
.drawer__sns img{ width:100%; height:100%; object-fit:contain; display:block; }
/* メニュー展開中は背面スクロールを固定 */
body.drawer-open{ overflow:hidden; }

/* ハンバーガー：展開中は×に */
.hamburger.is-active span:nth-child(1){ transform:translate(-50%,-50%) rotate(45deg); }
.hamburger.is-active span:nth-child(2){ opacity:0; }
.hamburger.is-active span:nth-child(3){ transform:translate(-50%,-50%) rotate(-45deg); }

/* ============================================================
   ヒーロー
   ============================================================ */
.hero{ position:relative; overflow:hidden; }
.hero__img{ width:100%; height:auto; display:block; }
.hero__img img{ width:100%; height:600px; object-fit:cover; }
/* 左の濃淡ピンクの円グループ */
.hero__circle-soft{
  position:absolute; left:-180px; top:-60px;
  width:760px; height:760px; border-radius:50%;
  background:rgba(244,160,165,.55);
  filter:blur(.5px);
}
.hero__circle-deep{
  position:absolute; left:-220px; top:60px;
  width:620px; height:620px; border-radius:50%;
  background:radial-gradient(circle at 60% 40%, rgba(232,94,133,.95), rgba(232,94,133,.78));
}
/* 右下の濃ピンク円 */
.hero__circle-br{
  position:absolute; right:-90px; bottom:-150px;
  width:340px; height:340px; border-radius:50%;
  background:rgba(232,94,133,.92);
}
.hero__circle-dot{
  position:absolute; right:120px; bottom:30px;
  width:64px; height:64px; border-radius:50%;
  background:rgba(244,160,165,.9);
}
.hero__copy{
  position:absolute; left:60px; top:50%; transform:translateY(-50%);
  width:430px; color:#fff; z-index:3;
}
.hero__copy h1{
  font-size:34px; font-weight:800; line-height:1.45; margin:0 0 16px;
  text-shadow:0 1px 6px rgba(180,60,90,.25);
}
.hero__copy p{ font-size:14px; line-height:1.9; margin:0 0 26px; }
.hero__btns{ display:flex; flex-direction:column; gap:16px; width:280px; }
.hero__btns a{
  display:block; text-align:center; background:#fff; color:var(--pink-deep);
  font-weight:800; padding:15px 10px; border-radius:22px; font-size:16px;
  letter-spacing:.04em;
  border:6px solid var(--rose-btn); /* 既定（学校一覧）＝白背景＋淡ピンクのフチ */
  box-shadow:0 8px 16px rgba(180,60,90,.20);
  transition:transform .25s cubic-bezier(.34,1.56,.64,1), box-shadow .25s ease;
}
.hero__btns a:hover{ transform:translateY(-4px); box-shadow:0 14px 24px rgba(180,60,90,.28); }
/* 1つ目（無料相談）＝淡ピンク背景＋白の太フチ */
.hero__btns a.is-lead{
  background:var(--rose-btn);
  border-color:#fff;
  border-width:4px;
  padding:13px 10px; /* 太フチ分を差し引き高さを揃える */
}
.hero__btns a.is-lead2{
  background:#fff;
  border-color:var(--rose-btn);
  border-width:4px;
  padding:13px 10px; /* 太フチ分を差し引き高さを揃える */
}

/* ============================================================
   NEWS（最新情報・ブログ）
   ============================================================ */
.news{ background:var(--cream); padding:60px 0 70px; }
.news__head{ margin-bottom:8px; }
.news__head .en{ font-size:13px; letter-spacing:.2em; color:var(--brown); }
.news__head .ja{ font-size:24px; font-weight:800; color:var(--brown); margin-top:4px; }
.news__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.news-card{                       /* 白の角丸カード＋やわらかい影 */
  border-radius:0px 14px;
  overflow:hidden;
  box-shadow:0 8px 22px rgba(150,120,90,.16);
}
.news-card__thumb{ position:relative; display:block; }
.news-card__thumb img{ width:100%; height:200px; object-fit:cover; display:block; }
.news-card__badge{                /* 左上の「NEW」バッジ */
  position:absolute; left:14px; top:14px; z-index:3;
  background:var(--pink-bright); color:#fff; font-size:12px; font-weight:700;
  padding:4px 14px; border-radius:20px; box-shadow:0 2px 6px rgba(0,0,0,.12);
}
.news-card__body{ padding:16px 18px 22px; background: #fff; min-height: 120px;}
.news-card__date{ font-size:12px; color:#8a8076; letter-spacing:.04em; }
.news-card__title{ display:block; font-size:15px; font-weight:700; color:var(--brown); margin-top:6px; line-height:1.6; }
.dots{ display:flex; gap:10px; justify-content:center; margin-top:34px; }
.dots span{ width:9px; height:9px; border-radius:50%; background:#cdbba8; cursor:pointer; }
.dots span.active{ background:var(--pink-deep); }

/* ---- NEWS / ブログ タブ ---------------------------------- */
.news-tabs{ display:flex; gap:10px; margin:0 0 25px; }
.news-tab{
  -webkit-appearance:none; appearance:none;
  border:1.5px solid var(--pink-deep); background:#fff; color:var(--pink-deep);
  font-family:inherit; font-weight:800; font-size:14px; letter-spacing:.08em;
  padding:9px 28px; border-radius:999px; line-height:1; cursor:pointer;
  transition:background .25s ease, color .25s ease, box-shadow .25s ease;
  z-index:10;
}
.news-tab:hover{ background:var(--rose-btn); }
.news-tab.is-active{
  background:var(--pink-deep); color:#fff; border-color:var(--pink-deep);
  box-shadow:0 6px 14px rgba(232,94,133,.28);
}
.news-tab.is-active:hover{ background:var(--pink-deep); }

/* タブ行：NEWS/ブログ切替（左）＋ 一覧への導線（右）を同一行に配置。
   カード下ではなくここに置くことで、下の REASONS の位置・装飾円を動かさない。 */
.news-tabbar{ display:flex; align-items:center; justify-content:space-between; gap:14px 24px; flex-wrap:wrap; margin:0 0 25px; }
.news-tabbar .news-tabs{ margin:0; }
/* 一覧への導線：セクションになじむ控えめなテキストリンク（サイト共通の「→」リンク系） */
.news-more__btn{
  display:inline-flex; align-items:center; gap:7px; flex-shrink:0;
  color:var(--pink-deep); font-size:14px; font-weight:800; letter-spacing:.06em;
  text-decoration:underline; text-underline-offset:5px; text-decoration-thickness:1.5px;
  text-decoration-color:rgba(232,94,133,.4);
  transition:color .2s ease, text-decoration-color .2s ease;
}
.news-more__btn .ic{ width:14px; height:14px; display:inline-flex; transition:transform .2s ease; }
.news-more__btn .ic svg{ width:100%; height:100%; }
.news-more__btn:hover{ color:var(--pink-bright); text-decoration-color:var(--pink-bright); }
.news-more__btn:hover .ic{ transform:translateX(3px); }
/* モバイル：タブ右横に装飾ピンク円があり、ピンクのテキストリンクが埋もれて見えなくなるため、
   白い下地の小さめピルにして視認性を確保（タブ行内に収め高さは増やさない＝下のREASONS位置に影響なし） */
@media (max-width:767px){
  .news-more__btn{
    position:relative; z-index:11;
    background:#fff; border:1.5px solid var(--pink-deep);
    border-radius:999px; padding:7px 15px; font-size:12.5px;
    text-decoration:none; box-shadow:0 2px 8px rgba(74,58,53,.1);
    transition:background .2s ease, color .2s ease, transform .2s ease;
  }
  .news-more__btn:hover{ background:var(--pink-deep); color:#fff; }
}

/* パネル（タブで表示切替） */
.news-panel{ display:none; }
.news-panel.is-active{ display:block; }

/* PC では3カラムグリッドで全件見えるためドット不要 */
@media (min-width:951px){
  .news-panel .dots{ display:none; }
}

/* ============================================================
   REASON
   ============================================================ */
.reason{ position:relative; background:var(--cream-light); padding:60px 0 70px; overflow:hidden; }
.reason__blob1{ /* 左の大きいピンクブロブ */
  position:absolute; left:-160px; top:120px; width:420px; height:520px;
  background:var(--pink); border-radius:48% 52% 55% 45%/55% 48% 52% 45%;
  opacity:.85; z-index:0;
}
.reason__blob2{ /* 右上のタン系ブロブ */
  position:absolute; right:-140px; top:-40px; width:360px; height:380px;
  background:var(--tan); border-radius:50%; opacity:.55; z-index:0;
}
.reason__blob3{ /* 右下の淡ピンク */
  position: absolute;
  right: -400px;
  top: 1350px;
  width: 700px;
  height: 700px;
  background: var(--pink-pale);
  border-radius: 50%;
  opacity: .7;
  z-index: 0;
}
.reason .inner{ position:relative; z-index:2; }
.reason-list{ position:relative; margin-top:150px; display:flex; flex-direction:column; gap:10px; }
/* 左の大きいサーモンピンクのパネル（右端が大きな曲線） */
.reason-list::before{
  display:none;
  content:""; position:absolute; z-index:0;
  left:-260px; top:-80px; bottom:-50px; width:640px;
  background:var(--pink);
  border-radius:0 50% 50% 0 / 0 50% 50% 0;
  pointer-events:none;
}
.reason-item{
  position:relative; z-index:1;
  display:grid; grid-template-columns:1fr 1fr;
  gap:0px; align-items:stretch;
}
.reason-item.rev .reason-item__txt{ order:2; text-align:right; height:80%; }
.reason-item.rev .reason-item__img{ order:1; }

/* テキスト＝白い角丸カード */
.reason-item__txt{
  position:relative;
  display:flex; flex-direction:column; justify-content:center;
  background:var(--white);
  border-radius: 0px 0px 0px 16px;
  padding:38px 42px;
  box-shadow:0 14px 32px rgba(150,120,90,.16);
  height:80%;
  /* 画像側の min-height と同値。文章が少ない項目（01など）で
     画像だけが min-height で引き上げられ、高さがズレるのを防ぐ */
  min-height:236px;
}
.reason-item__txt2{
  border-radius: 0px 16px 0px 0px;
}

/* 画像＝角丸＋影、カードと高さを揃える */
.reason-item__img{ display:flex; }
.reason-item__img img{
  width:100%; height:80%; min-height:236px; object-fit:cover;
  border-radius: 0px 16px 0px 0px;
  box-shadow:0 14px 32px rgba(150,120,90,.14);
}
.reason-item__img2 img{
  border-radius: 0px 0px 0px 16px;
}
/* 大きな袋文字のナンバー（カード上に重ねる） */
.reason-item__num{
  position:absolute; top:-54px; z-index:3;
  font-size:92px; font-weight:800; line-height:1; letter-spacing:.02em;
  color:transparent;
  -webkit-text-stroke:2px var(--white);
  /* フチを塗りの後ろに描画＝塗りが食われず、外側だけに自然な縁取りが出る
     （これが無いと細い箇所でフチが内側へ貫通して見える） */
  paint-order: stroke fill;
  font-weight: 700; /* 細すぎるとガタつく */
  -webkit-font-smoothing: antialiased;
}
.reason-item:not(.rev) .reason-item__num{ 
  left: -62px;
  top: -60px;
  -webkit-text-stroke-color: var(--white);
  color: var(--pink);
}
.reason-item.rev .reason-item__num{ right:-60px; -webkit-text-stroke-color:var(--pink);color: #fff; }

/* REASONS 番号：01〜04 を個別配色（キャプチャ準拠）
   01・04 = ピンク塗り＋白フチ / 02 = ピンク塗りのみ（フチ無し） / 03 = 白塗り＋ピンクフチ
   ※位置(left/right)は既存ルールのまま。配色のみ上書き（高い詳細度で SP 指定にも優先） */
.reason-list > .reason-item:nth-of-type(1) .reason-item__num,
.reason-list > .reason-item:nth-of-type(4) .reason-item__num{
  color:var(--pink-deep);
  -webkit-text-stroke:3px var(--white);
}
.reason-list > .reason-item:nth-of-type(2) .reason-item__num{
  color:var(--pink-deep);
  -webkit-text-stroke:0;
}
.reason-list > .reason-item:nth-of-type(3) .reason-item__num{
  color:var(--white);
  -webkit-text-stroke:3px var(--pink-deep);
}

/* タイトル（2トーン＋下線） */
.reason-item__ttl{ font-size:23px; font-weight:800; color:var(--brown); line-height:1.5; margin:0 0 16px; }
.reason-item__ttl .mk{ color:var(--pink-deep); }
.reason-item__ttl::after{ content:""; display:block; width:56px; height:1px; background:var(--brown); border-radius:2px; margin:16px 0 0; }
.reason-item.rev .reason-item__ttl::after{ margin-left:auto; }
.reason-item__desc{ font-size:14px; line-height:1.95; color:var(--text); }

/* Point! ボックス（白い破線ボックス） */
.point{
  position:relative; z-index:3; margin:64px auto 0; max-width:1000px;
  background:var(--white);
  border:2px dashed #8d8175;
  border-radius:28px;
  padding:54px 70px 50px;
  color:var(--text);
}
.point__tag{
  position: absolute;
  left: 46px;
  top: -26px;
  transform: rotate(-25deg);
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  font-style: italic;
  font-weight: 700;
  font-size: 48px;
  line-height: 1;
  color: var(--pink);
  text-shadow: none;
}
.point__head{
  background:#3a342e; color:#fff; border-radius:7px; text-align:center;
  font-size:21px; font-weight:800; letter-spacing:.03em;
  padding:13px 24px; margin:0 auto 26px; max-width:580px;
}
.point__lead{ text-align:center; font-size:16px; line-height:1.9; margin:0 0 26px; color:var(--text); }
.point__lead .mk{ color:var(--pink-deep); font-weight:700; border-bottom:none; }
.point__box{
  background:#EFE2D0; border:none; border-radius:10px;
  padding:22px 34px 22px 48px; margin:0 auto 26px; max-width:540px;
}
.point__box li{ position:relative; font-size:16px; line-height:1.7; padding:4px 0 4px 32px; color:var(--text); }
.point__box li::before{
  content:"・"; position:absolute; left:0; top:3px;
  color:#000; font-weight:700; font-size:17px;
}
.point__box li.is-empty{ min-height:1.7em; }
.point__foot{ text-align:center; font-size:14px; line-height:1.95; margin:0; color:var(--text); }
.point__foot .mk{ color:var(--pink-deep); font-weight:700; }

/* Point! 下の2ボタン */
.point-btns{
  position:relative; z-index:3;
  display:flex; justify-content:center; gap:34px;
  margin:36px auto 0; max-width:1000px;
}
.point-btn{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  width: 320px;
  max-width: 46%;
  padding: 19px 26px;
  border-radius: 44px;
  font-size: 17px;
  font-weight: 800;
  color: var(--brown);
  box-shadow: 0 8px 18px rgba(150, 120, 90, .18);
  position: relative;
}
.point-btn::after{
  content: "";
  width: 0;
  height: 0;
  right: 30px;
  border-style: solid;
  border-width: 8px 0 8px 13px;
  border-color: transparent transparent transparent var(--pink);
  position: absolute;
}
.point-btn.is-light{ background:var(--white); border:2px solid var(--pink); }
.point-btn.is-rose{ background:#E9C7CD; border:2px solid #fff; }

/* ============================================================
   FIND SCHOOLS
   ============================================================ */
.find{ position:relative; background:var(--cream-light); padding:56px 0 300px; overflow:hidden; }
.find__bigcircle{ /* 中央の大きなタン円 */
  position:absolute; left:50%; top:30px; transform:translateX(-50%);
  width:900px; height:900px; border-radius:50%;
  background:var(--tan); opacity:1; z-index:1;
  border:10px solid #fff;
}
.find__smallcircle{ /* 左上の淡ピンク円 */
  position: absolute;
  left: 150px;
  top: 50px;
  width: 400px;
  height: 400px;
  border-radius: 50%;
  background: var(--pink-pale);
  opacity: 1;
  z-index: 0;
  border: 10px solid #fff;
}
.find .inner{ position:relative; z-index:2; }
.find .sec-head{margin-top:100px;}
.find .sec-head .en::after{ content:""; display:block; width:46px; height:2px; background:var(--brown); margin:14px auto 0; }
.find__cards{ display:grid; grid-template-columns:repeat(2,1fr); gap:100px; max-width:650px; margin:34px auto 0; }
.find-card{
  position:relative; background:var(--white);
  overflow:hidden; box-shadow:0 14px 30px rgba(120,95,70,.22);
  border: 3px solid #fff;
  transition:transform .25s cubic-bezier(.34,1.56,.64,1), box-shadow .25s ease;
}
.find-card:hover{ transform:translateY(-6px); box-shadow:0 22px 40px rgba(120,95,70,.3); }
.find-card.tw{ border-radius:0px 50px 0px 50px; } /* 内側上コーナーを大きく */
.find-card.cn{ border-radius:0px 50px 0px 50px; }
.find-card img{ width:100%; height:236px; object-fit:cover; display:block; }
.find-card__label{
  position:relative; padding:16px 34px 18px; background:var(--white);
  text-align:center; font-weight:800; font-size:17px; line-height:1.5; color:var(--brown);
}
.find-card__label .mk{ display:block; } /* 「○○留学の」を上段に */
.find-card.tw .find-card__label .mk{ color:var(--pink-deep); }
.find-card.cn .find-card__label .mk{ color:#D6477F; }
.find-card__label::after{ /* 右側のピンク三角 */
  content:""; position:absolute; right:10px; top:50%; transform:translateY(-50%);
  width:0; height:0; border-style:solid; border-width:7px 0 7px 11px;
  border-color:transparent transparent transparent var(--pink);
}
.find__btn{ display:block; width:360px; max-width:90%; margin:46px auto 0; text-align:center;
  background:#8d8073; color:#fff; font-weight:800; font-size:16px; padding:18px; border-radius:40px;
  box-shadow:0 8px 16px rgba(120,95,70,.25);
  transition:transform .25s cubic-bezier(.34,1.56,.64,1), box-shadow .25s ease; }
.find__btn:hover{ transform:translateY(-4px); box-shadow:0 14px 24px rgba(120,95,70,.34); }

/* ============================================================
   FLOW
   ============================================================ */
.flow{ position:relative; background:var(--cream-light); padding:50px 0 0px 0; }
.flow .inner{ position:relative; z-index:2; }
.flow .sec-head .en::after{ content:""; display:block; width:46px; height:2px; background:var(--brown); margin:14px auto 0; }
/* 上部の大きな画像 */
.flow__hero{ max-width:760px; margin:10px auto 56px; }
.flow__hero img{
  width: 500px;
  height: auto;
  margin: auto;
  border-radius: 50px;
  box-shadow: 0 16px 36px rgba(120, 95, 70, .20);
}
.flow__list{ max-width:760px; margin:40px auto 0; position:relative; }
.flow-step{ display:grid; grid-template-columns:130px 1fr; gap:24px; align-items:flex-start; padding-bottom:30px; position:relative; }
.flow-step__left{ display:flex; flex-direction:column; align-items:center; }
.flow-step__no{ font-size:14px; font-weight:800; letter-spacing:.08em; color:var(--brown); margin-bottom:10px; }
.flow-step__icon{
  width:80px; height:80px; border-radius:50%; background:var(--pink);
  display:flex; align-items:center; justify-content:center;
}
.flow-step__icon svg{ width:46px; height:46px; fill:#fff; }
/* 縦の点線（円の下〜次のSTEPラベルの間） */
.flow-step:not(:last-child) .flow-step__left::after{
  content: "";
  position: absolute;
  top: 140px;
  bottom: 8px;
  left: 65px;
  border-left: 3px dotted #000;
}
.flow-step__body{ padding-top:15px; }
.flow-step__ttl{ font-size:21px; font-weight:800; color:var(--brown); margin:0 0 12px; }
.flow-step__desc{
  background:var(--tan); color:#fff; font-weight:700; border-radius:0px 12px;
  padding:18px 24px; font-size:16px; line-height:1.7; text-align:left;
}
.flow-step__note{ font-size:13px; color:#8a8076; margin:10px 0 0; line-height:1.7; }

/* FLOW → CONTACT への曲線（大きな円弧でくり抜く） */
.flow__curve{
  position:relative; height:170px; margin-top:30px; background:var(--cream-light);
}
.flow__curve::after{
  content:""; position:absolute; left:50%; transform:translateX(-50%);
  bottom:-1000px; width:1600px; height:1200px; border-radius:50%;
  background:var(--tan);
}
.flow_after{
  text-align:center;
}
/* ============================================================
   CONTACT
   ============================================================ */
.contact{ background:var(--tan); padding:100px 0 90px; position:relative; }
.contact .sec-head .ja-sub,.contact .sec-head .en{ color:var(--brown); }
.contact .sec-head .en::after{ content:""; display:block; width:46px; height:2px; background:var(--brown); margin:14px auto 0; }
.contact__lead{ text-align:center; font-size:14px; line-height:1.9; margin-bottom:34px; color:var(--brown); }
/* 送信結果メッセージ */
.contact__notice{
  max-width:620px; margin:0 auto 24px; padding:14px 20px; border-radius:12px;
  font-size:14px; font-weight:700; text-align:center; line-height:1.7;
  position:relative; z-index:2;
}
.contact__notice.is-ok{ background:#eaf7ec; color:#2e7d43; border:1px solid #bfe5c8; }
.contact__notice.is-ng{ background:#fdeeee; color:#c0392b; border:1px solid #f3c9c6; }
/* ハニーポット（スパムボット対策の不可視フィールド） */
.contact__hp{
  position:absolute !important; left:-9999px; top:auto;
  width:1px; height:1px; overflow:hidden;
}
.contact__form{ max-width:620px; margin:0 auto; display:flex; flex-direction:column; gap:22px; }
.contact__form input,.contact__form textarea{
  width:100%; border:none; border-radius:14px; background:#fff;
  padding:18px 22px; font-size:15px; color:#333; font-family:inherit;
  box-shadow:0 2px 6px rgba(120,90,60,.12);
}
.contact__form textarea{ min-height:300px; resize:vertical; }
/* ラベル付きフィールド（footer.php 共通フォーム） */
.contact__field{ display:flex; flex-direction:column; gap:10px; }
.contact__field > label{ font-size:13px; font-weight:700; color:var(--brown); padding-left:8px; letter-spacing:.06em; }
.contact__row{ display:grid; grid-template-columns:1fr 1fr; gap:26px; }
.contact__select{ position:relative; }
.contact__select select{
  width:100%; border:none; border-radius:14px; background:#fff;
  padding:18px 54px 18px 22px; font-size:15px; font-weight:700; color:#333; font-family:inherit;
  box-shadow:0 2px 6px rgba(120,90,60,.12);
  -webkit-appearance:none; appearance:none; cursor:pointer;
}
.contact__select::after{ /* プルダウンの▼ */
  content:""; position:absolute; right:20px; top:50%; transform:translateY(-50%);
  border-left:9px solid transparent; border-right:9px solid transparent;
  border-top:12px solid #4a4a4a; pointer-events:none;
}
.contact__select select.is-line{ color:#06C755; } /* LINE選択時はブランドカラー */
.contact__form .submit{
  align-self:center; background:var(--rose-btn); color:#7a5a60; font-weight:800;
  border:2px solid #fff; border-radius:40px; padding:16px 70px; font-size:17px;
  box-shadow:0 6px 14px rgba(150,120,90,.2); margin-top:8px; cursor:pointer;
  transition:transform .25s cubic-bezier(.34,1.56,.64,1), box-shadow .25s ease;
}
.contact__form .submit:hover{ transform:translateY(-4px); box-shadow:0 14px 24px rgba(150,120,90,.32); }
.contact__bigcircle{ /* 中央の大きなタン円 */
  position: absolute;
  left: 50%;
  top: -700px;
  transform: translateX(-50%);
  width: 2000px;
  height: 800px;
  border-radius: 50%;
  background: var(--cream-light);
  opacity: 1;
  z-index: 0; /* 前セクションの内容(z-index付き)を覆わないよう1→0 */
}
/* footer.php 共通 Contact：トップ以外は上に余白＋タン曲線でつなぐ */
body:not(.home) .contact--footer{ margin-top:110px; }
body:not(.home) .contact--footer::before{
  content:""; position:absolute; left:50%; transform:translateX(-50%);
  top:-160px; width:2200px; height:900px; border-radius:50%;
  background:var(--tan); z-index:0;
}
body:not(.home) .contact--footer .inner{ position:relative; z-index:2; }
/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{ background:#fff; padding:54px 0 44px; }
.site-footer .inner{ max-width:1150px; }
.footer-grid{ display:grid; grid-template-columns:1.3fr 1fr 1.7fr 2fr; gap:30px; align-items:start; }
/* ロゴ・SNSは縦中央寄せ */
.footer-brand{ align-self:center; }
.footer-brand .site-logo img{ width:auto; height:62px; max-width:100%; }
.footer-social{ align-self:center; }
/* 狭いカラム(1fr)に4アイコンを収めるため2×2グリッド */
.footer-social .social-icons{ display:grid; grid-template-columns:repeat(2,46px); gap:14px; justify-content:center; }
.footer-social .social-icons a{ width:46px; height:46px; border-radius:12px; }
/* カラム間の縦の区切り線（クイックリンク／お問い合わせの左側）
   長さを固定し、上下中央で2本とも揃える */
.footer-col{ position:relative; padding-left:38px; align-self:stretch; }
.footer-col::before{
  content:""; position:absolute; left:0; top:50%; transform:translateY(-50%);
  width:1px; height:110px; background:#d8ccbb;
}
.footer-col h4{ text-align:center; font-size:16px; font-weight:800; color:var(--brown); margin:0 0 20px; letter-spacing:.04em; }
/* クイックリンク（2列・短い項目は中央寄せ） */
.footer-links{ display:grid; grid-template-columns:auto auto; gap:12px 40px; justify-content:center; }
.footer-links a{ font-size:14px; color:var(--text); text-align:center; white-space:nowrap; }
.footer-links a:hover{ color:var(--pink-deep); }
/* お問い合わせ */
.footer-col--contact{ text-align:left; }
.footer-tel{ display:flex; align-items:center; gap:8px; margin:0 0 12px; color:#2e2a26; font-size:28px; font-weight:800; line-height:1.1; letter-spacing:.02em; }
.footer-tel__icon{ display:inline-flex; }
.footer-tel__icon svg{ width:28px; height:28px; }
.footer-info{ margin:0; font-size:13px; line-height:2; color:#6b625a; }

/* ============================================================
   SP 追従 問い合わせボタン
   ============================================================ */
.sp-floating{
  position:fixed; left:0; right:0; bottom:16px; z-index:80;
  padding:8px 12px 12px;
  transition:transform .3s ease, opacity .3s ease, bottom .3s ease;
}
/* ②トップへ戻る(#page_top)を①問合せバーの上に置く配置に変更したため、
   バー(①)は持ち上げず下(bottom:16px)のままにする（is-raisedは実質無効） */
.sp-floating.is-raised{ bottom:16px; padding-right:12px; }
.sp-floating.is-hidden{ transform:translateY(140%); opacity:0; pointer-events:none; }
.sp-floating__label{
  display:inline-block; background:#fff; color:#333; font-weight:800; font-size:14px;
  border:2px solid #333; border-radius:6px; padding:3px 16px; margin:0 auto 8px;
  position:relative; left:50%; transform:translateX(-50%);
}
.sp-floating__btn{
  display:flex; align-items:center; justify-content:center; gap:14px;
  background:#F4A0A5; color:#fff; font-weight:800; font-size:16px;
  border:3px solid #fff; border-radius:44px; padding:14px;
  box-shadow:0 6px 18px rgba(0,0,0,.2);
  max-width: 500px;
  margin: auto;
}
.sp-floating__btn .sep{ width:1px; height:22px; background:rgba(255,255,255,.7); }
.sp-floating__btn svg{ width:24px; height:24px; fill:#fff; }
.sp-floating__btn_a{
  display:flex; align-items:center; justify-content:center;
  gap:8px;font-size: 14px;
}
body #page_top{
  bottom: 2%;
}
/* スマホ：②トップへ戻る(#page_top)を①問合せバーの上に配置（①②の上下入れ替え）。
   お問い合わせ(#contact)以下までスクロールしバーが隠れたら、②↑を元の下(16px)へ戻す（可変） */
@media (max-width:767px){
  body #page_top{ bottom: 97px; transition: bottom .3s ease; }
  body.sp-pagetop-lowered #page_top{ bottom: 16px; }
}
/* ============================================================
   下位ページ ヘッダー
   ============================================================ */
.subpage-hero{ position:relative; overflow:hidden; }
.subpage-hero__img img{ width:100%; height:340px; object-fit:cover; }
.subpage-hero__inner{
  position:absolute; left:0; top:50%; transform:translateY(-50%);
  width:50%; padding-left:60px; color:#fff; z-index:3;
}
.subpage-hero__circle{
  position:absolute; left:-200px; top:50%; transform:translateY(-50%);
  width:760px; height:760px; border-radius:50%;
  background:rgba(232,94,133,.55); z-index:1;
}
.subpage-hero h1{ font-size:32px; font-weight:800; line-height:1.5; margin:0; }
.subpage-hero h1 .u{ border-bottom:3px solid #fff; padding-bottom:4px; }
.subpage-band{ /* 文字下にうっすら帯（無料費用は…のイントロ） */
  background:var(--cream-light); padding:50px 0; text-align:center;
}
.subpage-band h2{ font-size:26px; font-weight:800; color:var(--brown); }
.subpage-band h2 .accent{ color:var(--pink-deep); }
.subpage-content{ padding:50px 0 70px; background:#fff; }

/* ============================================================
   レスポンシブ（SP）
   ============================================================ */
@media (max-width:950px){
  body{ font-size:15px; }
  .inner{ padding:0 18px; }

  /* ヘッダー */
  .header-bar{ display:none; }
  .header-main{ padding:10px 14px; }
  .site-logo img,.site-logo svg{ height:42px; }
  .social-icons a{ width:34px; height:34px; border-radius:9px; }
  .social-icons svg{ width:20px; height:20px; }
  .hamburger{ width:40px; height:40px; }
  .hamburger span{ width:18px; }

  /* ヒーロー */
  .hero__img img{ height:360px; }
  .hero__copy{ left:0; right:0; width:auto; text-align:center; padding:0 24px; top:46%; }
  .hero__copy h1{ font-size:24px; }
  .hero__btns{ width:220px; margin:0 auto; }
  .hero__circle-soft{ left:50%; top:-120px; transform:translateX(-50%); width:520px; height:520px; }
  .hero__circle-deep{ left:50%; top:-40px; transform:translateX(-50%); width:460px; height:520px;
    border-radius:50% 50% 46% 54%/60% 60% 40% 40%; }
  .hero__circle-br{ right:-70px; bottom:-90px; width:200px; height:200px; }
  .hero__circle-dot{ right:30px; bottom:auto; top:30px; width:40px; height:40px; }

  /* NEWS：カルーセル（横スクロール＋スクロールスナップでスワイプ切替）*/
  .news{ padding:80px 0 155px; }
  .news-panel .news__track{
    display:flex; gap:14px;
    overflow-x:auto; overflow-y:hidden;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch; scroll-behavior:smooth;
    padding:6px 7% 10px;            /* 両脇の余白＝前後カードのチラ見せ＆中央寄せ */
    scrollbar-width:none;           /* Firefox：スクロールバー非表示 */
  }
  .news-panel .news__track::-webkit-scrollbar{ display:none; } /* WebKit：同上 */
  .news-panel .news__track > .news-card{
    flex:0 0 86%; max-width:320px; margin:0;
    scroll-snap-align:center;
  }
  .news-card__thumb img{ height:180px; }

  /* ===== REASON（スマホ：2カラム重なりカード） ===== */
  .reason{ padding:0 0 40px; background:var(--cream-light); overflow:hidden; }
  /* 見出しの淡ピンクドーム（見出しの背面のみ） */
  /*
  .reason::before{
    content:""; position:absolute; z-index:0;
    left:50%; top:-70px; transform:translateX(-50%);
    width:170%; height:230px; border-radius:50%;
    background:var(--pink-pale);
  }
  */
  .reason .sec-head{ position:relative; z-index:2; margin:0 0 18px; padding:0px 0 22px; }
  .reason .sec-head .en{ font-size:32px; }
  .reason .sec-head .ja-sub{ font-size:13px; }

  /* 左のコーラルパネル（blob1を再利用：01の背面） */
  .reason__blob1{
    display: block;
    opacity: 1;
    z-index: 2;
    left: -300px;
    top: 70px;
    width: 500px;
    height: 500px;
    border-radius: 0 50% 50% 0 / 0 50% 50% 0;
  }
  .reason__blob2{
    position: absolute;
    top: 95px;
    left: 0px;
    right: 0px;
    width: 100%;
    height: 50px;
    background: var(--cream-light);
    z-index: 1;
    border-radius: 0px;
    opacity: 1;
  }
  .reason__blob3{ display:none; }

  /* リスト */
  .reason .inner{ padding:0 16px; }
  .reason-list{ position:relative; z-index:1; margin-top:30px; gap:56px; }
  .reason-list::before{ display:none; }
  .reason-item{ grid-template-columns:1.18fr 1fr; gap:0; align-items:center; }
  /* 偶数(.rev)は画像が左に来るが、列幅を入れ替えて画像トラックを 1fr に。
     これで「左に来た画像」も「右に来た画像(奇数)」と同じ幅に統一される */
  .reason-item.rev{ grid-template-columns:1fr 1.18fr; }

  .reason-item.rev .reason-item__txt{ text-align:right; }
  .reason-item__img,
  .reason-item.rev .reason-item__img{ order:0; margin:0; align-items:stretch;height:280px; }
  .reason-item__img img,
  .reason-item__img2 img{
    width:100%; height:100%; min-height:210px; object-fit:cover;
    border-radius:14px 0px 0px 0px; box-shadow:0 12px 26px rgba(150,120,90,.16);
    border-radius:0px 0px 14px 0px;
    object-position: 100% 50%;
  }
  .reason-item__img{
    border-radius:0px 0px 14px 0px;
  }
  
  /* テキストカードを画像側に少し重ねる */
  .reason-item:not(.rev) .reason-item__txt{ position:relative; z-index:2; margin-right:-22px; }
  .reason-item:not(.rev) .reason-item__img{ position:relative; z-index:1; }
  .reason-item.rev .reason-item__txt{ position:relative; z-index:2; margin-left:-22px; }
  .reason-item.rev .reason-item__img{ position:relative; z-index:1; }
  .reason-item.rev .reason-item__txt2{height:280px;}
  .reason-item__txt,
  .reason-item.rev .reason-item__txt{
    order:0; height:auto;
    background:#fff; border-radius:14px 0px 0px 0px; padding:22px 18px;
    box-shadow:0 12px 26px rgba(150,120,90,.18);
    height:280px;
  }
  .reason-item.rev .reason-item__txt{ order:2 !important; text-align:right; border-radius:0px 0px 14px 0px; }
  .reason-item.rev .reason-item__img{ order:1 !important; border-radius:14px 0px 0px 0px;}
  .reason-item.rev .reason-item__img img{ border-radius:14px 0px 0px 0px; }

  /* 袋文字ナンバー（カード外側上に重ねる） */
  .reason-item__num{ top:-60px; font-size:58px; -webkit-text-stroke-width:2px; }
  .reason-item:not(.rev) .reason-item__num{ left:0; right:auto; color:var(--pink); -webkit-text-stroke-color:#fff; }
  .reason-item.rev .reason-item__num{ right:0; left:auto; color:var(--pink); -webkit-text-stroke-color:#fff; }

  .reason-item__ttl{ font-size:15px; line-height:1.5; margin:0 0 12px; }
  .reason-item__ttl::after{ margin:12px 0 0; }
  .reason-item.rev .reason-item__ttl::after{ margin-left:auto; }
  .reason-item__desc{ font-size:12px; line-height:1.85; }
  .point{ margin-top:50px; padding:42px 14px 32px; border-radius:20px 0px; }
  .point__tag{ font-size: 40px;left: -10px;top: -10px; }
  .point__head{ font-size:15px; padding:11px 14px; }
  .point__lead{ font-size:13.5px; }
  .point__box{ padding: 18px 8px 18px 30px; }
  .point__box li{ 
     font-size: 13px;
     padding-left: 15px;
     padding-top: 6px;
   }
  .point__foot{ font-size:13px; }
  .point-btns{ flex-direction:column; align-items:center; gap:16px; margin-top:28px; }
  .point-btn{ width:100%; max-width:320px; }

  /* FIND */
  .find{ padding:40px 0 180px; }
  .find__cards{ grid-template-columns:1fr; gap:26px; max-width:320px; }
  .find__bigcircle{
    width:800px; height:800px; top:80px;
   }
  .find__smallcircle{ display:none; }
  .find-card img{ height:100%; }
  .find__btn{ width:90%; max-width: 500px;}
  .find-card{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0px;
    align-items: stretch;
    height: 135px;
  }
  .find-card__label{
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  .find .sec-head {
      margin-top: 150px;
  }
  
  /* FLOW */
  .flow-step{ grid-template-columns:90px 1fr; gap:8px; }
  .flow-step__icon{ width:60px; height:60px; }
  .flow-step__icon svg{ width:34px; height:34px; }
  .flow-step:not(:last-child) .flow-step__left::after{ left:44px; top:120px; }
  .flow-step__ttl{ font-size:17px; }
  .flow-step__desc{ padding:14px 16px; font-size:14px; }
  .flow__curve{ height:90px; }
  .flow__curve::after{ width:900px; height:700px; bottom:-560px; }

  /* CONTACT */
  .contact{ padding:6px 0 70px; }
  .contact__form textarea{ min-height:200px; }
  .contact__form .submit{ padding:14px 50px; }
  .contact__row{ grid-template-columns:1fr; gap:22px; }
  body:not(.home) .contact--footer{ margin-top:80px; }
  body:not(.home) .contact--footer::before{ top:-100px; width:1400px; height:600px; }
  .contact .sec-head{
    margin-top: 150px;
  }
  .contact__bigcircle{
    width: 1400px;
  }

  /* FOOTER */
  .site-footer{ padding:36px 0 90px; }       /* 追従ボタン分の余白 */
  .footer-grid{ grid-template-columns:1fr; gap:26px; text-align:center; }
  .footer-brand{ display:flex; justify-content:center; }
  .footer-social{ display:flex; justify-content:center; }
  /* モバイルは幅に余裕があるので4アイコンを横1列に */
  .footer-social .social-icons{ display:flex; gap:16px; justify-content:center; }
  .footer-col{ border-left:none; border-top:1px solid #e3d8cb; padding:22px 0 0; }
  .footer-links{ max-width:300px; margin:0 auto; }
  .footer-col--contact{ text-align:center; }
  .footer-tel{ justify-content:center; }
  .footer-col::before{display:none;}

  /* 下位ページ */
  .subpage-hero__img img{ height:240px; }
  .subpage-hero__inner{ width:auto; right:0; padding:0 24px; text-align:center; }
  .subpage-hero h1{ font-size:22px; }
  .subpage-hero__circle{ left:50%; transform:translate(-50%,-50%); width:520px; height:520px; }
  .subpage-band h2{ font-size:19px; }
}

/* PCでは追従ボタンを隠す */
@media (min-width:951px){
  .sp-floating{ display:none !important; }
}


/* ============================================================
   完成版キャプチャ反映：PCトップ調整
   - 白いヘッダーのカーブ
   - 飛行機を右寄せに見せるヒーロー
   - 左の丸コピー／右下の装飾丸
   - NEWS見出しとカード位置
   ============================================================ */
.header-name{
  display:block;
  margin:3px 0 0;
  color:var(--text);
  font-size:13px;
  font-weight:700;
  line-height:1.1;
  text-align:center;
  letter-spacing:.02em;
}

@media (min-width:951px){
  /* Header -------------------------------------------------- */
  .site-header{
    top:0;
    left:0;
    right:0;
    width:100%;
    max-width:var(--maxw);
    height:210px;
    z-index:60;
    pointer-events:none;
    overflow: hidden;
  }
  .site-header::before{
    content:"";
    position:absolute;
    left:-330px;
    top:-455px;
    width:1060px;
    height:660px;
    border-radius:50%;
    background:#fff;
    z-index:0;
    pointer-events:none;
  }
  .header-main{
    position:relative;
    z-index:1;
    display:flex;
    align-items:flex-start;
    justify-content:flex-start;
    padding:34px 38px 0 60px;
    min-height:160px;
    pointer-events:auto;
  }
  .header-main__left{
    display:flex;
    align-items:flex-start;
    gap:38px;
  }
  .site-header .site-logo{
    display:block;
    flex:0 0 auto;
  }
  .site-header .site-logo img,
  .site-header .site-logo svg{
    height:65px;
    width:auto;
  }
  .site-header .header-name{
    margin-top:2px;
    font-size:14px;
  }
  .header-bar{
    display:block;
    flex:0 0 auto;
    margin-top:4px;
    padding:0;
    color:#51423c;
    background:transparent;
    border:none;
    border-radius:0;
    box-shadow:none;
    line-height:1.35;
  }
  .header-bar p{
    margin:0;
  }
  .header-tel{
    display:flex;
    align-items:center;
    gap:5px;
    margin:0 0 5px;
    color:#51423c;
    font-size:32px;
    font-weight:800;
    line-height:1;
    letter-spacing:.02em;
    white-space:nowrap;
  }
  .header-tel__icon{
    font-size:.86em;
    line-height:1;
  }
  .header-meta,
  .header-time,
  .header-mail{
    color:#51423c;
    font-size:12px;
    font-weight:500;
    line-height:1.35;
    white-space:nowrap;
  }
  .header-nav{
    display:flex;
    align-items:center;
    gap:22px;
    margin-left:auto;
    margin-top:-12px;
  }
  .social-icons{
    gap:20px;
  }
  .social-icons a{
    width:52px;
    height:52px;
    border-radius:14px;
  }
  .social-icons svg{
    width:30px;
    height:30px;
  }
  .hamburger{
    width:90px;
    height:90px;
    gap:8px;
    background:var(--pink);
  }
  .hamburger span{
    width:48px;
    height:6px;
    border-radius:6px;
  }
  /* 大型版は静止時のバー間隔を広げる（×集約は base の is-active が中心へ寄せる） */
  .hamburger span:nth-child(1){ transform:translate(-50%,-50%) translateY(-15px); }
  .hamburger span:nth-child(3){ transform:translate(-50%,-50%) translateY(15px); }

  /* Hero ---------------------------------------------------- */
  .hero{
    position:relative;
    z-index:2;
    overflow:visible;
    background:var(--pink);
  }
  .hero__img{
    position:relative;
    z-index:0;
    width:100%;
    height:700px;
    overflow:hidden;
  }
  .hero__img img{
    width:122%;
    max-width:none;
    height:800px;
    object-fit:cover;
    object-position:center center;
    transform:translateX(9%);
    border-radius: 800px;
  }
  .hero__circle-soft{
    position:absolute;
    left:-520px;
    top:90px;
    width:780px;
    height:780px;
    border-radius:50%;
    background:var(--pink);
    opacity:1;
    filter:none;
    z-index:1;
    pointer-events:none;
  }
  .hero__circle-deep{
    position:absolute;
    left:32px;
    top:185px;
    width:480px;
    height:480px;
    border-radius:50%;
    background:var(--pink-deep);
    z-index:70;
    pointer-events:none;
  }
  .hero__circle-dot{
    position:absolute;
    right:-8px;
    top: 630px;
    width:160px;
    height:160px;
    border-radius:50%;
    background:var(--pink);
    opacity:1;
    z-index:7;
    pointer-events:none;
  }
  .hero__circle-br{
    position:absolute;
    right:43px;
    top: 695px;
    width:136px;
    height:136px;
    border-radius:50%;
    background:var(--pink-deep);
    opacity:.98;
    z-index:8;
    pointer-events:none;
  }
  .hero__copy{
    position:absolute;
    left:64px;
    top:267px;
    width:415px;
    color:#fff;
    text-align:center;
    transform:none;
    z-index:71;
  }
  .hero__copy h1{
    margin:0 0 16px;
    font-size:40px;
    font-weight:800;
    line-height:1.18;
    letter-spacing:.03em;
    text-shadow:none;
  }
  .hero__copy h1::after{
    content:"";
    display:block;
    width:110px;
    height:2px;
    margin:14px auto 0;
    background:#fff;
  }
  .hero__copy p{
    margin:0 0 31px;
    font-size:15px;
    font-weight:800;
    line-height:1.85;
  }
  .hero__btns{
    width:266px;
    margin:0 auto;
    gap:18px;
  }
  .hero__btns a{
    padding:11px 10px;
    border:1px solid rgba(255,255,255,.95);
    border-radius:40px;
    background:#fff;
    color:var(--brown);
    font-size:16px;
    font-weight:800;
    line-height:1.35;
    box-shadow:0 3px 0 rgba(78,56,52,.32);
  }

  /* News ---------------------------------------------------- */
  .news{
    position:relative;
    z-index:3;
    background:var(--cream);
    padding:50px 0 28px;
    border-radius: 160px 0px 0px 0px;
  }
  .news .inner{
    max-width:972px;
  }
  .news__head{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    margin:0 0 34px 30px;
  }
  .news__head .ja{
    order:1;
    margin:0 0 6px;
    color:var(--brown);
    font-size:0;
    font-weight:700;
    letter-spacing:.04em;
    line-height:1;
  }
  .news__head .ja::before{
    content:"最新情報";
    font-size:12px;
  }
  .news__head .en{
    order:2;
    color:var(--brown);
    font-size:30px;
    font-weight:800;
    line-height:1.1;
    letter-spacing:.14em;
  }
  .news__head .en::after{
    content:"";
    display:block;
    width:46px;
    height:2px;
    margin:14px 0 0;
    background:var(--brown);
  }
  .news__grid{
    grid-template-columns:repeat(3,1fr);
    gap:54px;
  }
  .news-card__thumb{
    border-radius:10px 10px 0 0;
  }
  .news-card__thumb::before{
    display:none;
  }
  .news-card__thumb img{
    height:200px;
    margin-top:0;
    border-radius:10px 10px 0 0;
  }
  .news-card__badge{
    left:14px;
    top:12px;
  }
  .news__circle-dot{
    position: absolute;
    left: -60px;
    top: 700px;
    width: 500px;
    height: 350px;
    border-radius: 50%;
    background: var(--cream);
    opacity: 1;
    z-index: 3;
    pointer-events: none;
  }
  .reason__head{
    position: absolute;
    top: 1200px;
    z-index: 2;
    background: var(--cream);
    width: 1280px;
    height: 200px;
  }
  .hero_circle{
    position: absolute;
    top: 1250px;
    z-index: 2;
    width: 100%;
    height: 300px;
  }
  .reason__head_circle{
    position: absolute;
    top: 1275px;
    z-index: 2;
    width: 100%;
    height: 300px;
  }
  .reason__head_bar{
    position: absolute;
    top: 1400px;
    z-index: 2;
    width: 100%;
    height: 50px;
    background:var(--pink-pale);
  }
  .reason__head_bar2{
    position: absolute;
    top: 1450px;
    z-index: 2;
    width: 100%;
    height: 200px;
    background:var(--cream-light);
  }
  .reason__circle_left{
    position: absolute;
    left: -500px;
    top: 1260px;
    width: 1000px;
    height: 1200px;
    border-radius: 50%;
    background: var(--pink);
    opacity: 1;
    z-index: 2;
    pointer-events: none;
  }
}

@media (max-width:950px){
  .site-header{
    width:100%;
    max-width:none;
    height:auto;
  }
  .site-header::before{
    display:none;
  }
  .header-main__left{
    display:block;
  }
  .header-name{
    margin-top:1px;
    font-size:10px;
  }
}

/* ============================================================
   スマホ版トップ：ヘッダー＆ヒーロー（hero_sp.png）
   ============================================================ */
@media (max-width:950px){
  /* --- ヘッダー（画像の上のバー） --- */
  .site-header{
    position:relative; width:100%; max-width:none; height:auto;
    background:var(--cream-light); z-index:5;
  }
  .site-header::before{
    content: "";
    display: block;
    position: absolute;
    left: -85px;
    top: -140px;
    width: 260px;
    height: 260px;
    border-radius: 50%;
    background: #fff;
    z-index: -1;
    pointer-events: none;
  }
  .header-main{
    display:flex; align-items:center; justify-content:space-between;
    padding:0 10px 0 0; min-height:84px;
  }
  .header-main__left{ display:flex; align-items:center; }
  .site-logo{
    padding: 12px 30px 14px 5px; border-radius:0 0 26px 0;
  }
  .site-logo img{ height:44px; width:auto; }
  .header-name{ display:none; }
  .header-nav{ display:flex; align-items:center; gap:10px; }
  .social-icons{ gap:6px; }
  .social-icons a{ width:40px; height:40px; border-radius:12px; }
  .hamburger{ width:55px; height:55px; }
  .hamburger span{ width:26px; height:2px; }

  /* --- ヒーロー --- */
  .hero{ position:relative; overflow:visible; background:var(--cream-light); }
  .hero__img {
    height: 432px;
    overflow: hidden;
    background: #dff1ff; /* 縮小時に端が見えた場合の背景色 */
  }

  .hero__img img {
    width: 100%;
    height: 432px;
    object-fit: cover;
    object-position: 90% center;

    transform: scale(1.0);
    transform-origin: center center;
  }
  /* 左下の大きなローズ円（コピーを内包） */
  .hero__circle-deep{
    position:absolute; left:5px; right:auto; bottom:auto; top:280px;
    width:270px; height:270px;
    background:var(--pink-deep); border-radius:50%;
    transform:none; z-index:6;
  }
  /* 左下隅の淡い円 */
  .hero__circle-br{
    position: absolute;
    right: -50px;
    bottom: auto;
    top: 630px;
    width: 200px;
    height: 200px;
    background: var(--pink);
    border-radius: 50%;
    transform: none;
    z-index: 0;
  }
  .hero__circle-soft{ display:none; }
  .hero__circle-dot{ display:none; }

  /* コピー */
  .hero__copy{
    position:absolute; left:5px; right:auto; bottom:auto; top:335px;
    width:275px; text-align:center; color:#fff; transform:none; padding:0; z-index:7;
  }
  .hero__copy h1{ font-size:24px; line-height:1.45; margin:0 0 12px; text-shadow:none; }
  .hero__copy h1::after{ content:""; display:block; width:88px; height:2px; background:#fff; margin:13px auto 0; }
  .hero__copy p{ font-size:11px; font-weight:700; line-height:1.85; margin:0; }
  .hero__btns{ display:none; }
  
  .hero_circle{
    position: absolute;
    top: 1210px;
    z-index: 1;
    width: 1500px;
    height: 250px;
    max-width: 120%;
    left: -12%;
  }  
  .reason__head_circle{
    position: absolute;
    top: 360px;
    z-index: 2;
    width: 250px;
    height: 250px;
    left: -50px;
  }
}

/* ============================================================
   スクロール連動アニメーション（ふわっと上品なフェードアップ）
   - JS が .reveal を付与した要素を IntersectionObserver で監視
   - 画面に入ると .is-reveal-in が付き、下からフェードイン
   - JS 無効時は .reveal が付かないので通常表示（コンテンツは必ず見える）
   ============================================================ */
.reveal{
  opacity:0;
  transform:translateY(24px);
  transition:opacity .7s cubic-bezier(.22,.61,.36,1),
             transform .7s cubic-bezier(.22,.61,.36,1);
  will-change:opacity, transform;
}
.reveal.is-reveal-in{
  opacity:1;
  transform:none;
}

/* ヒーローのロード直後の登場（コピー＝見出し・本文・ボタン） */
.hero-intro{
  opacity:0;
  transform:translateY(18px);
}
body.is-loaded .hero-intro{
  opacity:1;
  transform:none;
  transition:opacity .9s cubic-bezier(.22,.61,.36,1),
             transform .9s cubic-bezier(.22,.61,.36,1);
}

/* アクセシビリティ：動きを減らす設定の端末ではアニメ無効＝即時表示 */
@media (prefers-reduced-motion: reduce){
  .reveal,
  .reveal.is-reveal-in,
  .hero-intro,
  body.is-loaded .hero-intro{
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }
}

/* reveal 対象(.find-card / .find__btn)にもホバー浮き上がりを効かせる。
   .reveal の transform/0.7s を優先度で上書きし素早く動かす（JS無効時は上の .find-card:hover が担当）。 */
.find-card.reveal.is-reveal-in{
  transition:transform .25s cubic-bezier(.34,1.56,.64,1),
             box-shadow .25s ease,
             opacity .7s cubic-bezier(.22,.61,.36,1);
}
.find-card.reveal.is-reveal-in:hover{
  transform:translateY(-6px);
  box-shadow:0 22px 40px rgba(120,95,70,.3);
}
.find__btn.reveal.is-reveal-in{
  transition:transform .25s cubic-bezier(.34,1.56,.64,1),
             box-shadow .25s ease,
             opacity .7s cubic-bezier(.22,.61,.36,1);
}
.find__btn.reveal.is-reveal-in:hover{
  transform:translateY(-4px);
  box-shadow:0 14px 24px rgba(120,95,70,.34);
}

/* PCでは改行しない */
.sp-br {
	display: none;
}

/* スマホだけ改行する */
@media screen and (max-width: 767px) {
	.sp-br {
		display: block;
	}
}

/* ============================================================
   運営会社概要ページ（page-company.php）
   ============================================================ */
.company{
  position:relative;
  background:var(--cream-light);
  overflow:hidden;
  padding-top:150px; /* absoluteヘッダーの下に出す */
  padding-bottom:0;
}

/* ---- 装飾円 ---- */
.company__circle-pink{ /* タイトル右の大きなピンク円（右端で見切れ） */
  position:absolute; right:-160px; top:235px;
  width:440px; height:440px; border-radius:50%;
  background:var(--pink); z-index:0;
}
.company__circle-tan{ /* ピンク円の左下に重なるタン円 */
  position:absolute; right:210px; top:515px;
  width:260px; height:260px; border-radius:50%;
  background:#D9BFA4; z-index:0;
}
.company__circle-left{ /* イントロ左下のピンク円（左端で見切れ） */
  position:absolute; left:-260px; top:945px;
  width:560px; height:560px; border-radius:50%;
  background:var(--pink); z-index:0;
}

/* ---- パンくず ---- */
.company-breadcrumb{ position:relative; z-index:2; padding:28px 0 0; }
.company-breadcrumb .inner{ font-size:12px; letter-spacing:.18em; color:#8b8178; }
.company-breadcrumb a{ color:inherit; }
.company-breadcrumb a:hover{ color:var(--pink-deep); }
.company-breadcrumb .sep{ margin:0 8px; }

/* ---- ページタイトル ---- */
.company-head{ position:relative; z-index:2; padding:26px 0 10px; }
.company-head__title{
  font-size:44px; font-weight:800; color:var(--brown);
  letter-spacing:.08em; line-height:1.3; margin:0;
}
.company-head__en{
  font-size:14px; font-weight:800; letter-spacing:.3em;
  color:var(--pink-deep); margin:10px 0 0;
}

/* ---- イントロ（写真＋テキスト） ---- */
.company-intro{ position:relative; z-index:2; padding:40px 0 30px; }
.company-intro__grid{
  display:grid; grid-template-columns:1fr 1fr; gap:44px; align-items:center;
}
.company-intro__img img{
  width:100%; height:460px; object-fit:cover;
  border-radius:24px 130px 24px 130px;
}
.company-intro__text{
  background:rgba(255,255,255,.45);
  border-radius:12px; padding:36px 32px;
}
.company-intro__headline{
  font-size:22px; font-weight:800; color:var(--brown);
  line-height:1.7; margin:0 0 18px; letter-spacing:.02em;
}
.company-intro__headline .blue{ color:#2B5AA7; }
.company-intro__headline::after{
  content:""; display:block; width:90px; height:2px;
  background:var(--brown); margin-top:20px;
}
.company-intro__body{
  font-size:15px; line-height:2.1; letter-spacing:.06em;
  color:var(--text); margin:0;
}

/* ---- 会社概要カード ---- */
.company-info{ position:relative; z-index:2; padding:60px 0 0; }
.company-info .inner{ max-width:1100px; }
.company-card{
  background:#fff; border:1px solid #eadfd4; border-radius:8px;
  padding:70px 60px 60px;
}
.company-card__title{
  font-size:24px; font-weight:800; color:var(--brown);
  margin:0 0 34px; padding-left:16px; position:relative;
}
.company-card__title::before{
  content:""; position:absolute; left:0; top:50%; transform:translateY(-50%);
  width:4px; height:26px; background:var(--pink-deep); border-radius:2px;
}

/* 会社概要テーブル */
.company-table{
  width:100%; border-collapse:separate; border-spacing:0;
  border:1px solid #e8e2db; border-radius:22px; overflow:hidden;
}
.company-table th,
.company-table td{
  border-bottom:1px solid #e8e2db;
  padding:24px 30px; font-size:15px; text-align:left; vertical-align:middle;
}
.company-table tr:last-child th,
.company-table tr:last-child td{ border-bottom:none; }
.company-table th{
  width:26%; background:#F5E9DF; color:var(--brown); font-weight:800;
  text-align:center; border-right:1px solid #e8e2db;
}
.company-table td{ background:#fff; color:var(--text); font-weight:700; }
.company-table__list{ margin:0; padding:0; }
.company-table__list li{
  position:relative; padding-left:16px; font-weight:700; line-height:2;
}
.company-table__list li::before{
  content:"・"; position:absolute; left:0;
}

/* お問い合わせ窓口 */
.company-windows{
  margin-top:48px; border:1px solid #eadfd4; border-radius:22px;
  padding:40px 44px 48px;
}
.company-windows__title{
  font-size:17px; font-weight:800; color:var(--brown);
  margin:0 0 26px; display:inline-block;
  border-bottom:1px solid var(--brown); padding-bottom:10px;
}
.company-windows__grid{
  display:grid; grid-template-columns:1fr 1fr; gap:36px; align-items:stretch;
}
.company-window{ border-radius:18px; padding:28px 30px; }
.company-window__head{ font-size:16px; font-weight:800; margin:0 0 18px; }

/* LINE窓口（グリーン） */
.company-window--line{ background:#EAF6E8; }
.company-window--line .company-window__head{ color:#3CB54A; }
.company-window__line-row{
  display:flex; align-items:center; justify-content:space-between; gap:18px;
}
.company-window__line-id .label{
  display:block; font-size:11px; letter-spacing:.18em; color:#6f8a6b;
  font-weight:700; margin-bottom:6px;
}
.company-window__line-id .id{
  font-size:20px; font-weight:800; color:#3CB54A; letter-spacing:.14em;
}
.company-window__line-btn{
  display:inline-flex; align-items:center; justify-content:center;
  margin-top:6px; padding:9px 20px; border-radius:999px;
  background:#06C755; color:#fff; font-size:14px; font-weight:800;
  letter-spacing:.04em; text-decoration:none; white-space:nowrap;
  box-shadow:0 4px 12px rgba(6,199,85,.28);
  transition:transform .25s cubic-bezier(.34,1.56,.64,1), box-shadow .25s ease;
}
.company-window__line-btn:hover{ transform:translateY(-3px); box-shadow:0 9px 18px rgba(6,199,85,.42); }
.company-window__qr{
  width:120px; height:120px; flex-shrink:0;
  background:#fff; border:1px solid #d4e6cf; border-radius:10px; padding:6px;
  display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.company-window__qr img{ width:100%; height:100%; object-fit:contain; display:block; }
.company-window__note{
  font-size:12px; line-height:1.9; color:#6b7a68; margin:18px 0 0;
}

/* メール・電話窓口（ピンク） */
.company-window--mail{ background:#FBEFEF; }
.company-window--mail .company-window__head{ color:var(--pink); }
.company-window__list{ margin:0; }
.company-window__list div{ display:flex; margin-bottom:12px; }
.company-window__list div:last-child{ margin-bottom:0; }
.company-window__list dt{
  font-weight:800; color:var(--brown); white-space:nowrap;
}
.company-window__list dd{ margin:0; font-weight:800; color:var(--brown); }
.company-window__list dd a{ text-decoration:underline; text-underline-offset:4px; }
.company-window__list dd a:hover{ color:var(--pink-deep); }

/* 会社ページの Contact：上部をタン曲線でつなぐ */
/* ---- レスポンシブ（SP） ---- */
@media (max-width:950px){
  .company{ padding-top:30px; }
  .company__circle-pink{ right:-140px; top:190px; width:280px; height:280px; }
  .company__circle-tan{ right:100px; top:380px; width:150px; height:150px; }
  .company__circle-left{ left:-200px; top:auto; bottom:auto; width:380px; height:380px; margin-top:-100px; }

  .company-breadcrumb{ padding-top:18px; }
  .company-head{ padding:16px 0 6px; }
  .company-head__title{ font-size:30px; }
  .company-head__en{ font-size:12px; }

  .company-intro{ padding:24px 0 16px; }
  .company-intro__grid{ grid-template-columns:1fr; gap:26px; }
  .company-intro__img img{ height:260px; border-radius:18px 80px 18px 80px; }
  .company-intro__text{ padding:24px 20px; }
  .company-intro__headline{ font-size:18px; }
  .company-intro__body{ font-size:14px; line-height:2; }

  .company-info{ padding-top:36px; }
  .company-card{ padding:36px 20px 32px; }
  .company-card__title{ font-size:20px; margin-bottom:24px; }

  .company-table{ border-radius:16px; }
  .company-table th,
  .company-table td{ display:block; width:100%; padding:14px 18px; border-right:none; }
  .company-table th{ text-align:left; }
  .company-table tr:last-child th{ border-bottom:1px solid #e8e2db; }

  .company-windows{ margin-top:32px; padding:26px 18px 30px; border-radius:16px; }
  .company-windows__grid{ grid-template-columns:1fr; gap:20px; }
  .company-window{ padding:22px 20px; }
  .company-window__qr{ width:90px; height:90px; font-size:20px; }

}

/* ============================================================
   国別情報ページ（page-taiwan.php / page-china.php 共用）
   ============================================================ */
.country{
  position:relative;
  background:var(--cream-light);
  overflow:hidden;
}

/* ---- HERO（ピンク帯） ---- */
.country-hero{
  position:relative;
  margin-top:160px; /* absoluteヘッダーの高さぶん下げる */
  background:var(--pink);
  padding:120px 0 150px;
  text-align:center;
  color:#fff;
}
.country-hero__circle-left{ /* 左の濃いローズ円（左端で見切れ） */
  position:absolute; left:-170px; top:40px;
  width:480px; height:480px; border-radius:50%;
  background:var(--pink-deep); opacity:.85; z-index:0;
}
.country-hero__circle-tan{ /* 右上のタン円（右端で見切れ） */
  position:absolute; right:-120px; top:120px;
  width:300px; height:300px; border-radius:50%;
  background:#D9BFA4; z-index:0;
}
.country-hero__circle-right{ /* 右下の鮮やかピンク円（帯の下にはみ出す） */
  position:absolute; right:-90px; bottom:-160px;
  width:320px; height:320px; border-radius:50%;
  background:var(--pink-bright); z-index:0;
}
.country-hero .inner{ position:relative; z-index:2; }
.country-hero__en{
  font-size:13px; font-weight:700; letter-spacing:.22em;
  margin:0 0 18px; opacity:.9;
}
.country-hero__title{
  font-size:38px; font-weight:800; letter-spacing:.1em;
  line-height:1.5; margin:0;
}
.country-hero__title::after{
  content:""; display:block; width:150px; height:2px;
  background:#fff; margin:26px auto 0;
}
.country-hero__lead{
  font-size:14px; font-weight:700; line-height:2.1;
  letter-spacing:.08em; margin:26px 0 0;
}

/* ---- タブ ---- */
.country-tabs{
  position:relative; z-index:3;
  display:flex; justify-content:center;
  margin-top:-34px; padding:0 24px;
}
.country-tabs__box{
  display:flex; gap:6px; background:#fff;
  border-radius:44px; padding:7px;
  box-shadow:0 8px 22px rgba(150,110,90,.22);
}
.country-tab{
  display:flex; align-items:center; gap:8px;
  font-size:16px; font-weight:800; color:var(--brown);
  padding:14px 42px; border-radius:36px; white-space:nowrap;
  transition:background .2s ease, color .2s ease;
}
.country-tab .dot{
  width:8px; height:8px; border-radius:50%; flex-shrink:0;
}
.country-tab .dot--pink{ background:var(--pink); }
.country-tab .dot--red{ background:#D94A43; }
.country-tab .dot--blue{ background:#3D7CB8; }
.country-tab.is-active{ background:var(--pink); color:#fff; }
.country-tab.is-active .dot{ background:#fff; }
.country-tab:not(.is-active):hover{ background:#faf1ec; }

/* ---- プロファイル＋風景 2カラム ---- */
.country-main{ position:relative; z-index:2; padding:80px 0 0; }
.country-main .inner{ max-width:1180px; }
.country-main__cols{
  display:grid; grid-template-columns:1.35fr 1fr; gap:34px; align-items:stretch;
}

/* 左：基本プロファイルカード */
.country-profile{
  background:#fff; border-radius:26px; padding:56px 54px 44px;
  box-shadow:0 4px 18px rgba(150,120,90,.08);
}
.country-profile__head{
  display:flex; align-items:center; gap:22px; margin-bottom:26px;
}
.country-profile__flag{
  width:96px; flex-shrink:0; display:block;
  filter:drop-shadow(0 4px 8px rgba(150,110,90,.25));
}
.country-profile__flag svg{ width:100%; height:auto; display:block; }
.country-profile__head-text h2{
  font-size:30px; font-weight:800; color:var(--brown);
  letter-spacing:.14em; margin:0; line-height:1.3;
}
.country-profile__head-text .en{
  font-size:14px; font-weight:700; letter-spacing:.06em;
  color:var(--pink-deep); margin:6px 0 0;
}
.country-profile__row{
  display:grid; grid-template-columns:190px 1fr; gap:10px;
  padding:30px 0; border-top:1px solid #eee2d7;
}
.country-profile__label{
  display:flex; align-items:flex-start; gap:12px;
  font-size:16px; font-weight:800; color:var(--brown);
}
.country-profile__label .icon{
  width:34px; height:34px; flex-shrink:0; color:var(--pink);
}
.country-profile__label .icon svg{ width:100%; height:100%; }
.country-profile__label .text{ padding-top:4px; }
.country-profile__body p{
  font-size:14px; line-height:1.9; margin:0 0 14px; color:var(--text); font-weight:700;
}
.country-profile__body p:last-child{ margin-bottom:0; }
.country-profile__strong{ font-size:17px !important; font-weight:800 !important; color:#3d3833 !important; }

/* チェック項目 */
.country-check{ display:flex; gap:10px; margin-bottom:20px; }
.country-check:last-child{ margin-bottom:0; }
.country-check__mark{
  width:20px; height:20px; flex-shrink:0; color:#4A90D9; margin-top:2px;
}
.country-check__mark svg{ width:100%; height:100%; }
.country-check__body h3{
  font-size:15px; font-weight:800; color:#3d3833; margin:0 0 8px;
}
.country-check__body p{
  font-size:13.5px; line-height:1.9; margin:0; font-weight:700;
}

/* 「さらに〜」の帯 */
.country-profile__more{
  display:flex; align-items:center; gap:14px;
  background:#FBF1E7; border:1px solid #eeD9c6; border-radius:14px;
  padding:16px 24px; margin-top:26px;
}
.country-profile__more .icon{
  width:26px; height:26px; flex-shrink:0; border-radius:50%;
  border:2px solid var(--pink-deep); color:var(--pink-deep);
  font-size:14px; font-weight:800; line-height:1;
  display:flex; align-items:center; justify-content:center;
}
.country-profile__more p{
  font-size:14px; font-weight:800; color:var(--brown); margin:0; flex:1;
}
.country-profile__more a{
  font-size:14px; font-weight:800; color:var(--pink-deep); white-space:nowrap;
  display:inline-block; transition:transform .2s ease;
}
.country-profile__more a:hover{ text-decoration:underline; transform:translateX(4px); }

/* 右：風景カード */
.country-scenery{
  background:#fff; border:1px solid #e5d2bd; border-radius:26px;
  padding:40px 36px 30px;
  box-shadow:0 4px 18px rgba(150,120,90,.08);
  display:flex; flex-direction:column;
}
.country-scenery__label{
  font-size:13px; font-weight:800; letter-spacing:.16em;
  color:var(--brown); margin:0 0 16px;
}
.country-scenery__img img{
  width:100%; height:430px; object-fit:cover; border-radius:14px;
}
.country-scenery__title{
  font-size:17px; font-weight:800; color:var(--brown);
  margin:26px 0 12px; padding-left:12px; position:relative;
}
.country-scenery__title::before{
  content:""; position:absolute; left:0; top:50%; transform:translateY(-50%);
  width:3px; height:18px; background:var(--pink-deep); border-radius:2px;
}
.country-scenery__text{
  font-size:13.5px; line-height:2; letter-spacing:.06em;
  font-weight:700; margin:0; color:var(--text);
}
.country-scenery__tags{
  font-size:13px; font-weight:700; letter-spacing:.08em; color:#6b625a;
  border-top:1px solid #eee2d7; padding-top:20px; margin:22px 0 0;
}
.country-scenery__reco{
  margin:18px 0 0; text-align:right; font-size:14px; font-weight:800;
}
.country-scenery__reco .brand{
  color:#2B5AA7; text-decoration:underline; text-underline-offset:3px;
}
.country-scenery__reco .reco{
  color:#3d3833;
  background:linear-gradient(transparent 68%, #F7D64C 68%);
  padding:0 2px;
}

/* ---- CTA（アパート手配） ---- */
.country-cta{ position:relative; z-index:2; padding:56px 0 0; }
.country-cta .inner{ max-width:1180px; }
.country-cta__box{
  display:flex; align-items:center; gap:36px;
  background:#fff; border-radius:26px; padding:48px 54px;
  box-shadow:0 4px 18px rgba(150,120,90,.08);
}
.country-cta__text{ flex:1; }
.country-cta__text h2{
  display:flex; align-items:flex-start; gap:8px;
  font-size:19px; font-weight:800; color:var(--pink);
  letter-spacing:.04em; margin:0 0 14px;
}
.country-cta__text p{
  font-size:13.5px; line-height:1.95; font-weight:700;
  color:var(--text); margin:0; padding-left:28px;
}
.country-cta__btn{
  display:flex; align-items:center; gap:14px; flex-shrink:0;
  background:var(--pink); color:#fff; font-size:17px; font-weight:800;
  border-radius:14px; padding:26px 38px;
  box-shadow:0 6px 14px rgba(150,110,90,.25);
  transition:transform .25s cubic-bezier(.34,1.56,.64,1), box-shadow .25s ease;
}
.country-cta__btn:hover{ transform:translateY(-4px); box-shadow:0 14px 24px rgba(150,110,90,.35); }
.country-cta__btn .arrow{
  width:26px; height:26px; color:#fff;
}
.country-cta__btn .arrow svg{ width:100%; height:100%; }

/* 国別ページの Contact：上部をタン曲線でつなぐ */
/* ---- レスポンシブ（SP） ---- */
@media (max-width:950px){
  .country-hero{ margin-top:0; padding:60px 0 90px; }
  .country-hero__circle-left{ left:-140px; top:20px; width:280px; height:280px; }
  .country-hero__circle-tan{ right:-90px; top:40px; width:170px; height:170px; }
  .country-hero__circle-right{ right:-70px; bottom:-90px; width:190px; height:190px; }
  .country-hero__en{ font-size:10px; letter-spacing:.16em; margin-bottom:12px; }
  .country-hero__title{ font-size:22px; letter-spacing:.06em; }
  .country-hero__title::after{ width:100px; margin-top:18px; }
  .country-hero__lead{ font-size:12px; line-height:2; margin-top:18px; }

  .country-tabs{ margin-top:-28px; padding:0 14px; }
  .country-tabs__box{ padding:5px; gap:4px; width:100%; justify-content:center; }
  .country-tab{ font-size:12.5px; padding:11px 12px; gap:5px; flex:1; justify-content:center; }
  .country-tab .dot{ width:6px; height:6px; }

  .country-main{ padding-top:44px; }
  .country-main__cols{ grid-template-columns:1fr; gap:24px; }

  .country-profile{ padding:30px 22px 26px; border-radius:20px; }
  .country-profile__head{ gap:14px; margin-bottom:14px; }
  .country-profile__flag{ width:66px; }
  .country-profile__head-text h2{ font-size:21px; letter-spacing:.08em; }
  .country-profile__head-text .en{ font-size:12px; }
  .country-profile__row{ grid-template-columns:1fr; gap:10px; padding:20px 0; }
  .country-profile__label .icon{ width:28px; height:28px; }
  .country-profile__label .text{ padding-top:2px; }
  .country-profile__more{ flex-wrap:wrap; gap:10px; padding:14px 16px; }
  .country-profile__more p{ flex:1 1 100%; order:2; }
  .country-profile__more a{ order:3; }

  .country-scenery{ padding:26px 20px 22px; border-radius:20px; }
  .country-scenery__img img{ height:280px; }

  .country-cta{ padding-top:32px; }
  .country-cta__box{ flex-direction:column; align-items:stretch; gap:22px; padding:28px 22px; }
  .country-cta__text h2{ font-size:16px; }
  .country-cta__text p{ padding-left:0; }
  .country-cta__btn{ justify-content:center; padding:18px 20px; font-size:15px; }

}

/* ============================================================
   サポート内容と料金ページ（page-support.php）
   ============================================================ */
.price{
  position:relative;
  background:var(--cream-light);
  overflow:hidden;
}

/* ---- HERO（写真＋左寄せコピー） ---- */
.price-hero{
  position:relative;
  margin-top:160px; /* absoluteヘッダーの高さぶん下げる */
}
.price-hero__img{ height:480px; overflow:hidden; position:relative; }
.price-hero__img img{ width:100%; height:100%; object-fit:cover; }
.price-hero__img::after{ /* コピーの可読性を上げる薄いシャドウ */
  content:""; position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(40,30,25,.32), rgba(40,30,25,0) 62%);
}
.price-hero__copy{
  position:absolute; left:64px; top:50%; transform:translateY(-50%);
  color:#fff; z-index:2;
}
.price-hero__copy h1{
  font-size:38px; font-weight:800; line-height:1.6;
  letter-spacing:.14em; margin:0;
  text-shadow:0 2px 14px rgba(0,0,0,.18);
}
.price-hero__copy h1::after{
  content:""; display:block; width:96px; height:3px;
  background:#fff; margin-top:22px;
}

/* ---- 導入メッセージ ---- */
.price-intro{ padding:80px 0 40px; }
.price-intro__title{
  text-align:center; font-size:28px; font-weight:800;
  color:#3d3833; letter-spacing:.06em; line-height:1.7; margin:0 0 40px;
  padding-bottom:20px; position:relative;
}
.price-intro__title .em{ color:var(--pink-bright); }
.price-intro__title::after{
  content:""; position:absolute; left:50%; bottom:0; transform:translateX(-50%);
  width:min(760px,92%); height:2px; background:#5b4a3f;
}
.price-intro__box{
  max-width:760px; margin:0 auto; background:#fff; border-radius:6px;
  padding:44px 36px; text-align:center;
}
.price-intro__box p{
  font-size:16px; font-weight:800; line-height:2.2;
  letter-spacing:.08em; color:#3d3833; margin:0;
}
.price-intro__box .blue{ color:#2B5AA7; }
.price-intro__box .marker,
.price-reason__head .marker{
  background:linear-gradient(transparent 72%, #F7D64C 72%);
  padding:0 2px;
}

/* ---- リーズナブルな理由（楕円ピンク背景） ---- */
.price-reason{ position:relative; padding:90px 0 70px; }
.price-reason__bg{
  position:absolute; left:50%; top:0; transform:translateX(-50%);
  width:2400px; height:100%; border-radius:50%;
  background:#F0D9D9; z-index:0;
}
.price-reason .inner{ position:relative; z-index:2; max-width:1180px; }
.price-reason__head{ text-align:center; margin-bottom:60px; }
.price-reason__head .sub{
  font-size:17px; font-weight:800; color:#3d3833;
  letter-spacing:.1em; margin:0 0 8px;
}
.price-reason__head .title{
  font-size:30px; font-weight:800; color:#3d3833;
  letter-spacing:.08em; margin:0; padding-bottom:22px; position:relative;
}
.price-reason__head .title::after{
  content:""; position:absolute; left:50%; bottom:0; transform:translateX(-50%);
  width:110px; height:2px; background:#5b4a3f;
}
.price-reason__grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:34px;
  align-items:stretch;
}
.price-reason__card{ position:relative; padding-top:34px; display:flex; flex-direction:column; }
.price-reason__card .num{
  position:absolute; left:-10px; top:-18px; z-index:3;
  font-size:84px; font-weight:800; line-height:1; color:var(--pink);
  letter-spacing:.02em;
  text-shadow:
    -3px -3px 0 #fff, 3px -3px 0 #fff, -3px 3px 0 #fff, 3px 3px 0 #fff,
    0 -3px 0 #fff, 0 3px 0 #fff, -3px 0 0 #fff, 3px 0 0 #fff;
}
/* 画像と説明ボックスは同じ幅で縦に揃える（参考figma準拠。段違いオフセットはしない） */
.price-reason__card .thumb{ position:relative; z-index:1; padding:0; }
.price-reason__card .thumb img{
  width:100%; height:175px; object-fit:cover;
  border-radius: 0px 30px 0px 0px;
}
.price-reason__card .body{
  position:relative; z-index:2; background:#fff;
  margin:0; padding:10px 20px 10px; text-align:center;
  flex:1; /* 3カードのボックス下端を揃える（グリッドstretch＋縦flex） */
  border-radius: 0px 0px 0px 30px;
}
.price-reason__card .body h3{
  font-size:18px; font-weight:800; color:#3d3833;
  line-height:1.7; letter-spacing:.06em; margin:0 0 18px;
  padding-bottom:16px; position:relative;
}
.price-reason__card .body h3 .pink{ color:var(--pink-bright); }
.price-reason__card .body h3::after{
  content:""; position:absolute; left:50%; bottom:0; transform:translateX(-50%);
  width:38px; height:1px; background:#a99c90;
}
.price-reason__card .body p{
  font-size:13.5px; font-weight:700; line-height:2; letter-spacing:.04em;
  color:var(--text); margin:0;
}

/* ---- シミュレーターボタン（白ピル） ---- */
.price-btnrow{ text-align:center; margin-top:64px; position:relative; z-index:2; }
.price-simbtn{
  display:inline-flex; align-items:center; justify-content:center; gap:16px;
  background:#fff; color:#3d3833; font-size:18px; font-weight:800;
  letter-spacing:.08em; border-radius:44px; padding:22px 64px;
  box-shadow:0 6px 0 rgba(232,94,133,.35), 0 10px 22px rgba(150,110,90,.18);
  transition:transform .15s ease, box-shadow .15s ease;
}
.price-simbtn:hover{
  transform:translateY(2px);
  box-shadow:0 4px 0 rgba(232,94,133,.35), 0 8px 16px rgba(150,110,90,.16);
}
.price-simbtn .arrow{ width:24px; height:24px; color:var(--pink-bright); }
.price-simbtn .arrow svg{ width:100%; height:100%; }

/* ---- 料金案内 ---- */
.price-plans{ padding:110px 0 20px; position:relative; z-index:2; }
.price-plans .inner{ max-width:1210px; }
.price-plans__head,
.price-options__head,
.price-sim__head{ text-align:center; margin-bottom:56px; }
.price-plans__head .sub{
  font-size:15px; font-weight:800; color:#3d3833; letter-spacing:.12em; margin:0 0 10px;
}
.price-plans__head .title,
.price-options__head .title,
.price-sim__head .title{
  font-size:32px; font-weight:800; color:#3d3833;
  letter-spacing:.14em; margin:0; padding-bottom:24px; position:relative;
}
.price-plans__head .title::after,
.price-options__head .title::after,
.price-sim__head .title::after{
  content:""; position:absolute; left:50%; bottom:0; transform:translateX(-50%);
  width:110px; height:2px; background:#5b4a3f;
}
.price-options__head .sub,
.price-sim__head .sub{
  font-size:14px; font-weight:700; color:var(--text);
  letter-spacing:.06em; margin:18px 0 0; line-height:2;
}
.price-plans__grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:26px; align-items:stretch;
}
.price-card{
  position:relative; background:#fff; border-radius:20px;
  padding:34px 30px 30px;
  box-shadow:0 4px 18px rgba(150,120,90,.08);
  display:flex; flex-direction:column;
}
.price-card--reco{
  border:2px solid var(--pink-deep);
  box-shadow:0 8px 26px rgba(232,94,133,.18);
}
.price-card__reco{
  position:absolute; left:50%; top:-16px; transform:translateX(-50%);
  background:var(--pink-deep); color:#fff; font-size:13px; font-weight:800;
  letter-spacing:.1em; border-radius:20px; padding:6px 26px; white-space:nowrap;
}
.price-card__tag{
  display:inline-block; align-self:flex-start;
  background:#FBE3E6; color:var(--pink-deep); font-size:12px; font-weight:800;
  letter-spacing:.06em; border-radius:20px; padding:5px 16px; margin-bottom:14px;
}
.price-card__headrow{
  display:flex; align-items:flex-start; justify-content:space-between; gap:12px;
  margin-bottom:10px;
}
.price-card__name{
  font-size:21px; font-weight:800; color:#3d3833;
  letter-spacing:.04em; line-height:1.5; margin:0;
}
.price-card__icon{
  width:44px; height:44px; flex-shrink:0; border-radius:12px;
  background:#FBE3E6; color:var(--pink); padding:10px;
}
.price-card__icon svg{ width:100%; height:100%; }
.price-card__price{
  font-size:26px; font-weight:800; color:#3d3833; letter-spacing:.02em;
  margin:0 0 16px;
}
.price-card__price .tax,
.price-card__plans .tax,
.price-option__price .tax{
  font-size:13px; font-weight:700; color:#8b8178; letter-spacing:0;
}
.price-card__plans{
  display:flex; flex-direction:column; gap:10px; margin:6px 0 18px;
}
.price-card__plans .row{
  display:flex; align-items:baseline; justify-content:space-between; gap:10px;
  background:#FDEFF0; border:1px solid #F6CDD3; border-radius:12px;
  padding:12px 18px;
}
.price-card__plans .label{ font-size:14px; font-weight:800; color:#3d3833; white-space:nowrap; }
.price-card__plans .price{ font-size:19px; font-weight:800; color:var(--pink-deep); white-space:nowrap; }
.price-card__desc{
  font-size:13.5px; font-weight:700; line-height:2; color:var(--text); margin:0;
}
.price-card__desc .pink-strong,
.price-note .pink-strong{ color:var(--pink-bright); font-weight:800; }
.price-card__sep{
  border-top:2px dashed #E8C9B4; margin:22px 0 18px;
}
.price-card__subhead{
  font-size:14px; font-weight:800; color:#3d3833; letter-spacing:.04em; margin:0 0 12px;
}
.price-card__list li{
  position:relative; padding-left:16px;
  font-size:13px; font-weight:700; line-height:1.9; color:var(--text);
  margin-bottom:6px;
}
.price-card__list li::before{
  content:""; position:absolute; left:2px; top:.75em;
  width:5px; height:5px; border-radius:50%; background:var(--pink);
}
.price-card__link{ margin:auto 0 0; padding-top:18px; text-align:right; }
.price-card__link a{
  font-size:14px; font-weight:800; color:#3d3833;
  text-decoration:underline; text-underline-offset:4px;
  display:inline-block; transition:transform .2s ease, color .2s ease;
}
.price-card__link a:hover{ color:var(--pink-deep); transform:translateX(3px); }

/* ---- 渡航後追加オプション ---- */
.price-options{ padding:110px 0 30px; position:relative; z-index:2; }
.price-options .inner{ max-width:1210px; }
.price-options__grid{
  display:grid; grid-template-columns:1fr 1fr; gap:30px;
  max-width:1080px; margin:0 auto;
}
.price-option{
  background:#fff; border-radius:20px; padding:40px 38px 36px;
  box-shadow:0 4px 18px rgba(150,120,90,.08);
  display:flex; flex-direction:column;
}
.price-option__name{
  font-size:19px; font-weight:800; color:var(--pink-bright);
  letter-spacing:.02em; line-height:1.6; margin:0 0 10px;
}
.price-option__price{
  font-size:25px; font-weight:800; color:#3d3833; margin:0 0 12px;
}
.price-option__reco{
  display:inline-block; align-self:flex-start;
  font-size:13px; font-weight:800; color:#3d3833;
  border-bottom:1px solid #3d3833; padding-bottom:2px; margin:0 0 14px;
}
.price-option__desc{
  font-size:13.5px; font-weight:700; line-height:2; color:var(--text); margin:0 0 22px;
}
.price-option__box{
  border:1px solid #E5D2BD; border-radius:14px; padding:22px 24px; margin-top:auto;
}
.price-option__box h4{
  font-size:14px; font-weight:800; color:#3d3833; margin:0 0 12px;
}

/* ---- 緊急かけつけ帯 ---- */
.price-note{
  display:flex; align-items:flex-start; gap:26px;
  max-width:1080px; margin:44px auto 0;
  background:#fff; border-radius:20px; padding:34px 40px;
  box-shadow:0 4px 18px rgba(150,120,90,.08);
}
.price-note__icon{
  width:56px; height:56px; flex-shrink:0; color:var(--pink);
  padding-top:4px;
}
.price-note__icon svg{ width:100%; height:100%; }
.price-note__body h3{
  font-size:17px; font-weight:800; color:#3d3833; margin:0 0 10px;
}
.price-note__body p{
  font-size:13.5px; font-weight:700; line-height:2; color:var(--text); margin:0;
}

/* ---- 料金簡単シミュレーター ---- */
.price-sim{ padding:110px 0 40px; position:relative; z-index:2; }
.price-sim .inner{ max-width:1000px; }
.price-sim__box{
  background:#fff; border-radius:20px; padding:44px 46px;
  box-shadow:0 4px 18px rgba(150,120,90,.08);
  display:grid; grid-template-columns:1.5fr 1fr; gap:40px;
}
.price-sim__items{ display:flex; flex-direction:column; gap:12px; }
.price-sim__item{
  display:flex; align-items:center; gap:14px;
  background:#FBF5EE; border:1px solid #EEDFCE; border-radius:12px;
  padding:16px 20px; cursor:pointer;
  transition:border-color .15s ease, background .15s ease;
}
.price-sim__item:hover{ border-color:var(--pink); }
.price-sim__item:has(input:checked){ background:#FDEFF0; border-color:var(--pink-deep); }
.price-sim__item input[type="checkbox"]{
  width:20px; height:20px; flex-shrink:0; accent-color:var(--pink-deep); cursor:pointer;
}
.price-sim__item .name{
  flex:1; font-size:14px; font-weight:800; color:#3d3833; line-height:1.6;
}
.price-sim__item .price{
  font-size:15px; font-weight:800; color:var(--pink-deep); white-space:nowrap;
}
.price-sim__item--select{ cursor:default; flex-wrap:wrap; }
.price-sim__item--select select{
  flex:1 1 100%; font-family:inherit; font-size:14px; font-weight:700; color:#3d3833;
  border:1px solid #E5D2BD; border-radius:10px; padding:10px 14px; background:#fff;
}
.price-sim__total{
  background:#FBF1E7; border-radius:16px; padding:30px 28px;
  display:flex; flex-direction:column; align-self:start;
}
.price-sim__total .row{
  display:flex; align-items:baseline; justify-content:space-between;
  padding:10px 0; border-bottom:1px solid #EAD9C5;
}
.price-sim__total .label{ font-size:13px; font-weight:800; color:#6b625a; }
.price-sim__total .val{ font-size:20px; font-weight:800; color:#3d3833; }
.price-sim__total .val--em{ font-size:26px; color:var(--pink-deep); }
.price-sim__total .note{
  font-size:11.5px; font-weight:700; color:#8b8178; line-height:1.8; margin:14px 0 20px;
}
.price-sim__contact{
  display:block; text-align:center;
  background:var(--pink-deep); color:#fff; font-size:15px; font-weight:800;
  border-radius:30px; padding:14px 10px;
  box-shadow:0 5px 12px rgba(232,94,133,.3);
  transition:transform .25s cubic-bezier(.34,1.56,.64,1), box-shadow .25s ease;
}
.price-sim__contact:hover{ transform:translateY(-3px); box-shadow:0 11px 20px rgba(232,94,133,.4); }

/* ---- レスポンシブ（SP） ---- */
@media (max-width:950px){
  .price-hero{ margin-top:0; }
  .price-hero__img{ height:320px; }
  .price-hero__copy{ left:22px; }
  .price-hero__copy h1{ font-size:25px; letter-spacing:.1em; }
  .price-hero__copy h1::after{ width:64px; height:2px; margin-top:14px; }

  .price-intro{ padding:48px 0 20px; }
  .price-intro__title{ font-size:18px; letter-spacing:.02em; padding-bottom:14px; margin-bottom:26px; }
  .price-intro__box{ padding:26px 20px; }
  .price-intro__box p{ font-size:13.5px; letter-spacing:.03em; line-height:2.1; }

  .price-reason{ padding:60px 0 46px; }
  .price-reason__bg{ width:1600px; }
  .price-reason__head{ margin-bottom:40px; }
  .price-reason__head .sub{ font-size:14px; }
  .price-reason__head .title{ font-size:21px; padding-bottom:16px; }
  .price-reason__grid{ grid-template-columns:1fr; gap:40px; max-width:420px; margin:0 auto; }
  /* 01〜03カード：PCと同じく画像と説明ボックスの幅・位置を揃えたカード（参考figma準拠） */
  .price-reason__card{ padding-top:30px; }
  .price-reason__card .num{ font-size:64px; top:-14px; left:-6px; }
  .price-reason__card .thumb img{ height:180px; }
  .price-reason__card .body{ padding:24px 16px 28px; }
  .price-reason__card .body h3{ font-size:16px; }
  .price-reason__card .body p{ font-size:13px; }

  .price-btnrow{ margin-top:44px; }
  .price-simbtn{ font-size:15px; padding:17px 40px; }

  .price-plans{ padding:70px 0 10px; }
  .price-plans__head,
  .price-options__head,
  .price-sim__head{ margin-bottom:38px; }
  .price-plans__head .title,
  .price-options__head .title,
  .price-sim__head .title{ font-size:23px; letter-spacing:.1em; padding-bottom:16px; }
  .price-plans__grid{ grid-template-columns:1fr; gap:30px; max-width:460px; margin:0 auto; }
  .price-card{ padding:30px 22px 26px; }
  .price-card--reco{ margin-top:10px; }
  .price-card__name{ font-size:19px; }
  .price-card__price{ font-size:23px; }

  .price-options{ padding:70px 0 20px; }
  .price-options__grid{ grid-template-columns:1fr; gap:24px; max-width:460px; }
  .price-option{ padding:28px 22px 26px; }
  .price-option__name{ font-size:17px; }
  .price-option__price{ font-size:22px; }
  .price-note{ flex-direction:column; gap:14px; padding:26px 22px; margin-top:30px; }
  .price-note__icon{ width:44px; height:44px; }

  .price-sim{ padding:70px 0 20px; }
  .price-sim__box{ grid-template-columns:1fr; gap:26px; padding:26px 20px; }
  .price-sim__item{ padding:13px 14px; gap:10px; }
  .price-sim__item .name{ font-size:13px; }

}

/* ============================================================
   よくある質問ページ（page-faq.php）
   ============================================================ */
.faq-page{
  position:relative;
  background:var(--cream-light);
  overflow:hidden;
}

/* 装飾用の円（会社概要ページと同トーン） */
.faq-page__circle-pink{
  position:absolute; right:-130px; top:60px;
  width:340px; height:340px; border-radius:50%;
  background:var(--pink); opacity:.5; z-index:1;
}
.faq-page__circle-tan{
  position:absolute; left:-150px; top:420px;
  width:380px; height:380px; border-radius:50%;
  background:#E8D8C5; opacity:.65; z-index:1;
}

/* パンくず・ページタイトル */
.faq-breadcrumb{ position:relative; z-index:2; padding:220px 0 0; }
.faq-breadcrumb .inner{ font-size:12px; letter-spacing:.18em; color:#8b8178; }
.faq-breadcrumb a{ color:inherit; }
.faq-breadcrumb a:hover{ color:var(--pink-deep); }
.faq-breadcrumb .sep{ margin:0 8px; }
.faq-head{ position:relative; z-index:2; padding:26px 0 10px; }
.faq-head__title{
  font-size:34px; font-weight:800; color:var(--brown);
  letter-spacing:.16em; margin:0;
}
.faq-head__en{
  font-size:13px; font-weight:800; letter-spacing:.22em;
  color:var(--pink-deep); margin:10px 0 0;
}
.faq-head__lead{
  font-size:14px; font-weight:700; line-height:2; color:var(--text);
  margin:22px 0 0;
}

/* カテゴリブロック */
.faq-body{ position:relative; z-index:2; padding:46px 0 0; }
.faq-body .inner{ max-width:900px; }
.faq-group{ margin-bottom:52px; }
.faq-group__title{
  display:flex; align-items:center; gap:12px;
  font-size:20px; font-weight:800; color:var(--brown);
  letter-spacing:.08em; margin:0 0 20px;
}
.faq-group__title::before{
  content:""; width:5px; height:22px; border-radius:3px;
  background:var(--pink-deep); flex-shrink:0;
}

/* アコーディオン（details/summary） */
.faq-item{
  background:#fff; border-radius:16px; margin-bottom:14px;
  box-shadow:0 3px 12px rgba(150,120,90,.07);
  overflow:hidden;
}
.faq-item summary{
  display:flex; align-items:flex-start; gap:14px;
  padding:22px 56px 22px 24px; cursor:pointer; list-style:none;
  position:relative;
  font-size:15px; font-weight:800; color:#3d3833; line-height:1.8;
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary .q{
  width:30px; height:30px; flex-shrink:0; border-radius:50%;
  background:var(--pink); color:#fff; font-size:15px; font-weight:800;
  display:flex; align-items:center; justify-content:center; margin-top:2px;
}
.faq-item summary::after{
  content:""; position:absolute; right:24px; top:50%;
  width:10px; height:10px; margin-top:-8px;
  border-right:2px solid var(--pink-deep); border-bottom:2px solid var(--pink-deep);
  transform:rotate(45deg);
  transition:transform .2s ease, margin-top .2s ease;
}
.faq-item[open] summary::after{ transform:rotate(-135deg); margin-top:-2px; }
.faq-item__a{
  display:flex; align-items:flex-start; gap:14px;
  padding:0 24px 24px; border-top:1px dashed #EAD9C5; margin:0 24px;
  padding:20px 0 24px;
}
.faq-item__a .a{
  width:30px; height:30px; flex-shrink:0; border-radius:50%;
  background:#E2C3A7; color:#fff; font-size:15px; font-weight:800;
  display:flex; align-items:center; justify-content:center; margin-top:2px;
}
.faq-item__a p{
  font-size:14px; font-weight:700; line-height:2; color:var(--text); margin:0;
}
.faq-item__a a{ color:var(--pink-deep); text-decoration:underline; text-underline-offset:3px; }

/* まだ解決しないとき */
.faq-more{
  display:flex; align-items:center; gap:14px; flex-wrap:wrap;
  background:#FBF1E7; border:1px solid #eeD9c6; border-radius:14px;
  padding:20px 26px; margin:10px 0 0;
}
.faq-more .icon{
  width:26px; height:26px; flex-shrink:0; border-radius:50%;
  border:2px solid var(--pink-deep); color:var(--pink-deep);
  font-size:14px; font-weight:800; line-height:1;
  display:flex; align-items:center; justify-content:center;
}
.faq-more p{ font-size:14px; font-weight:800; color:var(--brown); margin:0; flex:1; }
.faq-more a{ font-size:14px; font-weight:800; color:var(--pink-deep); white-space:nowrap; display:inline-block; transition:transform .2s ease; }
.faq-more a:hover{ text-decoration:underline; transform:translateX(4px); }

@media (max-width:950px){
  .faq-breadcrumb{ padding-top:30px; }
  .faq-head__title{ font-size:24px; letter-spacing:.1em; }
  .faq-body{ padding-top:30px; }
  .faq-group{ margin-bottom:36px; }
  .faq-group__title{ font-size:17px; }
  .faq-item summary{ padding:17px 44px 17px 16px; font-size:13.5px; gap:10px; }
  .faq-item summary .q,
  .faq-item__a .a{ width:26px; height:26px; font-size:13px; }
  .faq-item summary::after{ right:16px; }
  .faq-item__a{ margin:0 16px; gap:10px; }
  .faq-item__a p{ font-size:13px; }
  .faq-more{ gap:10px; padding:14px 16px; }
  .faq-more p{ flex:1 1 100%; order:2; }
  .faq-more a{ order:3; }
}

/* ============================================================
   規約系ページ（page-privacy.php / page-terms.php 共用）
   ============================================================ */
.legal{
  position:relative;
  background:var(--cream-light);
  overflow:hidden;
}
.legal__circle-pink{
  position:absolute; right:-130px; top:60px;
  width:340px; height:340px; border-radius:50%;
  background:var(--pink); opacity:.5; z-index:1;
}
.legal__circle-tan{
  position:absolute; left:-150px; top:480px;
  width:380px; height:380px; border-radius:50%;
  background:#E8D8C5; opacity:.65; z-index:1;
}
.legal-breadcrumb{ position:relative; z-index:2; padding:220px 0 0; }
.legal-breadcrumb .inner{ font-size:12px; letter-spacing:.18em; color:#8b8178; }
.legal-breadcrumb a{ color:inherit; }
.legal-breadcrumb a:hover{ color:var(--pink-deep); }
.legal-breadcrumb .sep{ margin:0 8px; }
.legal-head{ position:relative; z-index:2; padding:26px 0 10px; }
.legal-head__title{
  font-size:34px; font-weight:800; color:var(--brown);
  letter-spacing:.16em; margin:0;
}
.legal-head__en{
  font-size:13px; font-weight:800; letter-spacing:.22em;
  color:var(--pink-deep); margin:10px 0 0;
}

/* 本文カード */
.legal-body{ position:relative; z-index:2; padding:46px 0 0; }
.legal-body .inner{ max-width:900px; }
.legal-card{
  background:#fff; border-radius:26px; padding:56px 60px;
  box-shadow:0 4px 18px rgba(150,120,90,.08);
}
.legal-card__intro{
  font-size:14px; font-weight:700; line-height:2.1; color:var(--text);
  margin:0 0 40px;
}
.legal-sec{ margin-bottom:40px; }
.legal-sec:last-child{ margin-bottom:0; }
.legal-sec h2{
  display:flex; align-items:center; gap:12px;
  font-size:18px; font-weight:800; color:var(--brown);
  letter-spacing:.06em; margin:0 0 16px;
  padding-bottom:12px; border-bottom:1px solid #eee2d7;
}
.legal-sec h2::before{
  content:""; width:5px; height:20px; border-radius:3px;
  background:var(--pink-deep); flex-shrink:0;
}
.legal-sec p{
  font-size:14px; font-weight:500; line-height:2.1; color:var(--text);
  margin:0 0 14px;
}
.legal-sec p:last-child{ margin-bottom:0; }
.legal-sec ul{ margin:0 0 14px; padding:0; }
.legal-sec ul:last-child{ margin-bottom:0; }
.legal-sec ul li{
  position:relative; padding-left:18px;
  font-size:14px; font-weight:500; line-height:2; color:var(--text);
  margin-bottom:6px;
}
.legal-sec ul li::before{
  content:""; position:absolute; left:3px; top:.8em;
  width:6px; height:6px; border-radius:50%; background:var(--pink);
}
.legal-sec ol{ margin:0 0 14px; padding-left:24px; list-style:decimal; }
.legal-sec ol li{
  font-size:14px; font-weight:500; line-height:2; color:var(--text);
  margin-bottom:6px;
}
.legal-sec .box{
  background:#FBF5EE; border:1px solid #EEDFCE; border-radius:14px;
  padding:22px 26px; margin-top:14px;
}
.legal-sec .box p{ margin-bottom:6px; }
.legal-sec .box p:last-child{ margin-bottom:0; }
.legal-date{
  text-align:right; font-size:13px; font-weight:700; color:#8b8178;
  margin:44px 0 0;
}

@media (max-width:950px){
  .legal-breadcrumb{ padding-top:30px; }
  .legal-head__title{ font-size:24px; letter-spacing:.1em; }
  .legal-body{ padding-top:30px; }
  .legal-card{ padding:30px 22px; border-radius:20px; }
  .legal-sec h2{ font-size:16px; }
  .legal-sec p, .legal-sec ul li, .legal-sec ol li{ font-size:13px; }
}

/* ============================================================
   STORY記事（single.php / 体験談・コラム詳細）
   （記事）脱サラおじさん！.pdf / Soso(留学体験).pdf 準拠
   ============================================================ */
.story{
  position:relative;
  z-index:2; /* footer側 .contact__bigcircle(z-index:0) に記事末尾を覆われないよう手前に */
  background:var(--cream-light);
  padding:215px 0 90px;
}
.story__bar{
  max-width:840px; margin:0 auto 30px; padding:14px 24px 0;
  display:flex; align-items:center; justify-content:space-between;
}
.story__bar .crumb{
  font-size:11px; font-weight:800; letter-spacing:.2em; color:var(--pink-deep);
}
.story__bar .crumb a{ color:inherit; }
.story__bar .back{
  font-size:11px; font-weight:800; letter-spacing:.08em; color:#8b8178;
  display:inline-block; transition:transform .2s ease, color .2s ease;
}
.story__bar .back:hover{ color:var(--pink-deep); transform:translateX(-4px); }
.story__inner{ max-width:840px; margin:0 auto; padding:0 24px; }

/* ヒーロー画像 */
.story__hero img{
  width:100%; height:380px; object-fit:cover; border-radius:16px;
  box-shadow:0 10px 26px rgba(150,120,90,.16);
}

/* タイトル・メタ */
.story__title{
  font-size:30px; font-weight:800; color:#3d3833;
  line-height:1.65; letter-spacing:.04em; margin:34px 0 10px;
}
.story__title .em{ color:var(--pink-bright); }
.story__cat{
  font-size:12.5px; font-weight:700; letter-spacing:.06em; color:#8b8178;
  margin:0 0 20px;
}
.story__meta{
  display:flex; align-items:center; gap:14px;
  background:#FBEFEF; border-radius:14px; padding:16px 22px; margin:0 0 34px;
}
.story__meta .avatar{
  width:40px; height:40px; flex-shrink:0; border-radius:50%;
  background:#fff; color:var(--pink-deep);
  display:flex; align-items:center; justify-content:center;
}
.story__meta .avatar svg{ width:22px; height:22px; }
.story__meta .who{ flex:1; min-width:0; }
.story__meta .who .role{
  font-size:12.5px; font-weight:800; color:#3d3833; margin:0;
}
.story__meta .who .info{
  font-size:11.5px; font-weight:700; color:var(--pink-deep); margin:2px 0 0;
}
.story__meta .date{
  font-size:11.5px; font-weight:700; color:#8b8178; white-space:nowrap;
}

/* 目次（Contents／章一覧） */
.story-toc{
  margin:0 0 40px; border:1px solid #eadfd4; border-radius:16px;
  background:#fff; padding:18px 24px 8px;
  box-shadow:0 4px 16px rgba(150,120,90,.06);
}
.story-toc__head{ display:flex; align-items:center; gap:14px; margin-bottom:4px; }
.story-toc__label{ font-size:12px; font-weight:800; letter-spacing:.2em; color:var(--pink-deep); text-transform:uppercase; }
.story-toc__rule{ flex:1; height:1px; background:#eadfd4; }
.story-toc__count{ font-size:11px; font-weight:700; letter-spacing:.06em; color:#b3a596; }
.story-toc__list{ list-style:none; margin:0; padding:0; }
.story-toc__item{ border-top:1px solid #f0e7dc; }
.story-toc__item:first-child{ border-top:none; }
.story-toc__item a{
  display:flex; align-items:center; gap:14px; padding:13px 8px;
  color:var(--text); text-decoration:none; border-radius:9px;
  transition:color .2s ease, background .2s ease;
}
.story-toc__item a:hover{ color:var(--pink-deep); background:#fbf4ec; }
.story-toc__num{ min-width:26px; font-size:15px; font-weight:800; font-style:italic; color:var(--pink-deep); }
.story-toc__ttl{ flex:1; font-size:14px; font-weight:700; line-height:1.55; }
.story-toc__arrow{ color:#cbb8a8; font-size:18px; font-weight:700; }
.story-toc__item a:hover .story-toc__arrow{ color:var(--pink-deep); }

/* 本文（Gutenberg想定の汎用スタイル） */
.story__content{
  font-size:14.5px; font-weight:500; line-height:2.15; color:var(--text);
  counter-reset:story-chapter;
}
/* 目次アンカーで飛んだ際、固定ヘッダーに隠れないようオフセット */
.story__content h2{ scroll-margin-top:120px; }
.story__content > *{ margin:0 0 26px; }
.story__content h2{
  font-size:21px; font-weight:800; color:#3d3833;
  line-height:1.7; letter-spacing:.02em;
  margin:60px 0 22px; padding-top:18px;
  border-top:1px solid #EAD9C5;
  counter-increment:story-chapter;
}
.story__content h2::before{
  content:"Chapter 0" counter(story-chapter);
  display:table;
  background:#FBE3E6; color:var(--pink-deep);
  font-size:11px; font-weight:800; letter-spacing:.14em;
  border-radius:14px; padding:3px 14px;
  margin:0 0 12px;
}
.story__content h3{
  font-size:17px; font-weight:800; color:#3d3833;
  margin:40px 0 16px; padding-left:12px; position:relative;
}
.story__content h3::before{
  content:""; position:absolute; left:0; top:50%; transform:translateY(-50%);
  width:4px; height:17px; border-radius:2px; background:var(--pink-deep);
}
.story__content img{
  border-radius:14px;
  box-shadow:0 8px 22px rgba(150,120,90,.14);
}
.story__content figure{ margin:34px 0; }
.story__content figcaption{
  font-size:11.5px; font-weight:700; color:#8b8178; margin-top:10px;
}
.story__content blockquote{
  background:#fff; border-left:4px solid var(--pink-deep);
  border-radius:0 14px 14px 0;
  padding:24px 28px; margin:34px 0;
  font-size:14px; font-weight:800; line-height:2.1; color:#3d3833;
  box-shadow:0 4px 14px rgba(150,120,90,.08);
}
.story__content blockquote p{ margin:0; }
.story__content a{
  color:var(--pink-deep); text-decoration:underline; text-underline-offset:3px;
}
.story__content ul li{
  position:relative; padding-left:18px; margin-bottom:8px;
}
.story__content ul li::before{
  content:""; position:absolute; left:3px; top:.85em;
  width:6px; height:6px; border-radius:50%; background:var(--pink);
}
.story__content ol{ padding-left:24px; list-style:decimal; }

/* 章区切りの飾り（hr） */
.story__content hr{
  border:none; text-align:center; margin:56px 0;
}
.story__content hr::after{
  content:"❁"; color:var(--pink); font-size:18px;
}

/* ページ上部へ */
.story__top{
  position:sticky; bottom:30px; float:right; margin-right:-70px;
  width:44px; height:44px; border-radius:50%;
  background:var(--pink-deep); color:#fff;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 6px 14px rgba(232,94,133,.35);
  transition:opacity .2s ease;
}
.story__top:hover{ opacity:.85; }
.story__top svg{ width:20px; height:20px; }

@media (max-width:950px){
  .story{ padding:120px 0 60px; }
  .story__bar{ margin-bottom:18px; padding:10px 18px 0; }
  .story__inner{ padding:0 18px; }
  .story__hero img{ height:220px; border-radius:12px; }
  .story__title{ font-size:21px; margin-top:24px; }
  .story__meta{ flex-wrap:wrap; padding:13px 16px; }
  .story__content{ font-size:13.5px; }
  .story__content h2{ font-size:18px; margin-top:44px; }
  .story__content h3{ font-size:15.5px; }
  .story__top{ margin-right:0; bottom:90px; }
}

/* ============================================================
   留学体験談ページ（page-story.php / STORYピンクver）
   Soso(留学体験ピンクver).pdf 準拠
   ============================================================ */
.storyp{
  position:relative;
  z-index:2; /* footer側 .contact__bigcircle(z-index:0) に記事末尾を覆われないよう手前に */
  background:#FBEAED;
  padding:215px 0 90px;
}
.storyp__bar{
  max-width:800px; margin:0 auto 26px; padding:14px 24px 0;
  display:flex; align-items:center; justify-content:space-between;
}
.storyp__bar .crumb{ font-size:11px; font-weight:800; letter-spacing:.2em; color:var(--pink-deep); }
.storyp__bar .crumb a{ color:inherit; }
.storyp__bar .back{ font-size:11px; font-weight:800; letter-spacing:.08em; color:var(--pink-deep); display:inline-block; transition:transform .2s ease, opacity .2s ease; }
.storyp__bar .back:hover{ opacity:.7; transform:translateX(-4px); }
.storyp__inner{
  max-width:800px; margin:0 auto; padding:0 24px;
  font-size:14.5px; font-weight:500; line-height:2.15; color:#4a4440;
}

/* ヒーロー画像・タイトル */
.storyp__hero img{
  width:100%; height:400px; object-fit:cover; border-radius:14px;
  box-shadow:0 10px 26px rgba(190,120,140,.18); display:block;
}
.storyp__title{
  font-size:29px; font-weight:800; color:#3d3833;
  line-height:1.7; letter-spacing:.03em; margin:34px 0 8px;
}
.storyp__title .em{ color:var(--pink-deep); border-bottom:2px solid var(--pink); padding-bottom:2px; }
.storyp__program{ font-size:12.5px; font-weight:700; color:#8b8178; margin:0 0 24px; }

/* メタ（語り手・読了時間） */
.storyp__meta{ display:flex; align-items:center; gap:14px; margin:0 0 44px; }
.storyp__meta .avatar{
  width:42px; height:42px; flex-shrink:0; border-radius:50%;
  background:#F9D3DB; color:var(--pink-deep);
  display:flex; align-items:center; justify-content:center;
}
.storyp__meta .avatar svg{ width:22px; height:22px; }
.storyp__meta .who{ flex:1; min-width:0; }
.storyp__meta .who .role{ font-size:13px; font-weight:800; color:#3d3833; margin:0; line-height:1.6; }
.storyp__meta .who .info{ font-size:11.5px; font-weight:700; color:#8b8178; margin:3px 0 0; line-height:1.6; }
.storyp__meta .time{
  display:flex; align-items:center; gap:5px; white-space:nowrap;
  font-size:11.5px; font-weight:700; color:#8b8178;
}
.storyp__meta .time svg{ width:14px; height:14px; }

/* 目次 */
.storyp-contents{
  background:#fff; border:1px solid #F6D7DD; border-radius:14px;
  padding:22px 26px 8px; margin:0 0 64px;
  box-shadow:0 6px 18px rgba(190,120,140,.08);
}
.storyp-contents__head{ display:flex; align-items:center; gap:14px; margin:0 0 6px; }
.storyp-contents__head .label{ font-size:11px; font-weight:800; letter-spacing:.22em; color:var(--pink-deep); }
.storyp-contents__head .line{ flex:1; height:1px; background:#F6D7DD; }
.storyp-contents__head .count{ font-size:10.5px; font-weight:700; letter-spacing:.08em; color:#C9B9AE; }
.storyp-contents ol{ list-style:none; margin:0; padding:0; }
.storyp-contents li + li{ border-top:1px solid #FBE3E8; }
.storyp-contents a{ display:flex; align-items:center; gap:16px; padding:14px 2px; color:inherit; }
.storyp-contents .num{ font-size:15px; font-weight:800; color:#EFC3CC; }
.storyp-contents .txt{ flex:1; min-width:0; }
.storyp-contents .en{ display:block; font-size:9.5px; font-weight:800; letter-spacing:.2em; color:var(--pink-deep); margin-bottom:2px; line-height:1.4; }
.storyp-contents .ja{ display:block; font-size:13.5px; font-weight:800; color:#3d3833; line-height:1.6; }
.storyp-contents .arw{ color:#D9C9BE; display:flex; }
.storyp-contents .arw svg{ width:15px; height:15px; }
.storyp-contents a:hover .ja{ color:var(--pink-deep); }

/* 章（Chapter） */
.storyp-ch__badge{ display:flex; align-items:center; gap:12px; margin:0 0 14px; }
.storyp-ch__badge .chip{
  background:#F9D3DB; color:var(--pink-deep);
  font-size:11px; font-weight:800; letter-spacing:.1em;
  border-radius:14px; padding:4px 14px;
}
.storyp-ch__badge .en{ font-size:10.5px; font-weight:800; letter-spacing:.24em; color:#C9B9AE; }
.storyp-ch__title{
  font-size:22px; font-weight:800; color:#3d3833; line-height:1.7;
  margin:0 0 8px; padding-bottom:14px; position:relative;
}
.storyp-ch__title::after{
  content:""; position:absolute; left:0; bottom:0;
  width:36px; height:3px; border-radius:2px; background:var(--pink-deep);
}
.storyp-ch > p{ margin:20px 0 0; }
.storyp .mk-u{ font-weight:800; border-bottom:2px solid var(--pink); }

/* 図版（キャプションを写真上に重ねる） */
.storyp-fig{ margin:30px 0 0; position:relative; }
.storyp-fig img{
  width:100%; height:300px; object-fit:cover; border-radius:12px;
  box-shadow:0 8px 22px rgba(190,120,140,.15); display:block;
}
.storyp-fig figcaption{
  position:absolute; left:14px; bottom:12px;
  display:flex; align-items:center; gap:6px;
  background:rgba(40,30,30,.55); color:#fff;
  font-size:11px; font-weight:700; border-radius:8px; padding:5px 12px;
  line-height:1.5;
}
.storyp-fig figcaption svg{ width:12px; height:12px; flex-shrink:0; }

/* 引用カード */
.storyp-quote{
  background:#fff; border-left:4px solid var(--pink-deep);
  border-radius:4px 12px 12px 4px;
  padding:24px 28px 24px 48px; margin:30px 0 0; position:relative;
  font-size:14px; font-weight:800; line-height:2.05; color:#3d3833;
  box-shadow:0 4px 14px rgba(190,120,140,.10);
}
.storyp-quote::before{
  content:"\201C"; position:absolute; left:16px; top:8px;
  font-size:36px; font-weight:900; line-height:1; color:#F4C3CC;
  font-family:Georgia, serif;
}
.storyp-quote p{ margin:0; }

/* 章区切り（葉っぱの飾り） */
.storyp-divider{ display:flex; align-items:center; gap:16px; margin:56px 0; }
.storyp-divider::before,
.storyp-divider::after{ content:""; flex:1; height:1px; background:#F3CDD3; }
.storyp-divider .leaf{
  width:30px; height:30px; border-radius:50%;
  background:#F9D3DB; color:var(--pink-deep);
  display:flex; align-items:center; justify-content:center;
}
.storyp-divider .leaf svg{ width:14px; height:14px; }

/* STEPタイムライン */
.storyp-steps{ list-style:none; margin:28px 0 0; padding:0; }
.storyp-steps li{ position:relative; padding:0 0 26px 30px; }
.storyp-steps li::before{
  content:""; position:absolute; left:5px; top:10px; bottom:-6px;
  width:2px; background:#F6D7DD;
}
.storyp-steps li:last-child{ padding-bottom:0; }
.storyp-steps li:last-child::before{ content:none; }
.storyp-steps li::after{
  content:""; position:absolute; left:0; top:6px;
  width:12px; height:12px; border-radius:50%;
  background:var(--pink-deep); box-shadow:0 0 0 4px #F9D3DB;
}
.storyp-steps .stepno{ font-size:10.5px; font-weight:800; letter-spacing:.18em; color:var(--pink-deep); }
.storyp-steps .ttl{ font-size:15px; font-weight:800; color:#3d3833; margin:4px 0; line-height:1.6; }
.storyp-steps .desc{ font-size:13px; color:#8b8178; margin:0; line-height:1.9; }

/* INSIGHTカード */
.storyp-insight{
  background:#fff; border-radius:14px; padding:24px 28px; margin:30px 0 0;
  box-shadow:0 6px 18px rgba(190,120,140,.10);
}
.storyp-insight__head{ display:flex; align-items:center; gap:10px; margin:0 0 12px; }
.storyp-insight__head .ico{ color:var(--pink-deep); display:flex; }
.storyp-insight__head .ico svg{ width:17px; height:17px; }
.storyp-insight__head .label{ font-size:11px; font-weight:800; letter-spacing:.2em; color:var(--pink-deep); }
.storyp-insight__head .ttl{ font-size:12px; font-weight:800; color:#8b8178; }
.storyp-insight__head .line{ flex:1; height:1px; background:#F6D7DD; }
.storyp-insight > p{ margin:0; }

/* アイコン付きリストカード */
.storyp-cards{ list-style:none; margin:28px 0 0; padding:0; display:flex; flex-direction:column; gap:14px; }
.storyp-cards li{
  background:#fff; border:1px solid #F6D7DD; border-radius:12px;
  padding:18px 22px; display:flex; gap:16px; align-items:flex-start;
  box-shadow:0 4px 12px rgba(190,120,140,.06);
}
.storyp-cards .ico{
  flex-shrink:0; width:34px; height:34px; border-radius:9px; margin-top:3px;
  background:#F9D3DB; color:var(--pink-deep);
  display:flex; align-items:center; justify-content:center;
}
.storyp-cards .ico svg{ width:16px; height:16px; }
.storyp-cards .ico-txt{ font-size:14px; font-weight:800; }
.storyp-cards .body{ flex:1; min-width:0; }
.storyp-cards .ttl{ font-size:14px; font-weight:800; color:#3d3833; margin:0 0 4px; line-height:1.7; }
.storyp-cards .desc{ font-size:13px; color:#6f665e; margin:0; line-height:1.9; }

/* ページ上部へ */
.storyp__top{
  position:sticky; bottom:30px; float:right; margin-right:-70px;
  width:44px; height:44px; border-radius:50%;
  background:var(--pink-deep); color:#fff;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 6px 14px rgba(232,94,133,.35);
  transition:opacity .2s ease;
}
.storyp__top:hover{ opacity:.85; }
.storyp__top svg{ width:20px; height:20px; }

/* ---- レスポンシブ（SP） ---- */
@media (max-width:950px){
  .storyp{ padding:120px 0 60px; }
  .storyp__bar{ margin-bottom:18px; padding:10px 18px 0; }
  .storyp__inner{ padding:0 18px; font-size:13.5px; }
  .storyp__hero img{ height:220px; border-radius:12px; }
  .storyp__title{ font-size:21px; margin-top:24px; }
  .storyp__meta{ flex-wrap:wrap; margin-bottom:34px; }
  .storyp-contents{ padding:18px 18px 6px; margin-bottom:48px; }
  .storyp-contents .ja{ font-size:12.5px; }
  .storyp-ch__title{ font-size:18px; }
  .storyp-fig img{ height:200px; }
  .storyp-quote{ padding:20px 20px 20px 42px; font-size:13px; }
  .storyp-divider{ margin:44px 0; }
  .storyp-cards li{ padding:15px 16px; }
  .storyp__top{ margin-right:0; bottom:90px; }
}
/* ============================================================
   台湾学校一覧ページ（page-taiwan.php）
   ============================================================ */
.tws{
  position:relative;
  background:var(--cream-light);
  overflow:hidden;
  z-index:2; /* footer側 .contact__bigcircle(z-index:1) より手前に */
}

/* ---- HERO（ピンク帯＋ポラロイド写真） ---- */
.tws-hero{
  position:relative;
  margin-top:160px; /* absoluteヘッダーの高さぶん下げる */
  background:var(--pink);
  padding:200px 0 0;
  min-height:850px;
  color:#fff;
  z-index:2; /* ポラロイドを次セクションへ重ねるため */
}
.tws-hero .inner{ position:relative; z-index:3; }
.tws-hero__circle-rose{ /* 左の濃いローズ円 */
  position:absolute; left:-219px; top:21px;
  width:578px; height:567px; border-radius:50%;
  background:var(--pink-deep); z-index:0;
}
.tws-hero__circle-tan{ /* 右上のタン円 */
  position:absolute; right:32px; top:0;
  width:335px; height:335px; border-radius:50%;
  background:var(--tan); z-index:0;
}
.tws-hero__circle-pink{ /* 右中央の明るいピンク円（ポラロイドの裏） */
  position:absolute; right:178px; top:459px;
  width:323px; height:323px; border-radius:50%;
  background:#FF749C; z-index:0;
}
.tws-hero__title{
  font-size:52px; font-weight:900; letter-spacing:.14em;
  line-height:1.4; margin:0;
}
.tws-hero__title::after{
  content:""; display:block; width:250px; height:3px;
  background:#fff; margin-top:26px;
}
.tws-hero__lead{
  font-size:23px; font-weight:800; letter-spacing:.16em;
  margin:38px 0 0;
}
.tws-hero__pola{
  position:absolute; z-index:2;
  filter:drop-shadow(0 10px 18px rgba(91,74,63,.18));
}
.tws-hero__pola--ice{     left:64%;   top:30px;  width:25%;   transform:rotate(7deg); }
.tws-hero__pola--lantern{ left:46.5%; top:353px; width:27%;   transform:rotate(-8deg); }
.tws-hero__pola--tea{     left:79.5%; top:355px; width:20%;   transform:rotate(3deg); }
.tws-hero__pola--jiufen{  left:13.5%; top:545px; width:34%;   transform:rotate(-6deg); }
.tws-hero__pola--dimsum{  left:64.5%; top:690px; width:29.5%; transform:rotate(-2deg); }

/* ---- Choose a School（マップ） ---- */
.tws-choose{
  position:relative;
  padding:300px 0 80px; /* ヒーローからはみ出すポラロイドを避ける */
}
.tws-choose .inner{ position:relative; z-index:1; }
.tws-choose__head{
  display:flex; align-items:flex-start; gap:22px;
  margin-bottom:10px;
  position:relative; z-index:2; /* マップの淡ピンク円より手前 */
}
.tws-choose__pin{ width:46px; color:var(--brown); flex-shrink:0; margin-top:4px; }
.tws-choose__pin svg{ width:100%; height:auto; display:block; }
.tws-choose__head-text h2{
  font-size:44px; font-weight:800; letter-spacing:.12em;
  color:var(--brown); line-height:1.2; margin:0;
}
.tws-choose__head-text h2::after{
  content:""; display:block; width:130px; height:2px;
  background:var(--brown); margin-top:16px;
}
.tws-choose__head-text p{
  font-size:16px; font-weight:800; letter-spacing:.18em;
  color:var(--text); margin:14px 0 0;
}

.tws-map{
  position:relative;
  aspect-ratio:1/1;
  margin-top:10px;
}
.tws-map::before{ /* 淡ピンクの大円 */
  content:"";
  position:absolute; left:-8.8%; top:-8.9%;
  width:121.3%; height:115.2%; border-radius:50%;
  background:var(--pink-pale); z-index:0;
}
.tws-map::after{ /* 右下の濃ローズ円（淡円の背面に半透明で見切れる） */
  content:"";
  position:absolute; left:43.8%; top:39.1%;
  width:72.7%; height:70.7%; border-radius:50%;
  background:var(--pink-deep); opacity:.72; z-index:-1;
}
.tws-map__stage{
  position:absolute; left:28.5%; top:0; width:48.5%; z-index:1;
}
.tws-map__island{ width:100%; height:auto; }
.tws-map__star{
  position:absolute; width:16%;
  transform:translate(-50%,-50%);
  filter:drop-shadow(0 4px 6px rgba(91,74,63,.25));
}
.tws-map__star svg{ width:100%; height:auto; display:block; }
.tws-map__labels{ position:absolute; inset:0; z-index:2; pointer-events:none; }
.tws-map__label{
  position:absolute; left:var(--x); top:var(--y);
  pointer-events:auto;
  display:flex; flex-direction:column; gap:0;
  min-width:17%;
  background:#F9F0F0; border-radius:10px;
  padding:12px 18px 10px;
  box-shadow:0 3px 10px rgba(91,74,63,.14);
  transition:transform .2s ease, box-shadow .2s ease;
}
.tws-map__label:hover{
  transform:translateY(-3px);
  box-shadow:0 8px 18px rgba(91,74,63,.22);
}
.tws-map__label.is-empty{ opacity:.5; pointer-events:none; } /* 学校0件のエリア */
.tws-map__label.is-empty:hover{ transform:none; box-shadow:0 3px 10px rgba(91,74,63,.14); }
.tws-map__label::after{ /* 星へ伸びる線 */
  content:""; position:absolute; top:50%;
  width:74px; height:2px; background:#3d3833;
}
.tws-map__label.is-left::after{ left:100%; }
.tws-map__label.is-right::after{ right:100%; }
.tws-map__label-row{
  display:flex; align-items:baseline; gap:8px; justify-content:center;
}
.tws-map__label .count{ font-size:15px; font-weight:800; color:#3d3833; }
.tws-map__label .name{ font-size:26px; font-weight:800; letter-spacing:.08em; color:#3d3833; line-height:1.3; }
.tws-map__label .en{ font-size:13px; font-weight:500; color:#6b625a; line-height:1.4; }
.tws-map__label.is-left .en{ text-align:right; }
.tws-map__label.is-left .tws-map__label-row{ flex-direction:row; }
.tws-map__label.is-right .tws-map__label-row{ flex-direction:row-reverse; justify-content:flex-end; }
.tws-map__label.is-right .en{ text-align:left; }

/* ---- エリア別 学校リスト ---- */
.tws-list{
  position:relative;
  padding:20px 0 130px;
}
.tws-list__blob-right{
  position:absolute; right:-338px; top:225px;
  width:691px; height:701px; border-radius:50%;
  background:var(--pink-pale); z-index:0;
}
.tws-list__blob-left{
  position:absolute; left:-495px; top:685px;
  width:1132px; height:1148px; border-radius:50%;
  background:var(--pink-pale); z-index:0;
}
.tws-list__circle-rose{
  position:absolute; right:-259px; top:2185px;
  width:721px; height:707px; border-radius:50%;
  background:var(--pink-deep); opacity:.72; z-index:0;
}
.tws-list .inner{ position:relative; z-index:1; }

.tws-area{ margin-top:90px; scroll-margin-top:140px; }
.tws-area:first-child{ margin-top:0; }
.tws-area__en{
  font-size:14px; font-weight:700; letter-spacing:.06em;
  color:var(--text); margin:0 0 2px;
}
.tws-area__title{
  font-size:34px; font-weight:800; letter-spacing:.16em;
  color:#3d3833; line-height:1.4; margin:0;
}
.tws-area__title::after{
  content:""; display:block; width:130px; height:2px;
  background:var(--brown); margin-top:18px;
}

.tws-card{
  display:flex; align-items:flex-start; gap:44px;
  background:#fff; border-radius:26px;
  padding:48px 34px 44px 52px;
  margin-top:44px;
  box-shadow:0 16px 30px rgba(91,74,63,.10);
}
.tws-card__body{ flex:1; min-width:0; }
.tws-card__name{
  font-size:25px; font-weight:800; letter-spacing:.1em;
  color:#3d3833; line-height:1.4; margin:0;
}
.tws-card__en{ font-size:14px; color:#6b625a; margin:4px 0 0; }
.tws-card__tags{
  display:flex; flex-wrap:wrap; gap:12px; margin-top:16px;
}
.tws-card__tags li{
  font-size:13px; color:var(--text);
  border:1px solid #b5aca3; border-radius:999px;
  padding:3px 18px; line-height:1.7; background:#fff;
}
.tws-card__desc{
  font-size:16px; line-height:1.9; letter-spacing:.04em;
  margin:20px 0 0;
}
.tws-card__btn{
  display:inline-flex; align-items:center; gap:12px;
  margin-top:32px;
  font-size:16px; font-weight:700; color:var(--text);
  background:#fff;
  border:2px solid #F090A0; border-radius:999px;
  padding:12px 32px;
  box-shadow:0 5px 12px rgba(232,94,133,.35);
  transition:transform .25s cubic-bezier(.34,1.56,.64,1), box-shadow .25s ease;
}
.tws-card__btn svg{ width:22px; height:22px; color:var(--pink-deep); }
.tws-card__btn:hover{
  transform:translateY(-4px);
  box-shadow:0 11px 20px rgba(232,94,133,.4);
}
.tws-card__img{
  width:40%; max-width:412px; flex-shrink:0;
  border-radius:16px; overflow:hidden;
}
.tws-card__img img{
  width:100%; aspect-ratio:412/290; object-fit:cover;
}

.tws-divider{
  border:none; border-top:2px dashed #8a8178;
  margin:110px 0 0;
}
.tws-area--other .tws-area__title{ font-size:30px; }

/* ---- SP ---- */
@media (max-width: 950px){
  .tws-hero{
    margin-top:0;
    padding:80px 0 0;
    min-height:540px;
  }
  .tws-hero__circle-rose{ left:-130px; top:10px; width:340px; height:334px; }
  .tws-hero__circle-tan{ right:12px; top:0; width:190px; height:190px; }
  .tws-hero__circle-pink{ right:70px; top:280px; width:180px; height:180px; }
  .tws-hero__title{ font-size:28px; }
  .tws-hero__title::after{ width:140px; height:2px; margin-top:16px; }
  .tws-hero__lead{ font-size:14px; margin-top:20px; }
  .tws-hero__pola--ice{     left:63%;  top:16px;  width:28%; }
  .tws-hero__pola--lantern{ left:42%;  top:230px; width:30%; }
  .tws-hero__pola--tea{     left:76%;  top:235px; width:23%; }
  .tws-hero__pola--jiufen{  left:6%;   top:330px; width:38%; }
  .tws-hero__pola--dimsum{  left:58%;  top:400px; width:34%; }

  .tws-choose{ padding:180px 0 40px; }
  .tws-choose__head{ gap:14px; }
  .tws-choose__pin{ width:30px; margin-top:2px; }
  .tws-choose__head-text h2{ font-size:26px; }
  .tws-choose__head-text h2::after{ width:90px; margin-top:12px; }
  .tws-choose__head-text p{ font-size:13px; margin-top:10px; }

  .tws-map{ aspect-ratio:auto; margin-top:24px; }
  .tws-map::before{
    left:50%; top:-2%; width:140%; height:auto; aspect-ratio:1/1;
    max-width:none; transform:translateX(-50%);
  }
  .tws-map::after{
    left:auto; right:-25%; top:30%;
    width:75%; height:auto; aspect-ratio:1/1;
  }
  .tws-map__stage{
    position:relative; left:auto; top:auto;
    width:64%; margin:30px auto 0;
  }
  .tws-map__labels{
    position:static;
    display:grid; grid-template-columns:1fr 1fr; gap:12px;
    margin-top:28px; pointer-events:auto;
  }
  .tws-map__label{ position:static; min-width:0; padding:10px 12px 8px; }
  .tws-map__label::after{ display:none; }
  .tws-map__label .name{ font-size:19px; }
  .tws-map__label .count{ font-size:13px; }
  .tws-map__label .en{ font-size:11px; }
  .tws-map__label.is-left .en,
  .tws-map__label.is-right .en{ text-align:center; }
  .tws-map__label.is-right .tws-map__label-row{ flex-direction:row; justify-content:center; }

  .tws-list{ padding:10px 0 80px; }
  .tws-list__blob-right{ right:-200px; top:120px; width:390px; height:395px; }
  .tws-list__blob-left{ left:-300px; top:420px; width:640px; height:650px; }
  .tws-list__circle-rose{ right:-160px; top:1350px; width:400px; height:392px; }

  .tws-area{ margin-top:60px; scroll-margin-top:90px; }
  .tws-area__title{ font-size:23px; }
  .tws-area__title::after{ width:90px; margin-top:12px; }
  .tws-area--other .tws-area__title{ font-size:19px; }

  .tws-card{
    flex-direction:column-reverse; gap:22px;
    padding:24px 20px 28px;
    margin-top:28px; border-radius:18px;
  }
  .tws-card__img{ width:100%; max-width:none; border-radius:12px; }
  .tws-card__name{ font-size:20px; }
  .tws-card__en{ font-size:12.5px; }
  .tws-card__tags{ gap:8px; margin-top:12px; }
  .tws-card__tags li{ font-size:12px; padding:2px 14px; }
  .tws-card__desc{ font-size:14px; margin-top:14px; }
  .tws-card__btn{ font-size:14px; padding:10px 26px; margin-top:22px; }

  .tws-divider{ margin:70px 0 0; }
}

/* ============================================================
   学校詳細ページ（single-soso_school.php）
   デザイン元: 学校紹介フォーマット（genspark テンプレート）
   ============================================================ */
.scs{
  position:relative;
  background:var(--cream-light);
  overflow:hidden;
  z-index:1; /* footer側 .contact__bigcircle より手前に */
  color:#4A3A35;
}

/* ---- HERO ---- */
.scs-hero{
  margin-top:160px; /* absoluteヘッダーの高さぶん下げる */
}
.scs-hero__image{
  width:100%; height:420px; overflow:hidden;
}
.scs-hero__image img{
  width:100%; height:100%; object-fit:cover; object-position:center;
}
.scs-hero__brand{
  background:var(--pink-deep);
  text-align:center; padding:6px 20px;
  font-size:12px; font-weight:700; letter-spacing:.08em; color:#fff;
}
.scs-hero__title-block{
  background:linear-gradient(135deg, #4A3A35 0%, #5c4840 100%);
  padding:36px 48px 40px; text-align:center;
}
.scs-hero__location{
  display:inline-flex; align-items:center; gap:6px;
  background:#8BAEC2; color:#fff;
  font-size:12px; font-weight:600; letter-spacing:.04em;
  padding:5px 14px; border-radius:20px; margin:0 0 16px;
}
.scs-hero__name{
  font-size:clamp(22px, 5vw, 34px); font-weight:900; color:#fff;
  line-height:1.3; margin:0 0 6px;
}
.scs-hero__en{
  font-size:clamp(12px, 2vw, 15px); color:var(--pink);
  letter-spacing:.06em; margin:0 0 18px;
}
.scs-hero__catch{
  font-size:clamp(14px, 2.5vw, 18px); color:var(--cream-light);
  font-weight:500; padding:12px 20px; margin:0;
  border-left:4px solid var(--pink-deep);
  background:rgba(244,160,165,.12);
  border-radius:0 12px 12px 0;
  display:inline-block; text-align:left; max-width:700px;
}

/* ---- MAIN ---- */
.scs-main{
  max-width:892px; margin:0 auto;
  padding:0 16px 48px;
  font-size:15px;
}
.scs-section{ margin-top:40px; }
.scs-section--tinted{
  background:var(--pink-pale);
  border-radius:20px; padding:28px 24px;
}
.scs-title{
  font-size:clamp(16px, 3vw, 20px); font-weight:700; color:var(--pink-deep);
  display:flex; align-items:center; gap:10px;
  margin:0 0 20px; padding-bottom:10px;
  border-bottom:2px solid var(--pink);
}
.scs-title i{ color:var(--pink); font-size:1.1em; }

/* ---- コース基本スペック ---- */
.scs-specs{
  display:grid; grid-template-columns:repeat(3, 1fr);
  background:#fff; border-radius:16px; overflow:hidden;
  box-shadow:0 2px 12px rgba(74,58,53,.08);
}
.scs-specs__cell{
  display:flex; flex-direction:column; gap:6px;
  padding:18px 20px;
  border-right:1px solid var(--pink-pale);
  border-bottom:1px solid var(--pink-pale);
}
.scs-specs__cell:nth-child(3n){ border-right:none; }
.scs-specs__cell:nth-last-child(-n+3):nth-child(3n+1),
.scs-specs__cell:nth-last-child(-n+2):nth-child(3n+2),
.scs-specs__cell:nth-last-child(1):nth-child(3n){ border-bottom:none; }
.scs-specs__label{
  font-size:11px; font-weight:700; color:#8BAEC2; letter-spacing:.04em;
  display:flex; align-items:center; gap:6px;
}
.scs-specs__label i{ color:var(--pink); font-size:12px; }
.scs-specs__value{ font-size:14px; font-weight:600; line-height:1.5; }

/* ---- 3ステップ目安指標 ---- */
.scs-indicators{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:16px;
}
.scs-indicator{
  background:#fff; border-radius:14px; padding:20px 18px;
  box-shadow:0 2px 10px rgba(232,94,133,.1);
  display:flex; flex-direction:column; gap:10px;
}
.scs-indicator__label{
  font-size:13px; font-weight:700; color:var(--pink-deep);
  display:flex; align-items:center; gap:6px;
}
.scs-indicator__label i{ color:var(--pink); }
.scs-indicator__stars{ display:flex; gap:4px; }
.scs-indicator__stars .star{ font-size:22px; color:var(--pink); line-height:1; }
.scs-indicator__stars .star.is-filled{ color:var(--pink-deep); }
.scs-indicator__comment{
  font-size:12px; color:#6a5a55; line-height:1.6;
  padding-top:6px; border-top:1px solid var(--pink-pale);
}

/* ---- 特徴リスト ---- */
.scs-features{ display:flex; flex-direction:column; gap:16px; }
.scs-feature{
  background:#fff; border-radius:16px; padding:20px 22px;
  display:flex; gap:18px; align-items:flex-start;
  box-shadow:0 2px 10px rgba(74,58,53,.07);
  border-left:5px solid var(--pink);
}
.scs-feature__icon{
  width:44px; height:44px; flex-shrink:0;
  background:linear-gradient(135deg, var(--pink), var(--pink-deep));
  border-radius:12px; color:#fff; font-size:18px;
  display:flex; align-items:center; justify-content:center;
}
.scs-feature__heading{ font-size:15px; font-weight:700; margin-bottom:6px; }
.scs-feature__desc{ font-size:13px; color:#6a5a55; line-height:1.7; }

/* ---- スタッフレビュー ---- */
.scs-review{
  background:#fff; border-radius:16px; padding:24px 22px;
  display:flex; gap:20px; align-items:flex-start;
  box-shadow:0 2px 12px rgba(232,94,133,.1);
}
.scs-review__avatar{ flex-shrink:0; }
.scs-review__avatar img,
.scs-review__avatar-fallback{
  width:80px; height:80px; border-radius:50%;
  object-fit:cover; border:3px solid var(--pink);
}
.scs-review__avatar-fallback{
  display:flex; align-items:center; justify-content:center;
  background:var(--pink); color:#fff; font-size:15px; font-weight:700;
}
.scs-review__name{
  font-size:13px; font-weight:700; color:var(--pink-deep); margin-bottom:10px;
}
.scs-review__text{
  font-size:14px; line-height:1.8; margin:0;
  padding-left:14px; border-left:3px solid var(--pink);
  font-style:italic;
}

/* ---- 学費・申込み情報 ---- */
.scs-fees{
  background:#fff; border-radius:16px; overflow:hidden;
  box-shadow:0 2px 10px rgba(74,58,53,.07);
}
.scs-fees__row{
  display:flex; justify-content:space-between; align-items:center;
  gap:12px; padding:14px 22px;
  border-bottom:1px solid var(--pink-pale);
}
.scs-fees__row:last-child{ border-bottom:none; }
.scs-fees__label{ font-size:13px; font-weight:600; color:#6a5a55; }
.scs-fees__value{ font-size:14px; font-weight:600; text-align:right; }
.scs-fees__row.is-highlight{ background:var(--pink-pale); }
.scs-fees__row.is-highlight .scs-fees__label{ color:var(--pink-deep); font-weight:700; }
.scs-fees__row.is-highlight .scs-fees__value{ color:var(--pink-deep); font-size:17px; font-weight:700; }
.scs-fees__note{
  margin-top:14px; font-size:12px; color:#8a7a75; line-height:1.7;
  padding:12px 16px; background:#fff; border-radius:10px;
  border-left:4px solid #8BAEC2;
}

/* ---- おすすめタグ ---- */
.scs-tags{ display:flex; flex-wrap:wrap; gap:10px; }
.scs-tag{
  background:#fff; border:2px solid var(--pink); color:var(--pink-deep);
  font-size:13px; font-weight:600; padding:7px 16px; border-radius:24px;
  display:inline-flex; align-items:center; gap:6px;
}
.scs-tag i{ font-size:11px; }

/* ---- CTA ---- */
.scs-cta{
  background:var(--tan); padding:56px 24px; margin-top:48px;
  text-align:center;
}
.scs-cta__inner{
  max-width:680px; margin:0 auto;
  display:flex; flex-direction:column; align-items:center; gap:24px;
}
.scs-cta__title{
  font-size:clamp(20px, 4vw, 28px); font-weight:700; color:#4A3A35;
  line-height:1.4; margin:0;
}
.scs-cta__sub{ font-size:14px; color:#6a5a55; line-height:1.8; margin:0; }
.scs-cta__actions{ display:flex; gap:16px; flex-wrap:wrap; justify-content:center; }
.scs-cta__btn-primary{
  background:linear-gradient(135deg, var(--pink-deep), var(--pink));
  color:#fff; font-size:15px; font-weight:700;
  padding:14px 32px; border-radius:40px;
  display:inline-flex; align-items:center; gap:10px;
  box-shadow:0 4px 18px rgba(232,95,134,.35);
  transition:transform .25s cubic-bezier(.34,1.56,.64,1), box-shadow .25s ease;
}
.scs-cta__btn-primary:hover{
  transform:translateY(-4px);
  box-shadow:0 10px 26px rgba(232,95,134,.45);
}
.scs-cta__btn-line{
  background:#fff; color:#4A3A35; font-size:15px; font-weight:700;
  padding:14px 32px; border-radius:40px;
  display:inline-flex; align-items:center; gap:10px;
  border:2px solid #4A3A35;
  transition:background .2s, color .2s, transform .25s cubic-bezier(.34,1.56,.64,1), box-shadow .25s ease;
}
.scs-cta__btn-line i{ color:#06C755; }
.scs-cta__btn-line:hover{ background:#4A3A35; color:#fff; transform:translateY(-2px); box-shadow:0 8px 18px rgba(74,58,53,.28); }
.scs-cta__btn-line:hover i{ color:#fff; }
.scs-cta__back{ margin:6px 0 0; font-size:13px; }
.scs-cta__back a{ color:#6a5a55; font-weight:600; }
.scs-cta__back a:hover{ color:var(--pink-deep); }

/* ---- SP ---- */
@media (max-width: 950px){
  .scs-hero{ margin-top:0; }
  .scs-hero__image{ height:320px; }
  .scs-hero__title-block{ padding:28px 24px 32px; }
  .scs-main{ padding:0 12px 40px; }
  .scs-specs{ grid-template-columns:repeat(2, 1fr); }
  .scs-specs__cell{ border-right:none; border-bottom:1px solid var(--pink-pale); }
  .scs-specs__cell:nth-child(odd){ border-right:1px solid var(--pink-pale); }
  .scs-specs__cell:nth-last-child(-n+2){ border-bottom:none; }
  .scs-section--tinted{ padding:22px 16px; }
  .scs-review{ flex-direction:column; align-items:center; text-align:center; }
  .scs-review__text{ text-align:left; }
  .scs-fees__row{ flex-direction:column; align-items:flex-start; gap:4px; }
  .scs-fees__value{ text-align:left; }
  .scs-cta{ padding:44px 20px; margin-top:40px; }
}

/* ============================================================
   中国学校一覧ページ（page-china.php）— マップのみ台湾と異なる
   ============================================================ */
.tws-map--china .tws-map__stage{
  left:13%; top:10%; width:68%;
}
.tws-map--china .tws-map__star{ width:10%; }
.tws-map--china .tws-map__label{ z-index:3; }

@media (max-width: 950px){
  .tws-map--china .tws-map__stage{
    left:auto; top:auto; width:82%; margin:20px auto 0;
  }
}

/* ============================================================
   徹底比較ページ（page-comparison.php）
   ============================================================ */
.cmpp{
  position:relative;
  background:var(--cream-light);
  overflow:hidden;
  z-index:1; /* footer側 .contact__bigcircle より手前に */
}

/* ---- HERO ---- */
.cmpp-hero{
  position:relative;
  margin-top:160px;
  background:var(--pink);
  padding:110px 0 60px;
  text-align:center;
  color:#fff;
}
.cmpp-hero__circle-rose{ /* 左の濃ローズ円 */
  position:absolute; left:-230px; top:24px;
  width:414px; height:414px; border-radius:50%;
  background:var(--pink-deep); z-index:0;
}
.cmpp-hero__circle-tan{ /* 右上のタン円 */
  position:absolute; right:-89px; top:114px;
  width:159px; height:159px; border-radius:50%;
  background:var(--tan); z-index:0;
}
.cmpp-hero__circle-pink{ /* 右下の明ピンク円 */
  position:absolute; right:-24px; top:309px;
  width:189px; height:189px; border-radius:50%;
  background:#FF91B0; z-index:0;
}
.cmpp-hero .inner{ position:relative; z-index:2; }
.cmpp-hero__en{
  font-size:12px; font-weight:700; letter-spacing:.22em;
  margin:0 0 16px; opacity:.9;
}
.cmpp-hero__title{
  font-size:34px; font-weight:800; letter-spacing:.08em;
  line-height:1.5; margin:0;
}
.cmpp-hero__title::after{
  content:""; display:block; width:110px; height:2px;
  background:#fff; margin:20px auto 0;
}
.cmpp-hero__lead{
  font-size:13.5px; font-weight:600; line-height:2;
  letter-spacing:.06em; margin:22px 0 0;
}
.cmpp-tabs{
  display:inline-flex; gap:4px;
  background:#fff; border-radius:999px;
  padding:6px; margin-top:36px;
  box-shadow:0 6px 16px rgba(91,74,63,.18);
}
.cmpp-tab{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:200px; padding:15px 26px;
  border-radius:999px;
  font-size:15px; font-weight:700; letter-spacing:.08em;
  color:#616161; background:#EFECEC;
  transition:background .2s, color .2s;
}
.cmpp-tab:hover{ background:#e4dfdf; }
.cmpp-tab.is-active{
  background:#39A1B2; color:#fff; cursor:default;
}
/* 国別カラー：未選択時は灰色（ベース）、オンマウス・選択時(is-active)のみ台湾＝ピンク / 中国＝赤 */
.cmpp-tab--tw.is-active,
a.cmpp-tab--tw:hover{ background:var(--pink); color:#fff; }
.cmpp-tab--cn.is-active,
a.cmpp-tab--cn:hover{ background:#DF5656; color:#fff; }
/* ３カ国比較タブ（国別クラス無し）：未選択のオンマウスも選択色(ティール)に */
a.cmpp-tab:not(.cmpp-tab--tw):not(.cmpp-tab--cn):hover{ background:#39A1B2; color:#fff; }

/* ---- 比較表セクション ---- */
.cmpp-sec{ padding:80px 0 120px; }
.cmpp-sec__sub{
  font-size:15px; font-weight:700; letter-spacing:.08em;
  color:var(--pink); margin:0 0 8px;
}
.cmpp-sec__title{
  font-size:28px; font-weight:800; letter-spacing:.06em;
  color:#636363; line-height:1.5; margin:0 0 34px;
  padding-left:16px; border-left:6px solid var(--pink-deep);
}

.cmpp-card{
  background:#fff; border-radius:18px;
  box-shadow:0 4px 20px rgba(91,74,63,.08);
  padding:26px 26px 30px;
}

.cmpp-row{
  display:grid;
  grid-template-columns:250px 1fr 1fr 1fr;
  align-items:center;
  width:100%;
  border:none; border-bottom:1px solid #EFE6DA;
  background:none; text-align:left;
  padding:36px 12px;
  font-family:inherit;
  transition:background .15s;
}
.cmpp-row:last-of-type{ border-bottom:none; }
button.cmpp-row{ cursor:pointer; }
button.cmpp-row:hover{ background:#FBF4EC; }

.cmpp-row--head{
  padding:10px 12px 18px;
  border-bottom:1px solid #EFE6DA;
}
.cmpp-row--head .cmpp-cell--cat{
  font-size:15px; font-weight:700; color:#616161;
}
.cmpp-cell--country{
  display:flex; flex-direction:column; align-items:center; gap:6px;
}
.cmpp-cell--country .flag{ width:44px; display:block; }
.cmpp-cell--country .flag svg{ width:100%; height:auto; display:block; border-radius:4px; }
.cmpp-cell--country .en{ font-size:11px; color:#8a8178; }

.pill{
  display:inline-block; min-width:64px; text-align:center;
  font-size:13px; font-weight:700; color:#fff;
  padding:2px 14px; border-radius:999px; line-height:1.6;
}
.pill--tw{ background:#FF9494; }
.pill--cn{ background:#DF5656; }
.pill--jp{ background:#FF7000; }

.cmpp-cell{
  font-size:15px; font-weight:600; color:#616161;
  text-align:center; line-height:1.7; letter-spacing:.02em;
  padding:0 10px;
}
.cmpp-cell--cat{
  display:flex; align-items:center; gap:14px;
  text-align:left; padding:0;
}
.cmpp-cell--cat .ico{ font-size:22px; flex-shrink:0; }
.cmpp-cell--cat .labels{ display:flex; flex-direction:column; gap:2px; }
.cmpp-cell--cat .ja{ font-size:15px; font-weight:700; color:#616161; }
.cmpp-cell--cat .en{ font-size:10.5px; font-weight:500; color:#8a8178; letter-spacing:.02em; }

.cmpp-card__note{
  margin:28px 0 0; text-align:center;
  font-size:13px; font-weight:600; color:#8a8178; letter-spacing:.04em;
}

/* ---- トリビアポップアップ ---- */
.cmpp-modal{ position:fixed; inset:0; z-index:1200; }
.cmpp-modal__overlay{
  position:absolute; inset:0;
  background:rgba(74,58,53,.5);
}
.cmpp-modal__box{
  position:absolute; left:50%; top:50%;
  transform:translate(-50%,-50%);
  width:min(680px, calc(100vw - 32px));
  max-height:calc(100vh - 60px);
  overflow-y:auto;
  background:#fff; border-radius:20px;
  padding:30px 30px 28px;
  box-shadow:0 12px 44px rgba(74,58,53,.3);
}
.cmpp-modal__close{
  position:absolute; right:14px; top:12px;
  width:36px; height:36px; border:none; border-radius:50%;
  background:var(--pink-pale); color:#5b4a3f;
  font-size:20px; line-height:1; cursor:pointer;
}
.cmpp-modal__close:hover{ background:var(--pink); color:#fff; }
.cmpp-modal__head{
  display:flex; align-items:center; gap:12px;
  margin-bottom:18px; padding-bottom:14px;
  border-bottom:2px solid var(--pink);
}
.cmpp-modal__head .ico{ font-size:28px; }
.cmpp-modal__head h3{
  font-size:20px; font-weight:800; color:#4a3a35; margin:0;
}
.cmpp-modal__grid{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:12px;
}
.cmpp-modal__country{
  background:#FBF4EC; border-radius:12px;
  padding:14px 12px; text-align:center;
}
.cmpp-modal__country p{
  font-size:13px; font-weight:600; color:#616161;
  line-height:1.7; margin:10px 0 0;
}
.cmpp-modal__trivia{
  margin-top:18px; background:var(--pink-pale);
  border-radius:12px; padding:18px 20px;
}
.cmpp-modal__trivia h4{
  font-size:14px; font-weight:800; color:var(--pink-deep); margin:0 0 8px;
}
.cmpp-modal__trivia p{
  font-size:14px; line-height:1.9; color:#4a443f; margin:0;
}

/* ---- SP ---- */
@media (max-width: 950px){
  .cmpp-hero{ margin-top:0; padding:60px 0 44px; }
  .cmpp-hero__circle-rose{ left:-160px; top:10px; width:260px; height:260px; }
  .cmpp-hero__circle-tan{ right:-50px; top:70px; width:110px; height:110px; }
  .cmpp-hero__circle-pink{ right:-30px; top:auto; bottom:-40px; width:130px; height:130px; }
  .cmpp-hero__en{ font-size:10px; }
  .cmpp-hero__title{ font-size:19px; }
  .cmpp-hero__lead{ font-size:12px; }
  .cmpp-tabs{
    display:flex; flex-direction:column; gap:6px;
    border-radius:22px; margin-top:26px; padding:8px;
  }
  .cmpp-tab{ min-width:0; width:100%; padding:12px 20px; font-size:14px; }

  .cmpp-sec{ padding:56px 0 80px; }
  .cmpp-sec__sub{ font-size:13px; }
  .cmpp-sec__title{ font-size:18px; padding-left:12px; border-left-width:4px; }

  .cmpp-card{ padding:6px 14px 20px; }
  .cmpp-row--head{ display:none; }
  .cmpp-row{
    grid-template-columns:1fr;
    gap:10px; padding:18px 4px;
  }
  .cmpp-cell--cat{ gap:10px; }
  .cmpp-cell{
    display:flex; align-items:center; gap:10px;
    text-align:left; padding:0;
    font-size:13px;
  }
  .cmpp-cell[data-label]::before{
    content:attr(data-label);
    flex-shrink:0;
    display:inline-block; min-width:52px; text-align:center;
    font-size:11px; font-weight:700; color:#fff;
    padding:1px 10px; border-radius:999px;
  }
  .cmpp-cell[data-label="台湾"]::before{ background:#FF9494; }
  .cmpp-cell[data-label="中国"]::before{ background:#DF5656; }
  .cmpp-cell[data-label="日本"]::before{ background:#FF7000; }
  .cmpp-cell[data-label] br{ display:none; }

  .cmpp-card__note{ font-size:11px; }

  .cmpp-modal__box{ padding:22px 18px 20px; }
  .cmpp-modal__grid{ grid-template-columns:1fr; gap:8px; }
  .cmpp-modal__country{
    display:flex; align-items:center; gap:10px; text-align:left;
    padding:10px 12px;
  }
  .cmpp-modal__country p{ margin:0; }
}

/* ============================================================
   国別情報ページ（page-taiwan-info.php / page-china-info.php）
   ヒーローとタブは .cmpp- 系、プロファイル/CTAは既存 .country- 系を利用
   ============================================================ */
.cinfo .pink-strong{ color:var(--pink-bright); font-weight:800; }

/* ---- Hot Topics（最新トレンド３選） ---- */
.ctop{ padding:90px 0 30px; }
.ctop__head{ text-align:center; margin-bottom:72px; }
.ctop__head .sub{
  color:#F5A0A5; font-size:14px; font-weight:700;
  letter-spacing:.18em; margin:0 0 12px;
}
.ctop__head .title{
  font-size:30px; font-weight:800; color:#636363;
  letter-spacing:.06em; line-height:1.7; margin:0;
}
.ctop__head .band{
  background:linear-gradient(transparent 58%, #FBBDB8 58%, #FBBDB8 90%, transparent 90%);
  padding:0 10px;
}
.ctop__head .em{ color:#FF9494; }

.ctop__item{
  position:relative;
  display:grid; grid-template-columns:468fr 449fr; gap:3px;
  align-items:stretch;
  max-width:918px;
  margin:0 auto 60px;
}
.ctop__item:last-child{ margin-bottom:0; }
.ctop__num{
  position:absolute; top:-38px; left:-52px;
  font-size:58px; font-weight:800; color:#F5B9BD;
  line-height:1; z-index:3; pointer-events:none;
}
.ctop__item--rev .ctop__num{ left:auto; right:-28px; top:-28px; }
.ctop__img{ overflow:hidden; height:206px; }
.ctop__img img{
  width:100%; height:100%; object-fit:cover; display:block;
}
.ctop__item--rev .ctop__img{ order:2; }
.ctop__item--rev .ctop__body{ order:1; }
.ctop__body{
  position:relative; overflow:hidden;
  background:#FBF8F6;
  border:1px solid var(--tan);
  padding:30px 38px;
  min-height:206px;
  display:flex; flex-direction:column; justify-content:center;
}
.ctop__body--r{ border-radius:0 0 28px 0; }
.ctop__body--l{ border-radius:0 0 0 28px; }
.ctop__body h3{
  font-size:19px; font-weight:800; color:#4a3a35;
  margin:0 0 14px; padding-left:12px;
  border-left:4px solid var(--pink-deep);
  line-height:1.5;
  position:relative; z-index:1;
}
.ctop__body p{
  font-size:14px; line-height:1.95; color:#616161;
  letter-spacing:.05em; margin:0;
  position:relative; z-index:1;
}
.ctop__deco{
  position:absolute; color:#FADCDE; z-index:0; pointer-events:none;
}
.ctop__deco svg{ display:block; width:100%; height:auto; }
.ctop__deco--fork{ right:34px; top:50%; transform:translateY(-50%); width:64px; }
.ctop__deco--hand{ left:-8px; bottom:-14px; width:118px; transform:rotate(-6deg); }
.ctop__deco--thumb{ right:6px; bottom:-40px; width:170px; transform:rotate(-8deg); }

@media (max-width: 950px){
  .ctop{ padding:60px 0 10px; }
  .ctop__head{ margin-bottom:52px; }
  .ctop__head .sub{ font-size:12px; }
  .ctop__head .title{ font-size:16px; }
  .ctop__head .band{ padding:0 4px; }
  .ctop__item{ grid-template-columns:1fr; margin-bottom:52px; }
  .ctop__num{ top:-30px; left:2px; font-size:44px; }
  .ctop__item--rev .ctop__num{ left:auto; right:6px; top:-30px; }
  .ctop__img{ order:1; height:200px; }
  .ctop__body{ order:2; padding:24px 20px 28px; min-height:0; }
  .ctop__item--rev .ctop__img{ order:1; }
  .ctop__item--rev .ctop__body{ order:2; }
  .ctop__body h3{ font-size:16px; }
  .ctop__body p{ font-size:13px; }
  .ctop__body p br{ display:none; }
  .ctop__deco--fork{ width:52px; right:14px; }
  .ctop__deco--hand{ width:96px; }
  .ctop__deco--thumb{ width:130px; }
}

/* 台湾情報ページ: CTAボックスをトレンド行と同幅・コンパクトに */
.cinfo .country-cta .inner{ max-width:1040px; }
.cinfo .country-cta__box{
  max-width:918px; margin-left:auto; margin-right:auto;
  padding:26px 36px; border-radius:18px; gap:28px;
}
.cinfo .country-cta__text h2{ font-size:15px; margin-bottom:10px; }
.cinfo .country-cta__text p{ font-size:12.5px; line-height:1.85; padding-left:24px; }
.cinfo .country-cta__btn{
  font-size:13px; padding:13px 26px; border-radius:999px;
  background:#F5B9BD;
  box-shadow:0 4px 10px rgba(232,94,133,.28);
}
.cinfo .country-cta__btn .arrow{ width:18px; height:18px; }
@media (max-width:950px){
  .cinfo .country-cta__box{ padding:22px 20px; }
}

/* フッター: 外部リンクアイコン（591房屋交易網など） */
.footer-links .footer-ext{
  width:12px; height:12px;
  margin-left:5px; vertical-align:-1px; display:inline-block;
}

/* 汎用: 完全非表示（591相当の中国CTA等、ベースは残しつつ表示だけ止める） */
.country-cta.is-hidden{ display:none; }

/* ============================================================
   ブログ・お知らせ一覧（page-blog.php / デザイン参考: blog.html）
   ============================================================ */
.bloglist{
  position:relative; z-index:2; /* footer .contact__bigcircle より手前 */
  background:var(--cream-light); /* body・フッターと同色でヘッダー/問い合わせと段差なくなじませる */
  padding:160px 0 90px;
  overflow:hidden;
}
/* 装飾円（クリーム地に添えるピンクの円） */
.bl-circle{ position:absolute; border-radius:50%; z-index:0; pointer-events:none; }
.bl-circle--rose{ left:-180px; top:60px; width:340px; height:340px; background:rgba(232,95,134,.10); }
.bl-circle--pink{ right:-140px; top:430px; width:280px; height:280px; background:rgba(244,160,165,.16); }

.bl-head,
.bl-tabwrap,
.bl-wrap{ position:relative; z-index:1; max-width:900px; margin-left:auto; margin-right:auto; padding-left:22px; padding-right:22px; }

/* ---- ヘッダー ---- */
.bl-head{ text-align:center; }
.bl-head__kicker{ font-size:11px; font-weight:700; letter-spacing:.22em; color:#E85F86; margin:0 0 12px; }
.bl-head__title{ font-size:clamp(24px,5vw,34px); font-weight:900; color:#4A3A35; line-height:1.4; margin:0 0 14px; }
.bl-head__sub{ font-size:13.5px; color:#A08070; max-width:520px; margin:0 auto; line-height:1.9; }

/* ---- タブ切替 ---- */
.bl-tabwrap{ display:flex; justify-content:center; margin-top:34px; }
.bl-tabs{ display:inline-flex; gap:4px; background:#fff; border:1.5px solid #F0D8D8; border-radius:999px; padding:5px; box-shadow:0 2px 12px rgba(74,58,53,.06); }
.bl-tab{ appearance:none; border:none; background:transparent; font-family:inherit; font-size:13.5px; font-weight:700; color:#A08070; padding:11px 28px; border-radius:999px; cursor:pointer; display:inline-flex; align-items:center; gap:8px; transition:background .2s, color .2s; }
.bl-tab__ic{ width:15px; height:15px; display:inline-flex; }
.bl-tab__ic svg{ width:100%; height:100%; }
.bl-tab:hover{ color:#E85F86; }
.bl-tab.is-active{ background:linear-gradient(135deg,#E85F86,#F4A0A5); color:#fff; box-shadow:0 3px 12px rgba(232,95,134,.35); }
.bl-tab__count{ font-size:10.5px; font-weight:700; background:rgba(74,58,53,.08); color:inherit; padding:1px 8px; border-radius:999px; }
.bl-tab.is-active .bl-tab__count{ background:rgba(255,255,255,.28); }

/* ---- パネル ---- */
.bl-wrap{ margin-top:30px; }
.bl-panel{ animation:blFade .35s ease; }
@keyframes blFade{ from{ opacity:0; transform:translateY(8px); } to{ opacity:1; transform:translateY(0); } }

/* ---- ブログカード ---- */
.bl-grid{ display:grid; grid-template-columns:1fr; gap:22px; }
@media (min-width:640px){ .bl-grid{ grid-template-columns:repeat(2,1fr); } }
.bl-card{ background:#fff; border-radius:16px; overflow:hidden; border:1px solid #F5E3E7; box-shadow:0 3px 18px rgba(74,58,53,.08); display:flex; flex-direction:column; transition:transform .25s cubic-bezier(.34,1.56,.64,1), box-shadow .25s ease; }
.bl-card:hover{ transform:translateY(-4px); box-shadow:0 12px 28px rgba(74,58,53,.15); }
.bl-card__thumb{ position:relative; width:100%; height:182px; overflow:hidden; }
.bl-card__thumb img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.bl-card:hover .bl-card__thumb img{ transform:scale(1.05); }
.bl-card__tag{ position:absolute; top:12px; left:12px; background:rgba(74,58,53,.72); color:#fff; font-size:10.5px; font-weight:700; letter-spacing:.06em; padding:5px 12px; border-radius:999px; display:inline-flex; align-items:center; gap:5px; }
.bl-card__tag .ic{ width:11px; height:11px; display:inline-flex; color:#F4A0A5; }
.bl-card__tag .ic svg{ width:100%; height:100%; }
.bl-card__body{ padding:18px 20px 20px; display:flex; flex-direction:column; flex:1; }
.bl-card__meta{ display:flex; align-items:center; gap:6px; font-size:11px; color:#C4A9A0; font-weight:600; margin-bottom:9px; }
.bl-card__meta .ic{ width:13px; height:13px; display:inline-flex; }
.bl-card__meta .ic svg{ width:100%; height:100%; }
.bl-card__meta .ic--clock{ margin-left:8px; }
.bl-card__title{ font-size:15.5px; font-weight:700; color:#4A3A35; line-height:1.55; margin:0 0 9px; }
.bl-card__excerpt{ font-size:12.5px; color:#8a7a75; line-height:1.8; flex:1; margin:0 0 14px; }
.bl-card__more{ font-size:11.5px; font-weight:700; color:#E85F86; display:inline-flex; align-items:center; gap:6px; margin-top:auto; }
.bl-card__more .ic{ width:13px; height:13px; display:inline-flex; transition:transform .2s ease; }
.bl-card__more .ic svg{ width:100%; height:100%; }
.bl-card:hover .bl-card__more .ic{ transform:translateX(3px); }

/* ---- NEWSリスト ---- */
.bl-news{ display:flex; flex-direction:column; gap:1px; background:#F0D8D8; border:1px solid #F0D8D8; border-radius:14px; overflow:hidden; }
.bl-news__item{ background:#fff; display:flex; align-items:flex-start; gap:16px; padding:20px 22px; transition:background .2s ease; }
.bl-news__item:hover{ background:#FFF7F9; }
.bl-news__date{ flex-shrink:0; display:flex; flex-direction:column; align-items:center; justify-content:center; width:60px; padding:8px 4px; border-radius:10px; background:rgba(232,95,134,.08); border:1px solid rgba(232,95,134,.18); }
.bl-news__date .m{ font-size:10px; font-weight:700; color:#E85F86; letter-spacing:.05em; text-transform:uppercase; }
.bl-news__date .d{ font-size:19px; font-weight:900; color:#E85F86; line-height:1.1; }
.bl-news__date .y{ font-size:9px; font-weight:600; color:#C4A9A0; }
.bl-news__body{ flex:1; min-width:0; }
.bl-news__badge{ display:inline-flex; align-items:center; font-size:9.5px; font-weight:700; letter-spacing:.08em; padding:3px 11px; border-radius:999px; margin-bottom:8px; background:rgba(232,95,134,.12); color:#E85F86; }
.bl-news__title{ font-size:14.5px; font-weight:700; color:#4A3A35; line-height:1.6; margin:0 0 6px; }
.bl-news__desc{ font-size:12.5px; color:#8a7a75; line-height:1.8; margin:0; }
.bl-news__link{ display:inline-flex; align-items:center; gap:5px; margin-top:9px; font-size:11.5px; font-weight:700; color:#E85F86; }
.bl-news__link .ic{ width:12px; height:12px; display:inline-flex; transition:transform .2s ease; }
.bl-news__link .ic svg{ width:100%; height:100%; }
.bl-news__item:hover .bl-news__link .ic{ transform:translateX(3px); }

/* ---- 空表示 ---- */
.bl-empty{ text-align:center; font-size:13px; color:#A08070; padding:44px 0; }

/* ---- SP ---- */
@media (max-width:767px){
  .bloglist{ padding:110px 0 80px; }
  .bl-head,.bl-tabwrap,.bl-wrap{ padding-left:16px; padding-right:16px; }
  .bl-tab{ padding:10px 20px; font-size:12.5px; }
  .bl-card__thumb{ height:172px; }
}
