/* =========================================================
  MOROTE LP - Fresh & Trusty (整体×自重トレ専門)
  ルール：セッション順に「共通 → SP → それより小さい」
========================================================= */

/* =========================================================
  1) 共通（サイト全体）
========================================================= */

/* ===== Design Tokens ===== */
:root{
  /* Fresh & Trusty */
  --color-bg: #f4fbf9;                /* ほんのりミント */
  --color-surface: #ffffff;
  --color-text: #1f2937;
  --color-muted: #6b7280;

  --color-main: #0f766e;              /* ティール（安心感） */
  --color-main-2: #0ea5a4;            /* 透明感のある差し色 */
  --color-accent: #38bdf8;            /* さわやかスカイ */
  --color-accent-soft: rgba(56,189,248,.12);

  --color-line: #06c755;              /* LINE */
  --color-border: rgba(31,41,55,.10);

  --shadow-soft: 0 10px 26px rgba(15, 23, 42, 0.08);
  --shadow-soft-2: 0 18px 44px rgba(15, 23, 42, 0.12);

  --radius-card: 18px;
  --radius-pill: 999px;

  --font-jp: "Hiragino Sans","Yu Gothic",system-ui,-apple-system,BlinkMacSystemFont,sans-serif;

  --header-height-sp: 60px;
  --header-height-pc: 72px;
}

/* ===== Reset & Base ===== */
*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior: auto; }
  *{ transition: none !important; animation: none !important; }
}

body{
  margin: 0;
  font-family: var(--font-jp);
  color: var(--color-text);
  background:
    radial-gradient(circle at 0% 0%, rgba(14,165,164,.10) 0%, rgba(255,255,255,0) 45%),
    radial-gradient(circle at 100% 10%, rgba(56,189,248,.10) 0%, rgba(255,255,255,0) 50%),
    var(--color-bg);
  line-height: 1.8;
  font-size: 16px;
}

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

a{
  color: inherit;
  text-decoration: none;
}

ul, ol{
  margin: 0;
  padding: 0;
  list-style: none;
}

p{ margin: 0; }

.container{
  width: 100%;
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 16px;
}

/* アンカー位置（ヘッダー分のズレ対策） */
section[id]{
  scroll-margin-top: calc(var(--header-height-sp) + 14px);
}
@media (min-width: 768px){
  section[id]{ scroll-margin-top: calc(var(--header-height-pc) + 18px); }
}

/* タイトル類 */
.section-title{
  font-size: clamp(1.55rem, 2.4vw, 2.05rem);
  text-align: center;
  margin: 0 0 22px;
  letter-spacing: .05em;
  color: #0b2f2d;
}
.section-lead{
  text-align: center;
  margin: 0 0 22px;
  color: var(--color-muted);
}

/* Buttons（統一） */
.btn-primary,
.btn-line,
.btn-footer,
.btn-outline{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 24px;
  border-radius: var(--radius-pill);
  font-weight: 700;
  cursor: pointer;
  border: 1px solid transparent;
  transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease, color .15s ease, border-color .15s ease;
  white-space: nowrap;
}

.btn-primary{
  background: linear-gradient(135deg, var(--color-main) 0%, var(--color-main-2) 100%);
  color: #fff;
  box-shadow: var(--shadow-soft);
}
.btn-primary:hover{
  transform: translateY(-1px);
  box-shadow: var(--shadow-soft-2);
}

.btn-line{
  background: var(--color-line);
  color: #fff;
  box-shadow: 0 12px 30px rgba(6,199,85,.25);
}
.btn-line::before{
  font-weight: 900;
  letter-spacing: .02em;
}
.btn-line:hover{
  transform: translateY(-1px);
  box-shadow: 0 18px 42px rgba(6,199,85,.30);
}

.btn-footer{
  background: rgba(255,255,255,.08);
  color: #fff;
  border-color: rgba(255,255,255,.22);
}
.btn-footer:hover{
  background: rgba(255,255,255,.16);
  border-color: rgba(255,255,255,.35);
}

.btn-outline{
  background: #fff;
  color: var(--color-main);
  border-color: rgba(15,118,110,.30);
}
.btn-outline::after{
  content: "＞";
  font-size: .95em;
  transition: transform .18s ease;
}
.btn-outline:hover{
  background: var(--color-main);
  color: #fff;
  border-color: var(--color-main);
}
.btn-outline:hover::after{ transform: translateX(2px); }

:focus-visible{
  outline: 3px solid rgba(56,189,248,.55);
  outline-offset: 2px;
}

/* =========================================================
  2) ヘッダー（共通）
========================================================= */

/* 共通 */
.site-header{
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(255,255,255,.82);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(31,41,55,.08);
}
.header-inner{
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: var(--header-height-sp);
}
.logo a{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-weight: 900;
  letter-spacing: .10em;
}

.logo-img{
  height: 34px;   /* 好みで 28〜40px */
  width: auto;
  display: block;
}

.logo-text{
  color: #0b2f2d;
  font-size: .95rem;
  line-height: 1;
}

/* SP微調整 */
@media (max-width: 375px){
  .logo-img{ height: 32px; }
  .logo-text{ font-size: .90rem; }
}

/* PC微調整（任意） */
@media (min-width: 768px){
  .logo-img{ height: 36px; }
  .logo-text{ font-size: 1rem; }
}

.logo-text{
  color: #0b2f2d;
  font-size: .95rem;
}

/* PCナビ（共通では非表示） */
.global-nav{ display: none; }

/* ハンバーガー */
.nav-toggle{
  width: 38px;
  height: 38px;
  border: 0;
  background: transparent;
  padding: 0;
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  cursor: pointer;
}
.nav-toggle span{
  height: 2px;
  width: 100%;
  background: #0b2f2d;
  border-radius: 999px;
  transition: transform .2s ease, opacity .2s ease;
}
.nav-toggle.is-open span:nth-child(1){ transform: translateY(8px) rotate(45deg); }
.nav-toggle.is-open span:nth-child(2){ opacity: 0; }
.nav-toggle.is-open span:nth-child(3){ transform: translateY(-8px) rotate(-45deg); }

/* SP */
@media (max-width: 767px){
  .global-nav{
    position: fixed;
    top: var(--header-height-sp, 64px);
    left: 0;
    right: 0;
    bottom: 0;
    height: calc(60dvh - var(--header-height-sp, 64px));
    overflow-y: auto;
    display: block;
    background: rgba(251, 251, 251, 0.95);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    padding: 18px 16px 28px;
    opacity: 0;
    transform: translateY(-8px);
    pointer-events: none;
    transition: opacity .18s ease, transform .18s ease;
    z-index: 49; /* header(50)の下にして、内容より上に */
  }

  .global-nav.is-open{
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
  }

  .global-nav ul{
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
    font-weight: 700;
  }
  .global-nav a{
    display: inline-flex;
    padding: 10px 8px;
    border-radius: 12px;
  }
  .global-nav a:hover{
    background: rgba(14,165,164,.08);
  }
  .nav-cta{
    margin-top: 6px;
    background: rgba(6,199,85,.10);
    border: 1px solid rgba(6,199,85,.25);
    color: #0b2f2d;
    padding: 10px 14px;
    border-radius: var(--radius-pill);
  }
}

/* それより小さい */
@media (max-width: 375px){
  .logo-mark{ width: 32px; height: 32px; }
  .logo-text{ font-size: .90rem; }
}

