@charset "UTF-8";

/* 基本設定 */
*{padding:0;margin:0;}

.wrapper{
  width: 100%;
  background:#cccccc;
  background-repeat: repeat;
  /* ここは全幅のまま */
}

.container{
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  background: #fff;          /* ★白箱を固定（重要） */
}

html, body{
  margin: 0;
  padding: 0;
}

/* =========================================================
   Header + Global Nav
   ファーストビューに合わせた上品・やさしいデザイン
========================================================= */

/* ---------- Theme Variables ---------- */

:root{
  --header-bg-pc: rgba(255, 253, 248, 0.88);
  --header-bg-sp: rgba(95, 127, 45, 0.96);

  --nav-bg: rgba(255, 253, 248, 0.94);
  --nav-bg-sp: #5f7f2d;

  --header-green: #7b9f3b;
  --header-green-dark: #5f7f2d;
  --header-green-deep: #4f6f27;
  --header-green-soft: #edf5df;

  --header-brown: #4b3b2d;
  --header-text: #3f352b;
  --header-muted: rgba(63, 53, 43, 0.64);

  --text: #333333;
  --text-invert: #ffffff;

  --line: rgba(123, 159, 59, 0.22);
  --shadow: rgba(91, 72, 45, 0.10);

  /* JSが実測して入れる（初期は仮） */
  --header-offset: 0px;
}

/* ---------- Layout Base ---------- */

.site-header{
  width: 100%;
  position: relative;
  z-index: 1000;
}

.header-inner{
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  position: relative;
}

/* スマホ固定ヘッダーの高さを本文に反映 */
@media (max-width:768px){
  body{
    padding-top: var(--header-offset);
  }
}

/* =========================================================
   Brand Area
========================================================= */

.brand{
  min-height: 84px;
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 14px 28px;
  box-sizing: border-box;
  position: relative;
  background: var(--header-bg-pc);
  border-bottom: 1px solid rgba(126, 108, 77, 0.10);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

/* 院名 */
.brand-link{
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: var(--header-brown);
  text-decoration: none;
  line-height: 1.25;
  white-space: nowrap;
}

.brand-link__text{
  display: inline-block;
  font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.8rem, 2.6vw, 2.45rem);
  font-weight: 700;
  letter-spacing: 0.12em;
}

/* 葉っぱアイコン */
.brand-link__leaf{
  position: relative;
  display: inline-block;
  width: 34px;
  height: 30px;
  flex: 0 0 auto;
}

/* 左の葉 */
.brand-link__leaf::before,
.brand-link__leaf::after{
  content: "";
  position: absolute;
  border: 2px solid var(--header-green);
  background: transparent;
}

.brand-link__leaf::before{
  left: 2px;
  top: 12px;
  width: 13px;
  height: 19px;
  border-radius: 75% 0 75% 0;
  transform: rotate(42deg);
}

.brand-link__leaf::after{
  right: 2px;
  top: 3px;
  width: 14px;
  height: 22px;
  border-radius: 75% 0 75% 0;
  transform: rotate(42deg);
}

/* =========================================================
   PC Contact Area
========================================================= */

.header-contact{
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 26px;
}

.header-tel{
  display: flex;
  flex-direction: column;
  gap: 3px;
  align-items: flex-start;
}

.header-tel__link{
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: var(--header-green-dark);
  text-decoration: none;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
  font-weight: 700;
  font-size: clamp(1.2rem, 1.7vw, 1.55rem);
  letter-spacing: 0.04em;
  line-height: 1.2;
}

.header-tel__icon{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 31px;
  height: 31px;
  border-radius: 999px;
  background: var(--header-green-soft);
  color: var(--header-green-dark);
}

.header-hours{
  color: var(--header-muted);
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
  font-size: 0.76rem;
  letter-spacing: 0.04em;
  line-height: 1.55;
}

/* CTA */
.header-cta{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 46px;
  padding: 0 30px;
  border-radius: 999px;
  border: 1px solid var(--header-green-dark);
  background: linear-gradient(135deg, var(--header-green) 0%, var(--header-green-dark) 100%);
  color: #ffffff;
  text-decoration: none;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
  font-weight: 700;
  letter-spacing: 0.08em;
  font-size: 0.94rem;
  white-space: nowrap;
  box-shadow: 0 10px 22px rgba(95, 127, 45, 0.22);
  transition:
    transform 0.22s ease,
    box-shadow 0.22s ease,
    opacity 0.22s ease;
}

.header-cta:hover{
  opacity: 0.92;
  transform: translateY(-1px);
  box-shadow: 0 14px 26px rgba(95, 127, 45, 0.28);
}

/* 小さな封筒風アイコン */
.header-cta__icon{
  position: relative;
  display: inline-block;
  width: 17px;
  height: 13px;
  border: 2px solid currentColor;
  border-radius: 3px;
}

.header-cta__icon::before,
.header-cta__icon::after{
  content: "";
  position: absolute;
  top: 2px;
  width: 9px;
  height: 2px;
  background: currentColor;
}

.header-cta__icon::before{
  left: 1px;
  transform: rotate(35deg);
  transform-origin: left center;
}

.header-cta__icon::after{
  right: 1px;
  transform: rotate(-35deg);
  transform-origin: right center;
}

/* =========================================================
   Global Nav PC
========================================================= */

.global-nav{
  background: var(--nav-bg);
  border-bottom: 1px solid rgba(126, 108, 77, 0.12);
  box-shadow: 0 10px 24px rgba(91, 72, 45, 0.06);
}

.nav-list{
  list-style: none;
  margin: 0;
  padding: 0 24px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 6px 28px;
}

.nav-item{
  position: relative;
  flex: 0 0 auto;
  text-align: center;
  border-right: none;
}

.nav-item a{
  position: relative;
  display: block;
  padding: 15px 4px 16px;
  color: var(--header-text);
  text-decoration: none;
  letter-spacing: 0.08em;
  font-size: 0.92rem;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
  font-weight: 600;
  line-height: 1.4;
  transition:
    color 0.22s ease,
    opacity 0.22s ease;
}

/* 既存の音符アイコン対策 */
.nav-item a::before{
  content: none !important;
  display: none !important;
}

/* 下線 */
.nav-item > a::after{
  content: "";
  position: absolute;
  left: 50%;
  bottom: 8px;
  width: 0;
  height: 2px;
  border-radius: 999px;
  background: var(--header-green-dark);
  transform: translateX(-50%);
  transition: width 0.24s ease;
}

.nav-item > a:hover,
.nav-item--current > a{
  color: var(--header-green-dark);
}

.nav-item > a:hover::after,
.nav-item--current > a::after{
  width: 70%;
}

/* PCでは予約リンクを少し強調しすぎない */
.nav-item--cta a{
  color: var(--header-green-dark);
  font-weight: 700;
}

/* =========================================================
   SNS（必要な場合のみ）
========================================================= */

.nav-sns{
  display: flex;
  gap: 18px;
  justify-content: flex-end;
  padding: 10px 18px 14px;
}

