
/* ===== ENEGYM リセット & Cocoon打ち消し ===== */
/* Cocoonの基本コンテナを無効化（独立デザインなので不要） */
#container, #wrap, #main, .main, #content, .content, #sidebar, .sidebar,
.header-container, .footer-container, .header, .footer-bottom,
.navi, .navi-in, .mobile-menu-buttons, .mobile-header-menu-buttons,
.fixed-menu, .fixed-menu-mobile, .breadcrumb, .pagination,
.search-form, .ad-area, .ranking-visible, .toc, .author-info,
.entry-card, .related-entries, .comment-area, .pager-post-navi {
  display: none !important;
}
/* bodyのCocoon装飾を打ち消し */
body{
  margin:0 !important; padding:0 !important;
  background:#3f3832 !important;
  color:var(--ink) !important;
  font-family:"Noto Sans JP", system-ui, sans-serif !important;
  line-height:1.95 !important;
  font-size:15px !important;
  -webkit-font-smoothing:antialiased;
}
/* 全要素のbox-sizing統一 */
*, *::before, *::after { box-sizing:border-box; }
/* Cocoonが画像に当てる装飾を解除 */
img{ max-width:100%; height:auto; display:block; border:0; }
/* リンク色のCocoon標準を解除 */
a{ color:inherit; }
/* リスト初期化 */
ul, ol{ margin:0; padding:0; }
li{ list-style:none; }
/* 見出し初期化 */
h1,h2,h3,h4,h5,h6{ margin:0; padding:0; font-weight:inherit; }
/* Cocoonの絵文字をデフォルト表示に */
img.emoji, img.wp-smiley { display:inline !important; height:1em !important; width:1em !important; vertical-align:-0.1em !important; background:none !important; padding:0 !important; }
/* Cocoonのwrap要素が出ても透明に */
#body-in, #main-in, #container-in { all:unset; display:contents; }