/* PC */
@media (min-width: 768px){
  .header-inner{ height: var(--header-height-pc); }
  .nav-toggle{ display: none; }

  .global-nav{
    display: block;
  }
  .global-nav ul{
    display: flex;
    gap: 18px;
    align-items: center;
    font-size: .92rem;
  }
  .global-nav a{
    position: relative;
    padding: 4px 0;
    color: #0b2f2d;
  }
  .global-nav a::after{
    content: "";
    position: absolute;
    left: 0;
    bottom: -6px;
    width: 0;
    height: 2px;
    background: rgba(15,118,110,.55);
    transition: width .18s ease;
  }
  .global-nav a:hover::after{ width: 100%; }

  .nav-cta{
    padding: 8px 14px;
    border-radius: var(--radius-pill);
    border: 1px solid rgba(15,118,110,.35);
    color: var(--color-main);
    background: #fff;
  }
  .nav-cta:hover{
    background: rgba(14,165,164,.10);
  }
}

/* ===============================
   メインビジュアル（HERO）
   共通 → SP → それより小さい
================================= */

/* HEROの箱（ここが潰れると“画像が消えた”ように見えます） */
.hero{
  position: relative;
  overflow: hidden;
  padding: 96px 0 72px;
  min-height: 72vh;
}

/* 画像をHERO全面に敷く */
.hero-bg{
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
}
.hero-bg img{
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center top;
  display: block;
}

/* うっすら白ベール（必要なら。不要ならこのブロックごと消してOK） */
.hero::before{
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1; /* 画像(0)の上 */
  background: linear-gradient(
    90deg,
    rgba(255,255,255,.35) 0%,
    rgba(255,255,255,.15) 55%,
    rgba(255,255,255,.00) 100%
  );
  pointer-events: none;
}

/* テキストを“画像の上”に載せる（containerの効きを壊さない版） */
.hero-inner.container{
  position: relative;
  z-index: 2;               /* ベール(1)より上 */
  min-height: 72vh;         /* heroの高さと揃える */
  display: flex;
  align-items: flex-end;    /* 下寄せ */
  justify-content: flex-start;
  padding-bottom: 56px;     /* 位置調整 */
}

/* Flyer用テキストブロック（背景は透過のまま） */
.hero-text-block--flyer{
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
  border-radius: 0;
  max-width: 720px;
  transform: rotate(-7deg);            /* 右上がり */
  transform-origin: left bottom;
}

/* タイトル */
.hero-title--flyer{
  margin: 0 0 12px;
  line-height: 1.15;
}

/* 黒帯（1行ごとに積む） */
.hero-title-line{
  display: block;
  width: fit-content;
  font-size: 2.5rem;
  padding: 14px 20px;                 /* 帯を厚く */
  border-radius: 14px;
  background: rgba(15, 23, 42, 0.86);
  color: #fff;
  font-weight: 900;
  letter-spacing: .04em;
  box-shadow: 0 10px 22px rgba(0,0,0,.18);
  transform: skewX(-10deg);

}

.hero-title-line + .hero-title-line{
  margin-top: 12px;
}

/* 2行目だけアクセント帯 */
.hero-title-line--accent{
  background: linear-gradient(90deg, #ebd6a3 0%, #dbb06c 45%, #eab271 100%);
  font-size: 4rem;
  color: #ffffff; /* 濃いグリーン（読みやすい） */

  white-space: nowrap;
}

/* キャッチ（黒帯：2行） */
.hero-catch--flyer{
  margin: 0 0 14px;
  line-height: 1.12;
}

.hero-catch-line{
  display: block;
  width: fit-content;
  font-size: 4rem;
  padding: 12px 18px;
  border-radius: 14px;
  color: #0f172a;
  font-weight: 900;
  letter-spacing: .02em;
  transform: skewX(-10deg);
  -webkit-text-stroke: 6px rgba(255,255,255,0.95);
  paint-order: stroke fill;
}

.hero-catch-line + .hero-catch-line{
  margin-top: 10px;
}


/* -----------------------------
   SP
----------------------------- */
@media (max-width: 767px){
  .hero{
    padding: 56px 0 16px;
    min-height: auto;
    height: 430px; /* 必要なら調整 */
  }

  .hero-inner.container{
    min-height: 95%;
    padding-bottom: 22px;
  }

  .hero-text-block--flyer{
    max-width: 100%;
  }

  .hero-title-line{
    font-size: 1.4rem;
    padding: 9px 14px;
    border-radius: 11px;
    margin-left: 0.7rem;
  }

  .hero-catch-line{
    font-size: 1.65rem;
    padding: 10px 14px;
    border-radius: 10px;
    margin-top: 1rem;
  }
}

/* -----------------------------
   それより小さい
----------------------------- */
@media (max-width: 375px){
  .hero{ height: 410px; }
  .hero-inner.container{ padding-bottom: 18px; }

  .hero-title-line{ font-size: 1.05rem; }
  .hero-catch-line{ font-size: 1.45rem; }
}


/* ===============================
   メインビジュアル下（HERO INFO）
   共通 → SP → それより小さい
================================= */

/* 共通（PCも表示） */
.hero-info-sp{
  display: block;
  padding: 22px 0 40px;
  background: #ffffff;
}

.hero-info-sp .container{
  padding: 0 24px;
  max-width: 800px;   /* 好みで 860〜1040 くらいで調整OK */
  margin: 0 auto;     /* 中央寄せ */
}

.hero-info-sp .hero-subtitle{
  margin: 0 0 18px;
  font-size: 1.5rem;
  line-height: 1.9;
  color: var(--color-text);
}

/* キャンペーン（カード） */
.hero-info-sp .hero-campaign{
  margin: 0 0 18px;
  padding: 18px 18px 16px;
  border-radius: 18px;
  background: #fff;
  border: 1px solid rgba(15, 23, 42, 0.10);
  box-shadow: 0 10px 22px rgba(15, 23, 42, 0.06);
  text-align: left;
  max-width: 760px; /* PCで横に伸びすぎ防止 */
}

.hero-info-sp .campaign-label{
  margin: 0 0 4px;
  display: inline-block;
  font-weight: 900;
  font-size: 1.5rem;
  color: #0b2f2d;
}

.hero-info-sp .campaign-period{
  margin: 0 0 10px;
  font-weight: 900;
  font-size: 1.5rem;
  color: var(--color-main);
}

.hero-info-sp .campaign-list{
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 8px;
}

.hero-info-sp .campaign-list li{
  position: relative;
  padding-left: 22px;
  color: var(--color-text);
  line-height: 1.55;
  font-weight: 700;
  font-size: 1.5rem;
}

.hero-info-sp .campaign-list li::before{
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--color-main);
  font-weight: 900;
}

.hero-info-sp .campaign-list strong{
  font-weight: 900;
}

.hero-info-sp .campaign-list .small{
  margin-left: 6px;
  font-size: 0.85rem;
  color: var(--color-muted);
  font-weight: 700;
}

.hero-info-sp .campaign-note{
  margin: 10px 0 0;
  font-size: 0.82rem;
  color: var(--color-muted);
  line-height: 1.5;
}

.hero-info-sp .hero-subtitle,
.hero-info-sp .hero-campaign,
.hero-info-sp .hero-cta{
  margin-left: auto;
  margin-right: auto;
}

/* CTA */
.hero-info-sp .hero-cta{
  display: grid;
  gap: 10px;
  max-width: 520px;
}

.hero-info-sp .btn-line{
  width: 100%;
  justify-content: center;
  border-radius: 999px;
  padding: 16px 18px;
  font-size: 1.05rem;
  box-shadow: 0 12px 24px rgba(0,0,0,.12);
}

.hero-info-sp .hero-cta-note{
  margin: 0;
  font-size: 0.82rem;
  color: var(--color-muted);
  line-height: 1.6;
  text-align: left;
}