.nav-sns-link{
  color: var(--text-invert);
  text-decoration: none;
  font-size: 13px;
  letter-spacing: 1px;
  font-family: "Noto Sans JP","Yu Gothic","メイリオ",sans-serif;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.nav-sns-link:hover{
  opacity: .8;
}

.nav-sns-link--blog::before,
.nav-sns-link--insta::before{
  content: "";
  width: 18px;
  height: 18px;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  filter: brightness(0) invert(1);
}

.nav-sns-link--blog::before{
  background-image: url("../images/blog-aicon.png");
}

.nav-sns-link--insta::before{
  background-image: url("../images/insta.png");
}

/* =========================================================
   Hamburger Button
========================================================= */

.nav-button{
  display: none;
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border: none;
  background: transparent;
  cursor: pointer;
  border-radius: 10px;
  align-items: center;
  justify-content: center;
}

.nav-button:focus-visible{
  outline: 2px solid rgba(255, 255, 255, 0.75);
  outline-offset: 2px;
}

.nav-icon{
  position: relative;
  display: block;
  width: 26px;
  height: 2px;
  background: #ffffff;
  border-radius: 1px;
}

.nav-icon::before,
.nav-icon::after{
  content: "";
  position: absolute;
  left: 0;
  width: 26px;
  height: 2px;
  background: #ffffff;
  border-radius: 1px;
  transition:
    transform 0.25s ease,
    top 0.25s ease,
    background-color 0.25s ease;
}

.nav-icon::before{
  top: -8px;
}

.nav-icon::after{
  top: 8px;
}

.site-header.nav-open .nav-icon{
  background: transparent;
}

.site-header.nav-open .nav-icon::before{
  top: 0;
  transform: rotate(45deg);
}

.site-header.nav-open .nav-icon::after{
  top: 0;
  transform: rotate(-45deg);
}

/* =========================================================
   Overlay
========================================================= */

.nav-overlay{
  position: fixed;
  inset: 0;
  background: #000000;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.45s ease;
  z-index: 1090;
}

@media (min-width:769px){
  .nav-pc-hide{
    display: none !important;
  }
}

/* =========================================================
   SP Header / Drawer
========================================================= */

@media (max-width:768px){

  .site-header{
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1100;
  }

  .header-inner{
    max-width: none;
  }

  .brand{
    min-height: 56px;
    padding: 0 58px 0 16px;
    background: linear-gradient(135deg, #6f9134 0%, #5f7f2d 100%);
    box-shadow: 0 3px 12px rgba(63, 53, 43, 0.14);
    border-bottom: none;
  }

  .brand-link{
    color: #ffffff;
    gap: 8px;
    max-width: 76vw;
    overflow: hidden;
  }

  .brand-link__text{
    font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
    font-size: 1.18rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .brand-link__leaf{
    width: 25px;
    height: 23px;
  }

  .brand-link__leaf::before,
  .brand-link__leaf::after{
    border-color: rgba(255, 255, 255, 0.9);
    border-width: 1.7px;
  }

  .brand-link__leaf::before{
    width: 10px;
    height: 15px;
    top: 8px;
  }

  .brand-link__leaf::after{
    width: 11px;
    height: 17px;
    top: 2px;
  }

  .header-contact{
    display: none;
  }

  .nav-button{
    display: inline-flex;
  }

  /* ドロワー */
  .global-nav{
    position: fixed;
    top: 0;
    left: 0;
    width: min(90vw, 330px);
    height: 100dvh;
    padding: 20px 0 24px 5%;
    background: var(--nav-bg-sp);
    transform: translateX(-105%);
    transition: transform 0.45s ease;
    z-index: 1101;
    box-shadow: 6px 0 25px rgba(0,0,0,0.15);
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    pointer-events: none;
    border-bottom: none;
  }

  .nav-list{
    display: block;
    padding: 0;
  }

  .nav-item{
    width: 95%;
    text-align: left;
    border-bottom: 1px dashed rgba(255, 255, 255, 0.38);
  }

  .nav-item a{
    display: block;
    padding: 13px 42px 13px 10%;
    color: #ffffff;
    font-size: 15px;
    font-weight: 500;
    letter-spacing: 0.08em;
  }

  .nav-item > a::after{
    content: "";
    position: absolute;
    top: 50%;
    right: 18px;
    left: auto;
    bottom: auto;
    width: 0;
    height: 0;
    border-top: 5px solid transparent;
    border-bottom: 5px solid transparent;
    border-left: 6px solid rgba(255, 255, 255, 0.82);
    background: transparent;
    border-radius: 0;
    transform: translateY(-50%);
  }

  .nav-item > a:hover::after,
  .nav-item--current > a::after{
    width: 0;
  }

  .nav-item a:hover{
    opacity: 0.84;
  }

  .nav-item--current > a{
    color: #ffffff;
  }

  .nav-sns{
    display: block;
    padding: 18px 0 0;
  }

  .nav-sns-link{
    display: flex;
    padding: 10px 0;
    font-size: 15px;
  }

  .site-header.nav-open .global-nav{
    transform: translateX(0%);
    pointer-events: auto;
  }

  .site-header.nav-open .nav-overlay{
    opacity: 0.35;
    pointer-events: auto;
  }

  .global-nav.is-fully-closed{
    visibility: hidden;
  }
}

/* スクロールロック */
html.is-nav-open,
body.is-nav-open{
  overflow: hidden;
}

/* =========================================================
   Submenu
========================================================= */

.nav-item--has-sub{
  position: relative;
}

.nav-parent-link{
  position: relative;
}

/* PCサブメニュー矢印 */
.nav-parent-link::after{
  content: "";
  position: absolute;
  top: 50%;
  right: -16px;
  width: 7px;
  height: 7px;
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  transform: translateY(-65%) rotate(45deg);
  transition: transform 0.3s ease;
}

.nav-item--has-sub.is-open .nav-parent-link::after{
  transform: translateY(-20%) rotate(-135deg);
}

.nav-submenu{
  list-style: none;
  margin: 0;
  padding: 0;
  background: var(--header-bg-pc);
  opacity: 0;
  visibility: hidden;
  overflow: hidden;
  transition:
    opacity 0.25s ease,
    visibility 0.25s ease,
    transform 0.25s ease;
}

/* ---------- PC：サブメニュー ---------- */

@media (min-width:769px){

  .nav-submenu{
    position: absolute;
    top: 100%;
    left: 50%;
    z-index: 50;
    width: 190px;
    padding: 8px;
    border: 1px solid rgba(126, 108, 77, 0.12);
    border-radius: 16px;
    background: rgba(255, 253, 248, 0.98);
    box-shadow: 0 16px 32px rgba(91, 72, 45, 0.12);
    transform: translate(-50%, -8px);
    pointer-events: none;
  }

  .nav-item--has-sub.is-open .nav-submenu{
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, 0);
    pointer-events: auto;
  }

  .nav-submenu__item a{
    display: block;
    padding: 11px 12px;
    border-radius: 10px;
    color: var(--header-text);
    background: transparent;
    text-decoration: none;
    font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
    font-size: 0.88rem;
    letter-spacing: 0.06em;
    text-align: left;
  }

  .nav-submenu__item a::after{
    display: none;
  }

  .nav-submenu__item a:hover{
    color: var(--header-green-dark);
    background: var(--header-green-soft);
    opacity: 1;
  }
}

/* ---------- SP：親を隠して子メニューを通常表示 ---------- */

@media (max-width:768px){

  .nav-item--has-sub > .nav-parent-link{
    display: none;
  }

  .nav-item--has-sub .nav-submenu{
    max-height: none;
    opacity: 1;
    visibility: visible;
    transform: none;
    overflow: visible;
    background: transparent;
  }

  .nav-submenu__item a{
    display: block;
    padding: 13px 42px 13px 10%;
    color: #ffffff;
    background: transparent;
    text-decoration: none;
    font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
    font-size: 15px;
    letter-spacing: 0.08em;
    border-top: none;
    border-bottom: 1px dashed rgba(255,255,255,.38);
  }

  .nav-submenu__item a:hover{
    opacity: 0.84;
  }

  .nav-submenu__item a::after{
    content: "";
    position: absolute;
    top: 50%;
    right: 18px;
    left: auto;
    bottom: auto;
    width: 0;
    height: 0;
    border-top: 5px solid transparent;
    border-bottom: 5px solid transparent;
    border-left: 6px solid rgba(255,255,255,.82);
    transform: translateY(-50%);
  }
}

/* ---------- Reduced Motion ---------- */

@media (prefers-reduced-motion: reduce){
  .global-nav,
  .nav-overlay,
  .header-cta,
  .nav-item a,
  .nav-submenu{
    transition: none;
  }
}

/* ===============================
   PCナビ：施術についての下線崩れ修正
   サブメニュー用の斜め矢印をやめて、他メニューと同じ下線に統一
=============================== */

@media (min-width: 769px) {

  .nav-parent-link::after {
    content: "";
    position: absolute;
    left: 50%;
    right: auto;
    top: auto;
    bottom: 8px;
    width: 0;
    height: 2px;
    border: none;
    border-radius: 999px;
    background: var(--header-green-dark);
    transform: translateX(-50%);
    transition: width 0.24s ease;
  }

  .nav-parent-link:hover::after,
  .nav-item--has-sub.is-open > .nav-parent-link::after {
    width: 70%;
    transform: translateX(-50%);
  }

}


























































/* =========================================
   見出しコンポーネント
   ========================================= */

/* ===== ベース ===== */
:root{
  --section-heading-margin-pc: 50px auto 30px;
  --section-heading-margin-sp: 30px;
}

.section-heading{
  width: 100%;
  margin: var(--section-heading-margin-pc) auto;
  box-sizing: border-box;
}

.section-heading__content{
  width: 100%;
  margin: 0 auto;
  box-sizing: border-box;
}

/* ===== 日本語見出し ===== */
.section-heading__main{
  margin: 0;
  text-align: center;
  line-height: 1.6;
  letter-spacing: 2px;
  color: #333333;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
  font-weight: 500;
  font-size: 26px;
}

/* H1用の上段小テキスト */
.section-heading__sub{
  display: inline-block;
  margin-bottom: 4px;
  font-size: 14px;
  letter-spacing: 3px;
  font-weight: 500;
}

/* ===== 下線 ===== */
.title-sen1{
  width: 40%;
  max-width: 150px;
  height: 3px;
  margin: 5px auto;
  background: #c6d166;
  transform-origin: center;
  transform: scaleX(0);
  transition: transform 1.3s ease-out;
}

/* アニメーションON */
.title-sen1.title-sen1-active{
  transform: scaleX(1);
}

/* ===== 英語見出し ===== */
.section-heading__en{
  margin: 0;
  text-align: center;
  font-size: 17px;
  letter-spacing: 2px;
  color: #555555;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
  font-weight: 500;
}

/* =========================================
   SP（スマホ）
   ========================================= */
@media (max-width: 767px){
  .section-heading{
    margin: var(--section-heading-margin-sp) auto;
  }

  .section-heading__main{
    font-size: 21px;
    letter-spacing: 1.5px;
  }

  .section-heading__sub{
    font-size: 14px;
    letter-spacing: 2px;
  }

  .title-sen1{
    width: 40%;
    margin: 5px auto;
  }

  .section-heading__en{
    font-size: 15px;
    letter-spacing: 1.5px;
  }

  /* トップページは少し詰める */
  .top-page{
    --section-heading-margin-sp: 20px;
  }

  /* 下層ページは少しゆとりを残す */
  .sub-page{
    --section-heading-margin-sp: 40px;
  }
}



/* =========================================================
  姿勢矯正ファーストビュー
========================================================= */

.posture-fv,
.posture-fv *,
.posture-fv *::before,
.posture-fv *::after {
  box-sizing: border-box;
}

.posture-fv {
  --pfv-green: #7b9f3b;
  --pfv-green-dark: #5f7f2d;
  --pfv-green-deep: #4f6f27;
  --pfv-green-soft: #edf5df;
  --pfv-brown: #4b3b2d;
  --pfv-text: #55483c;
  --pfv-muted: #7b7268;
  --pfv-cream: #fffdf8;
  --pfv-beige: #f7f1e6;
  --pfv-border: rgba(126, 108, 77, 0.16);
  --pfv-shadow-soft: 0 10px 28px rgba(91, 72, 45, 0.1);

  position: relative;
  overflow: hidden;
  color: var(--pfv-text);
  background:
    radial-gradient(circle at 15% 20%, rgba(255, 255, 255, 0.95) 0%, rgba(255, 255, 255, 0.78) 32%, rgba(247, 241, 230, 0.56) 100%),
    linear-gradient(135deg, #fffdf8 0%, #f8f1e6 100%);
  isolation: isolate;
}

.posture-fv::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(
      90deg,
      rgba(255, 253, 248, 0.98) 0%,
      rgba(255, 253, 248, 0.95) 28%,
      rgba(255, 253, 248, 0.68) 47%,
      rgba(255, 253, 248, 0.08) 72%,
      rgba(255, 253, 248, 0) 100%
    );
}

.posture-fv::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  z-index: 2;
  height: clamp(54px, 8vw, 110px);
  pointer-events: none;
  background:
    radial-gradient(120% 88px at 18% 100%, #eef5df 0%, #eef5df 48%, transparent 49%),
    radial-gradient(120% 92px at 78% 100%, #f7f1e6 0%, #f7f1e6 52%, transparent 53%);
  opacity: 0.95;
}

/* =========================================================
  画像
========================================================= */

.posture-fv__media {
  position: relative;
  z-index: 0;
  width: 100%;
}

.posture-fv__img {
  display: block;
  width: 100%;
  height: auto;
}

.posture-fv__img--pc {
  display: none;
}

.posture-fv__img--sp {
  display: block;
}

/* =========================================================
  内側レイアウト
========================================================= */

.posture-fv__inner {
  position: relative;
  z-index: 3;
  width: min(100% - 36px, 1200px);
  margin: 0 auto;
  padding: 0 0 26px;
}

.posture-fv__content {
  position: relative;
  margin-top: -32px;
  padding: 20px 20px 22px;
  border: 1px solid rgba(255, 255, 255, 0.78);
  border-radius: 26px;
  background: rgba(255, 253, 248, 0.92);
  box-shadow: var(--pfv-shadow-soft);
  backdrop-filter: blur(8px);
}

/* =========================================================
  小見出し
========================================================= */

.posture-fv__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 14px;
  padding: 8px 13px;
  border-radius: 999px;
  color: var(--pfv-green-dark);
  background: rgba(237, 245, 223, 0.92);
  font-size: clamp(0.82rem, 2.7vw, 0.95rem);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.04em;
}

.posture-fv__leaf {
  position: relative;
  display: inline-block;
  flex: 0 0 auto;
  width: 15px;
  height: 20px;
  border: 2px solid currentColor;
  border-radius: 70% 0 70% 0;
  transform: rotate(38deg);
}

.posture-fv__leaf::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 2px;
  width: 1.5px;
  height: 14px;
  border-radius: 999px;
  background: currentColor;
  transform: translateX(-50%);
  opacity: 0.85;
}

/* =========================================================
  見出し
========================================================= */

.posture-fv__heading {
  position: relative;
  width: fit-content;
  max-width: 100%;
}

.posture-fv__title {
  margin: 0;
  color: var(--pfv-brown);
  font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: 0.05em;
}

.posture-fv__title-line,
.posture-fv__title-clinic {
  display: block;
}

.posture-fv__title-green {
  color: var(--pfv-green-dark);
  font-size: clamp(2.15rem, 11.5vw, 3.35rem);
}

.posture-fv__title-small {
  display: inline-block;
  margin-left: 0.12em;
  color: var(--pfv-brown);
  font-size: clamp(1.25rem, 6.5vw, 2rem);
  vertical-align: 0.08em;
}

.posture-fv__title-clinic {
  margin-top: 0.08em;
  font-size: clamp(2.05rem, 11vw, 3.25rem);
}

/* =========================================================
  テキスト
========================================================= */

.posture-fv__lead {
  margin: 18px 0 0;
  color: var(--pfv-brown);
  font-size: clamp(1.05rem, 4.2vw, 1.42rem);
  font-weight: 700;
  line-height: 1.8;
  letter-spacing: 0.04em;
}

.posture-fv__text {
  margin: 12px 0 0;
  color: var(--pfv-muted);
  font-size: clamp(0.9rem, 3.4vw, 1rem);
  font-weight: 500;
  line-height: 1.9;
}

/* =========================================================
  ボタン
========================================================= */

.posture-fv__buttons {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin-top: 22px;
}

.posture-fv__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 54px;
  padding: 14px 18px;
  border-radius: 999px;
  font-size: 0.96rem;
  font-weight: 700;
  line-height: 1.35;
  text-decoration: none;
  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease,
    background-color 0.25s ease,
    color 0.25s ease;
}

.posture-fv__btn--primary {
  border: 1px solid var(--pfv-green-dark);
  color: #fff;
  background: linear-gradient(135deg, var(--pfv-green) 0%, var(--pfv-green-dark) 100%);
  box-shadow: 0 14px 26px rgba(95, 127, 45, 0.25);
}

.posture-fv__btn--outline {
  border: 1px solid rgba(123, 159, 59, 0.34);
  color: var(--pfv-green-dark);
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 10px 22px rgba(91, 72, 45, 0.08);
}

.posture-fv__btn:hover {
  transform: translateY(-2px);
}

.posture-fv__btn--primary:hover {
  box-shadow: 0 18px 30px rgba(95, 127, 45, 0.3);
}

.posture-fv__btn--outline:hover {
  background: var(--pfv-green-soft);
}

.posture-fv__btn-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 21px;
  height: 21px;
}

.posture-fv__btn-icon img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: brightness(0) invert(1);
}

.posture-fv__btn-leaf {
  position: relative;
  display: inline-block;
  flex: 0 0 auto;
  width: 14px;
  height: 19px;
  border: 2px solid currentColor;
  border-radius: 70% 0 70% 0;
  transform: rotate(38deg);
}

.posture-fv__btn-leaf::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 2px;
  width: 1.4px;
  height: 13px;
  border-radius: 999px;
  background: currentColor;
  transform: translateX(-50%);
  opacity: 0.85;
}

