/* =========================================================
   整体HYGGE｜共通スタイル（モバイルファースト）
   色はロゴから採取：深緑 #0b4335 / 若葉 #3ea15b / 朱 #d66842
   ========================================================= */
:root{
  --green:#0b4335;        /* ロゴの深緑（メインカラー・文字・ボタン） */
  --green-hover:#145a48;
  --leaf:#3ea15b;         /* ロゴの若葉色（アクセント） */
  --leaf-pale:#eaf5ec;    /* 淡い若葉（セクション背景） */
  --leaf-line:#d4e6d9;
  --orange:#d66842;       /* ロゴの朱色（ごく小さな差し色のみ） */
  --white:#ffffff;
  --ink:#1f2b27;          /* 本文 */
  --muted:#55625d;        /* 補足文 */
  --line:#e2e8e4;
  --radius:12px;
  --header-h:64px;
  --bar-h:72px;           /* スマホ下部固定バーの高さ（余白確保用） */

  /* ---- デザイン変数（2026-10-16 C案「活力・前向きさ」に決定） ---- */
  --page-bg:#fff;
  --section-alt:#eaf5ec;   /* 交互のセクション背景 */
  --card-bg:#fff;
  --card-border:#dbe9de;
  --radius-sm:8px;                 /* 小さな部品（メニュー写真など） */
  --radius-lg:16px;                 /* 大きな囲み（初めての方へ） */
  --radius-btn:999px;
  --shadow-card:0 6px 18px -14px rgba(11,67,53,.45);
  --shadow-hover:0 14px 26px -16px rgba(11,67,53,.5);
  --font-body:"Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;
  --font-heading:"Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;
  --heading-weight:900;
  --heading-size:clamp(1.55rem,6.2vw,2.35rem);
  --heading-spacing:.01em;
  --eyebrow-color:#2a8245;
  --eyebrow-mark:var(--orange);
  --header-bg:rgba(255,255,255,.96);
  --hero-bg:linear-gradient(160deg,#0b4335 0%,#11594a 100%);
  --hero-fg:#fff;
  --hero-accent:#7fd497;
  --hero-text:rgba(255,255,255,.92);
  --hero-area:rgba(255,255,255,.85);
  --hero-weight:900;
  --hero-size:clamp(1.65rem,7.2vw,3rem);
  --btn-bg:#2a8245;
  --btn-bg-hover:#236e3a;
  --btn-fg:#fff;
  --btn-shadow:0 4px 0 var(--green);
  --first-bg:#eaf5ec;
  --first-border:var(--orange);
  --contact-bg:var(--green);
  --footer-bg:#fff;
  --bar-bg:var(--green);
  --section-pad:64px;
  --section-pad-pc:96px;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  font-family:var(--font-body);
  font-size:16px;line-height:1.9;color:var(--ink);background:var(--page-bg);
  -webkit-font-smoothing:antialiased;font-feature-settings:"palt" 1;
  padding-bottom:var(--bar-h); /* 固定ボタンが本文・フッターを隠さないように */
}
@media(min-width:900px){body{padding-bottom:0;}}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px;}
.wrap.narrow{max-width:760px;}
section{padding:var(--section-pad) 0;scroll-margin-top:var(--header-h);}
@media(min-width:900px){section{padding:var(--section-pad-pc) 0;}}
.nb{display:inline-block;}

/* ---------- 見出し ---------- */
.eyebrow{
  display:flex;align-items:center;justify-content:center;gap:10px;
  font-size:.72rem;letter-spacing:.24em;font-weight:700;color:var(--eyebrow-color);margin-bottom:10px;
}
.eyebrow::before{content:"";width:18px;height:2px;border-radius:2px;background:var(--eyebrow-mark);}
.heading{
  font-family:var(--font-heading);font-weight:var(--heading-weight);text-align:center;color:var(--green);
  font-size:var(--heading-size);line-height:1.6;letter-spacing:var(--heading-spacing);margin-bottom:18px;
  text-wrap:balance;
}
.lead{color:var(--muted);font-size:.95rem;max-width:640px;margin:0 auto 36px;text-wrap:pretty;}
@media(min-width:700px){.lead{text-align:center;}}

/* ---------- ボタン ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;
  padding:12px 30px;border-radius:var(--radius-btn);background:var(--btn-bg);color:var(--btn-fg);text-decoration:none;
  font-weight:700;font-size:.95rem;letter-spacing:.05em;border:2px solid var(--btn-bg);box-shadow:var(--btn-shadow);
  transition:background .2s,color .2s,border-color .2s;cursor:pointer;font-family:inherit;
}
.btn:hover{background:var(--btn-bg-hover);border-color:var(--btn-bg-hover);}
.btn.outline{background:#fff;color:var(--green);border-color:var(--green);}
.btn.outline:hover{background:var(--leaf-pale);}
.btn.on-dark{background:#fff;color:var(--green);border-color:#fff;}
.btn.on-dark:hover{background:var(--leaf-pale);}
.btn.block{display:flex;width:100%;}
@media(min-width:700px){.btn.block{display:inline-flex;width:auto;min-width:280px;}}
.btn .arrow{transition:transform .2s;}
.btn:hover .arrow{transform:translateX(3px);}
.center{text-align:center;}

/* ---------- 仮写真（プレースホルダー） ---------- */
.ph-photo{
  position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  background:
    repeating-linear-gradient(135deg, rgba(62,161,91,.07) 0 12px, transparent 12px 24px),
    var(--leaf-pale);
  border:1.5px dashed #a9cdb4;border-radius:var(--radius);color:#4b7a5c;text-align:center;
  padding:12px;overflow:hidden;
}
.ph-photo svg{width:30px;height:30px;stroke:#6ea582;fill:none;stroke-width:1.6;}
.ph-photo .ph-label{font-size:.78rem;font-weight:700;line-height:1.5;}
.ph-photo .ph-tag{
  position:absolute;top:8px;left:8px;font-size:.62rem;font-weight:700;letter-spacing:.08em;
  background:#fff;color:var(--orange);border:1px solid #f0c9b9;border-radius:999px;padding:1px 8px;
}

/* ---------- 確認用ラフの帯 ---------- */
.rough-banner{
  background:#fff8e1;border-bottom:1px solid #f0d98c;color:#6b5a1c;
  font-size:.72rem;text-align:center;padding:6px 14px;line-height:1.6;
}

/* =========================================================
   ① ヘッダー
   ========================================================= */
header.site-header{
  position:sticky;top:0;z-index:100;background:var(--header-bg);
  backdrop-filter:blur(8px);border-bottom:1px solid var(--line);
}
.nav{display:flex;align-items:center;justify-content:space-between;height:var(--header-h);}
.brand{display:block;flex:none;}
.brand img{height:40px;width:auto;}
.pc-nav{display:none;}
.menu-btn{
  width:48px;height:48px;border-radius:10px;border:1px solid var(--line);background:#fff;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;padding:0;
  font-family:inherit;color:var(--green);
}
.menu-bars{width:22px;height:14px;position:relative;display:block;}
.menu-bars span{
  position:absolute;left:0;right:0;height:2px;border-radius:2px;background:var(--green);
  transition:transform .25s ease,opacity .2s ease,top .25s ease;
}
.menu-bars span:nth-child(1){top:0;}
.menu-bars span:nth-child(2){top:6px;}
.menu-bars span:nth-child(3){top:12px;}
.menu-btn .menu-txt{font-size:.55rem;font-weight:700;letter-spacing:.08em;line-height:1;margin-top:3px;}
.menu-btn.open .menu-bars span:nth-child(1){top:6px;transform:rotate(45deg);}
.menu-btn.open .menu-bars span:nth-child(2){opacity:0;}
.menu-btn.open .menu-bars span:nth-child(3){top:6px;transform:rotate(-45deg);}

.site-menu-overlay{
  position:fixed;inset:var(--header-h) 0 0 0;z-index:140;background:rgba(11,67,53,.35);
  opacity:0;pointer-events:none;transition:opacity .28s ease;
}
.site-menu-overlay.open{opacity:1;pointer-events:auto;}
.site-menu{
  position:fixed;top:var(--header-h);right:0;bottom:0;z-index:150;width:min(340px,88vw);
  background:#fff;box-shadow:-20px 0 50px -24px rgba(11,67,53,.45);
  transform:translateX(100%);transition:transform .32s cubic-bezier(.2,.7,.3,1);
  display:flex;flex-direction:column;padding:12px 22px 28px;overflow-y:auto;visibility:hidden;
}
.site-menu.open{transform:translateX(0);visibility:visible;}
.site-menu nav{display:flex;flex-direction:column;margin-bottom:24px;}
.site-menu nav a{
  display:flex;align-items:center;justify-content:space-between;min-height:56px;
  border-bottom:1px solid var(--line);font-size:1rem;font-weight:700;color:var(--green);text-decoration:none;
}
.site-menu nav a::after{content:"→";color:var(--leaf);font-weight:400;}
.site-menu nav a[aria-current="page"]{color:var(--leaf);}
.site-menu .btn{width:100%;}
.site-menu .menu-insta{margin-top:14px;text-align:center;font-size:.85rem;}
.site-menu .menu-insta a{color:var(--green);font-weight:700;}

@media(min-width:900px){
  :root{--header-h:80px;}
  .brand img{height:48px;}
  .menu-btn{display:none;}
  .pc-nav{display:flex;align-items:center;gap:26px;}
  .pc-nav a{font-size:.88rem;font-weight:700;color:var(--green);text-decoration:none;padding:6px 0;position:relative;}
  .pc-nav a:not(.btn)::after{
    content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--leaf);
    transform:scaleX(0);transition:transform .2s;transform-origin:left;
  }
  .pc-nav a:not(.btn):hover::after,.pc-nav a[aria-current="page"]::after{transform:scaleX(1);}
  .pc-nav .btn{min-height:46px;padding:8px 26px;font-size:.88rem;color:var(--btn-fg);}
}