/* SP */
@media (max-width: 767px){
  .hero-info-sp{
    padding: 22px 0 44px;
  }
  .hero-info-sp .hero-subtitle{
    font-size: 1rem;
  }
  .hero-info-sp .container{
    padding: 0 16px;
  }
  .hero-info-sp .hero-campaign{
    max-width: none;
  }
  .hero-info-sp .hero-cta{
    max-width: none;
  }
  .hero-info-sp .hero-cta-note{
    text-align: center;
  }
  .hero-info-sp .campaign-label{
    font-size: 1.05rem;
  }

  .hero-info-sp .campaign-period{
    font-size: 1.05rem;
  }

  .hero-info-sp .campaign-list li{
    font-size: 1.05rem;
  }

  .hero-info-sp .campaign-list .small{
    font-size: 0.78rem;
  }

  .hero-info-sp .campaign-note{
    font-size: 0.75rem;
  }
}

/* それより小さい */
@media (max-width: 375px){
  .hero-info-sp{
    padding: 18px 0 40px;
  }
  .hero-info-sp .hero-subtitle{
    font-size: 0.95rem;
  }
  .hero-info-sp .hero-campaign{
    padding: 14px 14px 12px;
    border-radius: 16px;
  }
  .hero-info-sp .btn-line{
    padding: 15px 16px;
    font-size: 1rem;
  }
}

/* ===============================
  【上書き】hero-info-sp：カード中身を中央寄せに見せる
  ※現状CSSを活かしたまま、見え方だけ中央化
================================= */

/* カードの中身を中央寄せ */
.hero-info-sp .hero-campaign{
  text-align: center;          /* 見出し・注記も中央へ */
  margin-left: auto;
  margin-right: auto;
}

/* リストを“塊”で中央に置く */
.hero-info-sp .campaign-list{
  display: flex;               /* grid → flex に上書き */
  flex-direction: column;
  gap: 12px;                   /* 少し広めに（好みで） */
  align-items: center;         /* ここが中央寄せの要 */
  margin-top: 14px;
}

/* 各行：✓＋テキストをセットで中央に */
.hero-info-sp .campaign-list li{
  padding-left: 0;             /* 左余白を消す */
  position: static;            /* absolute前提を外す */
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 10px;
  text-align: left;            /* 行の中は自然 */
}

/* ✓をabsoluteから通常配置に変更 */
.hero-info-sp .campaign-list li::before{
  position: static;
  left: auto;
  top: auto;
}

/* 注記も中央に寄せる（必要なら） */
.hero-info-sp .campaign-note{
  text-align: center;
}

/* CTA注記：中央寄せの見え方に合わせる（PCも） */
.hero-info-sp .hero-cta-note{
  text-align: center;
}


/* =========================================================
  4) アバウト
========================================================= */

/* 共通 */
.section-about{
  padding: 72px 0 62px;
  background: var(--color-bg);
}

.about-grid{
  display: grid;
  gap: 26px;
}
.check-list{
  display: grid;
  gap: 8px;
  margin-bottom: 14px;
}
.check-list li{
  position: relative;
  padding-left: 28px;
  font-size: .96rem;
  color: var(--color-text);
}
.check-list li::before{
  content: "";
  position: absolute;
  left: 0;
  top: .52em;
  width: 16px;
  height: 16px;
  border-radius: 999px;
  background: rgba(14,165,164,.14);
  box-shadow: inset 0 0 0 2px rgba(15,118,110,.28);
}
.check-list li::after{
  content: "✓";
  position: absolute;
  left: 3px;
  top: .18em;
  color: var(--color-main);
  font-weight: 900;
  font-size: .95rem;
}

.about-lead{
  font-size: .98rem;
  color: var(--color-text);
}
.about-lead strong{
  color: var(--color-main);
}



/* SP */
@media (max-width: 767px){
  .about-grid{ grid-template-columns: 1fr; }
}

/* それより小さい */
@media (max-width: 375px){
  .about-step-card{ padding: 14px 14px 16px; }
}

/* PC（必要最低限：2カラム化） */
@media (min-width: 768px){
  .about-grid{
    grid-template-columns: 1fr; /* ←ここが重要 */
    gap: 30px;
  }

  .about-text{
    max-width: 920px; /* 好みで調整 */
    margin: 0 auto;   /* 中央寄せ */
  }
}

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

/* 共通 */
.section-before-after{
  padding: 72px 0 62px;
  background: #fff;
}
.ba-grid{
  display: grid;
  gap: 18px;
}
.ba-item{
  background: rgba(14,165,164,.06);
  border: 1px solid rgba(15,118,110,.10);
  border-radius: var(--radius-card);
  padding: 16px;
}
.ba-item h3{
  margin: 0 0 10px;
  font-size: 1rem;
  color: #0b2f2d;
  font-weight: 900;
}
.ba-cards{
  display: grid;
  gap: 12px;
}
.ba-card{
  background: #fff;
  border-radius: 16px;
  border: 1px solid rgba(31,41,55,.08);
  padding: 14px 14px 12px;
  box-shadow: 0 10px 22px rgba(15,23,42,.05);
}
.ba-card h4{
  margin: 0 0 6px;
  font-size: .92rem;
  color: var(--color-main);
  letter-spacing: .02em;
}
.ba-card ul{
  display: grid;
  gap: 6px;
}
.ba-card li{
  position: relative;
  padding-left: 18px;
  font-size: .92rem;
  color: var(--color-text);
}
.ba-card li::before{
  content: "•";
  position: absolute;
  left: 6px;
  top: 0;
  color: rgba(15,118,110,.55);
  font-weight: 900;
}
.ba-note{
  margin-top: 10px;
  font-size: .82rem;
  color: var(--color-muted);
}

/* SP */
@media (max-width: 767px){
  .ba-cards{ grid-template-columns: 1fr; }
}

/* それより小さい */
@media (max-width: 375px){
  .ba-item{ padding: 14px; }
  .ba-card{ padding: 12px; }
}

/* PC */
@media (min-width: 768px){
  .ba-grid{ grid-template-columns: 1fr 1fr; }
  .ba-cards{ grid-template-columns: 1fr 1fr; }
}

/* =========================================================
  6) 体験予約（1つ目）
========================================================= */

/* 共通 */
.section-trial{
  padding: 72px 0 62px;
}
.trial-steps{
  background: #fff;
  border: 1px solid rgba(31,41,55,.08);
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-soft);
  padding: 16px 16px 14px;
  max-width: 720px;
  margin: 0 auto;
}
.trial-steps ol{ counter-reset: step; display: grid; gap: 10px; }
.trial-steps li{
  position: relative;
  padding-left: 40px;
  font-size: .96rem;
  color: var(--color-text);
}
.trial-steps li::before{
  counter-increment: step;
  content: counter(step);
  position: absolute;
  left: 0;
  top: 0.05em;
  width: 28px;
  height: 28px;
  border-radius: 999px;
  background: rgba(14,165,164,.14);
  box-shadow: inset 0 0 0 2px rgba(15,118,110,.35);
  color: #0b2f2d;
  font-weight: 900;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.trial-cta{
  text-align: center;
  margin-top: 18px;
}
.trial-cta .btn-line{
  width: min(520px, 100%);
}
.trial-note{
  margin-top: 10px;
  font-size: .86rem;
  color: var(--color-muted);
}

/* SP */
@media (max-width: 767px){
  .trial-steps{ padding: 14px; }

  #trial .section-title{
    font-size: 1.5rem;
  }

  #trial .section-lead{
    font-size: 0.9rem;
    text-align: left;
  }
}

/* それより小さい */
@media (max-width: 375px){
  .trial-steps li{ font-size: .94rem; }
  #trial .section-title{
    font-size: 1.4rem;
  }
}



/* =========================================================
  8) ご利用の流れ
========================================================= */