/* ===== Cocoon追加打ち消し（強化版）===== */
/* Cocoonのwrapperを完全に解除 */
#body, #body-in, #main, #main-in, #container, #container-in,
.body, .main, .main-in, .container, .container-in,
.wrap, .wrap-in, .inner-wrap, .article-wrap{
  all: unset !important;
  display: block !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
/* WordPress標準のadmin-barが入る隙間を消す */
html{ margin-top:0 !important; padding-top:0 !important; }
html.has-admin-bar{ margin-top:0 !important; }
@media screen and (max-width: 782px){
  html.has-admin-bar{ margin-top:0 !important; }
}
/* Cocoonが入れる外側マージン・パディング系を打ち消し */
.site, .site *, body > div, body > article{
  /* これは破壊的なので慎重に：必要なら個別に上書き */
}
/* Cocoonが画像に当てがちな枠線・影 */
img, figure, .wp-block-image{
  border:0 !important;
  box-shadow: none !important;
  background: transparent !important;
}
/* Cocoonの見出し装飾解除（h2のborderなど） */
h1, h2, h3, h4, h5, h6{
  border: 0 !important;
  background: transparent !important;
  padding: 0 !important;
  text-shadow: none !important;
}
/* リンクの装飾解除 */
a{ text-decoration: none !important; box-shadow: none !important; }
/* Cocoonの段落マージン */
p{ margin: 0 0 1em; }
/* Gutenbergブロックのリセット */
.wp-block-image, .wp-block-quote, .wp-block-cover{ margin: 0 !important; }
/* Cocoonの絵文字置換を抑制 */
img.emoji, img.wp-smiley{
  display: inline !important;
  width: 1em !important;
  height: 1em !important;
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  vertical-align: -0.1em !important;
  padding: 0 !important;
  margin: 0 !important;
}
/* デザイン内のh2/h3が再定義されている箇所を保護（feature-card h3など） */
.feature-card h3, .flow h2, .review-card .who b, .qa-q,
.contact h2, .pp-h, .block-head .en, .block-head .jp,
.head .en, .head .jp{
  /* これらは独自CSSが既に効くべき。Cocoonに上書きされていないか確認用 */
}

/* ===== Cocoonボタン/フォント/角丸 打ち消し ===== */
/* フォントを強制適用（Cocoonが body や見出しに当てるフォントを上書き） */
body, body *, h1, h2, h3, h4, h5, h6, p, a, button, input, textarea, select, li, span, div{
  font-family: "Noto Sans JP", system-ui, -apple-system, "Segoe UI", sans-serif !important;
}
/* Oswald使用箇所だけ復活させる */
.head .en, .deco-en, .feature-card .num, .plan-card .price, .plan-card .count,
.contact-badge, .topbar-logo, .footer-logo, .drawer li a, .sidenav li a,
.subhero .en, .block-head .en, .prog-num, .route-head, .badge,
.btn, .btn *{
  font-family: "Oswald", "Noto Sans JP", sans-serif !important;
}
/* ※btnは本文文字を含むので、ボタン内テキストはNotoに戻す */
.btn{ font-family: "Noto Sans JP", system-ui, sans-serif !important; }
.btn .arrow{ font-family: "Oswald", sans-serif !important; }

/* ===== ボタン関連の完全打ち消し ===== */
/* Cocoonがa/buttonに当てる装飾を全解除 */
.btn, a.btn, button.btn,
.float-line, a.float-line,
.slider-arrow, button.slider-arrow,
.hamburger, button.hamburger,
.qa-q, button.qa-q{
  /* Cocoon標準を全否定 */
  background-image: none !important;
  border: 0 !important;
  outline: 0 !important;
  text-shadow: none !important;
  text-decoration: none !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}

/* btn基本（Cocoon上書き） */
.btn{
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  margin-top: 26px !important;
  padding: 15px 30px !important;
  background: var(--secondary) !important;
  color: #fff !important;
  border-radius: 999px !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  letter-spacing: .08em !important;
  box-shadow: 0 18px 40px -22px rgba(60,42,22,.45) !important;
  line-height: 1.4 !important;
  cursor: pointer !important;
}
.btn:hover{ background: #42352a !important; transform: translateY(-2px); }
.btn.accent{ background: var(--accent) !important; }
.btn.accent:hover{ background: var(--accent-deep) !important; }
.btn .arrow{ font-size: 11px !important; }

/* float-line（固定LINEボタン） */
.float-line{
  background: #06C755 !important;
  color: #fff !important;
  border-radius: 999px !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  padding: 12px 20px 12px 14px !important;
}

/* スライダー矢印 */
.slider-arrow{
  background: #fff !important;
  color: var(--accent-deep) !important;
  border-radius: 50% !important;
  width: 42px !important;
  height: 42px !important;
  font-size: 26px !important;
  cursor: pointer !important;
}
.slider-dots .dot{
  border-radius: 50% !important;
  width: 11px !important;
  height: 11px !important;
  border: 2px solid #fff !important;
  cursor: pointer !important;
  padding: 0 !important;
}

/* Q&A開閉ボタン */
.qa-q{
  background: none !important;
  cursor: pointer !important;
  text-align: left !important;
  width: 100% !important;
  padding: 18px 50px 18px 20px !important;
  font-weight: 700 !important;
  color: var(--secondary) !important;
  font-size: 15px !important;
  line-height: 1.6 !important;
}

/* ハンバーガー */
.hamburger{
  background: none !important;
  cursor: pointer !important;
  padding: 0 !important;
}

/* ===== border-radius の保護 ===== */
.feature-card, .plan-card, .review-card, .profile-card, .message-card,
.cta-card, .contact-card, .pp-card, .access-route,
.block-pic, .feature-card .pic, .access .map, .access .gmap{
  border-radius: 18px !important;
}
.contact-card{ border-radius: 26px !important; }
.cta-card{ border-radius: 24px !important; }
.profile-card, .message-card, .pp-card{ border-radius: 20px !important; }
.feature-card, .plan-card{ border-radius: 22px !important; }
.qa-item{ border-radius: 14px !important; }
.badge, .contact-badge{ border-radius: 999px !important; }
.contact-sns a, .footer .sns a, .drawer-sns a{ border-radius: 50% !important; }
.drawer{ border-radius: 0 !important; }
.float-line{ border-radius: 999px !important; }

/* PCハンバーガーの角丸 */
@media screen and (min-width:769px){
  .hamburger{ border-radius: 18px !important; }
}





:root{
  --primary-color:#F8F6F3;       /* ベージュ：土台 */
  --ink:#5A4636;                  /* 本文の茶（元の#725A4Cより少し濃く・読みやすく） */
  --ink-soft:#8a7868;             /* 補助テキスト */
  --secondary:#544538;            /* 濃茶 */
  --accent:#ff9c00;               /* オレンジ */
  --accent-deep:#e98700;
  --line:#e7e0d6;
  --shadow:0 18px 40px -22px rgba(60,42,22,.45);
  --radius:22px;
  --maxw:430px;                   /* スマホ幅1本のコンテンツ幅 */
}

*{box-sizing:border-box;}
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
section[id], header[id]{ scroll-margin-top:64px; }
body{
  margin:0;
  background:#3f3832;
  font-family:"Noto Sans JP", system-ui, sans-serif;
  color:var(--ink);
  line-height:1.95;
  letter-spacing:.02em;
  font-size:15px;
}

/* ===== PC時に左右に見える背景画像（固定・スクロールで切替フェード） ===== */
/* 元サイトの section::before / .active の仕組みを踏襲。
   各レイヤーを画面いっぱいに固定配置し、表示中セクションのものをフェードイン */
.bg-stage{ position:fixed; inset:0; z-index:-1; }
.bg-stage .bg-layer{
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  opacity:0; transition:opacity 1s ease;
}
.bg-stage .bg-layer.active{ opacity:1; }
/* ダミー背景（実ファイルでは元サイトのTOP.bg.jpg等に差し替え） */
.bg-stage .bg-layer::after{ content:""; position:absolute; inset:0; background:rgba(40,32,24,.35); }
.bg-about  { background-image:url("../../css/images/orange0077.png"); }
.bg-feature{ background-image:url("../../css/images/top__bg1.png"); transform:scaleX(-1); }
.bg-plan   { background-image:url("../../css/images/bg__black1.png"); }
.bg-review { background-image:url("../../css/images/top__bg4.png"); }
.bg-access { background-image:url("../../css/images/bg_access.png"); }

/* ===== スマホ幅1本の本体 ===== */
.site{
  position:relative; z-index:1;
  max-width:var(--maxw);
  margin:0 auto;
  background:var(--primary-color);
  min-height:100vh;
  box-shadow:0 0 80px rgba(0,0,0,.5);
  overflow:hidden;
}

img{max-width:100%;height:auto;display:block;}

/* 共通の見出しブロック */
.head{ text-align:center; padding:54px 24px 8px; }
.head .en{
  font-family:"Oswald", sans-serif;
  font-size:34px;
  letter-spacing:.18em;
  font-weight:600;
  color:var(--secondary);
  margin:0;
  line-height:1.2;
}
.head .en.on-dark{ color:#fff; }
.head .jp{
  display:inline-block;
  margin:10px 0 0;
  font-size:14px;
  font-weight:500;
  color:var(--ink-soft);
  position:relative;
}
.head .jp.on-dark{ color:rgba(255,255,255,.85); }
/* 見出し下の小さなオレンジ装飾ライン */
.head .jp::after{
  content:"";
  display:block;
  width:42px;height:3px;border-radius:3px;
  background:var(--accent);
  margin:12px auto 0;
}
/* 英字見出しの左右の細い線（元サイトのh2__lineを洗練） */
.deco-en{ display:flex; align-items:center; justify-content:center; gap:16px; }
.deco-en::before,.deco-en::after{
  content:""; height:1px; width:34px; background:currentColor; opacity:.4;
}

/* ===== ヒーロー ===== */
.hero{
  position:relative;
  min-height:540px;
  padding-top:58px;            /* 固定ヘッダー分。背景は全面のまま、中身が被らない */
  display:flex; align-items:flex-end; justify-content:center;
  background:
    linear-gradient(180deg, rgba(40,30,20,.15) 0%, rgba(30,22,14,.78) 100%),
    url("../../css/images/TOP.bg.jpg") center/cover;
  color:#fff;
  text-align:center;
}
.hero .copy{ position:absolute; top:80px; right:24px; }
.hero .copy span{
  writing-mode:vertical-rl;
  font-weight:700;
  font-size:30px;
  letter-spacing:.36em;
  text-shadow:0 2px 14px rgba(0,0,0,.7);
}
.hero .logo{ padding-bottom:54px; }
.hero .logo img{
  width:min(72%, 320px);
  height:auto; margin:0 auto;
  filter:drop-shadow(0 6px 20px rgba(0,0,0,.5));
}




/* ===== ABOUT ===== */
.about{ padding:0 24px 56px; text-align:center; }
.about .lead{
  font-size:21px; font-weight:700; color:var(--secondary);
  line-height:1.9; margin:22px 0 18px;
}
.about .lead em{ color:var(--accent-deep); font-style:normal; }
.about p{ margin:0 auto; max-width:34em; }

/* 共通ボタン */
.btn{
  display:inline-flex; align-items:center; gap:10px;
  margin-top:26px;
  padding:15px 30px;
  background:var(--secondary); color:#fff;
  border-radius:999px; text-decoration:none; font-weight:700; font-size:14px;
  letter-spacing:.08em;
  box-shadow:var(--shadow);
  transition:transform .2s ease, background .2s ease;
}
.btn:hover{ transform:translateY(-2px); background:#42352a; }
.btn .arrow{ font-size:11px; }
.btn.accent{ background:var(--accent-deep); }
.btn.accent:hover{ background:#c96f00; }

/* ===== FEATURE ===== */
.feature{ background:var(--secondary); padding-bottom:60px; }
.feature .head .en{ color:#fff; }
.feature-card{
  background:var(--primary-color);
  border-radius:var(--radius);
  margin:22px 18px 0;
  padding:26px 24px 28px;
  box-shadow:var(--shadow);
}
.feature-card .ttl{ display:flex; align-items:center; gap:14px; }
.feature-card .num{
  font-family:"Oswald",sans-serif; font-size:30px; color:var(--accent);
  font-weight:700; line-height:1;
}
.feature-card h3{
  margin:0; font-size:18px; color:var(--secondary); font-weight:700; line-height:1.5;
}
.feature-card .pic{
  border-radius:16px; overflow:hidden; margin:18px 0; aspect-ratio:16/10;
}
.feature-card .pic img{ width:100%; height:100%; object-fit:cover; }
.feature-card p{ margin:0; font-size:14.5px; }

/* ===== PLAN ===== */
.plan{
  /* 元サイト同様：アクセントカラーの上に料金表bg.pngを重ねる */
  background-color:var(--accent);
  background-image:url("../../css/images/%E6%96%99%E9%87%91%E8%A1%A8bg.png");
  background-repeat:repeat-y;
  background-position:center top;
  background-size:100% auto;
  padding-bottom:54px;
}
.plan .head .en,.plan .head .jp{ color:#fff; }
.plan .head .jp::after{ background:#fff; }
.plan-card{
  background:#fff; border-radius:var(--radius);
  margin:22px 20px 0; padding:30px 26px;
  box-shadow:0 22px 44px -20px rgba(120,70,0,.55);
  position:relative; text-align:center;
}
.badge{
  position:absolute; top:-13px; left:50%; transform:translateX(-50%);
  background:var(--secondary); color:#fff;
  font-size:12px; font-weight:700; letter-spacing:.14em;
  padding:6px 20px; border-radius:999px;
}
.plan-card .name{ font-size:20px; font-weight:700; color:var(--secondary); margin:6px 0 2px;}
.plan-card .price{
  font-family:"Oswald",sans-serif; font-size:44px; font-weight:700; color:var(--accent-deep);
  line-height:1.1;
}
.plan-card .price small{ font-size:18px; }
.plan-card .sess{
  margin:14px 0 0; font-size:13px; color:var(--ink-soft); font-weight:500;
  border-top:1px dashed var(--line); padding-top:16px;
}
.plan-card .count{ font-family:"Oswald",sans-serif; font-size:26px; color:var(--secondary); }
.plan-list{ list-style:none; padding:0; margin:18px 0 0; text-align:left; }
.plan-list li{
  display:flex; align-items:center; gap:10px;
  padding:9px 0; border-bottom:1px solid var(--line); font-size:14px;
}
.plan-list li::before{
  content:"✓"; color:var(--accent); font-weight:900; font-size:14px;
}
.plan-note{ color:#fff; text-align:center; font-size:13px; margin:16px 22px 0; line-height:1.8; }
.plan .btn-wrap{ text-align:center; }
.plan-card .comon-text{ font-size:14px; margin:14px 0 0; text-align:left; }

/* ===== スライダー（手動・自動再生なし） ===== */
.slider{ position:relative; margin-top:8px; }
.slider-viewport{ overflow:hidden; padding:14px 0; }
.slider-track{
  display:flex;
  transition:transform .5s cubic-bezier(.4,.0,.2,1);
}
.slider .slide{
  flex:0 0 100%;
  padding:0 20px;
}
/* 矢印 */
.slider-arrow{
  position:absolute; top:42%; transform:translateY(-50%);
  width:42px; height:42px; border-radius:50%;
  border:0; cursor:pointer;
  background:#fff; color:var(--accent-deep);
  font-size:26px; line-height:1; font-weight:700;
  box-shadow:0 8px 18px -6px rgba(120,70,0,.6);
  display:flex; align-items:center; justify-content:center;
  transition:transform .2s, background .2s; z-index:3;
}
.slider-arrow:hover{ transform:translateY(-50%) scale(1.08); }
.slider-arrow.prev{ left:5px; padding-bottom:4px; }
.slider-arrow.next{ right:5px; padding-bottom:4px; }
.slider-arrow:disabled{ opacity:.35; cursor:default; }
/* ドット */
.slider-dots{ display:flex; gap:10px; justify-content:center; margin-top:14px; }
.slider-dots .dot{
  width:11px; height:11px; border-radius:50%;
  background:rgba(255,255,255,.55); border:2px solid #fff;
  cursor:pointer; padding:0; transition:background .2s, transform .2s;
}
.slider-dots .dot.active{ background:var(--secondary); transform:scale(1.15); }

/* ===== FLOW（お申し込み）===== */
.flow{ text-align:center; padding:56px 26px; }
.flow h2{ font-size:22px; color:var(--secondary); margin:0 0 8px; }
.flow .ico{ font-size:40px; }
.flow p{ margin:18px auto 0; max-width:30em; }

/* ===== REVIEW ===== */
.review{ background:#efe9e1; padding-bottom:56px; }
.review-card{
  background:#fff; border-radius:18px; margin:20px 20px 0; padding:22px 22px;
  box-shadow:var(--shadow);
}
.review-card .who{ display:flex; align-items:center; gap:12px; margin-bottom:10px; }
.review-card .ava{
  width:42px;height:42px;border-radius:50%;
  background:var(--accent); color:#fff; display:flex; align-items:center; justify-content:center;
  font-size:20px; flex:none;
}
.review-card .who b{ color:var(--secondary); font-size:14px; }
.review-card .stars{ color:var(--accent); letter-spacing:2px; margin-left:auto; font-size:13px; }
.review-card p{ margin:0; font-size:14px; }

/* ===== Q&A ===== */
.qa{ padding:0 22px 56px; }
.qa-item{
  background:#fff; border-radius:14px; margin-top:14px; box-shadow:var(--shadow);
  overflow:hidden; border:1px solid var(--line);
}
.qa-q{
  width:100%; text-align:left; background:none; border:0; font-family:inherit;
  cursor:pointer; padding:18px 50px 18px 20px; position:relative;
  font-weight:700; color:var(--secondary); font-size:15px; line-height:1.6;
}
.qa-q::before{ content:"Q"; color:var(--accent); font-family:"Oswald"; font-weight:700; margin-right:10px; }
.qa-q::after{
  content:"+"; position:absolute; right:20px; top:50%; transform:translateY(-50%);
  font-size:22px; color:var(--accent); transition:transform .35s ease;
}
.qa-item.is-open .qa-q::after{ transform:translateY(-50%) rotate(135deg); }
/* 中身：高さ＋透明度を滑らかにアニメーション（JSで is-open をトグル） */
.qa .answer{
  display:grid; grid-template-rows:0fr; opacity:0;
  transition:grid-template-rows .42s ease, opacity .42s ease, padding .42s ease;
  padding:0 20px;
}
.qa-item.is-open .answer{
  grid-template-rows:1fr; opacity:1; padding:0 20px 20px;
}
.qa .answer > div{ overflow:hidden; }
.qa .answer p{ margin:0; font-size:14px; }

/* ===== ACCESS ===== */
.access{ background:var(--secondary); color:#fff; padding-bottom:56px; }
.access .head .en,.access .head .jp{ color:#fff; }
.access .map{
  margin:22px 20px 0; border-radius:18px; overflow:hidden; aspect-ratio:4/3;
  background:#cdcdcd url("../../images/access.png") center/cover;
  box-shadow:var(--shadow);
}
.access .gmap{ margin:14px 20px 0; border-radius:18px; overflow:hidden; box-shadow:var(--shadow); }
.access .gmap iframe{ width:100%; height:240px; border:0; display:block; }
.access .info{
  margin:22px 20px 0; background:rgba(255,255,255,.07); border-radius:16px;
  padding:22px 24px; font-size:14px; line-height:2;
}
.access .info .row{ display:flex; gap:12px; padding:6px 0; border-bottom:1px solid rgba(255,255,255,.12); }
.access .info .row:last-child{ border:0; }
.access .info .k{ color:var(--accent); font-weight:700; flex:none; width:4.5em; }
/* 道順カード */
.access-route{
  margin:18px 20px 0; border-radius:18px; overflow:hidden;
  position:relative; color:#fff; padding:26px 24px;
  background:linear-gradient(160deg, rgba(40,32,24,.82), rgba(30,22,14,.9)),
    url("../../css/images/section7__under__bg.png") center/cover;
  box-shadow:var(--shadow);
}
.access-route .route-head{
  display:flex; align-items:center; gap:10px;
  font-family:"Oswald",sans-serif; font-size:18px; font-weight:600; letter-spacing:.08em;
  margin-bottom:14px; padding-bottom:12px; border-bottom:2px solid var(--accent);
}
.access-route .route-icon{ font-size:22px; }
.access-route p{ margin:0 0 12px; font-size:14.5px; line-height:2; }
.access-route p:last-child{ margin-bottom:0; }
.access-route b{ color:var(--accent); font-weight:700; }

/* ===== CONTACT ===== */
.contact{ padding:60px 24px 64px; background:var(--secondary); }
.contact-card{
  max-width:480px; margin:0 auto; text-align:center;
  background:linear-gradient(160deg, #fff, #fbf6ef);
  border-radius:26px; padding:44px 30px 38px;
  box-shadow:0 26px 60px -24px rgba(0,0,0,.6);
  position:relative; overflow:hidden;
}
.contact-card::before{
  content:""; position:absolute; top:-50px; left:-50px; width:160px; height:160px;
  background:radial-gradient(circle, rgba(255,156,0,.28), transparent 70%);
}
.contact-card::after{
  content:""; position:absolute; bottom:-60px; right:-40px; width:160px; height:160px;
  background:radial-gradient(circle, rgba(114,90,76,.22), transparent 70%);
}
.contact-badge{
  display:inline-block; font-family:"Oswald",sans-serif; letter-spacing:.2em;
  font-size:13px; font-weight:600; color:#fff; background:var(--accent);
  padding:6px 18px; border-radius:999px; margin-bottom:16px;
}
.contact h2{ font-size:22px; color:var(--secondary); margin:0 0 14px; font-weight:700; position:relative; }
.contact p{ margin:0 auto 26px; max-width:26em; font-size:14.5px; position:relative; }
.contact-btn{ position:relative; }

/* ===== FOOTER ===== */
.footer{ background:#3f3832; color:#fff; text-align:center; padding:40px 24px 30px; }
.footer-logo img{ width:160px; height:auto; margin:0 auto; }
.footer .fname{ font-size:20px; font-weight:700; margin:14px 0; }
.footer .sns{ display:flex; gap:16px; justify-content:center; margin:18px 0; }
.footer .sns a{
  width:44px;height:44px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.12);
  transition:transform .2s, background .2s;
}
.footer .sns a img{ width:60%; height:60%; object-fit:contain; }
.footer .sns a:hover{ transform:translateY(-3px); background:var(--accent); }
.footer nav{ display:flex; flex-wrap:wrap; gap:8px 22px; justify-content:center; margin-top:14px; }
.footer nav a{ color:rgba(255,255,255,.85); text-decoration:none; font-size:13px; }
.footer nav a:hover{ color:var(--accent); }
.footer small{ display:block; margin-top:22px; font-size:11px; opacity:.6; letter-spacing:.1em; }

/* ===== 固定ヘッダー（トップバー＋ハンバーガー） ===== */
.topbar{
  position:fixed; top:0; left:0; right:0; z-index:50;
  max-width:var(--maxw); margin:0 auto;
  display:flex; align-items:center; justify-content:space-between;
  height:58px; padding:0 16px;
  background:rgba(63,56,50,.92);
  backdrop-filter:saturate(140%) blur(8px);
  -webkit-backdrop-filter:saturate(140%) blur(8px);
  box-shadow:0 2px 14px rgba(0,0,0,.25);
}
.topbar-logo img{ height:30px; width:auto; display:block; }
.hamburger{
  width:44px; height:44px; border:0; background:none; cursor:pointer;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px;
  padding:0; position:relative; z-index:60;
}
.hamburger span{
  display:block; width:26px; height:2px; border-radius:2px; background:#fff;
  transition:transform .3s ease, opacity .25s ease;
}
.hamburger.open span:nth-child(1){ transform:translateY(8px) rotate(45deg); }
.hamburger.open span:nth-child(2){ opacity:0; }
.hamburger.open span:nth-child(3){ transform:translateY(-8px) rotate(-45deg); }

/* スライドメニュー */
.drawer{
  position:fixed; top:0; right:0; z-index:55;
  width:min(78%, 320px); height:100%;
  background:var(--secondary);
  transform:translateX(100%);
  transition:transform .38s cubic-bezier(.4,0,.2,1);
  padding:72px 28px 40px;
  display:flex; flex-direction:column;
  box-shadow:-12px 0 40px rgba(0,0,0,.4);
}
.drawer.open{ transform:translateX(0); }
.drawer-logo{ text-align:center; margin-bottom:28px; }
.drawer-logo img{ width:150px; height:auto; margin:0 auto; }
.drawer ul{ list-style:none; margin:0; padding:0; }
.drawer li{ border-bottom:1px solid rgba(255,255,255,.12); }
.drawer li a{
  display:block; padding:16px 4px; color:#fff; text-decoration:none;
  font-family:"Oswald",sans-serif; font-size:17px; letter-spacing:.1em;
  transition:color .2s, padding-left .2s;
}
.drawer li a:hover{ color:var(--accent); padding-left:10px; }
.drawer-sns{ display:flex; gap:16px; margin-top:auto; padding-top:24px; }
.drawer-sns a{
  width:46px; height:46px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.12); transition:transform .2s, background .2s;
}
.drawer-sns a img{ width:58%; height:58%; object-fit:contain; }
.drawer-sns a:hover{ transform:translateY(-3px); background:var(--accent); }
.drawer-overlay{
  position:fixed; inset:0; z-index:54; background:rgba(0,0,0,.5);
  opacity:0; transition:opacity .3s ease;
}
.drawer-overlay.show{ opacity:1; }

/* スクロールで軽くフェードイン */
.reveal{
  opacity:0;
  transform:translateY(48px) scale(.98);
  transition:opacity .8s cubic-bezier(.22,.61,.36,1), transform .8s cubic-bezier(.22,.61,.36,1);
  will-change:opacity, transform;
}
.reveal.in{ opacity:1; transform:none; }
/* 同じセクション内で複数要素が続く場合に、少しずつ遅れて浮き上がる */
.reveal.in:nth-child(2){ transition-delay:.08s; }
.reveal.in:nth-child(3){ transition-delay:.16s; }
.reveal.in:nth-child(4){ transition-delay:.24s; }
.reveal.in:nth-child(5){ transition-delay:.32s; }
.reveal-l{ opacity:0; transform:translateX(-40px); transition:opacity .8s cubic-bezier(.22,.61,.36,1), transform .8s cubic-bezier(.22,.61,.36,1); }
.reveal-l.in{ opacity:1; transform:none; }
.reveal-r{ opacity:0; transform:translateX(40px); transition:opacity .8s cubic-bezier(.22,.61,.36,1), transform .8s cubic-bezier(.22,.61,.36,1); }
.reveal-r.in{ opacity:1; transform:none; }
.reveal-zoom{ opacity:0; transform:scale(.9); transition:opacity .8s ease, transform .8s cubic-bezier(.22,.61,.36,1); }
.reveal-zoom.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
  .reveal{ transition:none; transform:none; opacity:1; }
  .reveal-l,.reveal-r,.reveal-zoom{ transition:none; transform:none; opacity:1; }
}

/* ===== 固定の問い合わせボタン（LINE） ===== */
.float-line{
  position:fixed; right:16px; bottom:18px; z-index:45;
  display:flex; align-items:center; gap:8px;
  padding:12px 20px 12px 14px;
  background:#06C755; color:#fff; text-decoration:none;
  border-radius:999px; font-weight:700; font-size:14px;
  box-shadow:0 10px 26px -8px rgba(6,199,85,.7);
  transition:transform .2s ease, box-shadow .2s ease;
  animation:floatIn .6s cubic-bezier(.22,.61,.36,1) 1s both;
}
.float-line img{ width:26px; height:26px; object-fit:contain; }
.float-line:hover{ transform:translateY(-3px); box-shadow:0 14px 30px -8px rgba(6,199,85,.8); }
@keyframes floatIn{ from{ opacity:0; transform:translateY(30px); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion: reduce){ .float-line{ animation:none; } }

/* 左端の縦ナビ：スマホでは隠す（ハンバーガーが担う）。PCで表示。 */
.sidenav{ display:none; }

/* ===== PC表示（769px以上）：ハンバーガーを画面右上に固定 ===== */
@media screen and (min-width:769px){
  /* PCはヘッダー帯が無いのでヒーローの上余白を解除 */
  .hero{ padding-top:0; }
  .hero .copy{ top:40px; }
  /* PC時はトップバーの帯を消すが、中のハンバーガーは活かす */
  .topbar{
    position:fixed; top:0; left:0; right:0; max-width:none; margin:0;
    height:0; padding:0; background:transparent; box-shadow:none;
    overflow:visible; pointer-events:none;
  }
  .topbar-logo{ display:none; }
  .hamburger{ pointer-events:auto; }
  /* ハンバーガーを右サイドの縦中央に固定（左の縦ナビと対称） */
  .hamburger{
    position:fixed; top:50vh; right:calc(50% - (var(--maxw) / 2) - 86px); transform:translateY(-50%); z-index:60;
    width:70px; height:70px; border-radius:18px;
    background:rgba(63,56,50,.92);
    box-shadow:0 8px 24px rgba(0,0,0,.4);
    backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
    gap:8px;
  }
  .hamburger span{ width:32px; height:3px; }
  .hamburger.open{ transform:translateY(-50%); }
  .hamburger.open span:nth-child(1){ transform:translateY(11px) rotate(45deg); }
  .hamburger.open span:nth-child(3){ transform:translateY(-11px) rotate(-45deg); }
  /* ドロワーも少し広めに */
  .drawer{ width:380px; }

  /* 左端：ロゴ＋縦ナビ */
  .sidenav{
    position:fixed; top:0; left:0; z-index:40;
    height:100vh; width:calc((100vw - var(--maxw)) / 2);
    max-width:260px; min-width:140px;
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:36px; pointer-events:none;
  }
  .sidenav .sidenav-logo{ pointer-events:auto; }
  .sidenav .sidenav-logo img{ width:200px; max-width:88%; height:auto; filter:drop-shadow(0 4px 14px rgba(0,0,0,.5)); }
  .sidenav ul{
    list-style:none; margin:0; padding:0;
    display:flex; flex-direction:column; gap:6px;
    pointer-events:auto;
  }
  .sidenav li a{
    display:block; padding:12px 18px;
    color:rgba(255,255,255,.78); text-decoration:none;
    font-family:"Oswald",sans-serif; font-size:16px; letter-spacing:.16em;
    border-left:2px solid transparent;
    transition:color .25s, border-color .25s, padding-left .25s, background .25s;
  }
  .sidenav li a:hover,
  .sidenav li a.current{
    color:#fff; border-left-color:var(--accent);
    padding-left:24px; background:rgba(255,255,255,.06);
  }
}



/* サブページ：PC時の両サイド背景 */
.sub-bg{ position:fixed; inset:0; z-index:-1; background-size:cover; background-position:center; }
.sub-bg::after{ content:""; position:absolute; inset:0; background:rgba(40,32,24,.35); }

/* サブページ用ヒーロー */
.subhero{ position:relative; overflow:hidden;
  background:linear-gradient(180deg, rgba(40,30,20,.45), rgba(30,22,14,.8)), var(--secondary);
  padding:78px 24px 60px; text-align:center; color:#fff; }
.subhero .en{ font-family:"Oswald",sans-serif; font-size:42px; letter-spacing:.18em; margin:0; font-weight:600;
  opacity:0; transform:translateY(24px); animation:heroIn .9s cubic-bezier(.22,.61,.36,1) .1s forwards; }
.subhero .jp{ display:inline-block; margin-top:10px; font-size:14px; opacity:0; transform:translateY(16px);
  animation:heroIn .9s cubic-bezier(.22,.61,.36,1) .28s forwards; }
.subhero .jp::after{ content:""; display:block; width:0; height:3px; border-radius:3px; background:var(--accent); margin:14px auto 0;
  animation:lineGrow .7s ease .6s forwards; }
@keyframes heroIn{ to{ opacity:1; transform:none; } }
@keyframes lineGrow{ to{ width:54px; } }
.subhero-logo{ width:170px; max-width:60%; height:auto; display:block; margin:0 auto 18px;
  filter:drop-shadow(0 4px 14px rgba(0,0,0,.5));
  opacity:0; transform:translateY(20px); animation:heroIn .9s cubic-bezier(.22,.61,.36,1) 0s forwards; }

.subwrap{ padding:50px 24px 64px; }
.block{ margin:0 auto 52px; max-width:560px; }
.block-head{ text-align:center; margin-bottom:26px; }
.block-head .en{ font-family:"Oswald",sans-serif; font-size:28px; letter-spacing:.16em; color:var(--secondary); margin:0; }
.block-head .en::before{ content:""; display:inline-block; width:8px; height:8px; background:var(--accent); border-radius:50%; vertical-align:middle; margin-right:10px; transform:translateY(-3px); }
.block-head .jp{ font-size:13px; color:var(--ink-soft); display:inline-block; }
.block-head .jp::after{ content:""; display:block; width:36px; height:3px; border-radius:3px; background:var(--accent); margin:10px auto 0; }
.block-pic{ border-radius:18px; overflow:hidden; margin:0 0 22px; box-shadow:var(--shadow); }
.block-pic img{ width:100%; height:auto; display:block; transition:transform .8s ease; }
.block-pic:hover img{ transform:scale(1.04); }
.block p{ font-size:15px; }

.profile-card{ background:#fff; border-radius:20px; box-shadow:var(--shadow); padding:8px 24px; border-top:4px solid var(--accent); }
.profile-list{ list-style:none; padding:0; margin:0; }
.profile-list li{ display:flex; gap:14px; padding:13px 0; border-bottom:1px solid var(--line); font-size:14.5px; align-items:baseline; }
.profile-list li:last-child{ border-bottom:0; }
.profile-list li b{ flex:none; width:5.5em; color:var(--accent-deep); font-weight:700; font-size:13px; letter-spacing:.05em; }

.message-card{ background:#fff; border-radius:20px; box-shadow:var(--shadow); padding:30px 26px 26px; position:relative; }
.message-card::before{ content:"\201C"; font-family:Georgia,serif; font-size:80px; color:var(--accent); opacity:.25; position:absolute; top:6px; left:18px; line-height:1; }
.message-card p{ margin:0 0 16px; }
.message-card p:last-child{ margin-bottom:0; }
.message-sign{ text-align:right; font-weight:700; color:var(--secondary); margin-top:10px; }

/* PROGRAM ポイントカード */
.prog-list{ display:flex; flex-direction:column; gap:14px; margin-top:4px; }
.prog-item{ display:flex; gap:16px; align-items:flex-start; background:#fff; border-radius:16px; box-shadow:var(--shadow); padding:20px 20px 18px; }
.prog-num{ flex:none; font-family:"Oswald",sans-serif; font-size:30px; font-weight:700; color:var(--accent); line-height:1; min-width:44px; }
.prog-body h4{ margin:0 0 6px; color:var(--secondary); font-size:16px; }
.prog-body p{ margin:0; font-size:14px; }

/* 追加アニメーション方向 */
.reveal-l{ opacity:0; transform:translateX(-40px); transition:opacity .8s cubic-bezier(.22,.61,.36,1), transform .8s cubic-bezier(.22,.61,.36,1); }
.reveal-l.in{ opacity:1; transform:none; }
.reveal-r{ opacity:0; transform:translateX(40px); transition:opacity .8s cubic-bezier(.22,.61,.36,1), transform .8s cubic-bezier(.22,.61,.36,1); }
.reveal-r.in{ opacity:1; transform:none; }
.reveal-zoom{ opacity:0; transform:scale(.9); transition:opacity .8s ease, transform .8s cubic-bezier(.22,.61,.36,1); }
.reveal-zoom.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
  .reveal-l,.reveal-r,.reveal-zoom{ transition:none; transform:none; opacity:1; }
  .subhero .en,.subhero .jp{ animation:none; opacity:1; transform:none; }
  .subhero .jp::after{ animation:none; width:54px; }
}

/* 料金 相談CTA */
.cta-card{ max-width:540px; margin:0 auto; background:linear-gradient(135deg,#fff,#fbf6ef);
  border-radius:24px; box-shadow:var(--shadow); padding:40px 30px; text-align:center; border:1px solid var(--line); position:relative; overflow:hidden; }
.cta-card::before{ content:""; position:absolute; top:-40px; right:-40px; width:140px; height:140px; background:radial-gradient(circle, rgba(255,156,0,.25), transparent 70%); }
.cta-card .cta-icon{ font-size:40px; }
.cta-card h3{ color:var(--secondary); font-size:20px; margin:14px 0 10px; }
.cta-card p{ font-size:14.5px; margin:0 0 22px; }



/* ===== フォント完全打ち消し（サイズ・色・太さ・行間・字間）===== */
/* 全要素：基本フォント値を強制リセット */
body, body *{
  font-family: "Noto Sans JP", system-ui, -apple-system, sans-serif !important;
}
body{
  font-size: 15px !important;
  line-height: 1.95 !important;
  letter-spacing: 0.02em !important;
  color: var(--ink);
  background: #3f3832 !important;
}

/* 段落・通常テキスト（色は親要素から継承させる）*/
p, li, span, div, td, dd, dt, label{
  font-weight: inherit;
}

/* 見出し：構造リセットのみ（色は各セクションで個別指定）*/
h1, h2, h3, h4, h5, h6{
  font-weight: 700 !important;
  line-height: 1.4 !important;
  letter-spacing: normal !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  text-shadow: none !important;
}

/* リンクの色を継承 */
a{
  color: inherit !important;
  text-decoration: none !important;
}

/* ===== セクション別の文字スタイル（各要素のあるべき姿に戻す）===== */

/* 共通見出し block（.head） */
.head .en{
  font-family: "Oswald", sans-serif !important;
  font-size: 34px !important;
  letter-spacing: 0.18em !important;
  font-weight: 600 !important;
  color: var(--secondary) !important;
  line-height: 1.2 !important;
  margin: 0 !important;
}
.head .en.on-dark{ color: #fff !important; }
.head .jp{
  font-family: "Noto Sans JP", sans-serif !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: var(--ink-soft) !important;
  letter-spacing: normal !important;
}
.head .jp.on-dark{ color: rgba(255,255,255,.85) !important; }

/* ヒーロー */
.hero .copy span{
  font-family: "Noto Sans JP", sans-serif !important;
  font-weight: 700 !important;
  font-size: 30px !important;
  letter-spacing: 0.36em !important;
  color: #fff !important;
}

/* ABOUT */
.about .lead{
  font-size: 21px !important;
  font-weight: 700 !important;
  color: var(--secondary) !important;
  line-height: 1.9 !important;
}
.about .lead em{ color: var(--accent-deep) !important; font-style: normal !important; }
.about p{ color: var(--ink) !important; font-size: 15px !important; }

/* FEATURE */
.feature-card .num{
  font-family: "Oswald", sans-serif !important;
  font-size: 30px !important;
  color: var(--accent) !important;
  font-weight: 700 !important;
  line-height: 1 !important;
}
.feature-card h3{
  font-size: 18px !important;
  color: var(--secondary) !important;
  font-weight: 700 !important;
  line-height: 1.5 !important;
}
.feature-card p{ font-size: 14.5px !important; color: var(--ink) !important; }

/* PLAN */
.plan-card .name{
  font-size: 20px !important;
  font-weight: 700 !important;
  color: var(--secondary) !important;
}
.plan-card .price{
  font-family: "Oswald", sans-serif !important;
  font-size: 44px !important;
  font-weight: 700 !important;
  color: var(--accent-deep) !important;
  line-height: 1.1 !important;
}
.plan-card .price small{ font-size: 18px !important; }
.plan-card .sess{
  font-size: 13px !important;
  color: var(--ink-soft) !important;
  font-weight: 500 !important;
}
.plan-card .count{
  font-family: "Oswald", sans-serif !important;
  font-size: 26px !important;
  color: var(--secondary) !important;
}
.plan-list li{ font-size: 14px !important; color: var(--ink) !important; }
.plan-note{ color: #fff !important; font-size: 13px !important; line-height: 1.8 !important; }
.badge{
  font-size: 12px !important;
  font-weight: 700 !important;
  color: #fff !important;
  letter-spacing: 0.14em !important;
}

/* FLOW */
.flow h2{ font-size: 22px !important; color: var(--secondary) !important; }
.flow p{ color: var(--ink) !important; }

/* REVIEW */
.review-card .who b{ color: var(--secondary) !important; font-size: 14px !important; font-weight: 700 !important; }
.review-card .stars{ color: var(--accent) !important; font-size: 13px !important; letter-spacing: 2px !important; }
.review-card p{ font-size: 14px !important; color: var(--ink) !important; }

/* Q&A */
.qa-q{
  font-weight: 700 !important;
  color: var(--secondary) !important;
  font-size: 15px !important;
  line-height: 1.6 !important;
  background: none !important;
  border: 0 !important;
}
.qa .answer p{ font-size: 14px !important; color: var(--ink) !important; }

/* ACCESS */
.access .info{ font-size: 14px !important; line-height: 2 !important; color: #fff !important; }
.access .info .k{ color: var(--accent) !important; font-weight: 700 !important; }
.access-route .route-head{
  font-family: "Oswald", sans-serif !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  color: #fff !important;
}
.access-route p{ font-size: 14.5px !important; line-height: 2 !important; color: #fff !important; }
.access-route b{ color: var(--accent) !important; font-weight: 700 !important; }

/* CONTACT */
.contact h2{ font-size: 22px !important; color: var(--secondary) !important; font-weight: 700 !important; }
.contact p{ font-size: 14.5px !important; color: var(--ink) !important; }
.contact-badge{
  font-family: "Oswald", sans-serif !important;
  letter-spacing: 0.2em !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: #fff !important;
}

/* フッター */
.footer{ color: #fff !important; }
.footer .fname{ font-size: 20px !important; font-weight: 700 !important; color: #fff !important; }
.footer nav a{ color: rgba(255,255,255,.85) !important; font-size: 13px !important; }
.footer nav a:hover{ color: var(--accent) !important; }
.footer small{ font-size: 11px !important; color: rgba(255,255,255,.6) !important; letter-spacing: 0.1em !important; }

/* ボタン */
.btn{
  font-family: "Noto Sans JP", sans-serif !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  color: #fff !important;
  letter-spacing: 0.08em !important;
}
.btn .arrow{ font-family: "Oswald", sans-serif !important; font-size: 11px !important; }
.float-line{
  font-weight: 700 !important;
  font-size: 14px !important;
  color: #fff !important;
}

/* ドロワー・サイドナビ */
.drawer li a{
  font-family: "Oswald", sans-serif !important;
  font-size: 17px !important;
  letter-spacing: 0.1em !important;
  color: #fff !important;
}
.sidenav li a{
  font-family: "Oswald", sans-serif !important;
  font-size: 16px !important;
  letter-spacing: 0.16em !important;
  color: rgba(255,255,255,.78) !important;
}
.sidenav li a:hover, .sidenav li a.current{ color: #fff !important; }

/* サブヒーロー */
.subhero .en{
  font-family: "Oswald", sans-serif !important;
  font-size: 42px !important;
  letter-spacing: 0.18em !important;
  font-weight: 600 !important;
  color: #fff !important;
}
.subhero .jp{ font-size: 14px !important; color: #fff !important; }

/* サブページblock-head */
.block-head .en{
  font-family: "Oswald", sans-serif !important;
  font-size: 28px !important;
  letter-spacing: 0.16em !important;
  color: var(--secondary) !important;
  margin: 0 !important;
}
.block-head .jp{ font-size: 13px !important; color: var(--ink-soft) !important; }

/* プロフィール */
.profile-list li{ font-size: 14.5px !important; color: var(--ink) !important; }
.profile-list li b{ color: var(--accent-deep) !important; font-weight: 700 !important; font-size: 13px !important; letter-spacing: 0.05em !important; }

/* メッセージ */
.message-card p{ color: var(--ink) !important; }
.message-sign{ font-weight: 700 !important; color: var(--secondary) !important; }

/* PROGRAM 番号カード */
.prog-num{
  font-family: "Oswald", sans-serif !important;
  font-size: 30px !important;
  font-weight: 700 !important;
  color: var(--accent) !important;
  line-height: 1 !important;
}
.prog-body h4{ color: var(--secondary) !important; font-size: 16px !important; font-weight: 700 !important; }
.prog-body p{ font-size: 14px !important; color: var(--ink) !important; }

/* 料金ページ：プラン見出し */
.plan-page .plan-title{
  color: #fff !important;
  font-weight: 700 !important;
  font-size: 18px !important;
}

/* CTAカード */
.cta-card h3{ color: var(--secondary) !important; font-size: 20px !important; font-weight: 700 !important; }
.cta-card p{ font-size: 14.5px !important; color: var(--ink) !important; }

/* プライバシー */
.pp-h{ color: var(--secondary) !important; font-size: 17px !important; font-weight: 700 !important; }
.pp-card p{ line-height: 2 !important; color: var(--ink) !important; }


/* ===== フッター完全固定 ===== */
.footer{
  background: #3f3832 !important;
  color: #fff !important;
  text-align: center !important;
  padding: 40px 24px 30px !important;
  display: block !important;
  margin: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
}
.footer *{ color: inherit !important; }
.footer .footer-logo{
  display: block !important;
  margin: 0 auto !important;
  padding: 0 !important;
  background: none !important;
}
.footer .footer-logo img{
  width: 160px !important;
  height: auto !important;
  margin: 0 auto !important;
  display: block !important;
  border: 0 !important;
  box-shadow: none !important;
  background: none !important;
  border-radius: 0 !important;
}
.footer .fname{
  font-size: 20px !important;
  font-weight: 700 !important;
  color: #fff !important;
  margin: 14px 0 !important;
  letter-spacing: normal !important;
}
.footer .sns{
  display: flex !important;
  gap: 16px !important;
  justify-content: center !important;
  margin: 18px 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
.footer .sns a{
  width: 44px !important;
  height: 44px !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: rgba(255,255,255,.12) !important;
  padding: 0 !important;
  text-decoration: none !important;
  border: 0 !important;
  box-shadow: none !important;
}
.footer .sns a img{
  width: 60% !important;
  height: 60% !important;
  object-fit: contain !important;
  margin: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  background: none !important;
  border-radius: 0 !important;
}
.footer nav{
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px 22px !important;
  justify-content: center !important;
  margin-top: 14px !important;
  padding: 0 !important;
  background: none !important;
  border: 0 !important;
}
.footer nav a{
  color: rgba(255,255,255,.85) !important;
  text-decoration: none !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  padding: 0 !important;
  background: none !important;
  border: 0 !important;
}
.footer nav a:hover{ color: var(--accent) !important; }
.footer small{
  display: block !important;
  margin-top: 22px !important;
  font-size: 11px !important;
  color: rgba(255,255,255,.6) !important;
  letter-spacing: 0.1em !important;
  opacity: 1 !important;
}

/* ===== 各セクション見出しの色を個別に確定（上書きする最終層）===== */
/* FEATURE：暗背景 → 白 */
.feature .head .en{ color: #fff !important; }
.feature .head .jp{ color: rgba(255,255,255,.85) !important; }

/* PLAN：オレンジ背景の上の見出し → 白 */
.plan .head .en{ color: #fff !important; }
.plan .head .jp{ color: #fff !important; }

/* ACCESS：濃茶 → 白 */
.access .head .en{ color: #fff !important; }
.access .head .jp{ color: #fff !important; }

/* REVIEW：明るい背景 → 濃茶 */
.review .head .en{ color: var(--secondary) !important; }
.review .head .jp{ color: var(--ink-soft) !important; }

/* Q&A：明るい背景 → 濃茶 */
.qa .head .en{ color: var(--secondary) !important; }
.qa .head .jp{ color: var(--ink-soft) !important; }

/* ABOUT：明るい背景 → 濃茶 */
.about .head .en, .head .en{ color: var(--secondary) !important; }
.about .head .jp{ color: var(--ink-soft) !important; }

/* CONTACT：白カードの中 → 濃茶 */
.contact h2{ color: var(--secondary) !important; }
.contact p{ color: var(--ink) !important; }

/* サブヒーロー：暗背景 → 白 */
.subhero .en{ color: #fff !important; }
.subhero .jp{ color: #fff !important; }

/* サブページblock-head：明るい背景 → 濃茶 */
.block-head .en{ color: var(--secondary) !important; }
.block-head .jp{ color: var(--ink-soft) !important; }

/* on-dark付きは強制白 */
.on-dark{ color: #fff !important; }


/* ===== バッジ（オススメ・維持・お手軽 等）完全固定 ===== */
.badge{
  position: absolute !important;
  top: -13px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  background: var(--secondary) !important;
  color: #fff !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.14em !important;
  padding: 6px 20px !important;
  border-radius: 999px !important;
  border: 0 !important;
  box-shadow: none !important;
  display: inline-block !important;
  line-height: 1.4 !important;
  margin: 0 !important;
  text-decoration: none !important;
  font-family: "Noto Sans JP", sans-serif !important;
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
}
.plan-card{
  position: relative !important;
  overflow: visible !important;  /* バッジが上にはみ出るので */
}

/* ===== スライダー矢印 位置固定 ===== */
.slider{
  position: relative !important;
}
.slider-arrow{
  position: absolute !important;
  top: 42% !important;
  transform: translateY(-50%) !important;
  width: 42px !important;
  height: 42px !important;
  border-radius: 50% !important;
  border: 0 !important;
  cursor: pointer !important;
  background: #fff !important;
  color: var(--accent-deep) !important;
  font-size: 26px !important;
  line-height: 1 !important;
  font-weight: 700 !important;
  box-shadow: 0 8px 18px -6px rgba(120,70,0,.6) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  z-index: 3 !important;
  padding: 0 !important;
  margin: 0 !important;
  text-decoration: none !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  font-family: "Oswald", sans-serif !important;
}
.slider-arrow.prev{ left: 5px !important; right: auto !important; padding-bottom: 4px !important; }
.slider-arrow.next{ right: 5px !important; left: auto !important; padding-bottom: 4px !important; }
.slider-arrow:disabled{ opacity: 0.35 !important; cursor: default !important; }
.slider-arrow:hover{ transform: translateY(-50%) scale(1.08) !important; }

/* ドット */
.slider-dots{
  display: flex !important;
  gap: 10px !important;
  justify-content: center !important;
  margin-top: 14px !important;
  padding: 0 !important;
  list-style: none !important;
}
.slider-dots .dot{
  width: 11px !important;
  height: 11px !important;
  border-radius: 50% !important;
  background: rgba(255,255,255,.55) !important;
  border: 2px solid #fff !important;
  cursor: pointer !important;
  padding: 0 !important;
  margin: 0 !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}
.slider-dots .dot.active{
  background: var(--secondary) !important;
  transform: scale(1.15) !important;
}

/* ===== ハンバーガーメニュー（ドロワー）の透過率を下げる ===== */
.drawer{
  background: #3f3832 !important;  /* 不透明な濃茶 */
  opacity: 1 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
/* オーバーレイは少し濃く */
.drawer-overlay{
  background: rgba(0,0,0,.6) !important;
}
.drawer-overlay.show{ opacity: 1 !important; }

/* ===== NEWSティッカー（新幹線風横流れ） ===== */
.news-ticker{
  position:relative; z-index:2;
  display:flex; align-items:center; gap:10px;
  background:rgba(0,0,0,.35);
  border-radius:999px;
  padding:6px 8px 6px 6px;
  margin:30px auto 18px;
  max-width:86%;
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
}
.news-ticker__badge{
  flex:none;
  font-family:"Oswald",sans-serif !important;
  font-size:11px !important; font-weight:700 !important; letter-spacing:.08em !important;
  color:#fff !important; background:var(--accent);
  padding:5px 12px; border-radius:999px; text-decoration:none !important;
}
.news-ticker__viewport{ flex:1; overflow:hidden; min-width:0; }
.news-ticker__track{ display:flex; width:max-content; animation:newsScroll 18s linear infinite; }
.news-ticker__list{ display:flex; gap:34px; padding-right:34px; white-space:nowrap; list-style:none; margin:0; }
.news-ticker__list li{ display:flex; align-items:center; gap:8px; font-size:12px !important; color:#fff !important; }
.news-ticker__list time{ opacity:.7; font-family:"Oswald",sans-serif !important; }
.news-ticker__list a{ color:#fff !important; text-decoration:underline !important; }
.news-ticker__more{ flex:none; font-size:11px !important; color:#fff !important; opacity:.85; padding:0 4px; text-decoration:none !important; }
@keyframes newsScroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
.news-ticker:hover .news-ticker__track{ animation-play-state:paused; }
@media (prefers-reduced-motion:reduce){ .news-ticker__track{ animation:none; } }
@media screen and (max-width:380px){ .news-ticker__badge{ display:none; } }

.visually-hidden{
  position:absolute !important; width:1px !important; height:1px !important;
  padding:0 !important; margin:-1px !important; overflow:hidden !important;
  clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important;
}