.posture-fv__btn-arrow {
  position: relative;
  display: inline-block;
  flex: 0 0 auto;
  width: 9px;
  height: 9px;
  margin-left: 2px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
}

/* =========================================================
  整骨院の特徴
========================================================= */

.posture-fv__features {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  margin: 14px 0 0;
  padding: 0 0 4px;
  list-style: none;
}

.posture-fv-feature {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 78px;
  padding: 13px 14px;
  border: 1px solid rgba(126, 108, 77, 0.13);
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 10px 24px rgba(91, 72, 45, 0.08);
}

.posture-fv-feature__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
}

.posture-fv-feature__icon img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.posture-fv-feature__body {
  display: block;
}

.posture-fv-feature__title {
  display: block;
  color: var(--pfv-brown);
  font-size: 0.98rem;
  font-weight: 800;
  line-height: 1.4;
  letter-spacing: 0.04em;
}

.posture-fv-feature__text {
  display: block;
  margin-top: 3px;
  color: var(--pfv-muted);
  font-size: 0.82rem;
  font-weight: 500;
  line-height: 1.55;
}

/* =========================================================
  タブレット以上
========================================================= */

@media (min-width: 600px) {
  .posture-fv__inner {
    width: min(100% - 48px, 1200px);
  }

  .posture-fv__content {
    padding: 28px 32px 28px;
  }

  .posture-fv__buttons {
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.9fr);
    max-width: 620px;
  }

  .posture-fv__features {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* =========================================================
  PC表示
========================================================= */

@media (min-width: 960px) {
  .posture-fv {
    min-height: 680px;
  }

  .posture-fv::before {
    background:
      linear-gradient(
        90deg,
        rgba(255, 253, 248, 0.99) 0%,
        rgba(255, 253, 248, 0.97) 29%,
        rgba(255, 253, 248, 0.78) 45%,
        rgba(255, 253, 248, 0.16) 66%,
        rgba(255, 253, 248, 0) 100%
      );
  }

  .posture-fv__media {
    position: absolute;
    inset: 0;
    z-index: 0;
    height: 100%;
  }

  .posture-fv__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .posture-fv__img--pc {
    display: block;
  }

  .posture-fv__img--sp {
    display: none;
  }

  .posture-fv__inner {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 680px;
    padding: clamp(42px, 5vw, 70px) 0 clamp(52px, 6vw, 82px);
  }

  .posture-fv__content {
    width: min(100%, 610px);
    margin-top: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
  }

  .posture-fv__eyebrow {
    margin-bottom: 18px;
    padding: 0 0 8px;
    border-radius: 0;
    background: transparent;
    border-bottom: 2px dotted rgba(123, 159, 59, 0.5);
    font-size: 1rem;
  }

  .posture-fv__title-green {
    font-size: clamp(3.35rem, 5.2vw, 5.4rem);
  }

  .posture-fv__title-small {
    font-size: clamp(1.85rem, 2.7vw, 2.9rem);
  }

  .posture-fv__title-clinic {
    font-size: clamp(3.2rem, 5vw, 5.1rem);
  }

  .posture-fv__lead {
    margin-top: 22px;
    font-size: clamp(1.35rem, 1.65vw, 1.7rem);
  }

  .posture-fv__text {
    margin-top: 12px;
    font-size: 1rem;
  }

  .posture-fv__buttons {
    max-width: 560px;
    margin-top: 24px;
    gap: 14px;
  }

  .posture-fv__btn {
    min-height: 58px;
    padding: 15px 22px;
    font-size: 1rem;
  }

  .posture-fv__features {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    width: min(100%, 880px);
    margin-top: 28px;
    padding-bottom: 0;
  }

  .posture-fv-feature {
    align-items: center;
    min-height: 96px;
    padding: 14px 14px;
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.9);
  }

  .posture-fv-feature__icon {
    flex-basis: 46px;
    width: 46px;
    height: 46px;
  }

  .posture-fv-feature__title {
    font-size: 0.94rem;
  }

  .posture-fv-feature__text {
    font-size: 0.76rem;
  }
}

/* =========================================================
  大きめPC
========================================================= */

@media (min-width: 1280px) {
  .posture-fv {
    min-height: 720px;
  }

  .posture-fv__inner {
    min-height: 720px;
  }

  .posture-fv__content {
    width: min(100%, 650px);
  }

  .posture-fv__features {
    width: min(100%, 930px);
  }

  .posture-fv-feature__icon {
    flex-basis: 50px;
    width: 50px;
    height: 50px;
  }
}

/* =========================================================
  スマホ表示
========================================================= */

@media (max-width: 599px) {
  .posture-fv::before {
    background:
      linear-gradient(
        180deg,
        rgba(255, 253, 248, 0) 0%,
        rgba(255, 253, 248, 0) 55%,
        rgba(255, 253, 248, 0.45) 78%,
        rgba(255, 253, 248, 0.9) 100%
      );
  }

  .posture-fv::after {
    height: 42px;
    opacity: 0.72;
  }

  .posture-fv__media {
    width: 100%;
    height: auto;
    overflow: hidden;
    background: var(--pfv-beige);
  }

  .posture-fv__img--pc {
    display: none;
  }

  .posture-fv__img--sp {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
    object-position: center center;
  }

  .posture-fv__inner {
    width: min(100% - 32px, 1200px);
    padding-bottom: 24px;
  }

  /* 写真に文字エリアが重ならないようにする */
  .posture-fv__content {
    margin-top: 0;
    padding: 20px 18px 22px;
    border-radius: 0 0 26px 26px;
  }

  .posture-fv__eyebrow {
    margin-bottom: 12px;
    font-size: 0.82rem;
  }

  /* スマホ時のタイトルサイズを調整 */
  .posture-fv__title {
    line-height: 1.14;
    letter-spacing: 0.04em;
  }

.posture-fv__title-green {
  font-size: clamp(2.7rem, 10.5vw, 3.25rem);
}

.posture-fv__title-small {
  margin-left: 0.08em;
  font-size: clamp(1.1rem, 4.8vw, 1.35rem);
}

.posture-fv__title-clinic {
  margin-top: 0.12em;
  font-size: clamp(2.6rem, 10.2vw, 3.15rem);
}

  .posture-fv__lead {
    margin-top: 16px;
    font-size: clamp(0.98rem, 4.1vw, 1.12rem);
    line-height: 1.75;
  }

  .posture-fv__text {
    margin-top: 10px;
    font-size: 0.9rem;
    line-height: 1.85;
  }

  .posture-fv__buttons {
    width: 100%;
    margin-top: 20px;
    gap: 12px;
  }

  .posture-fv__btn {
    width: 100%;
    min-height: 54px;
    font-size: 0.95rem;
  }

  .posture-fv__features {
    margin-top: 12px;
  }

  .posture-fv-feature {
    min-height: 74px;
    padding-top: 12px;
    padding-bottom: 12px;
  }

  .posture-fv-feature__icon {
    flex-basis: 42px;
    width: 42px;
    height: 42px;
  }
}

/* =========================================================
  小さめスマホ
========================================================= */

@media (max-width: 374px) {
  .posture-fv__inner {
    width: min(100% - 28px, 1200px);
  }

  .posture-fv__content {
    padding: 18px 16px 22px;
  }

  .posture-fv__eyebrow {
    font-size: 0.78rem;
  }

  .posture-fv__title-green {
    font-size: 2.05rem;
  }

  .posture-fv__title-small {
    font-size: 1.05rem;
  }

  .posture-fv__title-clinic {
    font-size: 1.95rem;
  }

  .posture-fv__lead {
    font-size: 0.96rem;
  }

  .posture-fv__text {
    font-size: 0.86rem;
  }

  .posture-fv-feature__title {
    font-size: 0.94rem;
  }

  .posture-fv-feature__text {
    font-size: 0.78rem;
  }
}

/* =========================================================
  アニメーション 控えめ
========================================================= */

@media (prefers-reduced-motion: no-preference) {
  .posture-fv__content {
    animation: postureFvFadeUp 0.8s ease both;
  }

  .posture-fv__features {
    animation: postureFvFadeUp 0.8s ease 0.18s both;
  }
}

@keyframes postureFvFadeUp {
  from {
    opacity: 0;
    transform: translateY(18px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* ===============================
   アンカーリンク位置調整
   固定ヘッダーに見出しが隠れないようにする
=============================== */

#sejutsu {
  scroll-margin-top: 24px;
}

@media (max-width: 768px) {
  #sejutsu {
    scroll-margin-top: calc(var(--header-offset, 56px) + 16px);
  }
}



















/* =========================================
   トップページ 紹介（レスポンシブ統一版）
   ========================================= */

.top-shoukai{
  width: 100%;
  margin-bottom: 100px;
  box-sizing: border-box;
}

.top-shoukai-inner{
  width: 100%;
  max-width: 700px;        /* ← PC横幅 */
  margin: 0 auto;          /* 中央寄せ */
  padding: 0 20px;         /* ← SP左右余白 */
  box-sizing: border-box;
}

.top-shoukai-inner > p{
  font-size: 16px;
  color: #404040;
  letter-spacing: 1px;
  line-height: 180%;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
  font-weight: 400;
}

/* =========================================
   SP微調整
   ========================================= */

@media (max-width: 767px){

  .top-shoukai{
    margin-bottom: 80px;
  }

  .top-shoukai-inner{
    padding: 0 18px;   /* 少しだけ余白を調整 */
  }

  .top-shoukai-inner > p{
    font-size: 16px;
    line-height: 185%;
  }
}


/* =========================================================
   Services 完全版（タイトル強調＋下線＋ボタン下固定）
   ========================================================= */

.services{
  width: 100%;
  max-width: 1180px;
  margin: 40px auto 100px;
  padding: 0 20px;
  font-family: "Noto Sans JP","Yu Gothic","メイリオ",sans-serif;
}

.services__grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}

/* ---------- Card ---------- */
.service-card{
  background: #fff;
  border: 1px solid rgba(92,130,26,0.14);
  border-radius: 14px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: 0 10px 22px rgba(0,0,0,0.08);
  transition: transform .25s ease, box-shadow .25s ease;
}

@media (hover:hover){
  .service-card:hover{
    transform: none;
    box-shadow: 0 16px 30px rgba(0,0,0,0.12);
  }
}

/* ---------- Image ---------- */
.service-card__media{
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
}

.service-card__media img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* ---------- Title ---------- */
.service-card__title{
  position: relative;
  margin: 18px 18px 10px;
  font-size: 22px;              /* PC大きめ */
  font-weight: 700;
  color: #5c821a;
  letter-spacing: .03em;
  padding-bottom: 10px;
}

/* 下線 */
.service-card__title::after{
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 50px;
  height: 2px;
  background: #c6d166;
}

/* ---------- Text ---------- */
.service-card__text{
  flex: 1;
  margin: 0 18px 20px;
  font-size: 15px;
  line-height: 1.9;
  color: #374151;
}

/* ---------- Button ---------- */

.service-card__btn{
  display:block;
  width:92%;
  max-width:260px;
  margin:0 auto 22px;
  padding:8px 14px;
  text-align:center;
  border-radius:999px;
  text-decoration:none;
  font-weight:700;
  font-size:14px;
  background:#5c821a;
  color:#fff;
  box-sizing:border-box;
  transition:transform .2s ease, box-shadow .2s ease;
}

/* 下に固定 */
.service-card__btn{
  margin-top:auto;
}

@media (hover:hover){

  .service-card__btn:hover{
    transform:translateY(-3px);
    box-shadow:0 8px 18px rgba(0,0,0,0.18);
  }

}


/* ===== SP調整 ===== */

@media (max-width:640px){

  .service-card__btn{
    width:92%;
    max-width:260px;
    margin:0 auto 22px;
  }

}

/* =========================================================
   Responsive
   ========================================================= */