/* 共通 */
.section-flow{
  padding: 72px 0 62px;
  background: var(--color-bg);
}
.flow-list{
  display: grid;
  gap: 12px;
}
.flow-list li{
  background: #fff;
  border: 1px solid rgba(31,41,55,.08);
  border-radius: var(--radius-card);
  padding: 16px;
  box-shadow: var(--shadow-soft);
}
.flow-list h3{
  margin: 0 0 6px;
  color: #0b2f2d;
  font-weight:700;
}
.flow-list p{
  color: var(--color-text);
  font-size: .95rem;
}

/* SP */
@media (max-width: 767px){
  .flow-list{ grid-template-columns: 1fr; }
}

/* それより小さい */
@media (max-width: 375px){
  .flow-list li{ padding: 14px; }
}

/* PC */
@media (min-width: 768px){
  .flow-list{ grid-template-columns: 1fr 1fr; }
}

/* =========================================================
  9) 料金プラン
========================================================= */

/* 共通 */
.section-price{
  padding: 72px 0 62px;
  background: #fff;
}
.price-intro{
  text-align: center;
  margin: 0 0 14px;
  color: var(--color-muted);
}
.price-campaign-table{
  background: linear-gradient(135deg, rgba(56,189,248,.08) 0%, rgba(255,255,255,1) 45%);
  border: 1px solid rgba(31,41,55,.08);
  border-radius: var(--radius-card);
  padding: 16px 16px 12px;
  box-shadow: var(--shadow-soft);
  margin-bottom: 22px;
  max-width: 520px;   /* 760〜980で好み調整 */
  margin: 0 auto;
}
.price-row{
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 0;
  border-bottom: 1px dashed rgba(31,41,55,.14);
}
.price-campaign-table .price-row:last-of-type{
  border-bottom: none; /* バグ対策：最後のrowのみ消す */
}
.price-label{
  font-weight: 900;
  color: #0b2f2d;
}
.price-values{
  display: inline-flex;
  align-items: baseline;
  gap: 10px;
}
.price-original{
  font-size: .88rem;
  color: var(--color-muted);
  text-decoration: line-through;
}
.price-now{
  font-size: 1.08rem;
  font-weight: 900;
  color: var(--color-main);
}
.price-note{
  margin-top: 10px;
  font-size: .86rem;
  color: var(--color-muted);
}

.price-category-title{
  font-size: 1.1rem;
  color: #0b2f2d;
  font-weight: 900;
  margin: 22px 0 8px;
  text-align: center;
}
.price-caption{
  margin: 0 0 10px;
  font-size: .92rem;
  color: var(--color-muted);
  text-align: center;
}

.price-grid{
  display: grid;
  gap: 12px;
  margin-bottom: 10px;
  max-width: 520px;   /* 760〜980で好み調整 */
  margin: 0 auto;
}
.price-card{
  background: #fff;
  border: 1px solid rgba(31,41,55,.08);
  border-radius: var(--radius-card);
  padding: 16px;
  box-shadow: 0 10px 22px rgba(15,23,42,.05);
}
.price-card h4{
  margin: 0 0 8px;
  font-size: 1rem;
  color: #0b2f2d;
  font-weight: 900;
}
.price-amount{
  font-weight: 900;
  color: var(--color-main);
  margin: 0 0 6px;
}
.price-desc{
  color: var(--color-text);
  font-size: .94rem;
}

/* SP */
@media (max-width: 767px){
  .price-grid{ grid-template-columns: 1fr; }
}

/* それより小さい */
@media (max-width: 375px){
  .price-card{ padding: 14px; }
  .price-desc{ font-size: .92rem; }
}

/* PC */
@media (min-width: 768px){
  .price-grid{ grid-template-columns: 1fr; }
}

/* =========================================================
  10) 体験予約（2つ目）
========================================================= */

/* 共通 */
.section-trial-secondary{
  padding: 72px 0 62px;
  background: var(--color-bg);
}
.section-trial-secondary .trial-cta{
  margin-top: 16px;
}
.section-trial-secondary .btn-line{
  width: min(520px, 100%);
}

/* SP */
@media (max-width: 767px){
  .section-trial-secondary .section-lead{
    padding: 0 2px;
  }
  .section-lead{
    font-size: 0.9rem;
    text-align: left;
  }
}

/* それより小さい */
@media (max-width: 375px){
  .section-trial-secondary{ padding: 64px 0 56px; }
}

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

/* 共通 */
.section-voices{
  padding: 72px 0 62px;
  background: #fff;
}
.voice-grid{
  display: grid;
  gap: 12px;
}
.voice-card{
  background: #fff;
  border: 1px solid rgba(31,41,55,.08);
  border-radius: var(--radius-card);
  padding: 16px;
  box-shadow: var(--shadow-soft);
  position: relative;
  overflow: hidden;
}
.voice-card::before{
  content: "";
  position: absolute;
  left: -40px;
  top: -40px;
  width: 140px;
  height: 140px;
  border-radius: 999px;
  background: rgba(56,189,248,.12);
}
.voice-tag{
  font-size: .82rem;
  color: var(--color-muted);
  margin-bottom: 6px;
}
.voice-card h3{
  margin: 0 0 10px;
  font-size: 1.02rem;
  color: #0b2f2d;
  font-weight: 900;
}
.voice-text{
  font-size: .94rem;
  color: var(--color-text);
}

/* SP */
@media (max-width: 767px){
  .voice-grid{ grid-template-columns: 1fr; }
}

/* それより小さい */
@media (max-width: 375px){
  .voice-card{ padding: 14px; }
}

/* PC */
@media (min-width: 768px){
  .voice-grid{ grid-template-columns: 1fr 1fr; }
}

/* =========================================================
  12) FAQ
========================================================= */

/* 共通 */
.section-faq{
  padding: 72px 0 62px;
  background: var(--color-bg);
}
.faq-list{
  display: grid;
  gap: 12px;
  max-width: 860px;
  margin: 0 auto;
}
.faq-item{
  background: #fff;
  border-radius: var(--radius-card);
  border: 1px solid rgba(31,41,55,.08);
  box-shadow: var(--shadow-soft);
  overflow: hidden;
}
.faq-question{
  width: 100%;
  text-align: left;
  padding: 14px 16px;
  border: 0;
  background: rgba(14,165,164,.08);
  color: #0b2f2d;
  font-weight: 900;
  cursor: pointer;
  position: relative;
}
.faq-question::after{
  content: "＋";
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: 900;
  color: rgba(15,118,110,.80);
}
.faq-answer{
  display: none; /* JSで block になる */
  padding: 12px 16px 16px;
  color: var(--color-text);
  font-size: .94rem;
  border-top: 1px solid rgba(31,41,55,.08);
}

/* SP */
@media (max-width: 767px){
  .faq-question{ padding-right: 44px; }
}

/* それより小さい */
@media (max-width: 375px){
  .faq-question{ font-size: .94rem; }
}

/* =========================================================
  13) インストラクター
========================================================= */

/* 共通 */
.section-instructor{
  padding: 72px 0 62px;
  background: #fff;
}
.instructor-grid{
  display: grid;
  gap: 18px;
  align-items: center;
}
.instructor-photo{
  width: 220px;
  aspect-ratio: 1 / 1;
  margin: 0 auto;
  border-radius: 999px;
  padding: 6px;
  background: linear-gradient(135deg, rgba(56,189,248,.25) 0%, rgba(14,165,164,.22) 100%);
}
.instructor-photo img{
  width: 100%;
  height: 100%;
  border-radius: 999px;
  object-fit: cover;
  object-position: center top;
  background: #fff;
}
.instructor-name{
  margin: 0 0 6px;
  font-size: 1.15rem;
  color: #0b2f2d;
  font-weight: 900;
}
.instructor-role{
  margin: 0 0 10px;
  color: var(--color-muted);
  font-weight: 700;
  font-size: .92rem;
}
.instructor-text{
  font-size: .95rem;
  color: var(--color-text);
  background: rgba(14,165,164,.06);
  border: 1px solid rgba(15,118,110,.10);
  border-radius: var(--radius-card);
  padding: 16px;
}

