/* ============================================================
   フヤセルコーポレート — no-sidebar design
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-y: scroll; scrollbar-gutter: stable; }
body {
  margin: 0;
  padding: 0;
  background: #fff;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 15px;
  color: #333;
  overflow-x: hidden;
  max-width: none !important;
}
@media (min-width: 768px) {
  body {
    background: linear-gradient(to bottom, transparent 66.66%, #C80000 66.66%) !important;
    background-attachment: fixed !important;
  }
}
ul, li { padding: 0; margin: 0; list-style: none; }
a { text-decoration: none; color: inherit; }
img { display: block; max-width: 100%; height: auto; }

/* ============================================================
   HEADER
   ============================================================ */
.site-header {
  position: sticky;
  top: 0;
  z-index: 200;
  background-color: #ffffff !important;
  box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}
.header-inner {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 0 24px;
  height: 56px;
  max-width: 1200px;
  margin: 0 auto;
}
.header-logo,
.header-logo:focus,
.header-logo:focus-visible,
.subpage-header a,
.subpage-header a:focus,
.subpage-header a:focus-visible {
  outline: none;
  box-shadow: none;
}
.header-logo img {
  height: 36px;
  width: auto;
}

/* ============================================================
   SIDE NAV — bullet style (a.png 参照)
   ============================================================ */
.side-nav {
  position: fixed;
  left: calc(50vw + 212px + 32px);
  top: 60px;
  bottom: 40px;
  display: flex;
  flex-direction: column;
  z-index: 9999 !important;
}

.side-nav__menu {
  font-size: 14px;
  color: #C80000;
  font-weight: 700;
  letter-spacing: 0.08em;
  margin-bottom: 20px;
  white-space: nowrap;
}

.side-nav a {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 0;
  color: #888;
  font-size: 20px;
  font-family: 'Noto Sans JP', sans-serif;
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.25s;
  cursor: pointer;
}

/* bullet — 非アクティブは透明 */
.side-nav a::before {
  content: '•';
  font-size: 22px;
  line-height: 1;
  color: transparent;
  flex-shrink: 0;
  transition: color 0.25s;
}

/* active */
.side-nav a.is-active {
  color: #C80000;
  font-weight: 700;
}
.side-nav a.is-active::before {
  color: #C80000;
}

/* hover */
.side-nav a:hover { color: #C80000; }
.side-nav a:focus { outline: none; }

/* CTA buttons below 無料体験会 */
.side-nav__ctas {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-top: auto;
}
.side-nav__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 28px 48px;
  border-radius: 9999px;
  font-size: 22px;
  font-weight: 700;
  white-space: nowrap;
  min-width: 290px;
  transition: opacity 0.2s;
  text-decoration: none;
  letter-spacing: 0.02em;
}
.side-nav a.side-nav__btn--trial {
  background: #FA8072;
  color: #fff;
  border: 2px solid #fff;
}
.side-nav a.side-nav__btn--line {
  background: #fff;
  color: #06C755;
  border: 2px solid #06C755;
}
.side-nav__btn--line .fab {
  font-size: 20px;
}
.side-nav__btn:hover { opacity: 0.85; }

@media (max-width: 900px) {
  .side-nav { display: none; }
}

/* 901〜1067px：CTAボタンがはみ出すので非表示、メニューリンクのみ縮小表示 */
@media (min-width: 901px) and (max-width: 1067px) {
  .side-nav__ctas { display: none; }
  .side-nav a:not(.side-nav__btn) { font-size: 16px; }
}

/* 1068px以上：CTAボタンが収まる最小幅なので全表示 */

/* ============================================================
   MAIN / sp_box — centered content
   ============================================================ */
.page-main {
  position: relative;
  z-index: 1;
  background-color: transparent !important;
}

.sp_box {
  width: 425px;
  max-width: 100%;
  margin: 0 auto;
  background-color: #ffffff !important;
  box-shadow: 0 0 30px rgba(0,0,0,0.15) !important;
}
.sp_box ul {
  width: 425px;
  max-width: 100%;
  margin: 0 auto;
}
.sp_box li {
  position: relative;
  width: 425px;
  max-width: 100%;
  overflow: hidden;
  text-align: center;
}

/* p1h stacking fix */
.p1h {
  position: absolute !important;
  top: 0; left: 0; right: 0; width: 100%; height: 100%;
}


/* Hero overlays: show immediately */
.sp_box li.p1 [data-aos] {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}

/* Hero background */
.b_01_bg {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  overflow: hidden;
}
#fadeImage {
  opacity: 1 !important;
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  top: 0; left: 0;
}

/* floating LINE button */
.end_box { position: relative; margin: 0 0 4%; }
.e184-wrap { position: relative; }
.e184-wrap .e184_2 { top: 26%; }

/* trial ビュー：e185を通常フローに戻してボタンを直下に配置 */
.e185--trial {
  position: relative;
  bottom: auto;
  right: auto;
  width: 45%;
  margin: 0 auto;
  display: block;
}
.e184--no-gap {
  margin-bottom: 4% !important;
}
.trial-cta-wrap {
  text-align: center;
  padding: 6% 6% 10%;
}
.trial-cta-wrap .mobile-cta {
  font-size: 18px;
  padding: 20px 24px;
  width: 100%;
  max-width: 360px;
}
.floating-anchor { height: 1px; }
.floating {
  position: relative;
  transition: opacity 0.4s ease;
  z-index: 9999;
  opacity: 0;
}
.floating.is-fixed {
  position: fixed !important;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 425px;
  max-width: 100%;
  padding: 10px 40px;
  background: rgba(255,255,255,0.2);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-radius: 20px 20px 0 0;
  border: 1px solid rgba(255,255,255,0.2);
  box-shadow: 0 4px 8px rgba(0,0,0,0.15);
  animation: floatSlideUp 0.6s ease-out;
}
.floating.is-visible { opacity: 1; }
.floating.is-hidden  { opacity: 0; pointer-events: none; }
.floating img { width: 100%; }