@media (max-width: 1024px){
  .services__grid{
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px){
  .services{
    padding: 0 14px;
  }

  .services__grid{
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .service-card__title{
    font-size: 20px;  /* SP */
  }

  .service-card__text{
    font-size: 16px;
  }
}

/* ===============================
   スマホではみ出し完全防止
   =============================== */
@media (max-width: 640px){

  .services{
    padding: 0 14px;
  }

  .services__grid{
    grid-template-columns: 1fr;
  }

  .service-card{
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }

  .service-card__media,
  .service-card__title,
  .service-card__text,
  .service-card__btn{
    max-width: 100%;
    box-sizing: border-box;
  }



}


/* ==============================
Profile（サイト全体と統一版・整理済み）
- 色：--nav-bg / --text を基準に統一
- 本文：ゴシック統一
- 画像：CSSでサイズ固定（SP中央 / PC左）
============================== */

.profile{
  --profile-accent: var(--nav-bg, #5c821a);
  --profile-text: var(--text, #333333);
  --profile-text-soft: rgba(51,51,51,.78);
  --profile-border: rgba(92,130,26,0.18);
  --profile-th-bg: rgba(198,209,102,0.18);
  --profile-radius: 14px;

  width: 100%;
  margin: 0 auto 80px;
}

.profile__inner{
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
  padding: 0 16px;
  box-sizing: border-box;
}

.profile__grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 30px;
  align-items: start;
}

/* 左：写真（SPは中央） */
.profile__media{
  margin: 0;
  text-align: center;
}

.profile__image{
  width: 320px;
  height: 426px;
  object-fit: cover;
  display: block;
  margin: 0 auto;
  border-radius: var(--profile-radius);
}

/* 右：情報 */
.profile__content{
  width: 100%;
}

.profile__header{
  margin-bottom: 18px;
}

.profile__name{
  margin: 0 0 6px;
  font-size: 20px;
  line-height: 1.7;
  color: var(--profile-text);
  letter-spacing: 1px;
  font-family: "Noto Sans JP","Yu Gothic","メイリオ",sans-serif;
  font-weight: 600;
}

.profile__name-en{
  font-size: 0.9em;
  letter-spacing: 0.5px;
}

.profile__divider{
  width: 100%;
  margin-top: 8px;
}

/* 本文 */
.profile__body{
  width: 100%;
}

.profile__section-title{
  margin: 0 0 12px;
  padding-left: 12px;
  border-left: 4px solid var(--profile-accent);

  font-size: 18px;
  line-height: 1.6;
  color: var(--profile-text);
  letter-spacing: 1px;

  font-family: "Noto Sans JP","Yu Gothic","メイリオ",sans-serif;
  font-weight: 600;
}

.profile__body .profile__section-title:not(:first-child){
  margin-top: 28px;
}

.profile__body p{
  margin: 0 0 14px;
  font-size: 16px;
  line-height: 1.9;
  color: var(--profile-text-soft);
  letter-spacing: 0.04em;
  font-family: "Noto Sans JP","Yu Gothic","メイリオ",sans-serif;
  font-weight: 400;
}

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

/* ==============================
PC（2カラム・左寄せ・間隔拡大）
============================== */
@media (min-width: 768px){

  .profile__inner{
    padding: 0 20px;
  }

  .profile__grid{
    grid-template-columns: 320px 1fr;
    gap: 48px;
  }

  .profile__media{
    text-align: left;
  }

  .profile__image{
    margin: 0;
  }
}

/* ==============================
小さいスマホ調整
============================== */
@media (max-width: 420px){

  .profile__image{
    width: 260px;
    height: 346px;
  }

  .profile__section-title{
    font-size: 17px;
  }

  .profile__body p{
    font-size: 16px;
    line-height: 1.95;
  }
}
/* =========================
共通設定
========================= */
:root{
  --radius:14px;
  --accent:var(--nav-bg,#5c821a);
  --text-main:var(--text,#333333);
  --text-soft:rgba(51,51,51,.78);
  --border-main:rgba(241,102,130,0.18);
}

/* =========================================
   強みパート
   ========================================= */

.strength-section{
  margin: 0 auto 80px;
  padding: 0 16px;
}

.strength-section__inner{
  width: min(100%, 1080px);
  margin: 0 auto;
}

.strength-section__heading{
  margin-bottom: 28px;
}

.strength-section__intro{
  width: min(100%, 850px);
  margin: 0 auto 34px;
}

.strength-section__intro p{
  margin: 0;
  font-size: 16px;
  line-height: 2;
  color: #444;
  text-align: center;
}

.strength-grid{
  width: min(100%, 980px);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}

.strength-card{
  position: relative;
  padding: 30px 24px 26px;
  background: #ffffff;
  border: 1px solid rgba(92,130,26,0.18);
  border-radius: 20px;
  box-shadow: 0 12px 26px rgba(0,0,0,0.06);
  box-sizing: border-box;
}

.strength-card__num{
  display: block;
  width: 80px;
  height: 80px;
  margin: 0 auto 20px;
  background: #5c821a;
  border-radius: 50%;
  color: #ffffff;
  font-size: 28px;
  font-weight: 700;
  line-height: 80px;
  text-align: center;
  letter-spacing: 0.05em;
}

.strength-card__title{
  margin: 0 0 14px;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.7;
  color: #5c821a;
  text-align: center;
}

.strength-card__text{
  margin: 0;
  font-size: 16px;
  line-height: 1.95;
  color: #444444;
  text-align: left;
}

/* =========================================
   タブレット
   ========================================= */

@media (max-width: 980px){

  .strength-grid{
    grid-template-columns: 1fr;
    gap: 18px;
    width: min(100%, 850px);
  }
}

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

@media (max-width: 767px){

  .strength-section{
    margin-bottom: 56px;
    padding: 0 16px;
  }

  .strength-section__heading{
    margin-bottom: 20px;
  }

  .strength-section__intro{
    margin-bottom: 22px;
  }

  .strength-section__intro p{
    font-size: 16px;
    line-height: 1.9;
    text-align: left;
  }

  .strength-grid{
    gap: 14px;
  }

  .strength-card{
    padding: 22px 18px 20px;
    border-radius: 16px;
  }

  .strength-card__num{
    width: 64px;
    height: 64px;
    margin: 0 auto 16px;
    background: #5c821a;
    font-size: 22px;
    line-height: 64px;
  }

  .strength-card__title{
    margin-bottom: 20px;
    font-size: 22px;
    line-height: 1.6;
    text-align: center;
    font-weight: 700;
  }

  .strength-card__text{
    font-size: 16px;
    line-height: 1.8;
  }
}

/* =========================================
   診療時間表
   ========================================= */

.shinryoujikan-wrap{
  width: min(100%, 800px);
  margin: 0 auto;
  padding: 20px 0;
  background: #ffffff;
}

.shinryoujikan-table-wrap{
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.shinryoujikan-table{
  width: 100%;
  min-width: 700px;
  margin: 0 auto;
  border-collapse: separate;
  border-spacing: 0;
  border-top: 1px solid #dfdfdf;
  background: #ffffff;
}

.shinryoujikan-table th,
.shinryoujikan-table td{
  padding: 10px 0;
  text-align: center;
  border-left: 1px solid #dfdfdf;
  border-bottom: 1px solid #dfdfdf;
  box-sizing: border-box;
}

.shinryoujikan-table th{
  width: 200px;
  color: #ffffff;
  background: #5c821a;
  font-weight: 400;
  font-size: 14px;
  letter-spacing: 3px;
  padding-right: 2%;
  padding-left: 2%;
}

.shinryoujikan-table td{
  width: 85px;
  background: #ffffff;
  color: #333333;
  font-weight: 700;
  font-size: 13px;
}

.shinryoujikan-table td:last-child{
  border-right: 1px solid #dfdfdf;
}

.shinryoujikan-note{
  margin: 16px 0 0;
  font-size: 14px;
  line-height: 1.8;
  color: #333333;
}

/* =========================================
   SP
   ========================================= */
@media (max-width: 767px){
  .shinryoujikan-wrap{
    width: 92%;
    padding: 16px 0;
  }

  .shinryoujikan-table th{
    font-size: 14px;
    letter-spacing: 1px;
    width: 140px;
    white-space: nowrap;
  }

  .shinryoujikan-table td{
    font-size: 14px;
    width: 60px;
    white-space: nowrap;
  }

  .shinryoujikan-note{
    font-size: 14px;
    line-height: 1.7;
  }
}


/* =========================
Q&A Accordion（配色統一版）
========================= */
.card-accordion{
  margin:18px 0;
}
/* ===== ボタン（質問） ===== */
.card-accordion-btn{
  position:relative;
  width:92%;
  max-width:750px;
  margin:0 auto 20px;
  display:flex;
  justify-content:flex-start;
  align-items:center;
  padding:16px 56px 16px 18px;
  background:#ffffff;
  color:var(--text, #333333);
  font-size:16px;
  font-weight:400;
  letter-spacing:1px;
  line-height:160%;
  font-family:"Noto Sans JP","Yu Gothic","メイリオ",sans-serif;
  text-align:left;
  border:1px solid rgba(92,130,26,0.35);
  border-radius:12px;
  cursor:pointer;
  transition:transform 0.15s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.card-accordion-btn:hover{
  box-shadow:3px 3px 6px rgba(0,0,0,0.12);
  border-color:rgba(92,130,26,0.28);
}
.card-accordion-btn:focus-visible{
  outline:2px solid rgba(92,130,26,0.35);
  outline-offset:3px;
}
.card-accordion-text{
  display:block;
  width:100%;
  padding-right:10px;
}
.card-accordion.is-open .card-accordion-btn{
  border-color:rgba(92,130,26,0.35);
}
/* ＋／×アイコン */
.card-accordion-icon{
  position:absolute;
  right:18px;
  top:50%;
  width:20px;
  height:20px;
  transform:translateY(-50%);
}
.card-accordion-icon::before,
.card-accordion-icon::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:20px;
  height:1px;
  background:var(--nav-bg, #5c821a);
  border-radius:2px;
  transform:translate(-50%, -50%);
  transition:transform 0.35s ease;
}
.card-accordion-icon::after{
  transform:translate(-50%, -50%) rotate(90deg);
}
.card-accordion.is-open .card-accordion-icon::before{
  transform:translate(-50%, -50%) rotate(45deg);
}
.card-accordion.is-open .card-accordion-icon::after{
  transform:translate(-50%, -50%) rotate(-45deg);
}
/* ===== 開閉エリア ===== */
.card-accordion-content{
  max-height:0;
  overflow:hidden;
  transition:max-height 0.5s ease;
}
.card-accordion-inner{
  width:92%;
  max-width:750px;
  margin:0 auto 25px;
  padding:14px 18px 18px;
  background:#ffffff;
  border-top:none;
  border-radius:0 0 12px 12px;
}
.qa-answer{
  margin:0;
  font-size:16px;
  color:rgba(51,51,51,.78);
  letter-spacing:1px;
  line-height:180%;
  font-family:"Noto Sans JP","Yu Gothic","メイリオ",sans-serif;
  font-weight:400;
}
/* ===== SP微調整 ===== */
@media (max-width:767px){
  .card-accordion{
    margin:14px 0;
  }
  .card-accordion-btn{
    width:92%;
    padding:14px 50px 14px 16px;
    font-size:16px;
  }
  .card-accordion-icon{
    right:14px;
    width:18px;
    height:18px;
  }
  .card-accordion-icon::before,
  .card-accordion-icon::after{
    width:18px;
  }
  .card-accordion-inner{
    width:92%;
    padding:12px 16px 16px;
    margin-bottom:20px;
  }
  .qa-answer{
    font-size:16px;
  }
}
/* 動きを減らす */
@media (prefers-reduced-motion:reduce){
  .card-accordion-btn,
  .card-accordion-icon::before,
  .card-accordion-icon::after,
  .card-accordion-content{
    transition:none;
  }
}

.qa-more{
  width:92%;
  max-width:350px;
  margin:22px auto 120px;
  text-align:center;
}
.qa-more__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:100%;
  padding:10px 18px;
  box-sizing:border-box;
  background:var(--nav-bg,#5c821a);
  color:#ffffff;
  font-size:16px;
  font-weight:600;
  letter-spacing:1px;
  line-height:1.4;
  font-family:"Noto Sans JP","Yu Gothic","メイリオ",sans-serif;
  text-decoration:none;
  border:1px solid rgba(92,130,26,0.25);
  border-radius:25px;
  transition:transform 0.15s ease, box-shadow 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
}
.qa-more__btn:hover{
  border-color:rgba(241,102,130,0.45);
  box-shadow:3px 3px 6px rgba(0,0,0,0.12);
  transform:translateY(-1px);
}
.qa-more__btn:focus-visible{
  outline:2px solid rgba(241,102,130,0.35);
  outline-offset:3px;
}
@media (max-width:767px){
  .qa-more{
    margin:26px auto 0;
  }
  .qa-more__btn{
    font-size:15px;
    padding:13px 16px;
  }
}
@media (prefers-reduced-motion:reduce){
  .qa-more__btn{
    transition:none;
  }
}


/* =========================
   アクセス（完全レスポンシブ）
========================= */

.access{
  width: 100%;
  margin: 0 auto 40px;
  box-sizing: border-box;
}

/* GoogleMap：比率固定（PC/SPで崩れない） */
.access__map{
  width: min(800px, 92%);
  margin: 0 auto 20px;
  position: relative;

  /* 16:9にしたい場合 */
  aspect-ratio: 16 / 9;

  /* 見た目が既存の雰囲気に合うなら */
  border-radius: 10px;
  overflow: hidden;
}

/* iframeを枠にフィット */
.access__map > iframe{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* 文章 */
.access__text{
  width: min(750px, 92%);
  margin: 0 auto;
  box-sizing: border-box;
}

.access__text > p{
  margin: 0;
  font-size: 16px;
  letter-spacing: 1px;
  line-height: 180%;
  color: #404040;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
  font-weight: 400;
}

/* SP微調整（必要なら） */
@media (max-width: 767px){
  .access{
    margin-bottom: 40px;
  }

  .access__map{
    width: 100%;
    margin: 0 auto 20px;
    border-radius: 0;          /* 端まで使うなら0に */
    aspect-ratio: 4 / 3;       /* スマホは縦を少し高めにしたい場合 */
  }

  .access__text{
    width: 85%;
  }

  .access__text > p{
    font-size: 16px;
    color: #3f3f3f;            /* 既存SPの色に寄せるなら */
  }
}


/* =========================
Contact
========================= */

.contact{
  /* ヘッダーの nav-bg には連動させず、問い合わせ用の色を固定 */
  --contact-accent: #5f7f2d;
  --contact-accent-2: #7b9f3b;
  --contact-accent-light: rgba(123,159,59,.12);
  --contact-text: #333333;
  --contact-text-soft: rgba(51,51,51,.76);
  --contact-border: rgba(95,127,45,.20);
  --contact-bg: #ffffff;
  --contact-radius: 20px;

  position: relative;
  width: 100%;
  max-width: 1180px;
  margin: 40px auto 0;
  padding: 0 18px 56px;
  box-sizing: border-box;
  text-align: center;
  font-family: "Noto Sans JP","Yu Gothic","メイリオ",sans-serif;
}

.contact,
.contact *,
.contact *::before,
.contact *::after{
  box-sizing: border-box;
}

.contact::before{
  content: "";
  position: absolute;
  inset: 42px 0 0;
  background:
    linear-gradient(180deg, rgba(255,255,255,.94), rgba(248,250,244,.96));
  border-radius: 28px;
  z-index: 0;
}

.contact > *{
  position: relative;
  z-index: 1;
}

.contact__surface{
  width: 100%;
  padding-top: 1px;
}

.contact .tokuchou{
  margin: 0 auto 24px;
}

.contact__message{
  width: min(860px, 92%);
  margin: 0 auto 18px;
  color: var(--contact-text);
  font-size: 16px;
  line-height: 1.9;
  letter-spacing: .04em;
}

.contact__message p{
  margin: 0;
}

.contact__notes{
  width: min(860px, 92%);
  margin: 0 auto 28px;
  padding: 16px 20px;
  list-style: none;
  color: var(--contact-text);
  font-size: 14px;
  line-height: 1.8;
  text-align: left;
  background: var(--contact-accent-light);
  border: 1px solid var(--contact-border);
  border-radius: 14px;
}

.contact__notes li{
  position: relative;
  padding-left: 1.2em;
}

.contact__notes li::before{
  content: "・";
  position: absolute;
  left: 0;
  color: var(--contact-accent);
  font-weight: 700;
}

.contact__notes li + li{
  margin-top: 4px;
}

.contact__inner{
  width: min(960px, 94%);
  margin: 0 auto;
  padding: 0;
}

.contact__grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  align-items: stretch;
}

/* =========================
Contact Card
========================= */

.contact-card{
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 28px 24px 24px;
  text-align: center;
  background: var(--contact-bg);
  border: 1px solid var(--contact-border);
  border-radius: var(--contact-radius);
  box-shadow: 0 12px 28px rgba(51,51,51,.08);
  overflow: hidden;
}

.contact-card::before{
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 6px;
  background: linear-gradient(90deg, var(--contact-accent), var(--contact-accent-2));
}

.contact-card__label{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 30px;
  margin: 0 auto 14px;
  border-radius: 999px;
  background: var(--contact-accent-light);
  color: var(--contact-accent);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .08em;
}

/* 見出しデザイン */
.contact-card__title{
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: 100%;
  margin: 0 0 20px;
  padding: 0 0 18px;
  text-align: center;
  color: var(--contact-text);
  font-family: "Noto Sans JP","Yu Gothic","メイリオ",sans-serif;
  border-bottom: none;
}

.contact-card__title::after{
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 58px;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--contact-accent), var(--contact-accent-2));
  transform: translateX(-50%);
}

.contact-card__title-en{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 92px;
  padding: 4px 14px;
  border-radius: 999px;
  background: var(--contact-accent-light);
  color: var(--contact-accent);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.contact-card__title-ja{
  display: block;
  color: var(--contact-text);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: .06em;
}

.contact-card__lead{
  margin: 0 auto 18px;
  color: var(--contact-text-soft);
  font-size: 14px;
  line-height: 1.8;
  letter-spacing: .04em;
  text-align: left;	
}

/* 電話番号・メールアドレス */
/* この高さをそろえることで、下の文章の開始位置を左右で合わせる */
.contact-card__main{
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 58px;
  margin: 0 0 16px;
}

.contact-card__tel,
.contact-card__mail{
  display: inline-block;
  color: var(--contact-accent);
  font-weight: 700;
  text-decoration: none;
  line-height: 1.4;
  word-break: break-all;
}

.contact-card__tel{
  font-size: clamp(28px, 4vw, 36px);
  letter-spacing: .03em;
}

.contact-card__mail{
  font-size: clamp(18px, 2.4vw, 22px);
}

.contact-card__tel:hover,
.contact-card__mail:hover{
  color: var(--contact-accent);
  text-decoration: underline;
  text-underline-offset: 5px;
}

/* 補足情報 */
.contact-card__info{
  margin: 0 0 22px;
  padding: 14px 16px;
  background: #f8faf4;
  border-radius: 12px;
  text-align: left;
}

.contact-card__info p{
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin: 0;
  color: var(--contact-text);
  font-size: 14px;
  line-height: 1.7;
}

.contact-card__info p + p{
  margin-top: 6px;
  padding-top: 6px;
  border-top: 1px solid rgba(95,127,45,.14);
}

.contact-card__info span{
  color: var(--contact-text-soft);
  font-weight: 700;
  white-space: nowrap;
}

.contact-card__list{
  margin: 0 0 22px;
  padding: 14px 16px 14px 1.8em;
  color: var(--contact-text-soft);
  font-size: 14px;
  line-height: 1.8;
  letter-spacing: .04em;
  text-align: left;
  background: #f8faf4;
  border-radius: 12px;
}

.contact-card__list li{
  margin-bottom: 6px;
}

.contact-card__list li:last-child{
  margin-bottom: 0;
}

/* ボタン */
.contact-card__actions{
  margin-top: auto;
  text-align: center;
}

.contact-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 250px;
  max-width: 100%;
  min-height: 50px;
  padding: 12px 18px;
  border-radius: 999px;
  color: #ffffff;
  text-decoration: none;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .04em;
  transition:
    opacity .2s ease,
    transform .15s ease,
    box-shadow .2s ease;
}

.contact-btn--tel,
.contact-btn--mail{
  background: linear-gradient(135deg, var(--contact-accent-2), var(--contact-accent));
  box-shadow: 0 8px 18px rgba(95,127,45,.22);
}

.contact-btn:hover{
  opacity: .92;
  transform: translateY(-1px);
}

.contact-btn:active{
  transform: translateY(1px);
}

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

@media (max-width: 767px){
  .contact{
    margin: 28px auto 0;
    padding: 0 14px 48px;
  }

  .contact::before{
    inset: 36px 0 0;
    border-radius: 22px;
  }

  .contact .tokuchou{
    margin-bottom: 18px;
  }

  .contact__message{
    width: 100%;
    font-size: 16px;
    line-height: 1.85;
    text-align: left;
  }

  .contact__message br{
    display: none;
  }

  .contact__notes{
    width: 100%;
    margin-bottom: 22px;
    padding: 14px 15px;
    font-size: 14px;
  }

  .contact__inner{
    width: 100%;
  }

  .contact__grid{
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .contact-card{
    padding: 24px 18px 22px;
    border-radius: 18px;
  }

  .contact-card__label{
    width: 58px;
    height: 28px;
    margin-bottom: 12px;
    font-size: 14px;
  }

  .contact-card__title{
    margin-bottom: 18px;
    padding-bottom: 16px;
  }

  .contact-card__title-en{
    min-width: 82px;
    padding: 4px 12px;
    font-size: 14px;
  }

  .contact-card__title-ja{
    font-size: 18px;
    line-height: 1.55;
  }

  .contact-card__lead{
    font-size: 14px;
    text-align: left;
  }

  .contact-card__main{
    min-height: 54px;
    margin-bottom: 16px;
  }

  .contact-card__tel{
    font-size: clamp(26px, 8vw, 32px);
  }

  .contact-card__mail{
    font-size: clamp(16px, 5vw, 20px);
  }

  .contact-card__info p{
    display: block;
    font-size: 14px;
  }

  .contact-card__info span{
    display: block;
    margin-bottom: 2px;
  }

  .contact-card__list{
    font-size: 14px;
  }

  .contact-btn{
    width: 100%;
  }
}

/* =========================
小さめスマホ
========================= */

@media (max-width: 374px){
  .contact-card{
    padding: 22px 16px 20px;
  }

  .contact-card__main{
    min-height: 52px;
    margin-bottom: 16px;
  }

  .contact-card__tel{
    font-size: 25px;
  }

  .contact-card__mail{
    font-size: 16px;
  }

  .contact-card__info,
  .contact-card__list{
    padding: 13px 14px;
  }
}

/* =========================
動きを減らす設定
========================= */

@media (prefers-reduced-motion: reduce){
  .contact-btn{
    transition: none;
  }

  .contact-btn:hover{
    transform: none;
  }
}















/* =========================
   料金表
   ========================= */

.price-list{
  padding: 0 20px 90px;
  background:#ffffff;
}

/* PCで中央700px */
.price-list__inner{
  width:100%;
  max-width:700px;
  margin:0 auto;
}

.price-list__box{
  width:100%;
  border:1px solid rgba(92,130,26,0.22);
  border-radius:12px;
  overflow:hidden;
  background:#fff;
}

.price-list__items{
  margin:0;
  padding:0;
}

/* 1行 */
.price-list__row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;

  padding:20px 70px;
  border-bottom:1px solid #eeeeee;
}

.price-list__row:last-child{
  border-bottom:none;
}

/* メニュー */
.price-list__menu{
  margin:0;
  font-size:16px;
  color:#333;
  font-family:"Noto Sans JP","Yu Gothic","メイリオ",sans-serif;
  letter-spacing:1px;
}

/* 金額 */
.price-list__price{
  margin:0;
  font-size:20px;
  font-weight:700;
  color:#333;
  text-align:right;
  white-space:nowrap;
}

.price-list__tax{
  font-size:14px;
  font-weight:400;
  margin-left:4px;
}

/* =========================
   タブレット
   ========================= */

@media (max-width:900px){

.price-list__row{
  padding:18px 20px;
}

.price-list__menu{
  font-size:15px;
}

.price-list__price{
  font-size:18px;
}

}

/* =========================
   スマホ
   ========================= */

@media (max-width:768px){

.price-list{
  padding:0 14px 70px;
}

.price-list__inner{
  max-width:100%;
}

.price-list__row{
  padding:16px 16px;
  gap:12px;
}

/* スマホでも横並び維持 */
.price-list__menu{
  font-size:15px;
}

.price-list__price{
  font-size:17px;
}

.price-list__tax{
  font-size:14px;
}

}

/* 小さいスマホ */

@media (max-width:480px){

.price-list__row{
  padding:14px 14px;
}

.price-list__menu{
  font-size:14px;
}

.price-list__price{
  font-size:16px;
}

.price-list__tax{
  font-size:14px;
}

}


/* =========================
   施術説明
   ========================= */

.treatment-intro{
  padding: 50px 20px;
  background:#ffffff;
}

.treatment-intro__inner{
  width:100%;
  max-width:980px;
  margin:0 auto;
}

/* 横並びレイアウト */

.treatment-intro__grid{
  display:flex;
  align-items:flex-start;
  gap:50px;
}

/* 写真 */

.treatment-intro__photo{
  flex:0 0 45%;
}

.treatment-intro__photo img{
  width:100%;
  height:auto;
  display:block;
  border-radius:12px;
}

/* テキスト */

.treatment-intro__text{
  flex:1;
}

.treatment-intro__title{
  margin:0 0 20px;
  font-size:26px;
  font-weight:600;
  color:#333;
  letter-spacing:1px;
  font-family:"Noto Sans JP","Yu Gothic","メイリオ",sans-serif;
}

.treatment-intro__text p{
  margin:0 0 16px;
  font-size:16px;
  line-height:1.9;
  color:#444;
  letter-spacing:0.5px;
  font-family:"Noto Sans JP","Yu Gothic","メイリオ",sans-serif;
}


/* =========================
   タブレット
   ========================= */

@media (max-width:900px){

  .treatment-intro__grid{
    align-items:flex-start;
    gap:40px;
  }

  .treatment-intro__title{
    font-size:22px;
  }

  .treatment-intro__text p{
    font-size:16px;
  }

}


/* =========================
   スマホ
   ========================= */

@media (max-width:768px){

  .treatment-intro{
    padding:60px 14px;
  }

  .treatment-intro__grid{
    flex-direction:column;
    align-items:stretch;
    gap:24px;
  }

  .treatment-intro__photo{
    width:100%;
  }

  .treatment-intro__text{
    width:100%;
  }

  .treatment-intro__title{
    font-size:20px;
  }

  .treatment-intro__text p{
    font-size:16px;
    line-height:1.8;
  }

}


/* 小さいスマホ */

@media (max-width:480px){

  .treatment-intro__title{
    font-size:18px;
  }

  .treatment-intro__text p{
    font-size:16px;
  }

}


/* =========================================
   姿勢矯正ページ・腰痛ページ共通
   完全レスポンシブ対応
   ========================================= */

.posture-page {
  width: 100%;
  color: #333;
  line-height: 1.9;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
}

.posture-page *,
.posture-page *::before,
.posture-page *::after {
  box-sizing: border-box;
}

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

.posture-page p,
.posture-page h1,
.posture-page h2,
.posture-page h3 {
  margin: 0;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
}

/* =========================================
   ページタイトル
   ========================================= */

.posture-page__title {
  width: min(1080px, 92%);
  margin: 0 auto 70px;
  text-align: center;
}

.posture-page__title h1 {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: center;
  gap: 0.25em;
  line-height: 1.5;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
}

.posture-page__title-small {
  font-size: clamp(22px, 3vw, 34px);
  font-weight: 600;
}

.posture-page__title-main {
  font-size: clamp(34px, 5vw, 56px);
  font-weight: 700;
  color: #5c821a;
}

.posture-page__title-clinic {
  font-size: clamp(28px, 4vw, 46px);
  font-weight: 700;
}

/* =========================================
   導入文
   ========================================= */

.posture-intro {
  width: 100%;
  margin-bottom: 90px;
}

.posture-intro__inner {
  width: min(1080px, 92%);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: start;
}

.posture-intro__image {
  width: 100%;
}

.posture-intro__image img {
  width: 100%;
  border-radius: 4px;
}

.posture-intro__text {
  width: 100%;
}

.posture-intro__text p {
  font-size: 16px;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
}

/* =========================================
   共通セクション
   ========================================= */

.posture-section {
  width: 100%;
  padding: 60px 0;
  margin-bottom: 90px;
}

.posture-section--bg {
  background: rgba(198, 209, 102, 0.2);
}

.posture-section__inner {
  width: min(720px, 92%);
  margin: 0 auto;
}

.posture-heading {
  width: min(720px, 92%);
  margin: 0 auto 30px;
  text-align: center;
}

.posture-heading h2 {
  position: relative;
  display: inline-block;
  padding-bottom: 14px;
  font-size: clamp(24px, 3vw, 34px);
  font-weight: 700;
  color: #333;
  line-height: 1.5;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
}

.posture-heading h2::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 80px;
  height: 3px;
  background: #c6d166;
  transform: translateX(-50%);
}

.posture-text {
  width: 100%;
}

.posture-text p {
  font-size: 16px;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
}


/* =========================================
   このようなお悩みはありませんか
   文章のみ
   ========================================= */

.posture-worry {
  width: 100%;
  margin-bottom: 90px;
  box-sizing: border-box;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
}

.posture-worry *,
.posture-worry *::before,
.posture-worry *::after {
  box-sizing: border-box;
}

.posture-worry__inner {
  width: min(760px, 92%);
  margin: 0 auto;
}

.posture-worry__text {
  width: 100%;
}

.posture-worry__text p {
  margin: 0;
  font-size: 16px;
  line-height: 1.9;
  letter-spacing: 0.04em;
  color: #404040;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
}

/* =========================================
   スマホ対応
   ========================================= */

@media screen and (max-width: 600px) {

  .posture-worry {
    margin-bottom: 60px;
  }

  .posture-worry__inner {
    width: 90%;
  }

  .posture-worry__text p {
    font-size: 16px;
    line-height: 1.85;
  }

}







/* =========================================
   姿勢矯正の流れ
   PC：STEP番号｜文章｜写真
   SP：STEP番号 → タイトル → 写真 → 文章
   ========================================= */

.posture-flow {
  width: 100%;
  margin-bottom: 90px;
  box-sizing: border-box;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
}

.posture-flow *,
.posture-flow *::before,
.posture-flow *::after {
  box-sizing: border-box;
}

.posture-flow__inner {
  width: min(900px, 92%);
  margin: 0 auto;
}

.posture-flow__lead {
  width: min(700px, 100%);
  margin: 0 auto 40px;
}

.posture-flow__lead p {
  margin: 0;
  font-size: 16px;
  line-height: 1.9;
  letter-spacing: 0.04em;
  color: #404040;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
}

.posture-flow-list {
  width: 100%;
  border: 4px solid #c6d166;
  background: #ffffff;
}

.posture-flow-item {
  display: grid;
  grid-template-columns: 120px 1fr;
  padding: 34px 28px;
  border-bottom: 3px dotted #cccccc;
}

.posture-flow-item:last-child {
  border-bottom: none;
}

.posture-flow-item__number {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  padding-top: 4px;
}

.posture-flow-item__number span {
  display: flex;
  align-items: center;
  justify-content: center;

  width: 78px;
  height: 78px;
  border-radius: 50%;

  background: #c6d166;
  color: #333333;

  text-align: center;
  line-height: 1.35;
  font-size: 15px;
  letter-spacing: 0.04em;
  font-weight: 600;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
}

.posture-flow-item__body {
  display: grid;
  grid-template-columns: 1fr 240px;
  column-gap: 28px;
  align-items: start;
}

.posture-flow-item__body h3 {
  grid-column: 1 / 2;
  margin: 0 0 10px;

  font-size: 23px;
  font-weight: 600;
  color: #5c821a;
  line-height: 1.5;
  letter-spacing: 0.04em;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
}

.posture-flow-item__body p {
  grid-column: 1 / 2;
  margin: 0;

  font-size: 16px;
  line-height: 1.9;
  letter-spacing: 0.04em;
  color: #404040;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
}

.posture-flow-item__image {
  grid-column: 2 / 3;
  grid-row: 1 / 3;

  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: 12px;
  background: #f5f5f5;
}

.posture-flow-item__image img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

/* =========================================
   タブレット
   ========================================= */

@media screen and (max-width: 900px) {

  .posture-flow {
    margin-bottom: 70px;
  }

  .posture-flow__inner {
    width: 92%;
  }

  .posture-flow-item {
    grid-template-columns: 100px 1fr;
    padding: 30px 24px;
  }

  .posture-flow-item__body {
    grid-template-columns: 1fr 220px;
    column-gap: 22px;
  }

  .posture-flow-item__body h3 {
    font-size: 21px;
  }

}

/* =========================================
   スマホ
   ========================================= */

@media screen and (max-width: 767px) {

  .posture-flow {
    margin-bottom: 60px;
  }

  .posture-flow__inner {
    width: 90%;
  }

  .posture-flow__lead {
    margin-bottom: 30px;
  }

  .posture-flow__lead p {
    font-size: 16px;
    line-height: 1.85;
  }

  .posture-flow-list {
    border-width: 3px;
  }

  .posture-flow-item {
    display: block;
    padding: 28px 18px;
  }

  .posture-flow-item__number {
    justify-content: flex-start;
    margin-bottom: 14px;
    padding-top: 0;
  }

  .posture-flow-item__number span {
    width: 68px;
    height: 68px;
    font-size: 14px;
  }

  .posture-flow-item__body {
    display: block;
  }

  .posture-flow-item__body h3 {
    margin: 0 0 14px;
    font-size: 21px;
    line-height: 1.55;
  }

  .posture-flow-item__image {
    width: 100%;
    margin-bottom: 16px;
    aspect-ratio: 4 / 3;
    border-radius: 10px;
  }

  .posture-flow-item__body p {
    font-size: 16px;
    line-height: 1.85;
  }

}

/* =========================================
   小さめスマホ
   ========================================= */

@media screen and (max-width: 380px) {

  .posture-flow-item {
    padding: 24px 16px;
  }

  .posture-flow-item__body h3 {
    font-size: 20px;
  }

  .posture-flow-item__body p {
    font-size: 16px;
  }

}
/* =========================================
   費用
   ========================================= */

.posture-price {
  width: min(700px, 92%);
  margin: 0 auto;
  padding: 30px 0;
  background: #fff;
  border: 1px solid #ccc;
}

.posture-price__body {
  width: 100%;
}

.posture-price-table {
  width: min(420px, 86%);
  margin: 0 auto 40px;
  border-collapse: collapse;
  border-spacing: 0;
}

.posture-price-table th,
.posture-price-table td {
  width: 50%;
  padding: 14px 10px;
  border-bottom: 1px solid #ccc;
  font-size: clamp(21px, 3vw, 25px);
  font-weight: 700;
  line-height: 1.5;
  font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3",
    "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
}

.posture-price-table th {
  text-align: center;
}

.posture-price-table td {
  text-align: center;
}

.posture-price__note {
  width: min(420px, 86%);
  margin: 0 auto;
}

.posture-price__note p {
  font-size: 15px;
}

/* =========================================
   タブレット対応
   ========================================= */

@media screen and (max-width: 900px) {

  .posture-page__title {
    margin-bottom: 50px;
  }

  .posture-intro {
    margin-bottom: 70px;
  }

  .posture-intro__inner {
    grid-template-columns: 1fr;
    gap: 35px;
  }

  .posture-intro__image {
    width: min(620px, 100%);
    margin: 0 auto;
  }

  .posture-section {
    padding: 50px 0;
    margin-bottom: 70px;
  }

  .posture-flow {
    margin-bottom: 70px;
  }

  .posture-flow-item {
    grid-template-columns: 130px 1fr;
  }

  .posture-flow-item__body {
    padding-right: 24px;
  }

}

/* =========================================
   スマホ対応
   ========================================= */

@media screen and (max-width: 600px) {

  .posture-page {
    line-height: 1.85;
  }

  .posture-page__title {
    width: 90%;
    margin-bottom: 40px;
  }

  .posture-page__title h1 {
    flex-direction: column;
    gap: 0;
  }

  .posture-page__title-small {
    font-size: 20px;
  }

  .posture-page__title-main {
    font-size: 36px;
  }

  .posture-page__title-clinic {
    font-size: 30px;
  }

  .posture-intro {
    margin-bottom: 60px;
  }

  .posture-intro__inner {
    width: 90%;
    gap: 28px;
  }

  .posture-intro__text p,
  .posture-text p,
  .posture-flow__lead p,
  .posture-flow-item__body p {
    font-size: 16px;
  }

  .posture-section {
    padding: 45px 0;
    margin-bottom: 60px;
  }

  .posture-section__inner {
    width: 90%;
  }

  .posture-heading {
    width: 90%;
    margin-bottom: 24px;
  }

  .posture-heading h2 {
    font-size: 24px;
  }

  .posture-flow {
    margin-bottom: 60px;
  }

  .posture-flow__inner {
    width: 90%;
  }

  .posture-flow__lead {
    margin-bottom: 30px;
  }

  .posture-flow-list {
    border-width: 3px;
  }

  .posture-flow-item {
    grid-template-columns: 1fr;
    padding: 28px 22px;
  }

  .posture-flow-item__number {
    justify-content: flex-start;
    margin-bottom: 16px;
    padding-top: 0;
  }

  .posture-flow-item__number span {
    width: 70px;
    height: 70px;
    font-size: 14px;
  }

  .posture-flow-item__body {
    padding-right: 0;
  }

  .posture-flow-item__body h3 {
    margin-bottom: 8px;
    font-size: 21px;
  }

  .posture-price {
    width: 90%;
    padding: 28px 0;
  }

  .posture-price-table {
    width: 86%;
    margin-bottom: 28px;
  }

  .posture-price-table th,
  .posture-price-table td {
    padding: 12px 6px;
    font-size: 21px;
  }

  .posture-price__note {
    width: 86%;
  }

  .posture-price__note p {
    font-size: 14px;
  }

}
/* =========================================
   姿勢矯正の費用：見出し上の余白調整
   ========================================= */

.posture-price .tokuchou {
  margin: 0 auto 30px;
}

.posture-price .section-heading {
  margin: 0 auto;
}
/* =========================================
   小さめスマホ対応
   ========================================= */

@media screen and (max-width: 380px) {

  .posture-page__title-main {
    font-size: 32px;
  }

  .posture-page__title-clinic {
    font-size: 27px;
  }

  .posture-flow-item {
    padding: 24px 18px;
  }

  .posture-flow-item__body h3 {
    font-size: 20px;
  }

  .posture-price-table {
    width: 90%;
  }

  .posture-price-table th,
  .posture-price-table td {
    font-size: 19px;
  }

}




/* =========================================================
   交通事故治療の流れ
========================================================= */

:root{
  --tf-text: var(--text, #404040);
  --tf-border: var(--border, #cccccc);
  --tf-card-bg: #ffffff;

  --tf-shadow: 4px 4px 0 rgba(0,0,0,0.10);

  --tf-num-color: #c6d166;
  --tf-arrow-color: var(--tf-num-color);

  --tf-num-size: 50px;
  --tf-arrow-size: 12px;

  --tf-num-shift-y: 7px;
}

.jiko-flow{
  width: 100%;
  margin-bottom: 120px;
  box-sizing: border-box;
}

.jiko-flow__inner{
  width: min(800px, 92%);
  margin: 0 auto;
  box-sizing: border-box;
}

.jiko-flow__list{
  margin: 0;
  padding: 0;
}

.jiko-flow__item{
  list-style: none;
}

.jiko-flow__card{
  position: relative;
  background: var(--tf-card-bg);
  border: 1px solid var(--tf-border);
  border-radius: 10px;
  box-shadow: var(--tf-shadow);
  box-sizing: border-box;
  padding: 22px 18px 18px;
}

.jiko-flow__num{
  position: absolute;
  top: 6px;
  left: 12px;

  width: var(--tf-num-size);
  height: var(--tf-num-size);

  display: inline-flex;
  align-items: center;
  justify-content: center;

  background: none;
  border: none;

  font-family: "Noto Serif JP", serif;
  font-weight: 400;

  font-size: calc(var(--tf-num-size) * 0.9);
  line-height: 1;

  color: var(--tf-num-color);
  text-shadow: 1px 1px 0 rgba(0,0,0,0.10);

  transform-origin: center;
  transform: translateY(var(--tf-num-shift-y));
}

.jiko-flow__num::after{
  content: ".";
  margin-left: 2px;
}

.jiko-flow__title{
  margin: 0;
  padding: 6px 0 10px;
  padding-left: calc(var(--tf-num-size) + 14px);

  font-size: 24px;
  letter-spacing: 1px;
  color: var(--tf-text);
  font-family: "Noto Sans JP","Yu Gothic","メイリオ",sans-serif;
  font-weight: 500;

  border-bottom: 1px solid var(--tf-border);
}

.jiko-flow__text{
  margin: 0;
  padding-top: 12px;

  font-size: 16px;
  line-height: 180%;
  letter-spacing: 1px;
  color: var(--tf-text);
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
}

.jiko-flow__arrow{
  width: 0;
  height: 0;
  margin: 30px auto 18px;

  border-left: var(--tf-arrow-size) solid transparent;
  border-right: var(--tf-arrow-size) solid transparent;
  border-top: calc(var(--tf-arrow-size) + 4px) solid var(--tf-arrow-color);
}

.jiko-flow__item:last-child .jiko-flow__arrow{
  display: none;
}

@media (max-width: 767px){

  .jiko-flow{
    margin-bottom: 100px;
  }

  .jiko-flow__inner{
    width: 100%;
    padding: 0 18px;
  }

  .jiko-flow__card{
    padding: 20px 16px 16px;
  }

  .jiko-flow__title{
    font-size: 19px;
  }

  .jiko-flow__text{
    font-size: 16px;
  }

  .jiko-flow__arrow{
    margin: 12px auto 16px;
  }

}

/* =========================================
   交通事故治療説明
========================================= */

.jiko-info{
  width:100%;
  margin-bottom:100px;
  box-sizing:border-box;
}

.jiko-info__inner{
  width:min(800px,92%);
  margin:0 auto;
  box-sizing:border-box;
}

/* ボックス */

.jiko-info__box{
  margin-bottom:50px;
}

/* タイトル */

.jiko-info__title{
  margin:0 0 16px;

  font-size:22px;
  letter-spacing:1px;
  color:#333;

  font-family:"Noto Sans JP","Yu Gothic","メイリオ",sans-serif;
  font-weight:600;

  border-left:5px solid var(--header-green-dark,#5f7f2d);
  padding-left:12px;
}

/* 本文 */

.jiko-info__text{
  margin:0;

  font-size:16px;
  line-height:180%;
  letter-spacing:1px;
  color:#404040;

  font-family:"Noto Sans JP","Yu Gothic","メイリオ",sans-serif;
}


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

@media (max-width:767px){

  .jiko-info{
    margin-bottom:80px;
  }

  .jiko-info__title{
    font-size:19px;
  }

  .jiko-info__text{
    font-size:16px;
  }

}


























/* 駐車場セクション */
.parking{
  padding: 80px 20px;
  background:#fff;
}

.parking-inner{
  width:min(100%,800px);
  margin:0 auto;
}

/* タイトル */
.parking-title{
  text-align:center;
  font-size:clamp(22px,3vw,28px);
  line-height:1.4;
  margin-bottom:50px;
}

/* 写真＋テキスト */
.parking-content{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:40px;
  margin-bottom:100px;
}

/* 写真 */
.parking-photo{
  flex:0 0 400px;
  width:400px;
}

.parking-photo img{
  width:100%;
  height:auto;
  display:block;
  border-radius:6px;
}

/* テキスト（アクセスと完全統一） */
.parking-text{
  flex:0 1 500px;
  max-width:500px;

  font-size:16px;
  letter-spacing:1px;
  line-height:180%;
  color:#404040;
  font-family:"Noto Sans JP","Yu Gothic","メイリオ",sans-serif;
  font-weight:400;

  text-align:left;
}

/* タブレット */
@media screen and (max-width:900px){

.parking{
  padding:70px 20px;
}

.parking-title{
  margin-bottom:40px;
}

.parking-content{
  gap:30px;
  margin-bottom:80px;
}

.parking-photo{
  flex:0 0 320px;
  width:320px;
}

.parking-text{
  flex:1 1 auto;
  max-width:460px;
  font-size:16px;
}

}

/* スマホ */
@media screen and (max-width:768px){

.parking{
  padding:60px 16px;
}

.parking-title{
  margin-bottom:30px;
}

.parking-content{
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  gap:24px;
  margin-bottom:60px;
}

.parking-photo{
  flex:none;
  width:min(100%,400px);
}

.parking-text{
  width:min(100%,500px);
  max-width:500px;
  font-size:16px;
}

}

/* 小さいスマホ */
@media screen and (max-width:480px){

.parking{
  padding:50px 12px;
}

.parking-title{
  font-size:22px;
  margin-bottom:24px;
}

.parking-content{
  gap:20px;
  margin-bottom:50px;
}

.parking-photo{
  width:100%;
}

.parking-photo img{
  border-radius:4px;
}

.parking-text{
  font-size:16px;
  line-height:180%;
}

}


/* =========================================================
   Footer (Responsive / Class renamed)
   やわらかいグリーンテーマ
========================================================= */

/* フッター内だけ box-sizing を安定させる */
.footer,
.footer *,
.footer *::before,
.footer *::after{
  box-sizing: border-box;
}

/* ---------- Footer Theme Variables ---------- */
:root{
  /* ファーストビュー・ヘッダーと合わせた、やわらかいグリーン */
  --footer-blue: #6f8f35;
  --footer-blue-dark: #58752a;
  --footer-blue-soft: rgba(111,143,53,.12);

  --footer-text: rgba(255,255,255,.94);
  --footer-text-soft: rgba(255,255,255,.80);
  --footer-line: rgba(255,255,255,.24);

  --footer-link: rgba(255,255,255,.94);
  --footer-link-hover: #ffffff;

  --footer-radius: 14px;
}

/* PC/SP 出し分け（元仕様を維持） */
.footer__sp{
  display: none;
}

.footer__pc{
  display: block;
}

@media (max-width: 767px){
  .footer__pc{
    display: none;
  }

  .footer__sp{
    display: block;
  }
}

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

.footerPc{
  width: 100%;
  background: var(--footer-blue);
}

.footerPc__inner{
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 44px 20px 26px;
}

.footerPc__cols{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: 40px;
  row-gap: 30px;
}

/* 見出し帯 */
.footerPc__title{
  width: 100%;
  padding-bottom: 10px;
  margin-bottom: 16px;
  border-bottom: 1px solid var(--footer-line);
  line-height: 1;
}

.footerPc__title > p{
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 1.5px;
  color: var(--footer-text);
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
}

/* 教室情報テーブル */
.footerPc__infoTable{
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  margin: 18px auto 10px;
}

.footerPc__infoTable th{
  width: 30%;
  font-weight: 500;
  font-size: 13px;
  letter-spacing: 1px;
  color: var(--footer-text-soft);
  text-align: left;
  vertical-align: top;
  padding-bottom: 12px;
  line-height: 160%;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
}

.footerPc__infoTable td{
  width: 70%;
  font-weight: 400;
  font-size: 13px;
  letter-spacing: 1px;
  color: var(--footer-text);
  vertical-align: top;
  padding-bottom: 12px;
  line-height: 160%;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
}

.footerPc__infoTable td > a{
  color: var(--footer-link);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}

.footerPc__infoTable td > a:hover{
  color: var(--footer-link-hover);
  opacity: .9;
}

/* PC：体験レッスンボタン */
.footerPc__cta{
  display: block;
  background-color: rgba(255,255,255,.14);
  width: 230px;
  margin: 20px 0 0;
  text-align: center;
  padding: 10px 0;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.30);
  transition:
    background-color .2s ease,
    transform .2s ease,
    box-shadow .2s ease;
}

.footerPc__cta:hover{
  background-color: rgba(255,255,255,.20);
  transform: translateY(-1px);
  box-shadow: 0 8px 18px rgba(63,53,43,.14);
}

.footerPc__cta > a{
  display: block;
  position: relative;
  font-size: 14px;
  color: #ffffff;
  text-decoration: none;
  font-weight: 600;
  letter-spacing: 1.5px;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
  line-height: 1.6;
}

/* 右側の矢印 */
.footerPc__cta > a::after{
  content: "";
  position: absolute;
  top: 50%;
  right: 14px;
  width: 0;
  height: 0;
  margin: -3px 0 0 0;
  border-top: 6px solid #ffffff;
  border-left: 6px solid transparent;
  transform: rotate(45deg);
}

/* PC：メニュー */
.footerPc__menu{
  width: 100%;
  padding-left: 0;
  margin: 0;
}

.footerPc__menu > li{
  width: 100%;
  list-style: none;
  padding: 7px 0;
  border-bottom: 1px solid var(--footer-line);
}

.footerPc__menu > li > a{
  position: relative;
  font-size: 13px;
  letter-spacing: 1px;
  color: var(--footer-text);
  text-decoration: none;
  padding-left: 18px;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
  font-weight: 400;
}

.footerPc__menu > li > a:hover{
  color: #ffffff;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* 矢印 */
.footerPc__menu > li > a::before{
  content: "";
  position: absolute;
  top: 52%;
  left: 0;
  width: 6px;
  height: 6px;
  border-top: 1.5px solid rgba(255,255,255,.78);
  border-right: 1.5px solid rgba(255,255,255,.78);
  transform: translateY(-50%) rotate(45deg);
}

/* PC：マップ */
.footerPc__map{
  width: 100%;
  margin-top: 18px;
  border-radius: var(--footer-radius);
  overflow: hidden;
  box-shadow: 0 10px 22px rgba(63,53,43,.14);
  border: 1px solid rgba(255,255,255,.16);
}

/* PC：コピーライト */
.footerPcCopyright{
  width: 100%;
  background: var(--footer-blue-dark);
  padding: 18px 10px;
}

.footerPcCopyright > p{
  font-size: 12px;
  color: rgba(255,255,255,.80);
  text-align: center;
  letter-spacing: 1px;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
  font-weight: 400;
}

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

/* 体験レッスンCTA */
.footerSpCta{
  width: 100%;
  padding: 30px 0;
  background: var(--footer-blue);
}

.footerSpCta__title{
  width: 92%;
  margin: 0 auto 18px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--footer-line);
}

.footerSpCta__title > p{
  font-size: 18px;
  color: #ffffff;
  padding-bottom: 4px;
  font-weight: 700;
  text-align: center;
  letter-spacing: 1.5px;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
}

.footerSpCta__text{
  width: 85%;
  margin: 0 auto 24px;
}

.footerSpCta__text > p{
  font-size: 14px;
  color: rgba(255,255,255,.88);
  letter-spacing: 1px;
  line-height: 180%;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
  font-weight: 400;
}

/* SP：申込みボタン */
.footerSpCta__btn{
  background: rgba(255,255,255,.15);
  width: 74%;
  margin: 0 auto 12px;
  border-radius: 999px;
  text-align: center;
  padding: 12px 0;
  border: 1px solid rgba(255,255,255,.30);
  box-shadow: 0 10px 20px rgba(63,53,43,.13);
  transition:
    background-color .2s ease,
    transform .2s ease,
    box-shadow .2s ease;
}

.footerSpCta__btn:hover{
  background: rgba(255,255,255,.21);
  transform: translateY(-1px);
  box-shadow: 0 12px 22px rgba(63,53,43,.16);
}

.footerSpCta__btn > a{
  display: block;
  position: relative;
  font-size: 16px;
  color: #ffffff;
  text-decoration: none;
  font-weight: 700;
  letter-spacing: 1.5px;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
}

.footerSpCta__btn > a::after{
  content: "";
  position: absolute;
  top: 50%;
  right: 16px;
  width: 6px;
  height: 6px;
  border-top: 2px solid rgba(255,255,255,.88);
  border-right: 2px solid rgba(255,255,255,.88);
  transform: translateY(-50%) rotate(45deg);
}

/* SP：メニュー（1列表示） */
.footerSpMenu{
  width: 100%;
  background: var(--footer-blue);
  padding: 26px 0 18px;
  border-top: 1px solid var(--footer-line);
}

.footerSpMenu__inner{
  width: 95%;
  margin: 0 auto;
}

/* 列を1列にする */
.footerSpMenu__col{
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}

/* 左右の装飾を削除 */
.footerSpMenu__col--left{
  padding-left: 10px;
}

.footerSpMenu__col--right{
  padding-left: 10px;
  border-left: none;
}

.footerSpMenu__item{
  list-style: none;
  position: relative;
  padding-left: 26px;
  padding-bottom: 14px;
}

.footerSpMenu__item > a{
  font-size: 14px;
  color: rgba(255,255,255,.94);
  text-decoration: none;
  letter-spacing: 1.5px;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
  font-weight: 400;
}

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

.footerSpMenu__item::before{
  content: "";
  position: absolute;
  top: 45%;
  left: 10px;
  width: 6px;
  height: 6px;
  border-top: 1.5px solid rgba(255,255,255,.78);
  border-right: 1.5px solid rgba(255,255,255,.78);
  transform: translateY(-50%) rotate(45deg);
}

/* SP：コピーライト */
.footerSpCopyright{
  width: 100%;
  clear: both;
  text-align: center;
  padding-top: 18px;
  padding-bottom: 60px;
  background: var(--footer-blue-dark);
  border-top: 1px solid rgba(255,255,255,.14);
}

.footerSpCopyright p{
  width: 100%;
  text-align: center;
  font-size: 14px;
  color: rgba(255,255,255,.80);
  line-height: 180%;
  letter-spacing: 1.5px;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
  font-weight: 400;
}

/* =========================
   SP微調整
========================= */

@media (max-width: 420px){
  .footerSpCta{
    padding: 28px 0;
  }

  .footerSpCta__title > p{
    font-size: 17px;
  }

  .footerSpCta__text{
    width: 86%;
  }

  .footerSpCta__text > p{
    font-size: 14px;
    line-height: 180%;
  }

  .footerSpCta__btn{
    width: 78%;
  }

  .footerSpMenu__inner{
    width: 92%;
  }

  .footerSpMenu__item > a{
    font-size: 14px;
  }
}

/* =========================
   動きを減らす設定
========================= */

@media (prefers-reduced-motion: reduce){
  .footerPc__cta,
  .footerSpCta__btn{
    transition: none;
  }
}

/* =========================================================
   SP固定CTA
   - 悠整骨院サイト用
   - スマホ画面下に「ご予約・お問い合わせ」ボタンを固定表示
   - 単色版
   ========================================================= */

:root{
  --sp-fixed-cta-space: 72px;
  --sp-fixed-cta-main: var(--nav-bg, #5c821a);
  --sp-fixed-cta-text: #ffffff;
}

/* 固定CTA（SPのみ表示） */
#sp-fixed-cta{
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  z-index: 999;

  padding: 10px 12px;
  padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px));
  box-sizing: border-box;

  background: rgba(255,255,255,0.88);
  border-top: 1px solid rgba(92,130,26,0.16);

  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);

  transform: translateZ(0);
  -webkit-transform: translateZ(0);
}

/* CTA本体リンク */
#sp-fixed-cta .sp-fixed-cta__link{
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;

  width: 100%;
  min-height: 52px;
  padding: 0 46px;
  box-sizing: border-box;

  color: var(--sp-fixed-cta-text);
  text-decoration: none;

  background: var(--sp-fixed-cta-main);

  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.35);

  box-shadow:
    0 10px 22px rgba(0,0,0,0.16),
    inset 0 1px 0 rgba(255,255,255,0.24);

  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
  -webkit-tap-highlight-color: transparent;

  transition:
    transform 0.15s ease,
    box-shadow 0.2s ease,
    filter 0.2s ease;
}

/* ラベル */
#sp-fixed-cta .sp-fixed-cta__label{
  position: relative;
  display: inline-block;
  width: 100%;

  padding: 0 20px;
  box-sizing: border-box;

  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.06em;
  text-align: center;
}

/* 右矢印 */
#sp-fixed-cta .sp-fixed-cta__label::after{
  content: "";
  position: absolute;
  right: -2px;
  top: 50%;

  width: 9px;
  height: 9px;

  border-top: 2px solid rgba(255,255,255,0.95);
  border-right: 2px solid rgba(255,255,255,0.95);

  transform: translateY(-50%) rotate(45deg);
  transition: transform 0.2s ease;
}