/* SP */
@media (max-width: 767px){
  .instructor-text{ padding: 14px; }
}

/* それより小さい */
@media (max-width: 375px){
  .instructor-photo{ width: 200px; }
}

/* PC */
@media (min-width: 768px){
  .instructor-grid{
    grid-template-columns: 320px 1fr;
    gap: 24px;
  }
  .instructor-photo{
    width: 280px;
    margin: 0;
    justify-self: center;
  }
}

/* =========================================================
  14) アクセス
========================================================= */

/* 共通 */
.section-access{
  padding: 72px 0 62px;
  background: var(--color-bg);
}
.access-grid{
  display: grid;
  gap: 16px;
}
.access-info{
  background: #fff;
  border: 1px solid rgba(31,41,55,.08);
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-soft);
  padding: 16px;
}
.access-info dl{ font-size: .95rem; }
.access-info dt{
  font-weight: 900;
  color: #0b2f2d;
  margin-top: 10px;
}
.access-info dd{
  margin: 0;
  color: var(--color-text);
  padding-bottom: 6px;
}
.access-map{
  border-radius: var(--radius-card);
  overflow: hidden;
  box-shadow: var(--shadow-soft);
  border: 1px solid rgba(31,41,55,.08);
}

/* プレースホルダー（iframeが入っても崩れない） */
.map-placeholder{
  border: none;
  display: block;
  overflow: hidden;
  border-radius: var(--radius-card);
}
.map-placeholder iframe{
  width: 100%;
  height: 390px;
  border: 0;
  display: block;
}

/* SP */
@media (max-width: 767px){
  .map-placeholder iframe{ height: 300px; }
}

/* それより小さい */
@media (max-width: 375px){
  .access-info{ padding: 14px; }
}

/* PC */
@media (min-width: 768px){
  .access-grid{
    grid-template-columns: 1fr 1fr;
    gap: 18px;
    align-items: start;
  }
}

/* =========================================================
  15) コラム（LP内）
========================================================= */

/* 共通 */
.section-column{
  padding: 72px 0 78px;
  background: #fff;
}
.column-grid{
  display: grid;
  gap: 12px;
}
.column-card{
  background: #fff;
  border: 1px solid rgba(31,41,55,.08);
  border-radius: var(--radius-card);
  padding: 16px;
  box-shadow: var(--shadow-soft);
  transition: transform .18s ease, box-shadow .18s ease;
}
.column-tag{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--color-muted);
  font-weight: 800;
  font-size: .82rem;
  margin-bottom: 6px;
}
.column-tag::before{
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: rgba(56,189,248,.55);
}
.column-card h3{
  margin: 0 0 6px;
  color: #0b2f2d;
  font-weight: 900;
  font-size: 1.02rem;
}
.column-date{
  color: var(--color-muted);
  font-size: .82rem;
  margin-bottom: 8px;
}
.column-text{
  color: var(--color-text);
  font-size: .94rem;
  margin-bottom: 10px;
}
.column-link{
  color: var(--color-main);
  font-weight: 900;
  text-decoration: underline;
  text-underline-offset: 3px;
}
@media (hover:hover) and (pointer:fine){
  .column-card:hover{
    transform: translateY(-2px);
    box-shadow: var(--shadow-soft-2);
  }
}

.column-more{
  margin-top: 18px;
  text-align: right;
}

/* SP */
@media (max-width: 767px){
  .column-more{ text-align: center; }
  .btn-outline{ width: 100%; max-width: 340px; }
}

/* それより小さい */
@media (max-width: 375px){
  .column-card{ padding: 14px; }
}

/* PC */
@media (min-width: 768px){
  .column-grid{ grid-template-columns: 1fr 1fr; }
}

/* =========================================================
  16) フッター
========================================================= */

/* 共通 */
.site-footer{
  background: #0b2f2d;
  color: rgba(255,255,255,.92);
  padding-top: 36px;
}
.footer-inner{
  display: grid;
  gap: 18px;
  padding-bottom: 22px;
}
.footer-logo{
  font-weight: 900;
  letter-spacing: .12em;
  margin: 0 0 6px;
}

.footer-nav ul{
  display: flex;
  flex-wrap: wrap;
  gap: 10px 14px;
  font-size: .88rem;
}
.footer-nav a{
  color: rgba(255,255,255,.78);
}
.footer-nav a:hover{
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.footer-label{
  font-weight: 900;
  margin: 0 0 8px;
}
.footer-bottom{
  border-top: 1px solid rgba(255,255,255,.12);
  text-align: center;
  font-size: .82rem;
  padding: 10px 0 12px;
  color: rgba(255,255,255,.60);
}

/* SP */
@media (max-width: 767px){
  .footer-contact .btn-footer{ width: 100%; }
}

/* PC */
@media (min-width: 768px){
  .footer-inner{
    grid-template-columns: 1.6fr 2fr 1.4fr;
    align-items: start;
    gap: 18px 22px;
  }
  .footer-contact{ text-align: right; }
}


/* リストの基本リセット（footer内だけ） */
.site-footer ul{
  list-style: none;
  margin: 0;
  padding: 0;
}

/* 追加：ポリシーリンク（特商法/プラポリ/規約） */
.footer-policy ul{
  display: flex;
  flex-wrap: wrap;
  gap: 10px 14px;
  font-size: .88rem;
}

.footer-policy a{
  color: rgba(255,255,255,.78);
}

.footer-policy a:hover{
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* 追加：連絡先（TEL / MAIL） */
.footer-contact{
  display: grid;
  gap: 10px;
}

.footer-contact .footer-contact-row{
  margin: 0;
  font-size: .88rem;
  line-height: 1.6;
  color: rgba(255,255,255,.78);
}

.footer-contact .footer-contact-row a{
  color: rgba(255,255,255,.92);
  text-decoration: none;
}

.footer-contact .footer-contact-row a:hover{
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* 追加：SNS（LINE / Instagram） */
.footer-sns ul{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.footer-sns a{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 9px 12px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.92);
  font-size: .86rem;
  text-decoration: none;
}

.footer-sns a:hover{
  background: rgba(255,255,255,.10);
  border-color: rgba(255,255,255,.28);
  color: #fff;
}

/* SP */
@media (max-width: 767px){
  .footer-policy ul{
    gap: 10px 12px;
  }

  .footer-sns a{
    width: 100%;
  }
}

/* PC（既存の3カラムに合わせて“置き方”だけ整える） */
@media (min-width: 768px){
  /* 右寄せ指定があるため、footer-contact内の要素も右に整列 */
  .footer-contact{
    justify-items: end;
  }

  .footer-policy ul{
    justify-content: flex-start;
  }
}

.footer-policy li{
  position: relative;
}

.footer-policy li + li::before{
  content: "｜";
  color: rgba(255,255,255,.45);
}

/* =========================================================
  コラム一覧ページ（COLUMN INDEX）
  page-hero（共通）→ カテゴリ → 戻る導線
========================================================= */

/* ===============================
   1) ページ全体
================================= */

.page-column-index{
  background: var(--color-bg);
  padding-bottom: 72px;
}

/* ===============================
   2) ページヒーロー（コラム）
================================= */

/* 共通 */
.page-hero{
  position: relative;
  overflow: hidden;
  padding: 86px 0 64px;
}

.page-hero-bg{
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
}


/* うっすら白ベール（読みやすさ） */
.page-hero::before{
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    90deg,
    rgba(255,255,255,.88) 0%,
    rgba(255,255,255,.66) 46%,
    rgba(255,255,255,.18) 100%
  );
  pointer-events: none;
}

.page-hero-inner{
  position: relative;
  z-index: 2;
  max-width: 880px;
}

.page-hero-label{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px;
  border-radius: var(--radius-pill);
  background: rgba(14,165,164,.10);
  color: #0b2f2d;
  font-weight: 900;
  letter-spacing: .08em;
  font-size: .82rem;
  margin: 0 0 10px;
}
.page-hero-label::before{
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: var(--color-main);
}

.page-hero-title{
  margin: 0 0 10px;
  font-size: clamp(1.8rem, 3.0vw, 2.5rem);
  line-height: 1.25;
  color: #0b2f2d;
  letter-spacing: .02em;
}

.page-hero-text{
  margin: 0;
  font-size: 1rem;
  line-height: 1.9;
  color: var(--color-text);
  max-width: 720px;
}

/* SP */
@media (max-width: 767px){
  .page-hero{
    padding: 62px 0 38px;
  }
  .page-hero::before{
    background: linear-gradient(
      180deg,
      rgba(255,255,255,.86) 0%,
      rgba(255,255,255,.62) 55%,
      rgba(255,255,255,.12) 100%
    );
  }
  .page-hero-text{
    font-size: .95rem;
    line-height: 1.85;
  }
}

/* それより小さい */
@media (max-width: 375px){
  .page-hero{
    padding: 56px 0 34px;
  }
  .page-hero-title{
    font-size: 1.7rem;
  }
}

/* ===============================
   3) コラムカテゴリ一覧
================================= */

/* 共通 */
.section-column-categories{
  padding: 56px 0 66px;
}

.column-category-grid{
  display: grid;
  gap: 16px;
  margin-top: 18px;
}

/* カード */
.column-category-card{
  display: grid;
  grid-template-columns: 168px 1fr;
  gap: 14px;
  background: #fff;
  border: 1px solid rgba(31,41,55,.08);
  border-radius: var(--radius-card);
  overflow: hidden;
  box-shadow: 0 10px 22px rgba(15,23,42,.06);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.column-category-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 14px 28px rgba(15,23,42,.10);
  border-color: rgba(15,118,110,.18);
}

.column-category-image{
  position: relative;
  overflow: hidden;
  background: rgba(15,118,110,.06);
}
.column-category-image img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.02);
  transition: transform .25s ease;
}
.column-category-card:hover .column-category-image img{
  transform: scale(1.06);
}