@keyframes floatSlideUp {
  0%   { transform: translateX(-50%) translateY(100%); opacity: 0; }
  100% { transform: translateX(-50%) translateY(0);    opacity: 1; }
}

/* ============================================================
   BOTTOM LEFT NAV
   ============================================================ */
.bottom-left-nav {
  position: fixed;
  bottom: 24px;
  left: max(16px, calc(50vw - 212px - 180px));
  display: flex;
  flex-direction: column;
  gap: 6px;
  z-index: 9999;
}
.bottom-left-nav a {
  font-size: 11px;
  color: #fff;
  text-decoration: underline;
  opacity: 0.85;
  transition: opacity 0.2s;
}
.bottom-left-nav a:hover { opacity: 1; }

@media (max-width: 767px) {
  .bottom-left-nav { display: none; }
}

/* ============================================================
   Footer
   ============================================================ */
.site-footer {
  background: #f5f5f5;
  padding: 20px 16px;
  text-align: center;
}
.site-footer__menu {
  display: flex;
  justify-content: center;
  gap: 16px;
  margin-bottom: 10px;
  flex-wrap: wrap;
}
.site-footer__menu a {
  font-size: 10px;
  color: #888;
  cursor: pointer;
  transition: color 0.2s;
}
.site-footer__menu a:hover { color: #60c7d5; }
.site-footer__copy { font-size: 9px; color: #bbb; }

/* ============================================================
   Lightbox
   ============================================================ */
.lightbox { display: none; }
.featherlight .featherlight-content {
  border-radius: 12px;
  padding: 32px;
  max-width: 680px;
  max-height: 80vh;
  overflow-y: auto;
}
.featherlight .featherlight-content h2 {
  font-size: 18px;
  font-weight: 700;
  color: #C80000;
  margin: 0 0 20px;
  padding-bottom: 10px;
  border-bottom: 2px solid #C80000;
}

/* ============================================================
   SPA — page view switching
   ============================================================ */
.page-view { display: none; }
.page-view.is-active {
  display: block;
  min-height: calc(100vh - 56px);
  background: #fff;
}

.view-heading {
  text-align: center;
  padding: 28px 0 20px;
  background: #fff;
}
.view-title {
  margin: 0;
  font-size: 20px;
  font-weight: 700;
  color: #C80000;
  letter-spacing: 0.06em;
  position: relative;
  display: inline-block;
}
.view-title::after {
  content: '';
  display: block;
  width: 32px;
  height: 3px;
  background: #C80000;
  border-radius: 2px;
  margin: 8px auto 0;
}

/* ============================================================
   こんな悩みセクション
   ============================================================ */
.p-nayami { background: #fff9f9; }
.nayami-wrap {
  padding: 36px 24px 40px;
}
.nayami-en {
  text-align: center;
  font-size: 12px;
  color: #C80000;
  letter-spacing: 0.08em;
  margin: 0 0 6px;
}
.nayami-title {
  text-align: center;
  font-size: 20px;
  font-weight: 700;
  color: #222;
  margin: 0 0 20px;
  letter-spacing: 0.04em;
}
.nayami-card {
  background: #2e2e2e;
  border-radius: 12px;
  padding: 24px 20px;
}
.nayami-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.nayami-list li {
  color: #fff;
  font-size: 15px;
  font-weight: 500;
  padding-left: 28px;
  position: relative;
  line-height: 1.5;
}
.nayami-list li::before {
  content: '✓';
  position: absolute;
  left: 0;
  top: 0;
  color: #f5c842;
  font-weight: 700;
  font-size: 16px;
}
.nayami-list li em {
  font-style: normal;
  color: #f5c842;
  font-weight: 700;
}

/* ============================================================
   Lightbox — info table
   ============================================================ */
.info-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
  line-height: 1.8;
}
.info-table th,
.info-table td {
  padding: 10px 12px;
  border-bottom: 1px solid #eee;
  vertical-align: top;
  text-align: left;
}
.info-table th {
  width: 38%;
  color: #555;
  font-weight: 700;
  white-space: nowrap;
}
.info-table td { color: #333; }
.info-table small { font-size: 11px; color: #888; }
.info-table a { color: #C80000; }

/* ============================================================
   サービス内容セクション
   ============================================================ */
.service-list {
  background: #fff;
  padding: 0 0 40px;
}
.service-item {
  overflow: visible;
}
.service-item__head {
  background: #C80000;
  padding: 16px 24px;
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 14px;
}
.service-item__num {
  font-size: 32px;
  font-weight: 700;
  color: rgba(255,255,255,0.35);
  line-height: 1;
  letter-spacing: -0.02em;
  flex-shrink: 0;
}
.service-item__title {
  font-size: 18px;
  font-weight: 700;
  color: #fff;
  margin: 0;
  letter-spacing: 0.06em;
}
.service-item__body {
  padding: 28px 24px 32px;
  background: #fff;
  text-align: center;
}
.service-item__img {
  width: 58%;
  max-width: 200px;
  margin: 0 auto 20px;
  display: block;
}
.service-item__desc {
  font-size: 13px;
  color: #555;
  line-height: 1.9;
  text-align: left;
  margin: 0;
}
.service-item + .service-item {
  border-top: 6px solid #f5f5f5;
}
/* サービス内容 新レイアウト */
.service_top { background: #C80000; padding: 5% 5% 4%; text-align: center; }
.service_top h2 { font-size: clamp(24px, 6vw, 40px); font-weight: bold; color: #fff; margin-bottom: 25px; line-height: 1.5; letter-spacing: 0.05em; }
.service_top p { font-size: clamp(13px, 4.2vw, 18px); line-height: 2.2; color: #fff; white-space: nowrap; }
.service-highlight { font-weight: 700; text-decoration: underline; text-decoration-color: #fff; text-underline-offset: 5px; text-decoration-thickness: 2px; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.service_section { background: #fff; padding: 15% 5% 5%; overflow: visible !important; }
.service_box { background: #FCF8E7; border-radius: 21px; padding: 12% 6% 10%; margin-bottom: 15%; position: relative; box-shadow: 0 4px 15px rgba(0,0,0,0.05); }
.service_box:last-child { margin-bottom: 0; }
.service_box_img { display: block; width: 100%; border-radius: 12px; margin: 16px 0 12px; }
.service_box--preview { padding: 8% 6% 6%; }
.service_box--img-only { padding: 0; background: none; box-shadow: none; overflow: hidden; }
.service_box_fullimg { display: block; width: 100%; height: auto; border-radius: 21px; }
.service_box_desc {
  font-size: clamp(11px, 3vw, 13px);
  line-height: 1.8;
  color: #555;
  text-align: left;
  margin: 10px 0 0;
  word-break: break-all;
  overflow-wrap: break-word;
}
.service_top--pink { background: #FFF0EE !important; color: #333; }
.service_top--pink p { color: #333; }
.service_top--pink .service-highlight { text-decoration-color: #C80000; }
.service_section--pink { background: #FFF0EE !important; padding-bottom: 15% !important; }
.p7-cta--pink { background: #FFF0EE !important; padding-top: 0 !important; padding-bottom: 15% !important; }
.p7-cta--red { background: #C80000 !important; }
.service_box_number { position: absolute; top: -20px; left: 50%; transform: translateX(-50%); background: #B88E5A; color: #fff; font-size: clamp(16px, 4vw, 20px); font-weight: bold; padding: 10px 25px; border-radius: 30px; letter-spacing: 0.1em; white-space: nowrap; }
.service_box_title { font-size: clamp(20px, 5.5vw, 28px); font-weight: bold; color: #333; margin: 10px 0 15px; line-height: 1.5; text-align: center; border-bottom: 2px dashed #C80000; display: inline-block; padding-bottom: 10px; width: 100%; }
.service_box_subtitle { font-size: clamp(18px, 5vw, 22px); color: #C80000; font-weight: bold; line-height: 1.6; margin-bottom: 20px; text-align: center; background: none; padding: 0; border-radius: 0; }
.service_box_text { font-size: clamp(13px, 3.2vw, 15px); line-height: 1.85; color: #333; text-align: left; }
.p_service { overflow: visible !important; }
.plan-section { overflow: visible !important; }
.about-intro-li { overflow: visible !important; }
.anshin-banner-li { overflow: visible !important; }
.p13 { overflow: visible !important; }

.service-quote {
  background: #fff;
  position: relative;
}
.service-quote .e106_wrap {
  position: relative;
  width: 100%;
}
.service-quote .e106 {
  position: relative;
  width: 90%;
  margin: 6.5% auto 12%;
}
.service-quote .e106_2 img { position: relative; z-index: 100; }
.service-quote .e106_2 {
  width: 27.5%;
  position: absolute;
  top: 64%;
  left: 51%;
}
.service-quote .e106_2::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 10px;
  background: #FFD300;
  border-radius: 3px;
  transform-origin: left center;
  transform: scaleX(0);
  transition: transform 1.6s cubic-bezier(.22,1,.36,1);
  z-index: 2;
}
.service-quote .e106_2.active::after {
  transform: scaleX(1);
}

/* ============================================================
   トップページ 背景色統一 #FFF0EE
   ============================================================ */
[data-view="top"] .p6,
[data-view="top"] .p13 {
  background: #FFF0EE !important;
}

/* ============================================================
   P7 詳細を見るボタン
   ============================================================ */
.p7-cta {
  text-align: center;
  padding: 28px 0;
  background: #FFF0EE;
}
.p7-cta--plain { background: none; }
/* SERVICE CTAはカード間15%に合わせて上下余白を統一 */
.p_service + .p7 .p7-cta { padding: 15% 0; }
.p5 .p7-cta { padding-top: 10px; }
.p5 .b_05 { margin-bottom: 4% !important; }
.p7-btn {
  display: inline-block;
  padding: 14px 36px;
  background: #fff;
  color: #C80000;
  font-size: 15px;
  font-weight: 700;
  border-radius: 40px;
  text-decoration: none;
  letter-spacing: 0.05em;
  transition: transform 0.2s ease;
  -webkit-tap-highlight-color: transparent;
}
.p7-btn:hover,
.p7-btn:focus,
.p7-btn:active,
.p7-btn:visited {
  color: #C80000;
  text-decoration: none;
}
.p7-btn:hover {
  transform: translateY(-3px);
}
.p7-btn--reserve {
  background: #C80000;
  color: #fff;
  border: none;
  width: 80%;
  text-align: center;
}
.p7-btn--reserve:hover,
.p7-btn--reserve:focus,
.p7-btn--reserve:active,
.p7-btn--reserve:visited {
  color: #fff;
}

/* p8（お客様の声）上余白・下余白・背景 */
.p8 { padding-top: 32px !important; padding-bottom: 40px !important; background: #FFF0EE; }
/* e106 の margin-bottom 12% がボタン上に余分なスペースを作るため解消 */
.p8 .e106 { margin-bottom: 0 !important; }

/* ============================================================
   ABOUT イントロバナー
   ============================================================ */
.about-intro-li { overflow: hidden; }
/* トップページのaboutコンテンツ：e69上マージンを削除して隙間を詰める */
[data-view="top"] .e69 { margin-top: 0 !important; }
[data-view="top"] .e53_wrap { margin-top: 0 !important; }
.section-placeholder { height: 60px; background: #f5f5f5; }
.about-intro {
  background: #C80000;
  padding: 32px 5% 0;
  text-align: center;
}
.about-intro__title {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  font-size: 52px;
  font-weight: 800;
  font-style: italic;
  color: #fff;
  letter-spacing: 0.04em;
  margin: 0 0 18px;
  font-family: 'Barlow Condensed', sans-serif;
  line-height: 1;
}
.about-intro__title::before,
.about-intro__title::after {
  content: '';
  display: block;
  width: 68px;
  height: 1.5px;
  background: #fff;
  flex-shrink: 0;
  margin-top: 6px;
}
.about-intro__desc {
  font-size: 14px;
  font-weight: 500;
  color: #fff;
  line-height: 2;
  margin: 0;
}

/* サポート手段アイコン */
.support-icons-li {
  background: #FFF0EE;
}
.support-icons {
  display: flex;
  justify-content: center;
  gap: 20px;
  padding: 28px 16px;
}
.support-icons__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.support-icons__circle {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #C80000;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 22px;
}
.support-icons__label {
  font-size: 11px;
  font-weight: 700;
  color: #333;
  letter-spacing: 0.03em;
}
.anshin-banner-li {
  background: #FFF0EE;
  padding: 28px 6% 0 4%;
}
.anshin-banner-img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 16px;
  margin-bottom: -12%;
}

/* ============================================================
   プラン・料金セクション v2
   ============================================================ */
.plan-section {
  background: #FFF0EE;
  padding: 32px 0 0;
}
.plan-img-stack {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 0 16px;
}
.plan-img-stack__item {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 16px;
  box-shadow: 0 4px 14px rgba(0,0,0,0.08);
}

/* ヘッダー行 */
.plan-v2-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 10px 8px;
  background: #fff;
  border-bottom: 1px solid #eee;
}
.plan-v2-header__left {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}
.plan-v2-logo { height: 24px; width: auto; }
.plan-v2-header__text {
  font-size: 11px;
  font-weight: 700;
  color: #333;
  white-space: nowrap;
}
.plan-v2-header__center {
  text-align: center;
  flex: 1;
  padding: 0 6px;
}
.plan-v2-header__sup {
  font-size: 8px;
  color: #555;
  margin: 0 0 1px;
  line-height: 1.3;
}
.plan-v2-header__no1 {
  font-size: 22px;
  font-weight: 900;
  color: #C80000;
  margin: 0 0 1px;
  line-height: 1;
  letter-spacing: -0.02em;
}
.plan-v2-header__no1 span { font-size: 28px; }
.plan-v2-header__sub {
  font-size: 8px;
  color: #555;
  margin: 0;
  line-height: 1.3;
}
.plan-v2-detail-btn {
  display: inline-block;
  background: #C80000;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  padding: 6px 12px;
  border-radius: 6px;
  white-space: nowrap;
  flex-shrink: 0;
  -webkit-tap-highlight-color: transparent;
  transition: transform 0.2s ease;
}
.plan-v2-detail-btn:hover { transform: translateY(-2px); }

/* 縦並びグリッド */
.plan-v2-grid {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 12px 16px 0;
}

.plan-v2-card {
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 1px 6px rgba(0,0,0,0.12);
  display: flex;
  flex-direction: column;
}
/* スタンダード — サーモンピンク */
.plan-v2-card--standard .plan-v2-card__head { background: #E05577; }
.plan-v2-card--standard .plan-v2-card__label { color: #E05577; border-bottom-color: #f5c0c0; }
.plan-v2-card--standard .plan-v2-card__monthly-pre,
.plan-v2-card--standard .plan-v2-card__monthly-num,
.plan-v2-card--standard .plan-v2-card__monthly-yen { color: #E05577; }
.plan-v2-card--standard .plan-v2-card__lump { background: #fff3f3; border-color: #f5c0c0; color: #E05577; }
.plan-v2-card--standard .plan-v2-card__period { background: #E05577; }

/* フヤセル — メインレッド（デフォルト色そのまま） */
.plan-v2-card--main {
  box-shadow: 0 3px 14px rgba(200,0,0,0.28);
}

/* フヤセルPRO — ダークチャコール */
.plan-v2-card--pro .plan-v2-card__head { background: #2D2D2D; }
.plan-v2-card--pro .plan-v2-card__label { color: #2D2D2D; border-bottom-color: #ccc; }
.plan-v2-card--pro .plan-v2-card__monthly-pre,
.plan-v2-card--pro .plan-v2-card__monthly-num,
.plan-v2-card--pro .plan-v2-card__monthly-yen { color: #2D2D2D; }
.plan-v2-card--pro .plan-v2-card__lump { background: #f5f5f5; border-color: #ccc; color: #2D2D2D; }
.plan-v2-card--pro .plan-v2-card__lump small { color: #888; }
.plan-v2-card--pro .plan-v2-card__period { background: #2D2D2D; }

/* カードヘッダー */
.plan-v2-card__head {
  background: #C80000;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  text-align: center;
  padding: 12px 8px;
  line-height: 1.3;
}

/* カード本体 */
.plan-v2-card__body {
  padding: 14px 16px 12px;
  flex: 1;
  text-align: center;
}
.plan-v2-card__label {
  font-size: 12px;
  color: #C80000;
  font-weight: 700;
  margin: 0 0 8px;
  border-bottom: 1px solid #f0c0c0;
  padding-bottom: 6px;
}
.plan-v2-card__monthly {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 4px;
  margin: 0 0 8px;
}
.plan-v2-card__monthly-pre {
  font-size: 13px;
  color: #C80000;
  font-weight: 700;
}
.plan-v2-card__monthly-num {
  font-size: 28px;
  font-weight: 700;
  color: #C80000;
  line-height: 1;
  letter-spacing: -0.03em;
}
.plan-v2-card__monthly-yen {
  font-size: 14px;
  color: #C80000;
  font-weight: 700;
}
.plan-v2-card__note {
  font-size: 12px;
  color: #888;
  margin: 0;
  line-height: 1.8;
}
.plan-v2-card__lump {
  background: #fff3f3;
  border: 1px solid #f0c0c0;
  border-radius: 6px;
  padding: 8px 10px;
  margin: 10px 0 0;
  font-size: 15px;
  font-weight: 700;
  color: #C80000;
}
.plan-v2-card__lump small {
  font-size: 12px;
  font-weight: 400;
  color: #888;
}

/* カードフッター */
.plan-v2-card__period {
  background: #C80000;
  padding: 10px 8px;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.plan-v2-card__period span {
  font-size: 11px;
  color: rgba(255,255,255,0.8);
}
.plan-v2-card__period strong {
  font-size: 18px;
  color: #fff;
  font-weight: 700;
}

/* ============================================================
   Plan page: 料金カードを横スワイプに
   ============================================================ */
[data-view="plan"] .plan-v2-grid {
  flex-direction: row;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding: 20px 13% 24px;
  gap: 10px;
}
[data-view="plan"] .plan-v2-grid::-webkit-scrollbar { display: none; }
[data-view="plan"] .plan-v2-card {
  flex: 0 0 74%;
  scroll-snap-align: center;
  min-width: 0;
}
[data-view="plan"] .plan-v2-card:last-child { margin-right: 0; }

/* スライダーラッパー＆ボタン */
.plan-slider-wrap {
  position: relative;
}
.plan-slider-btn {
  display: none; /* モバイルは非表示 */
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #fff;
  border: 1.5px solid #ddd;
  box-shadow: 0 2px 8px rgba(0,0,0,0.14);
  font-size: 22px;
  line-height: 1;
  color: #444;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  transition: background 0.15s, color 0.15s;
  -webkit-tap-highlight-color: transparent;
}
.plan-slider-btn:hover { background: #C80000; color: #fff; border-color: #C80000; }
.plan-slider-btn--prev { left: 6px; }
.plan-slider-btn--next { right: 6px; }

@media (min-width: 768px) {
  .plan-slider-btn { display: flex; }
}

/* ============================================================
   トップページ PLANイメージスライダー
   ============================================================ */
.plan-img-slider {
  position: relative;
  padding: 0;
}
.plan-img-viewport {
  overflow: hidden;
  width: 100%;
  padding: 0 9%;
  box-sizing: border-box;
}
.plan-img-track {
  display: flex;
  gap: 10px;
  transition: transform 0.35s cubic-bezier(0.4,0,0.2,1);
  will-change: transform;
}
.plan-img-slide {
  min-width: 100%;
  width: 100%;
  height: auto;
  display: block;
  flex-shrink: 0;
  border-radius: 16px;
}
.plan-img-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 2px solid #C80000;
  background: rgba(255,255,255,0.9);
  color: #C80000;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  transition: background 0.2s, color 0.2s;
  -webkit-tap-highlight-color: transparent;
}
.plan-img-btn--prev { left: 10px; }
.plan-img-btn--next { right: 10px; }
.plan-img-btn svg { display: block; }
.plan-img-btn:hover { background: #C80000; color: #fff; }
.plan-img-dots {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin: 10px 0 0;
}
.plan-img-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #ccc;
  border: none;
  cursor: pointer;
  padding: 0;
  transition: background 0.2s;
  -webkit-tap-highlight-color: transparent;
}
.plan-img-dot--active { background: #C80000; }

/* swipeヒント（モバイルのみ） */
[data-view="plan"] .plan-v2-header {
  position: relative;
}
@media (max-width: 767px) {
  [data-view="plan"] .plan-v2-header::after {
    content: 'スワイプ →';
    position: absolute;
    right: 14px;
    bottom: -20px;
    font-size: 10px;
    color: #bbb;
    letter-spacing: 0.04em;
  }
}

/* ============================================================
   プラン機能比較表
   ============================================================ */
.plan-compare {
  background: #fff;
  padding: 32px 16px 48px;
}

.plan-compare__heading {
  font-size: 15px;
  font-weight: 700;
  color: #222;
  text-align: center;
  letter-spacing: 0.1em;
  margin: 0 0 20px;
  position: relative;
  padding-bottom: 14px;
}
.plan-compare__heading::after {
  content: '';
  position: absolute;
  bottom: 0; left: 50%;
  transform: translateX(-50%);
  width: 28px; height: 2px;
  background: #C80000; border-radius: 2px;
}

.plan-compare__table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
}

/* カラム幅 */
.plan-compare__th-empty { width: 30%; }
.plan-compare__th       { width: 23.3%; }

/* ヘッダー */
.plan-compare__th {
  font-size: 11px;
  font-weight: 700;
  color: #fff;
  text-align: center;
  padding: 12px 2px;
  line-height: 1.4;
}
.plan-compare__th--standard {
  background: #E05577;
  border-radius: 10px 10px 0 0;
  box-shadow: inset 0 -3px 0 rgba(0,0,0,0.12);
}
.plan-compare__th--main {
  background: #C80000;
  border-radius: 10px 10px 0 0;
  box-shadow: inset 0 -3px 0 rgba(0,0,0,0.15);
}
.plan-compare__th--pro {
  background: #2D2D2D;
  border-radius: 10px 10px 0 0;
  box-shadow: inset 0 -3px 0 rgba(0,0,0,0.2);
}

/* 機能名セル */
.plan-compare__feature {
  font-size: 12px;
  font-weight: 700;
  color: #333;
  text-align: left;
  padding: 18px 10px;
  border-bottom: 1px solid #f0f0f0;
  line-height: 1.55;
  vertical-align: middle;
}
.plan-compare__feature--goal {
  font-size: 12px;
  border-bottom: none;
  padding-top: 20px;
}

/* ○×△◎セル */
.plan-compare__cell {
  font-size: 22px;
  text-align: center;
  padding: 18px 4px;
  border-bottom: 1px solid #f0f0f0;
  vertical-align: middle;
  color: #222;
}
.plan-compare__cell--no       { font-size: 20px; color: #d0d0d0; }
.plan-compare__cell--triangle { font-size: 20px; color: #aaa; }
.plan-compare__cell--double   { color: #C80000; font-size: 22px; }

/* 奇数行に薄背景 */
tbody tr:nth-child(odd) .plan-compare__cell,
tbody tr:nth-child(odd) .plan-compare__feature {
  background: #fafafa;
}

/* 目標目安行 */
.plan-compare__goal {
  text-align: center;
  padding: 20px 4px;
  vertical-align: middle;
  font-size: 17px;
  font-weight: 900;
  letter-spacing: -0.02em;
}
.plan-compare__goal--standard { color: #E05577; background: #fff5f7; }
.plan-compare__goal--main     { color: #C80000; background: #fff5f5; }
.plan-compare__goal--pro      { color: #2D2D2D; background: #f5f5f5; }

/* ============================================================
   支払い方法
   ============================================================ */
.plan-payment {
  padding: 40px 20px 48px;
  background: #fff;
}
.plan-payment__heading {
  font-size: 19px;
  font-weight: 700;
  color: #333;
  text-align: center;
  margin-bottom: 32px;
}
.plan-payment__heading::before,
.plan-payment__heading::after {
  content: '';
  display: inline-block;
  width: 40px;
  height: 1px;
  background: #aaa;
  vertical-align: middle;
  margin: 0 12px;
}
.plan-payment__list {
  display: flex;
  justify-content: center;
  gap: 56px;
}
.plan-payment__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}
.plan-payment__icon {
  width: 116px;
  height: 116px;
  object-fit: contain;
}
.plan-payment__label {
  font-size: 16px;
  color: #444;
  font-weight: 600;
}
.plan-payment__badges {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  margin-top: 4px;
}
.plan-payment__badge {
  display: inline-block;
  background: #C80000;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  padding: 5px 16px;
  border-radius: 20px;
  letter-spacing: 0.05em;
  white-space: nowrap;
}

/* ============================================================
   FAQ ボックス
   ============================================================ */
.faq-item         { background: #fff !important; }
.faq-item summary {
  background: #fff !important;
  text-align: left !important;
  font-size: 13px !important;
  line-height: 1.6 !important;
}
.faq-item p {
  background: #fff !important;
  text-align: left !important;
}

/* 画像FAQ */
.faq-item--img { background: none !important; cursor: pointer; }
.faq-img-q { display: block; width: 100%; height: auto; }
.faq-img-a-wrap {
  overflow: hidden;
  height: 0;
  margin-top: 0;
  transition: height 0.35s ease, margin-top 0.35s ease;
}
.faq-img-a { display: block; width: 100%; height: auto; }

/* ============================================================
   ハンバーガー＆モバイルドロワー
   ============================================================ */
.hamburger {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  margin-left: auto;
  background: none;
  border: none;
  cursor: pointer;
  padding: 6px;
  width: 36px;
  height: 36px;
}
.hamburger span {
  display: block;
  width: 22px;
  height: 2px;
  background: #C80000;
  border-radius: 2px;
  transition: transform 0.2s;
}

.mobile-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.45);
  z-index: 9998;
}
.mobile-overlay.is-open { display: block; }

.mobile-drawer {
  position: fixed;
  top: 0; right: 0; bottom: 0;
  width: 76%;
  max-width: 300px;
  background: #fff;
  z-index: 9999;
  transform: translateX(100%);
  transition: transform 0.3s ease;
  overflow-y: auto;
  padding: 56px 24px 40px;
  box-shadow: -4px 0 20px rgba(0,0,0,0.15);
}
.mobile-drawer.is-open { transform: translateX(0); }

.mobile-drawer__close {
  position: absolute;
  top: 14px; right: 16px;
  background: none;
  border: none;
  font-size: 20px;
  color: #888;
  cursor: pointer;
  padding: 4px 8px;
}

.mobile-drawer__menu-label {
  font-size: 11px;
  font-weight: 700;
  color: #C80000;
  letter-spacing: 0.12em;
  margin: 0 0 14px;
}

.mobile-drawer__nav {
  list-style: none;
  padding: 0;
  margin: 0 0 32px;
  border-top: 1px solid #eee;
}
.mobile-drawer__nav li { border-bottom: 1px solid #eee; }
.mobile-drawer__nav a {
  display: block;
  padding: 14px 4px;
  font-size: 15px;
  font-weight: 700;
  color: #333;
  text-decoration: none;
  letter-spacing: 0.04em;
  transition: color 0.2s;
}
.mobile-drawer__nav a:active { color: #C80000; }

.mobile-drawer__ctas {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.mobile-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 16px 20px;
  border-radius: 9999px;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
  letter-spacing: 0.02em;
  transition: opacity 0.2s;
}
.mobile-cta--trial {
  background: #FA8072;
  color: #fff;
  border: 2px solid #fff;
  box-shadow: 0 3px 10px rgba(250,128,114,0.35);
}
.mobile-cta--line {
  background: #fff;
  color: #06C755;
  border: 2px solid #06C755;
}
.mobile-cta:hover { opacity: 0.85; }

/* ============================================================
   3つの安心セクション
   ============================================================ */
.anshin-catch-li {
  margin: 0;
  padding: 0 5%;
  line-height: 0;
  background: #FFF0EE;
}
.anshin-catch-img {
  display: block;
  width: 100%;
}
.anshin_top {
  background: #FFF0EE;
  padding: 8% 5% 8%;
  text-align: center;
  position: relative;
}
.anshin_top__photo-wrap {
  width: 100%;
  margin-bottom: -80px;
  position: relative;
  z-index: 0;
}
.anshin_top__photo {
  display: block;
  width: 100%;
  -webkit-mask-image: linear-gradient(to bottom, black 10%, transparent 55%);
  mask-image: linear-gradient(to bottom, black 10%, transparent 55%);
}
.anshin_top h2,
.anshin_top p {
  position: relative;
  z-index: 1;
}
.anshin_top h2 {
  font-weight: 900;
  color: #C80000;
  margin-bottom: 20px;
  line-height: 1.4;
}
.anshin-l1 {
  display: block;
  font-size: 26px;
  white-space: nowrap;
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-thickness: 2px;
}
.anshin-l2 {
  display: block;
  font-size: 67px;
  white-space: nowrap;
  text-decoration: underline;
  text-underline-offset: 6px;
  text-decoration-thickness: 3px;
}
.anshin_hero_wrap {
  position: relative;
  z-index: 2;
  padding: 0 5%;
  margin-bottom: -90px;
}
.anshin_hero_img {
  display: block;
  width: 100%;
}
.anshin_top p {
  font-size: clamp(13px, 3.5vw, 16px);
  line-height: 1.8;
  color: #333;
  text-align: left;
}
.page-view[data-view="guarantee"].is-active {
  background: #FFF0EE;
}
.anshin_section {
  background: transparent;
  padding: 10% 5%;
}
.p_anshin { overflow: visible !important; }
.anshin_box {
  background: #FFF8F6;
  border-radius: 16px;
  padding: 6% 6% 8%;
  margin-bottom: 10%;
  position: relative;
  z-index: 3;
  box-shadow: 0 6px 24px rgba(0,0,0,0.18);
}
.anshin_box:last-child { margin-bottom: 0; }
.anshin_box_number {
  position: absolute;
  top: -18px;
  left: 50%;
  transform: translateX(-50%);
  background: #C80000;
  color: #fff;
  font-size: clamp(13px, 3.5vw, 17px);
  font-weight: bold;
  padding: 8px 22px;
  border-radius: 30px;
  letter-spacing: 0.1em;
  white-space: nowrap;
}
.anshin_box_title {
  font-size: clamp(15px, 4vw, 22px);
  font-weight: bold;
  color: #333;
  margin: 10px 0 12px;
  line-height: 1.5;
  text-align: center;
  border-bottom: 2px dashed #C80000;
  padding-bottom: 10px;
}
.anshin_box_text {
  font-size: clamp(12px, 3.1vw, 14px);
  line-height: 1.9;
  color: #333;
  margin-bottom: 0;
  text-align: left;
}
.txt-marker {
  background: linear-gradient(transparent 55%, #FFFF00 55%);
  color: inherit;
  padding: 0;
}

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 900px) {
  .hamburger { display: flex; }
}

@media (max-width: 767px) {
  html { overflow-y: auto; scrollbar-gutter: auto; background: #fff; }
  .site-header { position: fixed; left: 0; right: 0; width: 100%; box-shadow: 0 16px 0 0 #fff; }
  .site-header::after { display: none; }
  .page-main { padding-top: 56px; background-color: #fff !important; }
  .header-inner { padding: 0 14px; }
  .sp_box, .sp_box ul, .sp_box li { width: 100%; max-width: 100%; }
  .floating.is-fixed { width: 100%; left: 0; transform: none; border-radius: 0; }
  @keyframes floatSlideUp {
    0%   { transform: translateY(100%); opacity: 0; }
    100% { transform: translateY(0);    opacity: 1; }
  }
}

/* About下バナー */
.about-banner-li {
  background: #FFF0EE;
}
.about-banner {
  padding: 10% 8% 6%;
  text-align: center;
}
.about-banner__img {
  width: 100%;
  max-width: 360px;
  display: block;
  margin: 0 auto;
}
.about-banner__img--sub {
  margin-top: 6%;
  max-width: 280px;
}

/* About レイヤー重ね */
.about-layers {
  position: relative;
  width: 100%;
  line-height: 0;
}
.about-layer {
  display: block;
  width: 100%;
  height: auto;
}
.about-layer--bg {
  position: relative;
  z-index: 1;
}
.about-layer--text1 {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
}
.about-layer--text2 {
  position: absolute;
  bottom: 14%;
  left: 0;
  z-index: 2;
}
.about-layers__btn {
  position: absolute;
  bottom: 4%;
  left: 0;
  right: 0;
  z-index: 3;
  display: flex;
  justify-content: center;
}
.about-layers__btn .p7-btn {
  padding: 14px 36px;
  font-size: 15px;
  line-height: 1.4;
  white-space: nowrap;
  border: 2px solid #C80000;
  box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}

/* 固定追従 戻るボタン */
.floating-back-btn {
  position: fixed;
  bottom: 28px;
  left: max(16px, calc(50vw - 196px));
  z-index: 9998;
  background: rgba(30, 30, 30, 0.82);
  color: #fff;
  border: none;
  border-radius: 50px;
  padding: 10px 18px;
  font-size: 13px;
  font-weight: bold;
  letter-spacing: 0.05em;
  cursor: pointer;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  box-shadow: 0 3px 12px rgba(0,0,0,0.25);
  opacity: 0;
  pointer-events: none;
  transform: translateY(8px);
  transition: opacity 0.25s, transform 0.25s;
}
.floating-back-btn.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

/* 累計受講者数バッジ */
.stat-badge-li {
  background: #C80000;
  padding: 0;
}

.stat-badge {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  padding: 20px 24px;
  max-width: 425px;
  margin: 0 auto;
}

.stat-badge__label {
  font-size: 13px;
  font-weight: bold;
  color: #fff;
  letter-spacing: 0.05em;
  line-height: 1.3;
  white-space: nowrap;
  margin-right: 16px;
  text-align: left;
}

.stat-badge__value {
  font-size: 52px;
  font-weight: 900;
  color: #fff;
  letter-spacing: 0.02em;
  line-height: 1;
  display: flex;
  align-items: baseline;
  gap: 2px;
}

.stat-badge__value em {
  font-size: 28px;
  font-style: normal;
  font-weight: 900;
}

.stat-badge__value small {
  font-size: 16px;
  font-weight: bold;
  margin-left: 2px;
}

/* 紙吹雪(e24)を女性画像(e23)の背面に */
.p5 .content2 { isolation: isolate; }
.e24 { z-index: 1 !important; }
.e24_left, .e24_right { z-index: 1 !important; }
.e23 { position: relative; z-index: 2 !important; }

/* e26: 「もっと資産を増やしたい！」テキスト置換 */
.e26 { text-align: center; line-height: 1.75; padding: 4px 0; }
.e26-line1 { font-size: 17px; font-weight: 700; color: #222; margin: 0; }
.e26-line2 { font-size: 17px; font-weight: 700; color: #222; margin: 0; }
.e26-accent { color: #C80000; font-size: 1.4em; vertical-align: text-bottom; line-height: 1; }

/* e176: ボタン「「増やす」ための3ステップ」テキスト置換 */
.e176.b_05_label {
  background: #C80000;
  color: #fff;
  border-radius: 8px;
  text-align: center;
  padding: 13px 24px;
  font-size: 15px;
  font-weight: 700;
  width: 100%;
  box-sizing: border-box;
  letter-spacing: 0.04em;
}
.e176-yellow { color: #FCEE21; }

/* ============================================================
   トップページ SERVICE カード プレミアムスタイル
============================================================ */
.premium-card {
  border-radius: 16px !important;
  background-color: #fff !important;
  position: relative;
  cursor: pointer;
  overflow: hidden !important;
  padding: 0 !important;
  box-shadow:
    0 4px 6px -1px rgba(0,0,0,0.03),
    0 10px 15px -3px rgba(0,0,0,0.04),
    0 25px 35px -5px rgba(0,0,0,0.06) !important;
  transition: transform 0.5s cubic-bezier(0.16,1,0.3,1),
              box-shadow 0.5s cubic-bezier(0.16,1,0.3,1);
  border: 1px solid rgba(0,0,0,0.03) !important;
}
.premium-card:hover {
  transform: translateY(-6px) !important;
  box-shadow:
    0 10px 15px -3px rgba(0,0,0,0.04),
    0 20px 25px -5px rgba(0,0,0,0.05),
    0 35px 50px -10px rgba(0,0,0,0.1) !important;
}
.premium-card img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 0 !important;
}
.premium-card::before {
  content: none;
}

/* ============================================================
   FOOTER
============================================================ */
.site-footer {
  background: #2b3040;
  color: #ccc;
  padding: 40px 0 0;
  width: 100%;
  display: none;
}
@media (max-width: 767px) {
  .site-footer { display: block; }
}

.site-footer__inner {
  max-width: 480px;
  margin: 0 auto;
  padding: 0 28px;
}

/* ナビ */
.site-footer__nav {
  margin-bottom: 32px;
}

.site-footer__nav-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.site-footer__nav-list li {
  border-bottom: 1px solid rgba(255,255,255,0.08);
}

.footer-nav-link {
  display: block;
  padding: 14px 0;
  color: #e8e8e8;
  text-decoration: none;
  font-size: 15px;
  letter-spacing: 0.03em;
  transition: color 0.2s;
}

.footer-nav-link:hover { color: #B88E5A; }

/* SNS */
.site-footer__sns {
  display: flex;
  gap: 12px;
  margin-bottom: 28px;
}

.footer-sns-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(255,255,255,0.35);
  border-radius: 50%;
  color: #e8e8e8;
  font-size: 18px;
  text-decoration: none;
  transition: border-color 0.2s, color 0.2s;
}

.footer-sns-btn:hover {
  border-color: #B88E5A;
  color: #B88E5A;
}

/* フッターロゴ */
.site-footer__logo {
  display: flex;
  justify-content: center;
  margin: 24px 0;
}
.site-footer__logo img {
  max-width: 240px;
  width: 80%;
}

/* サブリンク */
.site-footer__sub-nav {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  margin-bottom: 36px;
}

.footer-sub-link {
  color: #7a8099;
  text-decoration: underline;
  font-size: 11px;
  letter-spacing: 0.02em;
  transition: color 0.2s;
}

.footer-sub-link:hover { color: #B88E5A; }

/* ブランド */
.site-footer__brand {
  margin-bottom: 20px;
}

.site-footer__tagline {
  font-size: 11px;
  color: #7a8099;
  margin: 0 0 4px;
  letter-spacing: 0.05em;
}

.site-footer__name {
  font-size: 22px;
  font-weight: bold;
  color: #fff;
  margin: 0;
  letter-spacing: 0.05em;
}

/* メインCTAボタン */
.footer-main-cta {
  display: block;
  background: #C80000;
  color: #fff;
  text-align: center;
  padding: 18px 20px;
  font-size: 15px;
  font-weight: bold;
  text-decoration: none;
  letter-spacing: 0.05em;
  border-radius: 50px;
  margin-bottom: 32px;
  transition: opacity 0.2s;
}

.footer-main-cta:hover { opacity: 0.85; }

/* コピーライト */
.site-footer__copy {
  text-align: center;
  font-size: 10px;
  color: #4a5068;
  margin: 0;
  padding: 16px 0;
  border-top: 1px solid rgba(255,255,255,0.07);
  letter-spacing: 0.03em;
}

/* 右パネル内 AOS は va ブロック単位で制御するため即時表示 */
.page-view:not([data-view='top']) [data-aos] { opacity: 1 !important; transform: none !important; transition: none !important; }

/* ============================================================
   ビュー入場アニメーション (.va / .is-entering)
============================================================ */
@keyframes vaSlideUp {
  from { opacity: 0; transform: translateY(40px); }
  to   { opacity: 1; transform: none; }
}
.va { opacity: 0; }
.va.is-entering {
  animation: vaSlideUp 0.65s cubic-bezier(0.16,1,0.3,1) both;
}
.no-scroll-behavior { scroll-behavior: auto !important; }

/* スクロール表示アニメーション（IntersectionObserver用） */
.js-scroll-reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1), transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}
.js-scroll-reveal.is-revealed {
  opacity: 1;
  transform: none;
}

/* ============================================================
   円グラフ内テキスト：vw依存をやめてコンテナ幅に追従させる
   .b_08_list をコンテナにし cqw で .num / .percent をスケール
   ============================================================ */
.b_08_list {
  container-type: inline-size;
}
/* 数値（299 / 304）: 11cqw ≒ 37px at list幅340px（375px単体表示時） */
.b_08_list .num {
  font-size: clamp(18px, 11cqw, 50px);
}
/* パーセント（95.2% / 96.8%）: 元21px相当を6cqwで再現 */
.b_08_list .percent {
  font-size: clamp(11px, 6cqw, 22px);
  line-height: 1.4;
}