/* hover / active */
#sp-fixed-cta .sp-fixed-cta__link:hover{
  filter: brightness(1.04);
}

#sp-fixed-cta .sp-fixed-cta__link:hover .sp-fixed-cta__label::after{
  transform: translateY(-50%) rotate(45deg) translateX(3px);
}

#sp-fixed-cta .sp-fixed-cta__link:active{
  transform: translateY(1px) scale(0.995);
  box-shadow:
    0 8px 18px rgba(0,0,0,0.14),
    inset 0 1px 0 rgba(255,255,255,0.22);
}

/* フォーカス可視化 */
#sp-fixed-cta .sp-fixed-cta__link:focus-visible{
  outline: 3px solid rgba(92,130,26,0.28);
  outline-offset: 3px;
}

/* CTA分の下余白 */
body{
  padding-bottom: calc(var(--sp-fixed-cta-space) + env(safe-area-inset-bottom, 0px));
}

/* PCでは非表示 + 下余白解除 */
@media (min-width: 768px){
  .for-sp{
    display: none !important;
  }

  body{
    padding-bottom: 0;
  }
}

/* 小さいスマホ調整 */
@media (max-width: 374px){
  #sp-fixed-cta{
    padding-left: 10px;
    padding-right: 10px;
  }

  #sp-fixed-cta .sp-fixed-cta__link{
    min-height: 50px;
    padding-left: 40px;
    padding-right: 40px;
  }

  #sp-fixed-cta .sp-fixed-cta__label{
    font-size: 15px;
    letter-spacing: 0.04em;
  }
}