.column-category-body{
  padding: 14px 14px 16px;
  display: grid;
  gap: 8px;
  align-content: start;
}

.column-category-tag{
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: 6px 10px;
  border-radius: var(--radius-pill);
  background: rgba(14,165,164,.10);
  color: #0b2f2d;
  font-weight: 900;
  font-size: .80rem;
  letter-spacing: .03em;
  margin: 0;
}

.column-category-title{
  margin: 0;
  color: #0b2f2d;
  font-weight: 900;
  font-size: 1.06rem;
  line-height: 1.35;
}

.column-category-text{
  margin: 0;
  color: var(--color-text);
  font-size: .94rem;
  line-height: 1.8;
}

/* SP */
@media (max-width: 767px){
  .section-column-categories{
    padding: 42px 0 58px;
  }

  .column-category-grid{
    gap: 14px;
  }

  .column-category-card{
    grid-template-columns: 1fr;
  }

  .column-category-image{
    height: 160px;
  }

  .column-category-body{
    padding: 14px 14px 16px;
  }

  .column-category-title{
    font-size: 1.02rem;
  }

  .column-category-text{
    font-size: .92rem;
  }
}

/* それより小さい */
@media (max-width: 375px){
  .column-category-image{
    height: 148px;
  }
  .column-category-body{
    padding: 13px 13px 15px;
  }
}

/* PC */
@media (min-width: 768px){
  .column-category-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
  }
}

/* ===============================
   4) 戻る導線
================================= */

.column-back{
  margin-top: 18px;
  display: flex;
  justify-content: center;
}

.btn-back{
  min-width: 260px;
  justify-content: center;
}

/* SP */
@media (max-width: 767px){
  .btn-back{
    width: 100%;
    min-width: auto;
  }
}




/* =========================================================
  コラムカテゴリページ（COLUMN CATEGORY）
  page-hero → カテゴリナビ → 記事一覧 → 戻る導線
========================================================= */

/* ===============================
   1) ページ全体
================================= */

.page-column-category{
  background: var(--color-bg);
  padding-bottom: 72px;
}

/* ===============================
   2) ページヒーロー（既存 page-hero を流用）
   ※一覧ページで作った .page-hero / .page-hero-bg / .page-hero-inner / etc が効きます
================================= */

/* カテゴリページだけ、タイトルが長いので微調整（必要なら） */
.page-column-category .page-hero-title{
  line-height: 1.22;
}

/* SPで長いh1が詰まりすぎないように */
@media (max-width: 767px){
  .page-column-category .page-hero-title{
    font-size: 1.55rem;
  }
}

/* ===============================
   3) カテゴリ切り替えナビ
================================= */

/* 共通 */
.column-category-nav{
  position: sticky;
  top: var(--header-height-sp);
  z-index: 20;
  background: rgba(255,255,255,.78);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(31,41,55,.08);
}

.column-category-nav .container{
  padding-top: 10px;
  padding-bottom: 10px;
}

.column-category-nav ul{
  display: flex;
  gap: 10px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: x mandatory;
  padding-bottom: 2px;
}

.column-category-nav li{
  flex: 0 0 auto;
  scroll-snap-align: start;
}

.column-category-nav a{
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  padding: 10px 12px;
  border-radius: var(--radius-pill);
  border: 1px solid rgba(31,41,55,.10);
  background: rgba(255,255,255,.86);
  color: #0b2f2d;
  font-weight: 800;
  font-size: .88rem;
  transition: background .18s ease, border-color .18s ease, transform .18s ease;
}

.column-category-nav a:hover{
  border-color: rgba(15,118,110,.22);
  background: rgba(14,165,164,.08);
  transform: translateY(-1px);
}

.column-category-nav a.is-active{
  background: rgba(14,165,164,.14);
  border-color: rgba(15,118,110,.28);
  color: #0b2f2d;
  font-weight: 900;
}

/* スクロールバー控えめ */
.column-category-nav ul::-webkit-scrollbar{
  height: 6px;
}
.column-category-nav ul::-webkit-scrollbar-thumb{
  background: rgba(31,41,55,.14);
  border-radius: 999px;
}

/* PC */
@media (min-width: 768px){
  .column-category-nav{
    top: var(--header-height-pc);
  }

  .column-category-nav ul{
    justify-content: center;
    flex-wrap: wrap;
    overflow: visible;
  }

  .column-category-nav a{
    font-size: .90rem;
    padding: 10px 14px;
  }
}

/* ===============================
   4) 記事一覧（カード）
================================= */

.section-column-list{
  padding: 46px 0 66px;
}

.section-title-sm{
  margin: 0 0 14px;
  font-size: 1.15rem;
  font-weight: 900;
  color: #0b2f2d;
  letter-spacing: .02em;
}

/* グリッド */
.column-grid{
  display: grid;
  gap: 14px;
}

/* カード */
.column-card{
  background: #fff;
  border: 1px solid rgba(31,41,55,.08);
  border-radius: var(--radius-card);
  padding: 16px 16px 14px;
  box-shadow: 0 10px 22px rgba(15,23,42,.06);
  display: grid;
  gap: 8px;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.column-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 14px 28px rgba(15,23,42,.10);
  border-color: rgba(15,118,110,.18);
}

.column-tag{
  margin: 0;
  width: fit-content;
  display: inline-flex;
  align-items: center;
  padding: 6px 10px;
  border-radius: var(--radius-pill);
  background: rgba(14,165,164,.10);
  color: #0b2f2d;
  font-weight: 900;
  font-size: .80rem;
  letter-spacing: .03em;
}