/* =========================================================
   ② ファーストビュー
   ========================================================= */
.hero{padding:28px 0 56px;background:var(--hero-bg);}
.hero-grid{display:grid;gap:28px;align-items:center;}
.hero-area{
  display:inline-block;font-size:.78rem;color:var(--hero-area);letter-spacing:.06em;margin-bottom:14px;
  border-left:3px solid var(--leaf);padding-left:10px;line-height:1.4;
}
.hero h1{
  font-family:var(--font-heading);font-weight:var(--hero-weight);color:var(--hero-fg);
  font-size:var(--hero-size);line-height:1.5;letter-spacing:.02em;margin-bottom:18px;
}
.hero h1 .accent{color:var(--hero-accent);}
.hero-sub{font-size:.95rem;color:var(--hero-text);margin-bottom:26px;}
.hero-photo{aspect-ratio:4/3;}
.hero-photo .ph-label{font-size:.85rem;}
@media(min-width:900px){
  .hero{padding:72px 0 96px;}
  .hero-grid{grid-template-columns:1.05fr 1fr;gap:56px;}
  .hero-photo{aspect-ratio:5/4;}
}

/* =========================================================
   ③ HYGGEの特徴
   ========================================================= */
.feature-list{list-style:none;display:grid;gap:14px;max-width:900px;margin:0 auto;}
.feature{
  display:grid;grid-template-columns:56px 1fr;gap:16px;align-items:center;
  background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius);padding:18px 18px;
  box-shadow:var(--shadow-card);
}
.feature-ico{
  width:56px;height:56px;border-radius:50%;background:var(--leaf-pale);
  display:flex;align-items:center;justify-content:center;
}
.feature-ico svg{width:28px;height:28px;stroke:var(--green);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.feature h3{font-family:var(--font-heading);font-size:1.08rem;color:var(--green);line-height:1.5;margin-bottom:2px;}
.feature p{font-size:.9rem;color:var(--muted);line-height:1.7;}
@media(min-width:900px){
  .feature-list{grid-template-columns:repeat(3,1fr);gap:20px;}
  .feature{grid-template-columns:1fr;text-align:center;justify-items:center;padding:32px 22px;}
  .feature-ico{width:72px;height:72px;margin-bottom:6px;}
  .feature-ico svg{width:34px;height:34px;}
}

/* =========================================================
   ④ 施術メニュー
   ========================================================= */
.menu-section{background:var(--section-alt);}
.menu-list{display:grid;gap:12px;max-width:1000px;margin:0 auto;}
.menu-card{
  display:grid;grid-template-columns:104px 1fr;gap:14px;align-items:center;
  background:var(--card-bg);border:1px solid var(--leaf-line);border-radius:var(--radius);padding:12px;
  box-shadow:var(--shadow-card);text-decoration:none;color:inherit;transition:border-color .2s,box-shadow .2s;
}
.menu-card:hover{border-color:var(--leaf);box-shadow:var(--shadow-hover);}
.menu-card .ph-photo{aspect-ratio:1;border-radius:var(--radius-sm);padding:6px;}
.menu-card .ph-photo svg{width:22px;height:22px;}
.menu-card .ph-photo .ph-label{font-size:.62rem;}
.menu-card .ph-photo .ph-tag{top:5px;left:5px;font-size:.55rem;padding:0 6px;}
.menu-card h3{font-family:var(--font-heading);font-size:1.02rem;color:var(--green);line-height:1.45;margin-bottom:4px;}
.menu-card p{font-size:.84rem;color:var(--muted);line-height:1.65;margin-bottom:6px;}
.menu-card .more{font-size:.8rem;font-weight:700;color:var(--leaf);}
@media(min-width:700px){.menu-list{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1000px){
  .menu-list{grid-template-columns:repeat(3,1fr);gap:18px;}   /* 6種類を3列×2段 */
  .menu-card{grid-template-columns:1fr;grid-template-rows:auto 1fr;padding:14px 14px 20px;align-items:stretch;}
  .menu-card .ph-photo,.menu-card .menu-photo{aspect-ratio:4/3;}
  .menu-card .body{padding:4px 6px 0;}
}

/* =========================================================
   ⑤ お悩みから探す（アコーディオン）
   ========================================================= */
.worry-list{display:grid;gap:12px;max-width:760px;margin:0 auto;}
.worry{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius);overflow:hidden;transition:border-color .2s;box-shadow:var(--shadow-card);}
.worry.open{border-color:var(--leaf);}
.worry-q{
  width:100%;display:flex;align-items:center;gap:12px;text-align:left;min-height:64px;
  background:none;border:0;padding:14px 16px;cursor:pointer;font-family:inherit;
  color:var(--green);font-size:.98rem;font-weight:700;line-height:1.5;
}
.w-num{
  flex:none;width:30px;height:30px;border-radius:50%;background:var(--leaf-pale);color:var(--green);
  display:flex;align-items:center;justify-content:center;font-size:.8rem;
}
.worry.open .w-num{background:var(--green);color:#fff;}
.w-t{flex:1;}
.w-mark{flex:none;width:16px;height:16px;position:relative;}
.w-mark::before,.w-mark::after{
  content:"";position:absolute;left:0;top:7px;width:16px;height:2px;border-radius:2px;
  background:var(--leaf);transition:transform .3s ease;
}
.w-mark::after{transform:rotate(90deg);}
.worry.open .w-mark::after{transform:rotate(0);}
html.js-ui .worry-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s ease;}
html.js-ui .worry.open .worry-a{grid-template-rows:1fr;}
.worry-a-in{overflow:hidden;min-height:0;}
.worry-a-pad{padding:0 16px 18px 58px;}
.worry-a p{font-size:.9rem;color:var(--ink);margin-bottom:12px;}
.worry-links{display:flex;flex-wrap:wrap;gap:8px;}
.worry-links a{
  display:inline-flex;align-items:center;min-height:40px;padding:6px 14px;border-radius:999px;
  background:var(--leaf-pale);color:var(--green);font-size:.82rem;font-weight:700;text-decoration:none;
}
.worry-links a:hover{background:var(--leaf-line);}

/* =========================================================
   ⑥ 初めての方へ
   ========================================================= */
.first-section{padding-top:0;}
.first-box{
  max-width:760px;margin:0 auto;background:var(--first-bg);border-radius:var(--radius-lg);
  padding:32px 22px;text-align:center;border-top:4px solid var(--first-border);
}
.first-box .heading{font-size:clamp(1.2rem,4.8vw,1.6rem);margin-bottom:12px;}
.first-box p:not(.eyebrow){font-size:.92rem;color:var(--ink);margin-bottom:22px;text-align:left;}
@media(min-width:700px){.first-box{padding:44px 48px;}.first-box p:not(.eyebrow){text-align:center;}}

/* =========================================================
   ⑦ お知らせ（取り外し可）
   ========================================================= */
.news-section{background:var(--section-alt);}
.news-list{list-style:none;max-width:760px;margin:0 auto;background:var(--card-bg);border-radius:var(--radius);border:1px solid var(--leaf-line);padding:4px 18px;}
.news-list li{display:flex;flex-direction:column;gap:2px;padding:14px 0;border-bottom:1px solid var(--line);}
.news-list li:last-child{border-bottom:0;}
.news-date{font-size:.78rem;color:var(--leaf);font-weight:700;letter-spacing:.06em;}
.news-title{font-size:.92rem;color:var(--muted);}
.news-note{max-width:760px;margin:14px auto 0;font-size:.82rem;color:var(--muted);text-align:center;}
@media(min-width:700px){.news-list li{flex-direction:row;gap:24px;align-items:baseline;}}

/* =========================================================
   ⑧ アクセス
   ========================================================= */
.access-grid{display:grid;gap:24px;max-width:900px;margin:0 auto 30px;align-items:center;}
.access-photo{aspect-ratio:3/2;}
.access-info{display:grid;grid-template-columns:7.5em 1fr;font-size:.92rem;}
.access-info dt{color:var(--green);font-weight:700;padding:12px 0;border-bottom:1px solid var(--line);}
.access-info dd{padding:12px 0;border-bottom:1px solid var(--line);}
.tbd{display:inline-block;font-size:.8rem;color:var(--orange);background:#fdf1ec;border-radius:6px;padding:0 8px;font-weight:700;}
@media(min-width:800px){.access-grid{grid-template-columns:1fr 1fr;gap:40px;}}

/* =========================================================
   ⑨ Instagram
   ========================================================= */
.insta-section{background:var(--section-alt);}
.insta-box{max-width:760px;margin:0 auto;text-align:center;}
.insta-box .lead{text-align:center;margin-bottom:26px;}
.btn.insta svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.9;}

/* =========================================================
   ⑩ お問い合わせ・ご予約
   ========================================================= */
.contact-section{background:var(--contact-bg);color:#fff;}
.contact-section .eyebrow{color:#9fd3ae;}
.contact-section .heading{color:#fff;}
.contact-section .lead{color:rgba(255,255,255,.86);text-align:left;}
@media(min-width:700px){.contact-section .lead{text-align:center;}}

/* =========================================================
   フッター
   ========================================================= */
footer.site-footer{background:var(--footer-bg);border-top:1px solid var(--line);padding:44px 0 28px;text-align:center;}
.f-logo{width:110px;margin:0 auto 22px;}
.f-nav{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;max-width:420px;margin:0 auto 18px;font-size:.85rem;}
.f-nav a{display:flex;align-items:center;justify-content:center;min-height:44px;color:var(--green);text-decoration:none;font-weight:700;}
.f-insta{font-size:.85rem;margin-bottom:22px;}
.f-insta a{color:var(--green);font-weight:700;}
.f-copy{font-size:.72rem;color:var(--muted);}
@media(min-width:900px){.f-nav{display:flex;justify-content:center;gap:28px;max-width:none;}}

/* =========================================================
   スマホ下部固定ボタン
   ========================================================= */
.mobile-cta-bar{
  position:fixed;left:0;right:0;bottom:0;z-index:90;display:flex;gap:10px;
  background:var(--bar-bg);border-top:1px solid var(--line);
  padding:10px 14px calc(10px + env(safe-area-inset-bottom));
  box-shadow:0 -8px 20px -10px rgba(11,67,53,.3);
}
.mc-btn{
  flex:1;display:flex;align-items:center;justify-content:center;gap:6px;min-height:52px;
  border-radius:var(--radius-btn);font-weight:700;font-size:.92rem;text-decoration:none;white-space:nowrap;
}
.mc-btn svg{width:18px;height:18px;flex:none;}
.mc-tel{background:#fff;color:var(--green);border:2px solid var(--green);}
.mc-reserve{background:var(--btn-bg);color:var(--btn-fg);border:2px solid var(--btn-bg);}
@media(min-width:900px){.mobile-cta-bar{display:none;}}

/* =========================================================
   下層ページ（仮ページ）
   ========================================================= */
.page-head{background:var(--leaf-pale);padding:44px 0 36px;text-align:center;}
.page-head .heading{margin-bottom:6px;}
.page-head p{font-size:.85rem;color:var(--muted);}
.temp-note{
  max-width:760px;margin:0 auto 32px;background:#fff8e1;border:1px solid #f0d98c;color:#6b5a1c;
  border-radius:var(--radius);padding:14px 18px;font-size:.86rem;
}
.temp-block{max-width:760px;margin:0 auto 18px;border:1px solid var(--line);border-radius:var(--radius);padding:20px;scroll-margin-top:calc(var(--header-h) + 12px);}
.temp-block h2{font-family:var(--font-heading);font-size:1.1rem;color:var(--green);margin-bottom:6px;}
.temp-block p{font-size:.88rem;color:var(--muted);}
.temp-block:target{border-color:var(--leaf);box-shadow:0 0 0 3px var(--leaf-pale);}
.back-link{text-align:center;margin-top:32px;}
.pc-br{display:none;}
@media(min-width:900px){.pc-br{display:inline;}}
.hero h1 .nb{white-space:nowrap;}
@media(max-width:359px){.hero h1 .nb{white-space:normal;}} /* とても狭い画面では見出しを折り返す */

/* =========================================================
   C案の装飾：斜めの区切りと色面で動きを出す
   ========================================================= */
.eyebrow::before{width:26px;height:4px;border-radius:2px;transform:skewX(-30deg);}
.hero{
  position:relative;overflow:hidden;padding-bottom:84px;
  clip-path:polygon(0 0,100% 0,100% calc(100% - 36px),0 100%);
}
.hero .wrap{position:relative;}
.hero-area{border-left-color:var(--orange);}
.hero .btn{background:#fff;color:var(--green);border-color:#fff;box-shadow:0 4px 0 var(--leaf);}
.hero .btn:hover{background:var(--leaf-pale);}
.feature{border-left:5px solid var(--leaf);}
.feature-ico{background:var(--green);}
.feature-ico svg{stroke:#fff;}
.menu-section,
.contact-section{
  clip-path:polygon(0 28px,100% 0,100% 100%,0 100%);padding-top:calc(var(--section-pad) + 20px);
}
.menu-card .more,
.worry-links a{color:#236e3a;}
.worry.open{border-color:var(--leaf);box-shadow:inset 4px 0 0 var(--leaf),var(--shadow-card);}
.first-box{border-top-width:5px;}
.contact-section .btn{box-shadow:0 4px 0 var(--leaf);}
footer.site-footer{border-top:5px solid var(--leaf);}
.mobile-cta-bar{border-top:0;}
.mc-tel{background:transparent;color:#fff;border-color:rgba(255,255,255,.85);}
.mc-reserve{background:#fff;color:var(--green);border-color:#fff;}
@media(min-width:900px){
  .hero{padding-bottom:128px;clip-path:polygon(0 0,100% 0,100% calc(100% - 64px),0 100%);}
  .menu-section,
  .contact-section{clip-path:polygon(0 48px,100% 0,100% 100%,0 100%);padding-top:calc(var(--section-pad-pc) + 32px);}
}


/* =========================================================
   2026-10-16 トップページ仕上げ
   ========================================================= */
/* ---- 実写真（仮写真の枠と同じ大きさ・角丸で表示。拡大はしない） ---- */
.photo,.menu-photo{position:relative;overflow:hidden;border-radius:var(--radius);background:var(--leaf-pale);}
.photo picture,.menu-photo picture{display:block;width:100%;height:100%;}
.photo img,.menu-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.hero-photo.photo{aspect-ratio:3/2;}                 /* 横長写真の左右を切りすぎないよう3:2 */
@media(min-width:900px){.hero-photo.photo{aspect-ratio:3/2;}}
/* 写真ごとのトリミング位置（人物・施術部位が切れないよう個別に調整） */
.pos-hero{object-position:62% 50%;}
.pos-oxygen{object-position:38% 50%;}
.pos-ems{object-position:50% 32%;}
.pos-oni{object-position:63% 60%;}   /* 施術者の手元が中心になる位置（ファーストビューと同じ写真） */

/* ---- ② ファーストビューのメインコピー（問いかけを目立たせる） ---- */
.hero h1.hero-copy{margin-bottom:20px;line-height:1.45;}
.hero-copy-lead{display:block;font-size:.66em;font-weight:700;letter-spacing:.04em;color:var(--hero-text);margin-bottom:.35em;}
.hero-copy-q{display:block;color:var(--hero-fg);}
.hero-copy-q .nb:last-child{color:var(--hero-accent);}
.hero .hero-sub{font-family:var(--font-heading);font-weight:700;font-size:clamp(1rem,4.2vw,1.2rem);line-height:1.8;letter-spacing:.02em;color:var(--hero-text);margin-bottom:28px;}
.hero h1.hero-copy{font-size:clamp(1.55rem,6.9vw,2.6rem);}

/* ---- ④ 施術メニュー：6枚の高さ・余白・「詳しく見る」の位置をそろえる ---- */
.menu-list{grid-auto-rows:1fr;}
.menu-card .menu-photo{aspect-ratio:1;border-radius:var(--radius-sm);}
.menu-card .body{display:flex;flex-direction:column;height:100%;justify-content:center;}
.menu-card .more{margin-top:auto;padding-top:2px;}
.menu-card h3 .sub{font-size:.82em;display:inline-block;}
@media(max-width:999px){.menu-card .body{justify-content:flex-start;padding:2px 0;}}
@media(min-width:1000px){.menu-card .menu-photo{aspect-ratio:4/3;}}   /* PCは6枚とも4:3でそろえる */

/* ---- ⑧ アクセス：営業時間と電話予約受付時間を分けて表示 ---- */
@media(max-width:380px){.access-info{grid-template-columns:6.2em 1fr;}}

/* ---- ⑩ ご予約：クーポン案内・注意事項・予約ボタン（第1：エキテン／第2：ホットペッパー／LINE） ---- */
.coupon-note{
  display:flex;align-items:center;gap:8px;font-size:.92rem;font-weight:700;color:#c9f0d4;margin:-8px 0 16px;
}
.coupon-note::before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:var(--orange);}
.reserve-caution{
  background:rgba(255,255,255,.08);border-left:3px solid #7fd497;border-radius:8px;
  padding:14px 16px;margin-bottom:22px;text-align:left;
}
.reserve-caution p{font-size:.92rem;line-height:1.85;color:rgba(255,255,255,.92);}
.reserve-buttons{display:grid;gap:12px;margin-bottom:12px;}
.btn.reserve-main{font-size:1.02rem;min-height:58px;}
.btn.reserve-sub{background:transparent;color:#fff;border-color:rgba(255,255,255,.85);box-shadow:none;}
.btn.reserve-sub:hover{background:rgba(255,255,255,.1);border-color:#fff;}
.btn.reserve-line{background:transparent;color:#fff;border:1.5px dashed rgba(255,255,255,.6);box-shadow:none;font-size:.9rem;min-height:48px;}
.btn.reserve-line:hover{background:rgba(255,255,255,.08);}
.btn .ext{font-size:.85em;opacity:.8;}
.reserve-more{margin-top:18px;font-size:.88rem;}
.reserve-more a{color:#c9f0d4;font-weight:700;}
@media(min-width:700px){
  .coupon-note{justify-content:center;}
  .reserve-buttons{grid-template-columns:1fr 1fr;}
  .reserve-buttons .btn.block,.btn.reserve-line{width:100%;min-width:0;}
  .btn.reserve-line{display:flex;}
}

/* ---- お問い合わせ・ご予約ページ（白い背景用） ---- */
.coupon-note.light{color:var(--green);margin:4px 0 12px;justify-content:flex-start;}
.reserve-caution.light{background:var(--leaf-pale);border-left-color:var(--leaf);margin-bottom:16px;}
.reserve-caution.light p{color:var(--ink);font-size:.9rem;}
.reserve-buttons.light{margin-bottom:0;}
.temp-block .tel-link{font-size:1.3rem;font-weight:700;color:var(--green);}
.temp-block .line-btn{margin-top:12px;}

/* ---- 狭いスマホでの折り返し調整 ---- */
.coupon-note{text-align:left;justify-content:flex-start;align-items:flex-start;line-height:1.6;}
.coupon-note::before{margin-top:.55em;}
.reserve-buttons .btn,.btn.reserve-line{padding-left:16px;padding-right:16px;letter-spacing:.03em;}
.btn.reserve-sub{font-size:.9rem;}
@media(max-width:400px){.contact-section .heading{font-size:clamp(1.3rem,5.6vw,1.55rem);}}
@media(max-width:359px){.btn{padding-left:16px;padding-right:16px;}.btn.reserve-sub{font-size:.84rem;}}
@media(min-width:700px){.coupon-note{justify-content:center;align-items:center;}.coupon-note::before{margin-top:0;}}

/* ---- ② ファーストビュー：施術写真が右から左へ流れる（多彩な施術を見せる） ---- */
.hero-slider{
  display:flex;overflow:hidden;margin:0 -20px;padding:4px 0;   /* スマホは画面の端まで流す */
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 6%,#000 94%,transparent 100%);
          mask-image:linear-gradient(90deg,transparent 0,#000 6%,#000 94%,transparent 100%);
}
.hero-track{
  display:flex;gap:12px;padding-right:12px;list-style:none;flex:none;
  animation:hero-flow 36s linear infinite;
}
.hero-slide{
  position:relative;flex:none;width:min(72vw,320px);aspect-ratio:4/3;
  border-radius:var(--radius);overflow:hidden;background:rgba(255,255,255,.08);
}
.hero-slide picture{display:block;width:100%;height:100%;}
.hero-slide img{width:100%;height:100%;object-fit:cover;display:block;}
.slide-label{
  position:absolute;left:10px;bottom:10px;padding:4px 12px;border-radius:999px;
  background:rgba(11,67,53,.82);color:#fff;font-size:.8rem;font-weight:700;letter-spacing:.03em;line-height:1.5;
}
@keyframes hero-flow{from{transform:translateX(0);}to{transform:translateX(-100%);}}
.hero-slider:hover .hero-track{animation-play-state:paused;}   /* PCでマウスを重ねると止まる */
@media(min-width:900px){
  .hero-slider{margin:0;border-radius:var(--radius);}
  .hero-slide{width:300px;}
}
/* 動きを減らす設定の人には自動で流さず、指で横にスワイプして見られる形にする */
@media(prefers-reduced-motion:reduce){
  .hero-slider{overflow-x:auto;scroll-snap-type:x mandatory;-webkit-mask-image:none;mask-image:none;}
  .hero-track{animation:none;}
  .hero-track[aria-hidden="true"]{display:none;}
  .hero-slide{scroll-snap-align:start;}
  .hero-slider .hero-track{padding-left:20px;}
}


/* ---- ⑤ お客様の声と実績（「お悩みから探す」と入れ替え・2026-10-16） ---- */
.stat-list{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-width:760px;margin:0 auto 22px;}
.stat{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center;
  background:var(--leaf-pale);border-radius:var(--radius);padding:14px 6px;min-height:84px;
}
.stat-label{font-size:.78rem;font-weight:700;color:var(--green);line-height:1.4;}
.stat-value{font-family:var(--font-heading);font-weight:900;font-size:1.3rem;color:var(--green);line-height:1.2;}
.voice-list{list-style:none;display:grid;gap:12px;max-width:760px;margin:0 auto;}
.voice-card{
  background:var(--card-bg);border:1px solid var(--card-border);border-left:5px solid var(--leaf);
  border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow-card);
}
.voice-text{font-size:.95rem;color:var(--muted);margin-bottom:6px;}
.voice-meta{font-size:.78rem;color:var(--muted);}
.voice-note{max-width:760px;margin:10px auto 24px;font-size:.78rem;color:var(--muted);}
@media(min-width:900px){
  .stat-list{gap:16px;}
  .stat{min-height:100px;}
  .voice-list{grid-template-columns:repeat(3,1fr);max-width:1000px;}
  .voice-note{max-width:1000px;}
}

/* ---- クーポン案内（予約ボタンのすぐ上・「＼ ／」だけで目を引く。ボタンと紛れないよう枠は付けない） ---- */
.coupon-callout{
  display:flex;align-items:center;justify-content:center;gap:12px;margin:0 auto 14px;text-align:center;
}
.coupon-callout::before,.coupon-callout::after{
  content:"";flex:none;width:2px;height:30px;border-radius:2px;background:#ffb999;
}
.coupon-callout::before{transform:rotate(-30deg);}
.coupon-callout::after{transform:rotate(30deg);}
.cc-text{font-size:1rem;font-weight:900;line-height:1.55;letter-spacing:.03em;color:#fff;}
.cc-text .nb:first-child{color:#ffb999;}
@media(max-width:359px){.cc-text{font-size:.9rem;}.coupon-callout{gap:8px;}}
@media(max-width:699px){.cc-text .nb{display:block;}}   /* スマホは2行に固定し、＼／を文章のすぐ横に寄せる */

/* ---- ⑩ ご予約：文字の詰まりをほどき、すっきり見せる（2026-10-16） ---- */
.contact-section .heading{margin-bottom:22px;}
.contact-section .lead{text-align:center;font-size:.92rem;line-height:2;margin-bottom:36px;}
.reserve-caution{padding:18px 20px;margin-bottom:40px;}
.reserve-caution p{font-size:.86rem;line-height:2;}
.coupon-callout{margin-bottom:18px;}
.reserve-buttons{gap:14px;margin-bottom:0;}
.btn.reserve-line{margin-top:28px;}
.reserve-more{margin-top:28px;}
@media(min-width:700px){
  .contact-section .lead{font-size:.95rem;}
  .reserve-caution{padding:20px 24px;}
}

/* ---- お客様の声と実績：ビフォーアフター（提案用・2026-10-16） ---- */
.ba-heading{font-family:var(--font-heading);font-weight:900;font-size:1.1rem;color:var(--green);text-align:center;margin:8px 0 14px;}
.ba-list{display:grid;gap:16px;max-width:760px;margin:0 auto 32px;}
.ba-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-card);}
.ba-photo{position:relative;background:#f3f5f4;aspect-ratio:1;}
.ba-photo picture{display:block;width:100%;height:100%;}
.ba-photo img{width:100%;height:100%;object-fit:contain;display:block;}   /* 体の輪郭が切れないよう全体を表示 */
.ba-tag{
  position:absolute;bottom:10px;padding:3px 12px;border-radius:999px;font-size:.78rem;font-weight:700;letter-spacing:.05em;
  background:rgba(11,67,53,.85);color:#fff;
}
/* 写真（幅56%で中央表示）の左半分・右半分の中央に札を置く */
.ba-before{left:36%;transform:translateX(-50%);}
.ba-after{left:64%;transform:translateX(-50%);background:var(--orange);}
/* 横長の比較写真（幅いっぱいに表示）は、左右それぞれの中央に札を置く */
.ba-before.ba-wide{left:25%;}
.ba-after.ba-wide{left:75%;}
.ba-card figcaption{padding:12px 16px 14px;}
.ba-menu{display:block;font-weight:900;color:var(--green);font-size:.98rem;margin-bottom:2px;}
.ba-note{display:block;font-size:.82rem;color:var(--muted);line-height:1.7;}
@media(min-width:700px){.ba-list{grid-template-columns:1fr 1fr;}}

/* ---- 「実績」と「お客様の声」を別セクションに分割（2026-10-16） ---- */
.results-section .ba-list{margin-bottom:0;}
.results-section .stat-list{margin-bottom:36px;}
.voice-section{background:var(--section-alt);}   /* 白い「実績」と交互の背景で区切る */
.voice-section .voice-card{background:#fff;}
.news-section{background:#fff;}                       /* お客様の声（淡い緑）と続かないよう白に */
.news-section .news-list{border-color:var(--line);}
#news + section{border-top:1px solid var(--line);}    /* お知らせ（白）とアクセス（白）の境目 */

/* ---- ③ 施術メニュー：紹介文と一体化、メニュー数を見せる ---- */
.menu-section .lead{margin-bottom:34px;}
.menu-subhead{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 12px;margin:0 auto 20px;text-align:center;}
.menu-subhead h3{font-family:var(--font-heading);font-weight:900;font-size:1.15rem;color:var(--green);line-height:1.5;}
@media(min-width:900px){.menu-subhead h3{font-size:1.3rem;}}
.hero-media{min-width:0;}


/* ---- ファーストビュー：問いかけの文字で「つらさ」を表現（2026-10-16） ----
   暗く沈む影＋くすんだ色＋オレンジの波線（ズキズキ感）。煽りすぎないよう控えめに */
.hero-copy-q{
  text-shadow:0 2px 0 rgba(0,0,0,.28),0 6px 14px rgba(0,0,0,.45),0 14px 28px rgba(0,0,0,.35);
}
.hero-copy-q .nb:last-child{
  color:#a9c9b5;                                   /* 明るい若葉色をくすませて重さを出す */
}

/* ---- ファーストビュー：補足コピーで「信頼」と「明るい未来」を表現（2026-10-16） ---- */
.hero .hero-sub{font-size:clamp(1.08rem,4.9vw,1.5rem);line-height:1.75;margin-bottom:30px;}
.hs-trust{color:#fff;}                                             /* 信頼：白でまっすぐ */
.hs-future{color:#ffe9b3;}                                         /* 明るい未来：淡い金色（光の演出は2026-10-17に削除） */
.hero .hero-sub .nb{white-space:nowrap;}
@media(max-width:374px){.hero .hero-sub{font-size:.97rem;}}   /* 狭いスマホでも2行に収める */
/* ビフォーアフターの説明：結果（大きめ）と注意書き（控えめ）を段で分ける */
.ba-result{display:block;font-size:.95rem;font-weight:700;color:var(--ink);line-height:1.6;margin-top:2px;}
.ba-card .ba-note{display:block;font-size:.72rem;color:var(--muted);line-height:1.6;margin-top:4px;}

/* =========================================================
   2026-10-17 佐々木様の回答を反映
   ========================================================= */
/* ---- ファーストビュー：得意分野のアピール ---- */
.hero-tagline{
  display:inline-block;margin:0 0 16px;padding:6px 14px;border-radius:10px;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.35);
  color:#fff;font-weight:700;font-size:.86rem;line-height:1.6;letter-spacing:.02em;
}
.hero-tagline .nb:first-child{color:#d66842;}   /* ロゴの朱色 */
@media(min-width:900px){.hero-tagline{font-size:.95rem;}}
@media(max-width:359px){.hero-tagline{font-size:.8rem;padding:6px 10px;}}

/* ---- 写真ごとの見せる位置 ---- */
.pos-oni{object-position:45% 70%;}      /* 施術者の手元と股関節まわり */
.pos-foot{object-position:45% 55%;}     /* 足裏と手元 */
.pos-cupping{object-position:35% 55%;}  /* カッピングの器具と背中 */

/* ---- 施術メニュー：7種類（PCは3列。最後の1枚は中央に） ---- */
.menu-card .note-inline{display:inline-block;font-size:.92em;}
@media(min-width:1000px){.menu-list .menu-card:nth-child(7):last-child{grid-column:2;}}
.menu-more{max-width:760px;margin:28px auto 0;text-align:center;}
.menu-more p{font-size:.88rem;color:var(--muted);margin-bottom:12px;}

/* ---- 実績の数字 ---- */
.stat-list{grid-template-columns:repeat(2,1fr);}
.stat{min-height:110px;padding:16px 8px;}
.stat-value small{font-size:.5em;margin-left:2px;}
.stat-value{font-size:1.7rem;}
.stat-sub{font-size:.72rem;color:var(--muted);line-height:1.4;}
@media(max-width:359px){.stat-value{font-size:1.4rem;}}
@media(min-width:900px){.stat-value{font-size:2.1rem;}}
/* ビフォーアフター3件：PCは3列 */
@media(min-width:900px){.ba-list{grid-template-columns:repeat(3,1fr);max-width:1000px;}}

/* ---- アクセス：目印・定休日の補足・地図リンク ---- */
.addr-note{display:inline-block;font-size:.84em;color:var(--muted);line-height:1.6;margin-top:2px;}
.map-link{color:var(--green);font-weight:700;}

/* ---- ご予約：①LINE（優先受付） ②エキテン ③ホットペッパー ---- */
.reserve-line-box{background:#fff;border-radius:16px;padding:16px 16px 14px;margin-bottom:28px;text-align:left;}
.btn.reserve-line-main{
  background:#047d39;border-color:#047d39;color:#fff;font-size:1.05rem;min-height:60px;
  box-shadow:0 4px 0 #035a29;margin:0;
}
.btn.reserve-line-main:hover{background:#036a31;border-color:#036a31;}
.btn.reserve-line-main svg{width:24px;height:24px;fill:#fff;flex:none;}
.reserve-line-note{font-size:.86rem;line-height:1.85;color:var(--ink);margin-top:12px;}
.reserve-line-note strong{color:#04773a;}
.reserve-or{font-size:.85rem;color:rgba(255,255,255,.8);margin-bottom:10px;letter-spacing:.05em;}
.reserve-decline{font-size:.78rem;line-height:1.8;color:rgba(255,255,255,.78);margin-top:18px;text-align:left;}
@media(min-width:700px){.reserve-line-box{padding:20px 24px;}.reserve-decline{text-align:center;}}
/* 狭いスマホでボタン文字が折り返さないよう調整 */
@media(max-width:374px){
  .btn.reserve-line-main{font-size:.92rem;padding-left:12px;padding-right:12px;gap:6px;}
  .menu-more .btn{font-size:.86rem;padding-left:12px;padding-right:12px;}
  .cc-text{font-size:.86rem;}
  .coupon-callout{gap:6px;}
}
.btn.reserve-line-main,.menu-more .btn{white-space:nowrap;}
.reserve-line-box .btn.reserve-line-main{display:flex;width:100%;}
/* 得意分野の一文：スマホでも読みやすいよう、枠を少し暗くし、ロゴの朱色を明るめに（2026-10-17） */
.hero-tagline{background:rgba(0,0,0,.18);border-color:rgba(255,255,255,.28);}
.hero-tagline .nb:first-child{color:#f39470;}
/* 得意分野の一文を補足コピーの下へ移動（2026-10-17） */
.hero .hero-sub{margin-bottom:16px;}
.hero-tagline{margin:0 0 26px;}
/* 得意分野の一文：囲みを外し、1行で「施術メニューを見る」ボタンの真上に添える（2026-10-17） */
.hero .hero-sub{margin-bottom:30px;}
.hero-tagline{
  display:block;background:none;border:0;border-radius:0;padding:0;margin:0 0 10px;
  font-size:clamp(.62rem,3.3vw,1rem);white-space:nowrap;letter-spacing:0;text-align:center;
  color:#fff;font-weight:700;line-height:1.5;
}
.hero-tagline .nb{display:inline;}
@media(min-width:700px){.hero-tagline{text-align:left;}}
@media(min-width:900px){.hero-tagline{font-size:1rem;padding-left:4px;}}
/* 得意分野は地域名の横の小さな札に（2026-10-18 案2） */
.hero .hero-sub{margin-bottom:26px;}
.hero-top{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-bottom:14px;}
.hero-top .hero-area{margin-bottom:0;}
.hero-specialty{
  display:inline-block;padding:3px 10px;border-radius:999px;
  background:#f39470;color:#0b4335;font-size:.74rem;font-weight:700;letter-spacing:.03em;line-height:1.5;white-space:nowrap;
}
@media(min-width:900px){.hero-specialty{font-size:.8rem;}}
/* スマホでも地域名と札を横並びに（画面幅に合わせて文字を少し縮める・2026-10-18） */
@media(max-width:699px){
  .hero-top{flex-wrap:nowrap;gap:6px;}
  .hero-top .hero-area{font-size:clamp(.6rem,3vw,.78rem);letter-spacing:.02em;padding-left:8px;white-space:nowrap;}
  .hero-specialty{font-size:clamp(.58rem,2.95vw,.74rem);padding:3px 8px;letter-spacing:0;}
}

/* =========================================================
   2026-10-20 佐々木様の連絡を反映
   ========================================================= */
/* ヒーロー：2026-10-21 案1（得意分野の文を見出しに）に決定。切り替え用の指定は削除 */
/* 得意分野の文（案1・案3はヒーローの見出し、案2はヒーロー下の帯） */
.hero-strength{font-family:var(--font-heading);font-weight:900;line-height:1.5;letter-spacing:.01em;}
.hero-strength span{display:block;}
.hero .hero-strength{color:#fff;font-size:clamp(1.3rem,5.9vw,2.4rem);margin:4px 0 22px;text-shadow:0 2px 10px rgba(0,0,0,.25);}
.hero .hero-strength .st-a{color:#f39470;}
.hero .hero-strength .st-c{font-size:1.15em;}
.hero-strength span{white-space:nowrap;}
@media(min-width:900px){.hero .hero-strength{font-size:clamp(1.6rem,2.3vw,2.2rem);}}

/* ヒーロー直下の帯 */
.hero-band{padding:44px 0 40px;text-align:center;}
.band-strength{background:#fff;}
.band-strength .hero-strength{color:var(--green);font-size:clamp(1.15rem,5.2vw,1.8rem);}
.band-strength .hero-strength .st-a{color:#c4552f;}
.band-strength .hero-strength .st-c{display:inline-block;margin-top:4px;padding:2px 14px;border-radius:999px;background:var(--green);color:#fff;font-size:.9em;}
.band-message{background:#fff;}
.band-message .hero-copy{font-family:var(--font-heading);font-weight:900;font-size:clamp(1.4rem,6.2vw,2.3rem);line-height:1.45;margin-bottom:18px;}
.band-message .hero-copy-lead{display:block;font-size:.66em;color:var(--muted);margin-bottom:.35em;font-weight:700;}
.band-message .hero-copy-q{display:block;color:var(--green);text-shadow:0 3px 8px rgba(11,67,53,.18);}
.band-message .hero-copy-q .nb:last-child{color:#5f8574;}
.band-message .hero-sub{font-family:var(--font-heading);font-weight:700;font-size:clamp(1rem,4.6vw,1.35rem);line-height:1.8;}
.band-message .hs-trust{color:var(--ink);}
.band-message .hs-future{color:#c4552f;}
@media(min-width:900px){.hero-band{padding:64px 0 56px;}}

/* ---- 施術メニュー冒頭（先方指定の文章） ---- */
.menu-catch{text-align:center;font-family:var(--font-heading);font-weight:700;color:#236e3a;font-size:clamp(1rem,4.4vw,1.25rem);line-height:1.7;margin:-4px 0 14px;}

/* ---- スポーツコンディション整体：施術実績 ---- */
.card-badge{display:inline-block;margin:2px 0 6px;padding:2px 10px;border-radius:999px;background:#fdf1ec;color:#a8431f;font-size:.74rem;font-weight:700;line-height:1.6;}

/* ---- 実績：保有資格 ---- */
.qual-box{max-width:760px;margin:0 auto 36px;background:#fff;border:1px solid var(--card-border);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow-card);}
.qual-heading{font-family:var(--font-heading);font-weight:900;color:var(--green);font-size:1.05rem;margin-bottom:10px;text-align:center;}
.qual-list{list-style:none;display:grid;gap:6px;}
.qual-list li{position:relative;padding-left:22px;font-size:.9rem;line-height:1.6;color:var(--ink);}
.qual-list li::before{content:"";position:absolute;left:2px;top:.45em;width:12px;height:12px;border-radius:50%;background:var(--leaf);box-shadow:inset 0 0 0 3px #fff,0 0 0 1.5px var(--leaf);}
@media(min-width:700px){.qual-list{grid-template-columns:1fr 1fr;column-gap:24px;}}

/* ---- お客様の声：口コミサイトへのリンク ---- */
.review-links{display:grid;gap:12px;max-width:760px;margin:0 auto;}
.review-link{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:60px;padding:12px 18px;background:#fff;border:1px solid var(--card-border);border-left:5px solid var(--leaf);border-radius:var(--radius);text-decoration:none;color:var(--green);box-shadow:var(--shadow-card);}
.review-link:hover{border-color:var(--leaf);}
.rl-name{font-weight:900;font-size:.98rem;}
.rl-go{font-size:.82rem;font-weight:700;color:#236e3a;white-space:nowrap;}
@media(min-width:900px){.review-links{grid-template-columns:repeat(3,1fr);max-width:1000px;}}
/* ---- お問い合わせフォーム（Netlify Forms） ---- */
.contact-form{display:grid;gap:14px;margin-top:12px;}
.cf-hidden{position:absolute;left:-9999px;}
.cf-row{display:grid;gap:6px;}
.cf-label{font-size:.88rem;font-weight:700;color:var(--green);}
.cf-label em{font-style:normal;font-size:.72rem;color:#fff;background:#c4552f;border-radius:4px;padding:1px 6px;margin-left:4px;vertical-align:1px;}
.contact-form input,.contact-form textarea{width:100%;font:inherit;font-size:16px;padding:12px 14px;border:1px solid var(--card-border);border-radius:10px;background:#fff;color:var(--ink);}
.contact-form input:focus,.contact-form textarea:focus{outline:2px solid var(--leaf);outline-offset:1px;}
.cf-note{font-size:.8rem;color:var(--muted);}
/* 得意分野の文：一番長い行（17文字）が画面幅に収まる大きさに抑える */
@media(max-width:899px){
  .hero .hero-strength{font-size:min(clamp(1.3rem,5.9vw,2.4rem),calc((100vw - 44px) / 17.2));}
  .band-strength .hero-strength{font-size:min(clamp(1.15rem,5.2vw,1.8rem),calc((100vw - 44px) / 17.2));}
}
/* ---- アクセス：Googleマップの埋め込み ---- */
.access-map{max-width:900px;margin:0 auto 28px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--card-border);box-shadow:var(--shadow-card);background:#eef1f0;}
.access-map iframe{display:block;width:100%;height:320px;border:0;}
@media(min-width:900px){.access-map iframe{height:400px;}}
/* 案1・案3のヒーロー見出し：行間と文字間を広げて詰まりを解消（2026-10-20） */
.hero .hero-strength{line-height:1.75;letter-spacing:.06em;margin:10px 0 28px;}
.hero .hero-strength .st-a{margin-bottom:.15em;}
.hero .hero-strength .st-c{margin-top:.2em;letter-spacing:.1em;}
@media(max-width:899px){
  .hero .hero-strength{font-size:min(clamp(1.25rem,5.6vw,2.2rem),calc((100vw - 44px) / 18.4));}
}
@media(min-width:900px){.hero .hero-strength{font-size:clamp(1.5rem,2.15vw,2.05rem);}}
/* 案1・案3の見出しを案2の問いかけと同じ大きさに（区切りのよい位置で折り返す・2026-10-20） */
.hero .hero-strength-lg{font-size:clamp(1.55rem,6.9vw,2.6rem);line-height:1.5;letter-spacing:.03em;margin:6px 0 24px;}
.hero .hero-strength-lg > span{display:block;}
.hero .hero-strength-lg .nb{display:inline-block;white-space:nowrap;}
.hero .hero-strength-lg .st-a{margin-bottom:.2em;}
@media(max-width:899px){.hero .hero-strength-lg{font-size:clamp(1.45rem,6.9vw,2.6rem);}}
@media(min-width:900px){.hero .hero-strength-lg{font-size:clamp(1.9rem,2.9vw,2.6rem);}}
.hero .hero-strength-lg > span{white-space:normal;}   /* 区切り（nb）ごとに折り返せるように */
.band-strength .hero-strength .st-c{display:block;margin-top:0;padding:0;border-radius:0;background:none;color:var(--green);font-size:1em;}   /* 案2：「得意な整体院」の囲みを外す（2026-10-20） */
/* 「の」は後ろの文（予防&アフターケア〜）と同じ色に（2026-10-20） */
.hero .hero-strength .st-a .st-no{color:#fff;}
.band-strength .hero-strength .st-a .st-no{color:var(--green);}
.hero-strength .st-no{display:inline !important;}


/* =========================================================
   2026-10-21 実績をメダル風に（購入者の参考画像より）
   ========================================================= */
.medal-list{list-style:none;display:grid;grid-template-columns:repeat(2,auto);justify-content:center;gap:0 8px;max-width:760px;margin:0 auto 6px;}
.medal{
  width:min(42vw,170px);aspect-ratio:1;
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  background:url("../images/badge-gold.png") center/contain no-repeat;
  background-image:image-set(url("../images/badge-gold.webp") type("image/webp"),url("../images/badge-gold.png") type("image/png"));
  filter:drop-shadow(0 6px 8px rgba(11,67,53,.22));color:#4a3208;line-height:1.2;padding:0 18px;
}
.medal:first-child{grid-column:1 / -1;justify-self:center;margin-bottom:-6px;}   /* スマホは1つ上・2つ下の三角形 */
.medal-stars{font-size:.56rem;letter-spacing:.2em;color:#c79a2e;margin-bottom:2px;}
.medal-top{font-size:.7rem;font-weight:700;border-bottom:1px solid rgba(122,74,5,.4);padding:0 4px 3px;margin-bottom:3px;white-space:nowrap;}
.medal-main{font-family:var(--font-heading);font-weight:900;font-size:1.5rem;color:#7a4a05;white-space:nowrap;}
.medal-main small{font-size:.5em;margin-left:1px;}
.medal-num{font-size:1.3rem;letter-spacing:-.01em;}
.medal-main-text{font-size:1.02rem;}
.medal-sub{font-size:.62rem;font-weight:700;margin-top:2px;white-space:nowrap;}
.medal-note{text-align:center;font-size:.72rem;color:var(--muted);margin:0 0 18px;}
.study-note{max-width:760px;margin:0 auto 30px;text-align:center;font-size:.9rem;font-weight:700;color:var(--green);line-height:1.8;}
@media(min-width:700px){
  .medal-list{grid-template-columns:repeat(3,auto);gap:22px;}
  .medal{width:190px;padding:0 22px;}
  .medal:first-child{grid-column:auto;margin-bottom:0;}
  .medal-top{font-size:.78rem;}.medal-main{font-size:1.75rem;}.medal-num{font-size:1.5rem;}.medal-main-text{font-size:1.15rem;}.medal-sub{font-size:.7rem;}
}

/* =========================================================
   下層ページ（2026-10-21 施術メニュー・整体院情報・お問い合わせの作り込み）
   ========================================================= */
.page-lead{max-width:640px;margin:4px auto 0;font-size:.9rem;color:var(--muted);line-height:1.9;}
.page-head p.page-lead{font-size:.9rem;}

/* メニューの目次 */
.sub-nav{background:#fff;border-bottom:1px solid var(--line);padding:16px 0;}
.sub-nav ul{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:8px;max-width:900px;margin:0 auto;}
.sub-nav a{
  display:flex;align-items:center;justify-content:center;text-align:center;min-height:44px;padding:6px 10px;
  border-radius:999px;background:var(--leaf-pale);color:var(--green);font-size:.8rem;font-weight:700;line-height:1.4;text-decoration:none;
}
.sub-nav a:hover{background:var(--leaf-line);}
@media(min-width:700px){.sub-nav ul{display:flex;flex-wrap:wrap;justify-content:center;}.sub-nav a{padding:6px 16px;}}

/* メニュー詳細 */
.md-section{padding-top:36px;}
.price-note{max-width:1000px;margin:0 auto 14px;text-align:right;font-size:.78rem;color:var(--muted);}
.md{
  max-width:1000px;margin:0 auto 22px;background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-card);overflow:hidden;scroll-margin-top:calc(var(--header-h) + 16px);
  display:grid;
}
.md:target{border-color:var(--leaf);box-shadow:0 0 0 3px var(--leaf-pale),var(--shadow-card);}
.md-photo{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--leaf-pale);}
.md-photo.ph-photo{border:0;border-radius:0;border-bottom:1.5px dashed #a9cdb4;}
.md-photo picture{display:block;width:100%;height:100%;}
.md-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.md-body{padding:22px 20px 24px;}
.md-label{font-size:.78rem;font-weight:700;color:var(--eyebrow-color);letter-spacing:.04em;margin-bottom:2px;}
.md-title{font-family:var(--font-heading);font-weight:900;font-size:1.3rem;line-height:1.5;color:var(--green);margin-bottom:10px;}
.md-title .sub{display:inline-block;font-size:.72em;font-weight:700;}
.md-text{font-size:.92rem;line-height:1.9;margin-bottom:16px;}
.md-small{font-size:.8rem;color:var(--muted);margin-top:8px;line-height:1.7;}
.md-limit{display:inline-block;margin-bottom:10px;padding:2px 12px;border-radius:999px;background:#fdf1ec;color:#a8431f;font-size:.8rem;font-weight:700;}
.md .card-badge{margin:0 0 10px;}
.md-sublabel{font-size:.85rem;font-weight:700;color:var(--green);margin-bottom:6px;}
.md-tags{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px;}
.md-tags li{font-size:.8rem;padding:3px 12px;border-radius:999px;background:var(--leaf-pale);color:var(--green);font-weight:700;}
.md-worries{list-style:none;display:grid;gap:6px;margin-bottom:4px;}
.md-worries li{position:relative;padding-left:24px;font-size:.9rem;line-height:1.6;}
.md-worries li::before{content:"✓";position:absolute;left:2px;top:0;color:var(--leaf);font-weight:900;}
.price-ask{font-size:.9rem;font-weight:700;color:var(--green);background:var(--leaf-pale);border-radius:var(--radius-sm);padding:12px 14px;}
.md-caution-link{margin-top:14px;font-size:.85rem;}
.md-caution-link a{color:var(--green);font-weight:700;}

/* 料金表 */
.price-table{width:100%;border-collapse:collapse;font-size:.9rem;}
.price-table caption{text-align:left;font-size:.85rem;font-weight:700;color:var(--green);padding-bottom:4px;}
.price-table th,.price-table td{padding:11px 0;border-bottom:1px solid var(--line);vertical-align:top;line-height:1.6;}
.price-table tr:first-child th,.price-table tr:first-child td{border-top:2px solid var(--green);}
.price-table th{text-align:left;font-weight:500;padding-right:10px;}
.price-table td{text-align:right;white-space:nowrap;}
.price-table td strong{font-size:1.05rem;color:var(--green);margin-left:4px;}
.pt-sub{display:block;font-size:.78rem;color:var(--muted);font-weight:400;white-space:normal;}
.price-table td .pt-sub{text-align:right;}
.pt-pop{display:inline-block;margin-right:6px;padding:0 8px;border-radius:999px;background:var(--orange);color:#fff;font-size:.68rem;font-weight:700;vertical-align:2px;}

/* 産後コース */
.course-list{display:grid;gap:12px;padding:0 20px 8px;}
.course{position:relative;border:1px solid var(--leaf-line);border-radius:var(--radius);padding:18px 16px 16px;background:#fbfdfb;}
.course-special{border:2px solid var(--orange);background:#fffaf7;}
.course-badge{position:absolute;top:-11px;left:14px;padding:1px 12px;border-radius:999px;background:var(--orange);color:#fff;font-size:.72rem;font-weight:700;}
.course-name{font-family:var(--font-heading);font-weight:900;font-size:1.08rem;color:var(--green);margin-bottom:4px;}
.course-content{font-size:.86rem;font-weight:700;line-height:1.6;margin-bottom:6px;}
.course-text{font-size:.84rem;color:var(--muted);line-height:1.7;margin-bottom:10px;}
.course-price{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;border-top:1px dashed var(--leaf-line);padding-top:10px;}
.cp-time{font-size:.85rem;font-weight:700;color:var(--green);}
.cp-time small{font-size:.75em;font-weight:400;color:var(--muted);}
.cp-reg{font-size:.78rem;color:var(--muted);text-decoration:line-through;}
.course-price strong{margin-left:auto;font-size:1.3rem;color:#c4552f;}
.md-wide-foot{padding:0 20px 22px;}
.md-wide .md-body{padding-bottom:18px;}

/* そのほかのメニュー */
.other-grid{display:grid;gap:26px;margin-bottom:28px;}
.other-name{font-family:var(--font-heading);font-weight:900;font-size:1.05rem;color:var(--green);margin-bottom:2px;line-height:1.5;}
.other-name .pt-sub{display:inline;}
.other-text{font-size:.85rem;color:var(--muted);margin-bottom:8px;}
.md-plain .menu-more{text-align:center;}
.md-plain .menu-more p{font-size:.88rem;color:var(--muted);margin-bottom:12px;}

/* 注意事項（タップで開く） */
details.caution{margin-top:16px;border:1px solid var(--card-border);border-radius:var(--radius);background:#fff;}
details.caution summary{
  list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;
  min-height:52px;padding:12px 16px;font-size:.9rem;font-weight:700;color:var(--green);line-height:1.5;
}
details.caution summary::-webkit-details-marker{display:none;}
details.caution summary::after{content:"＋";flex:none;color:var(--leaf);font-weight:900;}
details.caution[open] summary::after{content:"－";}
details.caution[open]{border-color:var(--leaf);}
.caution-in{padding:0 16px 16px;font-size:.88rem;line-height:1.8;}
.caution-in h3{font-size:.88rem;font-weight:700;color:var(--green);margin:12px 0 4px;}
.caution-in h3:first-child{margin-top:0;}
.caution-in ul{list-style:none;display:grid;gap:4px;margin-bottom:8px;}
.caution-in li{position:relative;padding-left:16px;}
.caution-in li::before{content:"";position:absolute;left:3px;top:.75em;width:6px;height:6px;border-radius:50%;background:var(--leaf);}
.caution-in p{margin-bottom:8px;}
.caution-note{font-size:.84rem;color:#a8431f;}
.caution-section{background:var(--section-alt);}
.caution-section .lead{text-align:center;margin-bottom:24px;}
.caution-lg{margin-top:10px;}
.caution-lg summary{font-size:.95rem;}

/* ページ下のご予約案内 */
.page-cta{background:var(--green);color:#fff;}
.page-cta-title{font-family:var(--font-heading);font-weight:900;font-size:clamp(1.15rem,4.8vw,1.5rem);line-height:1.7;margin-bottom:22px;}
.page-cta .btn{background:#fff;color:var(--green);border-color:#fff;box-shadow:0 4px 0 var(--leaf);}
.page-cta .btn:hover{background:var(--leaf-pale);}
.page-cta-more{margin-top:18px;font-size:.9rem;}
.page-cta-more a{color:#c9f0d4;font-weight:700;}

@media(min-width:900px){
  .md{grid-template-columns:38% 1fr;}
  .md-photo{aspect-ratio:auto;min-height:100%;}
  .md-photo.ph-photo{border-bottom:0;border-right:1.5px dashed #a9cdb4;min-height:280px;}
  .md-body{padding:30px 34px 30px;}
  .md-wide{grid-template-columns:38% 1fr;}
  .md-wide .course-list{grid-column:1 / -1;grid-template-columns:repeat(3,1fr);padding:10px 34px 10px;gap:16px;}
  .md-wide-foot{grid-column:1 / -1;padding:0 34px 26px;}
  .md-plain{grid-template-columns:1fr;}
  .other-grid{grid-template-columns:1fr 1fr;gap:30px 40px;}
}

/* 整体院情報ページ */
.about-grid{display:grid;gap:24px;max-width:900px;margin:0 auto;align-items:center;}
.about-photo{aspect-ratio:4/5;max-width:420px;width:100%;margin:0 auto;}
.about-text p{font-size:.95rem;line-height:2;margin-bottom:12px;}
.about-points{list-style:none;display:grid;gap:8px;margin-top:18px;}
.about-points li{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:var(--radius);background:var(--leaf-pale);}
.ap-num{flex:none;font-size:.78rem;font-weight:900;color:#fff;background:var(--green);border-radius:999px;padding:2px 9px;}
.ap-t{font-size:.92rem;font-weight:700;color:var(--green);}
.tel-inline{color:var(--green);font-weight:700;}
.rule-list{list-style:none;display:grid;gap:10px;}
.rule-list li{position:relative;padding:12px 14px 12px 36px;background:#fff;border-radius:var(--radius);border:1px solid var(--card-border);font-size:.9rem;line-height:1.8;}
.rule-list li::before{content:"";position:absolute;left:14px;top:1.25em;width:8px;height:8px;border-radius:50%;background:var(--leaf);}
.rule-list a{color:var(--green);font-weight:700;}
@media(min-width:800px){.about-grid{grid-template-columns:5fr 6fr;gap:44px;}}

/* お問い合わせページ */
.ct-section{padding-top:36px;}
.ct-caution{margin-bottom:22px;}
.ct-card{position:relative;background:#fff;border:1px solid var(--card-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:22px 20px;margin-bottom:18px;scroll-margin-top:calc(var(--header-h) + 16px);}
.ct-card > p{font-size:.92rem;line-height:1.85;margin-bottom:12px;}
.ct-title{font-family:var(--font-heading);font-weight:900;font-size:1.2rem;color:var(--green);margin-bottom:10px;}
.ct-line{border:2px solid #047d39;}
.ct-badge{position:absolute;top:-12px;left:18px;padding:1px 12px;border-radius:999px;background:#047d39;color:#fff;font-size:.74rem;font-weight:700;}
.btn.ct-line-btn{background:#047d39;border-color:#047d39;color:#fff;box-shadow:0 4px 0 #035a29;}
.btn.ct-line-btn:hover{background:#036a31;border-color:#036a31;}
.btn.ct-line-btn svg{width:22px;height:22px;fill:currentColor;}
.ct-card .tel-link{font-size:1.5rem;font-weight:900;color:var(--green);text-decoration:none;}
.ct-small{font-size:.85rem !important;color:var(--muted);margin-bottom:4px !important;}
.ct-decline{font-size:.82rem;color:var(--muted);text-align:center;margin-top:8px;}
.md{grid-template-columns:minmax(0,1fr);}
.md-body,.other-grid > div{min-width:0;}
@media(min-width:900px){.md{grid-template-columns:38% minmax(0,1fr);}.md-plain{grid-template-columns:minmax(0,1fr);}}
.md-plain .md-title{margin-bottom:20px;}
.about-photo{aspect-ratio:4/3;max-width:none;}
.about-photo img{object-position:50% 62%;}
@media(min-width:800px){.about-photo{aspect-ratio:4/5;}}
.sub-nav a{flex-direction:column;}.sub-nav a .nb{display:block;}
.md-student{margin:14px 0 0;}
/* 縦長の写真は枠を縦長にして引きで見せる（鬼リリース：膝の手と股関節の手が両方入る位置） */
.md-photo.md-photo-tall{aspect-ratio:4/5;}
.pos-oni-wide{object-position:50% 36%;}
@media(min-width:900px){.md-photo.md-photo-tall{aspect-ratio:auto;}}
.pos-ems-wide{object-position:50% 14%;}   /* 電磁パルス：頭・機器・脚まで入る位置 */
.md-points{list-style:none;display:grid;gap:6px;margin:-4px 0 16px;}
.md-points li{position:relative;padding-left:22px;font-size:.88rem;line-height:1.75;}
.md-points li::before{content:"✓";position:absolute;left:2px;top:0;color:var(--leaf);font-weight:900;}
/* 院内写真：縁を白くぼかした写真（4:5）を、切らずにそのまま見せる（2026-10-23） */
.about-photo{aspect-ratio:4/5;max-width:440px;background:#fff;border-radius:0;}
.about-photo img{object-position:50% 50%;}
@media(min-width:800px){.about-photo{aspect-ratio:4/5;}}
.md-tags-stack{flex-direction:column;align-items:flex-start;}   /* 酸素ルームのおすすめ：1項目ずつ1行に */
/* 電磁パルス：特徴と2枚目の写真（2026-10-24） */
.md-feature{list-style:none;display:grid;gap:10px;margin:-4px 0 16px;}
.md-feature li{background:var(--leaf-pale);border-radius:var(--radius-sm);padding:12px 14px;font-size:.86rem;line-height:1.75;}
.mf-t{display:block;font-weight:900;color:var(--green);font-size:.92rem;margin-bottom:2px;}
.md-subphoto{margin:0 0 18px;}
.md-subphoto img{width:100%;border-radius:var(--radius-sm);}
.md-subphoto figcaption{font-size:.78rem;color:var(--muted);margin-top:6px;}
/* お悩みへの問いかけ（トップ：ファーストビューと施術メニューのあいだ・2026-10-24） */
.concern-section{background:#fff;}
.concern-title{font-family:var(--font-heading);font-weight:900;color:var(--green);font-size:clamp(1.3rem,5.4vw,1.9rem);line-height:1.6;margin-bottom:14px;}
.concern-q{display:inline-block;font-weight:900;color:#a8431f;font-size:clamp(1rem,4.2vw,1.2rem);line-height:1.7;margin-bottom:26px;padding-bottom:6px;border-bottom:3px solid #f3c9b7;}
.concern-body{max-width:620px;margin:0 auto 24px;}
.concern-body p{font-size:.95rem;line-height:2;margin-bottom:10px;color:var(--ink);}
.concern-end{display:inline-block;background:var(--leaf-pale);color:var(--green);font-weight:700;font-size:.95rem;line-height:1.9;border-radius:var(--radius);padding:14px 18px;}
/* 2026-10-26 リリース整体の期間限定料金・口コミのお願い・予約ボタンを赤で目立たせる */
.pt-campaign{display:block;margin-top:2px;font-size:.74rem;font-weight:700;color:#c4552f;white-space:nowrap;}
.pt-campaign::before{content:"※";}
.review-ask{max-width:760px;margin:-20px auto 28px;text-align:center;font-weight:700;color:#a8431f;font-size:.95rem;line-height:1.8;}
.menu-card .card-badge{margin:0 0 4px;}
/* 予約ボタン（ヘッダー・メニュー内・スマホ下部）をロゴの朱色に */
.pc-nav .btn,.site-menu .btn{background:#c4552f;border-color:#c4552f;color:#fff;box-shadow:0 4px 0 #8f3a1c;}
.pc-nav .btn:hover,.site-menu .btn:hover{background:#ad4826;border-color:#ad4826;}
.mobile-cta-bar .mc-reserve{background:#c4552f;color:#fff;border-color:#c4552f;}
/* 2026-10-27 追加分 */
.sub-nav .chip-badge{display:block;font-size:.62rem;font-weight:900;color:#c4552f;line-height:1.3;}
.pt-has-desc th,.pt-has-desc td{border-bottom:0;padding-bottom:4px;}
.price-table td.pt-desc{text-align:left;white-space:normal;font-size:.8rem;color:var(--muted);line-height:1.7;padding-top:0;}
.tax-note{font-size:.76rem;color:var(--muted);margin-top:6px;text-align:right;}
.md-wide-tax{padding-top:0;padding-bottom:4px;margin-top:0;}
@media(min-width:900px){.md-wide-tax{grid-column:1 / -1;}}
.md-catch{font-weight:900;color:#a8431f;font-size:.98rem;line-height:1.7;margin-bottom:10px;}
.md-free{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:.9rem;font-weight:700;color:var(--green);background:#fff6f1;border:1px solid #f3c9b7;border-radius:var(--radius-sm);padding:10px 12px;margin-bottom:16px;line-height:1.6;}
.free-badge{flex:none;background:#c4552f;color:#fff;font-size:.72rem;font-weight:900;border-radius:999px;padding:2px 10px;}
.more-info{margin:0 0 16px;}
.more-info-lead{font-weight:900;color:var(--green);}
.owner-section{background:var(--section-alt);}
.owner-box{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:24px 20px;border-top:5px solid var(--leaf);}
.owner-box p{font-size:.93rem;line-height:2;margin-bottom:12px;}
.owner-quote{font-weight:700;color:var(--green);text-align:center;background:var(--leaf-pale);border-radius:var(--radius-sm);padding:10px 12px;}
.owner-sign{text-align:right;margin:18px 0 0 !important;color:var(--muted);}
.owner-sign strong{color:var(--green);font-size:1rem;}
@media(min-width:700px){.owner-box{padding:34px 40px;}}

/* 2026-10-27 短命県返上バナー（酸素ルーム）・酸素ルームの新しい写真 */
.pos-oxygen{object-position:50% 50%;}
.tanmei-banner{display:flex;align-items:center;gap:12px;background:#64ad90;color:#fff;border-radius:var(--radius-sm);padding:18px 16px;margin:0 0 22px;overflow:hidden;}
.tb-text{flex:1;min-width:0;}
.tb-title{font-weight:900;font-size:1.05rem;line-height:1.5;margin:0 0 6px;}
.tb-sub{font-size:.82rem;line-height:1.7;margin:0;opacity:.95;}
.tb-map{width:78px;height:auto;flex:none;}
@media(min-width:700px){.tanmei-banner{padding:22px 26px;}.tb-title{font-size:1.25rem;}.tb-map{width:110px;}}

/* 2026-10-28 パソコン表示：説明が長いメニューで写真が縦に伸びすぎないよう、写真の比率を固定し、読み進めても写真がついてくる（sticky）形に */
@media(min-width:900px){
  .md{overflow:clip;}
  .md-photo{aspect-ratio:4/3;min-height:0;align-self:start;position:sticky;top:96px;}
  .md-photo.md-photo-tall{aspect-ratio:4/5;}
  .md-photo.ph-photo{min-height:0;}
}
/* 2026-10-28 パソコン表示：説明の中の2枚目の写真が左の写真より大きく見えないよう、幅を控えめに */
@media(min-width:900px){.md-subphoto{max-width:320px;}}
/* 産後ケアのように下にコース一覧が続く枠では、写真がついてくると一覧に重なるため固定しない */
@media(min-width:900px){.md-wide .md-photo{position:relative;top:auto;}}

/* 2026-10-28 お問い合わせ：営業お断りの赤い注意書き／酸素ルームのメーカーリンク */
.ct-no-sales{margin:0 0 16px;padding:12px 14px;border:1.5px solid #c4552f;border-radius:var(--radius-sm);background:#fdf1ec;color:#b8401c;font-weight:700;font-size:.9rem;line-height:1.7;text-align:center;}
.maker-link a{color:var(--green);font-weight:700;text-decoration:underline;}

/* 2026-10-30 届いた写真・代わりの写真の位置／外観の枠を外したアクセス／治療ではない旨の注意書き */
.pos-bishisei{object-position:40% 60%;}
.pos-sango{object-position:60% 50%;}
.pos-sports{object-position:50% 30%;}
.access-grid-single{grid-template-columns:minmax(0,1fr) !important;max-width:600px;}
.not-treatment{margin:0 auto 18px;max-width:760px;padding:10px 14px;border-radius:var(--radius-sm);background:#fdf1ec;border:1px solid #e9b9a6;color:#8a3a1c;font-size:.86rem;font-weight:700;line-height:1.7;text-align:center;}