/* 動きを減らす設定 */
@media (prefers-reduced-motion: reduce){
  #sp-fixed-cta .sp-fixed-cta__link,
  #sp-fixed-cta .sp-fixed-cta__label::after{
    transition: none;
  }
}
/* ===== 文字アニメ：今回HTMLで使用しているものだけ ===== */

/* 初期状態（JSで文字を<span>分割して入る想定） */
.mojianime1 span,
.mojianime2 span,
.mojianime3 span,
.mojianime7 span{
  display: inline-block;
  opacity: 0;
  transform: translate(0, 0) rotateY(0deg);
  will-change: transform, opacity;
  backface-visibility: visible;
  transform-style: preserve-3d;
}

/* アニメーションごとの初期位置 */
.mojianime1 span{ transform: translate(-10px, -10px) rotateY(0deg); }
.mojianime2 span{ transform: translate(0, -10px) rotateY(0deg); }
.mojianime3 span{ transform: translate(0, 10px) rotateY(0deg); }
.mojianime7 span{ opacity: 0; transform: translateY(0); }




/* ===== 左からスライド：image-left-allのみ使用 ===== */
.image-left-all{
  opacity: 0;
  transform: translateX(-30px);
  transition: transform 1s ease-out, opacity 1s ease-out;
}
.image-left-all-active{
  transform: translateX(0);
  opacity: 1;
}