.column-card h3{
  margin: 0;
  font-size: 1.06rem;
  line-height: 1.4;
  color: #0b2f2d;
  font-weight: 900;
}

.column-date{
  margin: 0;
  color: var(--color-muted);
  font-size: .86rem;
  font-weight: 700;
}

.column-text{
  margin: 0;
  color: var(--color-text);
  font-size: .94rem;
  line-height: 1.85;
}

/* ボタンリンク */
.column-link{
  margin-top: 6px;
  width: fit-content;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid rgba(15,118,110,.22);
  background: rgba(14,165,164,.08);
  color: #0b2f2d;
  font-weight: 900;
  transition: background .18s ease, transform .18s ease;
}

.column-link::after{
  content: "→";
  font-weight: 900;
}

.column-link:hover{
  background: rgba(14,165,164,.14);
  transform: translateY(-1px);
}

/* SP */
@media (max-width: 767px){
  .section-column-list{
    padding: 38px 0 60px;
  }

  .column-card{
    padding: 15px 14px 14px;
  }

  .column-card h3{
    font-size: 1.02rem;
  }

  .column-text{
    font-size: .92rem;
  }

  .column-link{
    width: 100%;
    justify-content: center;
  }
}

/* それより小さい */
@media (max-width: 375px){
  .section-title-sm{
    font-size: 1.05rem;
  }

  .column-card{
    padding: 14px 13px 13px;
  }
}

/* PC */
@media (min-width: 768px){
  .column-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
  }

  .column-card{
    padding: 18px 18px 16px;
  }
}

/* ===============================
   5) 戻る導線（一覧/トップ）
================================= */

.column-back{
  margin-top: 18px;
  display: flex;
  justify-content: center;
}

.column-back + .column-back{
  margin-top: 12px;
}

.btn-back{
  min-width: 260px;
  justify-content: center;
}

/* SP */
@media (max-width: 767px){
  .btn-back{
    width: 100%;
    min-width: auto;
  }
}



/* =========================================================
  policy.html（特商法・プライバシー・規約）
========================================================= */

/* ページ全体 */
.policy-content{
  background: var(--color-bg);
  padding: 36px 0 72px;
}

/* 中央寄せ＆読みやすい幅 */
.policy-content{
  max-width: 980px;
  margin: 0 auto;
  padding-left: 16px;
  padding-right: 16px;
}

/* セクション共通（カード化） */
.policy-content section{
  background: #fff;
  border: 1px solid rgba(31,41,55,.08);
  border-radius: var(--radius-card);
  box-shadow: 0 10px 22px rgba(15,23,42,.06);
  padding: 22px 18px;
  margin: 0 0 16px;
}

/* 見出し */
.policy-content section h2{
  margin: 0 0 12px;
  font-size: 1.15rem;
  font-weight: 900;
  color: #0b2f2d;
  letter-spacing: .02em;
  padding-left: 10px;
  border-left: 4px solid rgba(15,118,110,.55);
}

/* セクション導入文 */
.policy-content section > p{
  margin: 0 0 14px;
  color: var(--color-text);
  line-height: 1.9;
  font-size: .96rem;
}

/* DL（項目） */
.policy-content dl{
  margin: 0;
  display: grid;
  gap: 10px;
}

/* dt/dd を見やすく */
.policy-content dt{
  font-weight: 900;
  color: #0b2f2d;
  font-size: .94rem;
  margin: 0;
}

.policy-content dd{
  margin: 0;
  color: var(--color-text);
  font-size: .94rem;
  line-height: 1.9;
  padding-bottom: 10px;
  border-bottom: 1px dashed rgba(31,41,55,.14);
}

/* 最後の項目の下線は消す */
.policy-content dd:last-child{
  border-bottom: none;
  padding-bottom: 0;
}

/* dl内にulが入るケース */
.policy-content dd ul{
  margin: 8px 0 0;
  padding-left: 1.1em;
  display: grid;
  gap: 6px;
}

.policy-content dd li{
  color: var(--color-text);
  line-height: 1.75;
}

/* 3セクションへのアンカー位置（ヘッダー固定対策） */
#terms,
#privacy,
#agreement{
  scroll-margin-top: calc(var(--header-height-sp) + 14px);
}

/* PC（2カラムで読みやすく） */
@media (min-width: 768px){
  .policy-content{
    padding: 46px 0 86px;
    padding-left: 24px;
    padding-right: 24px;
  }

  .policy-content section{
    padding: 26px 24px;
    margin-bottom: 18px;
  }

  /* dt/dd を2カラムっぽく */
  .policy-content dl{
    gap: 0;
  }

  .policy-content dt{
    padding: 12px 0 10px;
    border-bottom: 1px dashed rgba(31,41,55,.14);
  }

  .policy-content dd{
    padding: 12px 0 10px;
    border-bottom: 1px dashed rgba(31,41,55,.14);
  }

  /* グリッド2列：左dt / 右dd */
  .policy-content dl{
    grid-template-columns: 220px 1fr;
    column-gap: 18px;
  }

  /* 最終行の下線を消す（2列なので少し工夫） */
  .policy-content dl dt:last-of-type{
    border-bottom: none;
    padding-bottom: 0;
  }
  .policy-content dl dd:last-of-type{
    border-bottom: none;
    padding-bottom: 0;
  }
}

/* SP微調整 */
@media (max-width: 767px){
  .policy-content{
    padding-top: 26px;
  }

  .policy-content section{
    padding: 18px 14px;
  }

  .policy-content section h2{
    font-size: 1.05rem;
  }

  .policy-content dt,
  .policy-content dd{
    font-size: .92rem;
  }
}




/* =========================================================
  コラム記事ページ（.page-column-article）
========================================================= */

/* --- ページ全体 --- */
.page-column-article{
  background: var(--color-bg);
  padding-bottom: 64px;
}

/* =========================================================
  1) ヒーロー（共通クラスを流用：.page-hero .page-hero-column）
========================================================= */

.page-hero{
  position: relative;
  overflow: hidden;
}

.page-hero-bg{
  position: absolute;
  inset: 0;
}

.page-hero-inner{
  position: relative;
  z-index: 1;
  padding: 52px 0 44px;
  color: #fff;
}

.page-hero-label{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: .78rem;
  letter-spacing: .18em;
  font-weight: 900;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.22);
  margin: 0 0 12px;
}

.page-hero-title{
  margin: 0 0 12px;
  font-weight: 900;
  line-height: 1.35;
  letter-spacing: .02em;
  font-size: 1.35rem;
  text-shadow: 0 10px 22px rgba(0,0,0,.18);
}

.page-hero-text{
  margin: 0;
  color: #555;
  line-height: 1.85;
  font-size: .96rem;
  text-shadow: 0 10px 22px rgba(0,0,0,.18);
}

@media (max-width: 767px){
  .page-hero-column .page-hero-inner{
    padding-left: 16px;
    padding-right: 16px;
  }
}

/* =========================================================
  2) パンくず（.breadcrumb）
========================================================= */

.breadcrumb{
  background: #fff;
  border-bottom: 1px solid rgba(31,41,55,.08);
}

.breadcrumb ol{
  list-style: none;
  margin: 0;
  padding: 10px 0;
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  font-size: .86rem;
  color: var(--color-muted);
}

.breadcrumb li{
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.breadcrumb li + li::before{
  content: "›";
  color: rgba(31,41,55,.35);
}

.breadcrumb a{
  color: rgba(15,118,110,.95);
  text-decoration: none;
}

.breadcrumb a:hover{
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* =========================================================
  3) 記事カード（.column-article）
========================================================= */

.column-article{
  padding: 22px 0 0;
}

.column-article .container{
  max-width: 980px;
}

/* 記事ヘッダー */
.column-article-header{
  background: #fff;
  border: 1px solid rgba(31,41,55,.08);
  border-radius: var(--radius-card);
  box-shadow: 0 10px 22px rgba(15,23,42,.06);
  padding: 18px 16px;
  margin: 0 0 14px;
}

.article-meta{
  margin: 0 0 10px;
  font-size: .86rem;
  color: var(--color-muted);
  line-height: 1.7;
}

.article-meta a{
  color: rgba(15,118,110,.95);
  text-decoration: none;
}

.article-meta a:hover{
  text-decoration: underline;
  text-underline-offset: 3px;
}

.article-lead{
  margin: 0;
  color: var(--color-text);
  line-height: 1.95;
  font-size: .98rem;
}

/* =========================================================
  4) 目次（.article-toc）
========================================================= */

.article-toc{
  background: linear-gradient(
    135deg,
    rgba(56,189,248,.08) 0%,
    rgba(255,255,255,1) 48%
  );
  border: 1px solid rgba(31,41,55,.08);
  border-radius: var(--radius-card);
  box-shadow: 0 10px 22px rgba(15,23,42,.06);
  padding: 16px 16px 14px;
  margin: 0 0 14px;
}

.article-toc-title{
  margin: 0 0 10px;
  font-size: 1rem;
  font-weight: 900;
  color: #0b2f2d;
  letter-spacing: .02em;
}

.article-toc ol{
  margin: 0;
  padding-left: 1.2em;
  display: grid;
  gap: 8px;
}

.article-toc a{
  color: var(--color-text);
  text-decoration: none;
  line-height: 1.55;
}

.article-toc a:hover{
  color: rgba(15,118,110,.95);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* =========================================================
  5) 本文（.article-body）
========================================================= */

.article-body{
  background: #fff;
  border: 1px solid rgba(31,41,55,.08);
  border-radius: var(--radius-card);
  box-shadow: 0 10px 22px rgba(15,23,42,.06);
  padding: 18px 16px;
}

/* セクション間 */
.article-body section{
  padding: 10px 0 0;
}

.article-body section + section{
  margin-top: 18px;
  border-top: 1px dashed rgba(31,41,55,.14);
  padding-top: 18px;
}

/* 見出し（本文のh2/h3） */
.article-body h2{
  margin: 0 0 10px;
  font-size: 1.12rem;
  font-weight: 900;
  color: #0b2f2d;
  line-height: 1.45;
  padding-left: 10px;
  border-left: 4px solid rgba(15,118,110,.55);
}

.article-body h3{
  margin: 14px 0 8px;
  font-size: 1.02rem;
  font-weight: 900;
  color: #0b2f2d;
  line-height: 1.45;
}

/* 段落 */
.article-body p{
  margin: 0 0 12px;
  color: var(--color-text);
  line-height: 2.0;
  font-size: .98rem;
}

.article-body p:last-child{
  margin-bottom: 0;
}

/* リスト（本文のul） */
.article-body ul{
  margin: 10px 0 12px;
  padding-left: 1.1em;
  display: grid;
  gap: 10px;
}

.article-body li{
  color: var(--color-text);
  line-height: 1.85;
}

.article-body li strong{
  color: #0b2f2d;
}

/* =========================================================
  6) CTA（.article-cta）
========================================================= */

.article-cta{
  background: rgba(14,165,164,.06);
  border: 1px solid rgba(15,118,110,.18);
  border-radius: var(--radius-card);
  padding: 18px 16px;
}

.article-cta-note{
  margin-top: 8px;
  color: var(--color-muted);
  font-size: .92rem;
}

.article-cta-buttons{
  margin: 12px 0 0;
}

/* btn-line が既にある想定：なければ最低限 */
.article-cta .btn-line{
  display: inline-flex;
  width: 100%;
  justify-content: center;
  align-items: center;
  border-radius: 999px;
  padding: 16px 18px;
  font-weight: 900;
}

/* =========================================================
  7) まとめ（.article-summary）
========================================================= */

.article-summary{
  background: #fff;
}

/* =========================================================
  8) 関連記事（.article-related）
========================================================= */

.article-related{
  margin-top: 18px;
  background: #fff;
  border: 1px solid rgba(31,41,55,.08);
  border-radius: var(--radius-card);
  box-shadow: 0 10px 22px rgba(15,23,42,.06);
  padding: 18px 16px;
}

.section-title-sm{
  margin: 0 0 12px;
  font-size: 1.05rem;
  font-weight: 900;
  color: #0b2f2d;
}

/* 関連記事カード（カテゴリページと共通化） */
.column-grid{
  display: grid;
  gap: 12px;
}

.column-card{
  background: #fff;
  border: 1px solid rgba(31,41,55,.08);
  border-radius: var(--radius-card);
  padding: 16px;
  box-shadow: 0 10px 22px rgba(15,23,42,.05);
}

.column-tag{
  margin: 0 0 8px;
  display: inline-flex;
  align-items: center;
  padding: 5px 10px;
  border-radius: 999px;
  background: rgba(14,165,164,.10);
  border: 1px solid rgba(15,118,110,.18);
  color: #0b2f2d;
  font-size: .82rem;
  font-weight: 900;
}

.column-card h3{
  margin: 0 0 8px;
  font-size: 1.02rem;
  font-weight: 900;
  color: #0b2f2d;
  line-height: 1.5;
}

.column-text{
  margin: 0 0 12px;
  color: var(--color-text);
  line-height: 1.9;
  font-size: .94rem;
}

.column-link{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 14px;
  border-radius: 12px;
  background: rgba(15,118,110,.10);
  border: 1px solid rgba(15,118,110,.22);
  color: #0b2f2d;
  font-weight: 900;
  text-decoration: none;
}

.column-link:hover{
  background: rgba(15,118,110,.14);
}

/* =========================================================
  9) 戻るボタン（.column-back）
========================================================= */

.column-back{
  margin-top: 14px;
}

.btn-outline.btn-back{
  display: inline-flex;
  width: 100%;
  justify-content: center;
  align-items: center;
  padding: 14px 16px;
  border-radius: 999px;
  border: 1px solid rgba(15,118,110,.32);
  color: rgba(15,118,110,.98);
  background: #fff;
  font-weight: 900;
  text-decoration: none;
}

.btn-outline.btn-back:hover{
  background: rgba(14,165,164,.08);
}

/* =========================================================
  10) アンカーのズレ対策（固定ヘッダー）
========================================================= */

.article-body section[id]{
  scroll-margin-top: calc(var(--header-height-sp) + 14px);
}

/* =========================================================
  SP
========================================================= */

@media (max-width: 767px){
  .page-hero-inner{
    padding: 44px 0 38px;
  }

  .page-hero-title{
    font-size: 1.15rem;
  }

  .page-hero-text{
    font-size: .92rem;
  }

  .article-body{
    padding: 16px 14px;
  }

  .column-article-header{
    padding: 16px 14px;
  }
}

/* =========================================================
  PC
========================================================= */

@media (min-width: 768px){
  .page-hero-inner{
    padding: 72px 0 62px;
  }

  .page-hero-title{
    font-size: 1.85rem;
  }

  .page-hero-text{
    font-size: 1.02rem;
  }

  .column-article{
    padding-top: 26px;
  }

  .column-article-header{
    padding: 22px 22px;
  }

  .article-toc{
    padding: 18px 22px 16px;
  }

  .article-body{
    padding: 22px 22px;
  }

  .article-related{
    padding: 22px 22px;
  }

  .column-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }

  .column-back{
    max-width: 520px;
    margin-left: auto;
    margin-right: auto;
  }
}