/* ふわっと下から（初期） */
.reveal{
  opacity: 0;
  transform: translateY(30px);
  transition: transform 1s ease-out, opacity 1s ease-out;
  will-change: transform, opacity;
}

/* 表示状態 */
.reveal.is-active{
  opacity: 1;
  transform: translateY(0);
}

/* 動きが苦手な人向け（推奨） */
@media (prefers-reduced-motion: reduce){
  .reveal{
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* ===========================
   SP固定メニュー PC非表示
=========================== */
@media (min-width: 768px){
  #sp-fixed-menu{
    display: none;
  }
}

@media (max-width: 767px){
  body{
    padding-bottom: 20px; /* 固定メニューの高さに合わせる */
  }
}
/* ===== SP固定CTAが原因の横スクロールを確実に潰す ===== */
#sp-fixed-cta,
#sp-fixed-cta *{
  box-sizing: border-box;
}

#sp-fixed-cta{
  left: 0;
  right: 0;
  width: 100%;
  max-width: 100%;
}
/* ===== 横はみ出し根本対策（最優先） ===== */
*, *::before, *::after{
  box-sizing: border-box;
}

/* ===============================
   本文フォント・スマホ本文サイズ調整
   ※本文はゴシックに統一
   ※スマホ本文は16px、注釈は14pxに統一
=============================== */

/* 本文系テキストのみゴシックに統一 */
body,
.top-shoukai-inner > p,
.service-card__text,
.profile__body p,
.strength-section__intro p,
.strength-card__text,
.shinryoujikan-note,
.qa-answer,
.access__text > p,
.contact__message p,
.contact__notes,
.contact__notes li,
.contact-card__lead,
.contact-card__info,
.contact-card__info p,
.contact-card__list,
.contact-card__list li,
.price-list__menu,
.price-list__tax,
.treatment-intro__text p,
.posture-fv__text,
.posture-intro__text p,
.posture-text p,
.posture-worry__text p,
.posture-flow__lead p,
.posture-flow-item__body p,
.posture-price__note p,
.jiko-flow__text,
.jiko-info__text,
.parking-text,
.footerPc__infoTable,
.footerPc__infoTable th,
.footerPc__infoTable td,
.footerPc__menu,
.footerSpMenu,
.footerSpCopyright,
.footerPcCopyright{
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
}

/* スマホ表示：本文16px、注釈14pxに統一 */
@media (max-width: 767px){

  /* 本文 */
  .top-shoukai-inner > p,
  .service-card__text,
  .profile__body p,
  .strength-section__intro p,
  .strength-card__text,
  .qa-answer,
  .access__text > p,
  .contact__message p,
  .treatment-intro__text p,
  .posture-fv__text,
  .posture-intro__text p,
  .posture-text p,
  .posture-worry__text p,
  .posture-flow__lead p,
  .posture-flow-item__body p,
  .jiko-flow__text,
  .jiko-info__text,
  .parking-text{
    font-size: 16px;
  }

  /* 注釈 */
  .shinryoujikan-note,
  .posture-price__note p,
  .contact__notes,
  .contact__notes li,
  .contact-card__list,
  .contact-card__list li,
  .price-list__tax,
  .footerPcCopyright > p,
  .footerSpCopyright p{
    font-size: 14px;
  }
}
