/* =========================================================
   SUKOYAKA Total Body Care 朝霞台店
   common.css ─ ブランド共通スタイル
   ---------------------------------------------------------
   LP（/lp-asakadai/）と世界観を統一するための共通レイヤー。
   カラー・フォント・ボタン・影・余白・ヘッダー・フッター・
   画像プレースホルダー・スクロールアニメーションを集約。
   公式サイト固有の装飾は official.css 側に記述する。
   ========================================================= */

/* ---------- デザイントークン ---------- */
:root{
  /* LPから継承したブランドカラー */
  --orange:#ee702d;
  --orange-dark:#cb5420;
  --orange-soft:#fff0e6;
  --cream:#fffaf5;
  --sand:#f5ede5;
  --ink:#2f2925;
  --muted:#766d67;
  --line:#eadfd6;
  --white:#fff;

  /* 公式サイト向けに追加した自然・医療系アクセント（木目/グリーン） */
  --green:#5b8a72;        /* 落ち着いたグリーン（安心・ナチュラル） */
  --green-dark:#436a58;
  --green-soft:#eef4f0;
  --wood:#c9a988;         /* 木目トーン（プレースホルダー枠などに使用） */
  --wood-soft:#f4ede4;

  --shadow:0 18px 50px rgba(80,48,28,.10);
  --shadow-sm:0 8px 24px rgba(57,38,26,.07);
  --radius:20px;
  --radius-sm:14px;
  --header-h:76px;
}

/* ---------- リセット / ベース ---------- */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",YuGothic,Meiryo,sans-serif;
  color:var(--ink);
  background:#fff;
  line-height:1.9;
  -webkit-font-smoothing:antialiased;
}
a{text-decoration:none;color:inherit}
img{display:block;max-width:100%}
button,input,select,textarea{font:inherit}

/* ---------- 共通レイアウト ---------- */
.wrap{width:min(1120px,calc(100% - 48px));margin:auto}
.wrap-narrow{width:min(880px,calc(100% - 48px));margin:auto}
.section{padding:clamp(80px,11vw,160px) 0}
.serif{font-family:"Zen Old Mincho",serif}

/* 見出し系（洗練トーン：余白広め・字間ゆったり） */
.eyebrow{display:block;color:var(--orange);font-size:12px;font-weight:900;letter-spacing:.22em;margin-bottom:22px}
.eyebrow.is-green{color:var(--green)}
.heading{
  font-family:"Zen Old Mincho",serif;
  font-size:clamp(30px,4.8vw,54px);
  line-height:1.42;letter-spacing:.02em;font-weight:700;
  word-break:keep-all;overflow-wrap:break-word;
}
.lead{color:var(--muted);font-size:clamp(15px,1.7vw,17px);line-height:2;max-width:680px;margin-top:26px;text-wrap:pretty}
main h1,main h2,main h3,main p,main li{word-break:normal;overflow-wrap:break-word;line-break:strict}

/* レスポンシブ改行ヘルパー（LP互換） */
.br-sp{display:none}

/* ---------- ボタン（洗練：影を抑え、ホバーは静かに） ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:12px;
  min-height:60px;padding:14px 34px;border-radius:999px;
  font-weight:900;font-size:15px;letter-spacing:.02em;
  transition:transform .25s ease,box-shadow .25s ease,background .25s ease;cursor:pointer;
}
.btn:hover{transform:translateY(-2px)}
.btn-main{background:var(--orange);color:#fff;border:0;box-shadow:0 8px 22px rgba(238,112,45,.18)}
.btn-main:hover{box-shadow:0 12px 30px rgba(238,112,45,.26)}
.btn-main::after{content:"→";font-size:18px}
.btn-line{background:#06c755;color:#fff;border:0;box-shadow:0 8px 22px rgba(6,199,85,.18)}
.btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--line);box-shadow:none}
.btn-ghost:hover{border-color:var(--ink);color:var(--ink)}
.btn-lg{min-height:66px;font-size:16px;padding:16px 40px}
/* 控えめなテキストリンクCTA */
.link-cta{display:inline-flex;align-items:center;gap:8px;font-weight:900;font-size:14px;color:var(--orange)}
.link-cta::after{content:"→";transition:transform .2s}
.link-cta:hover::after{transform:translateX(4px)}

/* ---------- ヘッダー（洗練：軽く・細いライン） ---------- */
.header{
  height:var(--header-h);background:rgba(255,255,255,.8);backdrop-filter:saturate(180%) blur(14px);
  position:sticky;top:0;z-index:50;border-bottom:1px solid rgba(234,223,214,.6);
}
.header-in{height:100%;display:flex;align-items:center;gap:20px}
/* ヘッダーは本文(1120px)より広く取り、左右を画面端に寄せる */
.header .wrap.header-in{width:min(1560px,calc(100% - 48px))}
.brand-logo{display:flex;align-items:center}
.brand-logo img{width:auto;height:24px;max-width:280px;object-fit:contain;object-position:left center}
/* ロゴ画像が未配置のときのテキスト代替 */
.brand-logo .brand-logo-text{font-family:"Zen Old Mincho",serif;font-weight:700;font-size:18px;color:var(--ink);letter-spacing:.04em;line-height:1.2}
.brand-logo .brand-logo-text small{display:block;font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",YuGothic,Meiryo,sans-serif;font-size:10px;font-weight:700;color:var(--orange);letter-spacing:.12em}
.nav{display:flex;align-items:center;gap:14px;font-size:12.5px;font-weight:700;margin-left:auto}
.nav a{transition:color .2s}
.nav a:hover{color:var(--orange)}
.nav-lp{color:var(--green-dark);border:1px solid var(--line);padding:7px 13px;border-radius:999px;font-size:11.5px;transition:border-color .2s,color .2s}
.nav-lp:hover{border-color:var(--green);color:var(--green)!important}
.nav-tel{
  display:inline-flex;align-items:center;gap:7px;
  border:1.5px solid var(--orange);border-radius:999px;
  padding:8px 14px;background:#fff;color:var(--orange-dark);
  font-family:"Zen Old Mincho",serif;font-size:15px;letter-spacing:.02em;white-space:nowrap;
  transition:background .2s,color .2s,transform .2s;
}
.nav-tel svg{width:16px;height:16px;color:var(--orange);flex:0 0 auto;transition:color .2s}
.nav-tel:hover{background:var(--orange);color:#fff!important;transform:translateY(-2px)}
.nav-tel:hover svg{color:#fff}
.header-cta{background:var(--orange);color:#fff!important;padding:10px 16px;border-radius:999px;white-space:nowrap}
.menu{display:none;border:0;background:none;font-size:26px;color:var(--ink);cursor:pointer}

/* ---------- 画像プレースホルダー（デザイン済み） ----------
   画像素材が入る前提。灰色の箱ではなく、木目/グリーン系の
   枠とアイコン・ラベルで「ここに何の写真が入るか」を明示する。
   実画像を入れるときは .ph の中の <img> を差し替え、
   .ph クラスの装飾は自動的に隠れる（has(img)対応）。 */
.ph{
  position:relative;overflow:hidden;border-radius:var(--radius);
  background:linear-gradient(160deg,#faf7f3 0%,#f2f5f1 100%);
  border:1px solid rgba(234,223,214,.7);
  display:flex;align-items:center;justify-content:center;
}
.ph::before{
  content:"";position:absolute;inset:0;opacity:.4;
  background:repeating-linear-gradient(
    -45deg,transparent 0 26px,rgba(201,169,136,.06) 26px 52px);
}
.ph-inner{position:relative;text-align:center;padding:26px;max-width:82%}
.ph-icon{
  width:46px;height:46px;margin:0 auto 14px;border-radius:50%;
  background:#fff;display:grid;place-items:center;
  box-shadow:0 4px 14px rgba(80,48,28,.06);color:var(--green);
}
.ph-icon svg{width:22px;height:22px}
.ph-label{font-size:12px;font-weight:700;color:var(--muted);letter-spacing:.06em;line-height:1.6}
.ph-sub{font-size:11px;color:#a99e94;margin-top:4px;letter-spacing:.02em}
.ph-ratio{font-size:10px;color:#c3b8ad;margin-top:10px;letter-spacing:.1em}
/* 実画像が入ったらプレースホルダー装飾を消す */
/* 実画像が入ったらプレースホルダー装飾を消す
   ─ :has() 未対応ブラウザ（チャットアプリ内ブラウザ等）でも崩れないよう、
     JS が付与する .has-img クラスを併用する */
.ph.has-img{background:#efe6df;border-color:var(--line)}
.ph.has-img::before{display:none}
.ph.has-img .ph-inner{display:none}
.ph:has(img){background:#efe6df;border-color:var(--line)}
.ph:has(img)::before{display:none}
.ph:has(img) .ph-inner{display:none}
/* 画像は常にプレースホルダーより前面に置く（最終的な保険） */
.ph img{position:relative;z-index:2}
.ph .ph-inner{z-index:1}
.ph img{width:100%;height:100%;object-fit:cover;display:block}
.ph[data-fit="contain"] img{object-fit:contain}

/* ---------- フッター（洗練・軽く） ---------- */
.footer{background:var(--cream);color:var(--muted);padding:clamp(56px,7vw,88px) 0 90px;font-size:13px;border-top:1px solid var(--line)}
.footer-in{display:flex;justify-content:space-between;gap:40px;align-items:flex-start;flex-wrap:wrap}
.footer-logo .brand-logo-text{font-size:20px}
.footer-logo img{height:30px;max-width:340px}
.footer-facility{margin-top:18px;font-weight:900;font-size:15px;color:var(--ink);line-height:1.6}
.footer-facility-group{display:block;font-size:12px;font-weight:700;color:var(--orange-dark);letter-spacing:.06em;margin-bottom:2px}
.footer-info p{margin-top:10px;line-height:1.9}
.footer-tel{font-size:20px;font-weight:900;color:var(--ink)}
.footer-hours{color:var(--muted);font-size:12px}
.footer-line{display:inline-flex;align-items:center;gap:8px;margin-top:16px;padding:10px 20px;background:#06c755;border-radius:999px;color:#fff;font-weight:700;font-size:14px;transition:opacity .2s}
.footer-line:hover{opacity:.88}
.footer-links{display:flex;flex-direction:column;gap:12px}
.footer-links a{color:var(--ink)}
.footer-links a:hover{color:var(--orange)}
.footer-copy{margin-top:40px;padding-top:24px;border-top:1px solid var(--line);font-size:12px;color:var(--muted);text-align:center}

/* フッター：健やかグループ施設リンク（LP踏襲） */
.footer-group{margin-top:44px;padding-top:30px;border-top:1px solid var(--line)}
.footer-group-title{font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--orange-dark);margin-bottom:16px}
.footer-group-links{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.footer-group-links a{display:flex;flex-direction:column;gap:3px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;font-weight:700;font-size:15px;color:var(--ink);transition:border-color .2s,transform .2s}
.footer-group-links a:hover{border-color:var(--orange);transform:translateY(-2px)}
.footer-group-links a span{font-size:11px;font-weight:700;color:var(--muted)}

/* ---------- パンくず ---------- */
.breadcrumb{background:var(--cream);border-bottom:1px solid var(--line)}
.breadcrumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:8px;padding:12px 0;font-size:12px;color:var(--muted)}
.breadcrumb li::after{content:"›";margin-left:8px;color:#c3b3a6}
.breadcrumb li:last-child::after{content:""}
.breadcrumb a:hover{color:var(--orange)}

/* ---------- スクロールアニメーション（洗練：ゆっくり静かに） ---------- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .9s cubic-bezier(.22,1,.36,1),transform .9s cubic-bezier(.22,1,.36,1)}
.reveal.is-visible{opacity:1;transform:none}
.reveal.delay-1{transition-delay:.1s}
.reveal.delay-2{transition-delay:.2s}
.reveal.delay-3{transition-delay:.3s}

/* ---------- 共通：チェック付き特徴リスト（点は出さない） ---------- */
.o-feature-list{list-style:none;margin-top:32px;display:grid;gap:16px}
.o-feature-list li{position:relative;padding-left:32px;font-size:15px;font-weight:700;color:var(--ink);line-height:1.7}
.o-feature-list li::before{
  content:"";position:absolute;left:0;top:4px;width:20px;height:20px;border-radius:50%;
  background:var(--green);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M9 16.2l-3.5-3.5L4 14.2l5 5 11-11-1.5-1.5z'/%3E%3C/svg%3E") center/13px no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M9 16.2l-3.5-3.5L4 14.2l5 5 11-11-1.5-1.5z'/%3E%3C/svg%3E") center/13px no-repeat;
}
/* 共通：定義リスト（見出し＋説明・マーカーなし） */
.o-def-list{margin-top:34px;display:grid;gap:2px}
.o-def-list>div{padding:22px 0;border-top:1px solid var(--line)}
.o-def-list>div:last-child{border-bottom:1px solid var(--line)}
.o-def-list dt{font-size:16px;font-weight:900;color:var(--ink);margin-bottom:6px}
.o-def-list dd{font-size:14px;color:var(--muted);line-height:1.85}

/* motion配慮 */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .btn,.reveal{transition:none!important}
}

/* ---------- レスポンシブ（共通部） ---------- */
/* 中間幅：項目が多いのでロゴと間隔を少し詰める */
@media(max-width:1180px) and (min-width:901px){
  .nav{gap:11px;font-size:12px}
  .brand-logo img{height:22px;max-width:240px}
  .nav-tel{padding:7px 12px;font-size:14px}
  .nav-lp{padding:6px 11px;font-size:11px}
  .header-cta{padding:9px 14px;font-size:12px}
}

@media(max-width:900px){
  .nav{
    display:none;position:absolute;top:var(--header-h);left:0;right:0;background:#fff;
    flex-direction:column;align-items:stretch;padding:24px 26px;gap:20px;box-shadow:var(--shadow);
  }
  .nav.open{display:flex}
  .nav-lp{text-align:center}
  .nav-tel{justify-content:center;font-size:20px;padding:14px 0}
  .menu{display:block}
}
@media(max-width:560px){
  .wrap{width:min(calc(100% - 36px),1120px)}
  .header .wrap.header-in{width:calc(100% - 36px)}
  .wrap-narrow{width:min(calc(100% - 36px),880px)}
  .header{height:66px}
  .nav{top:66px}
  .header-cta{display:none}
  .brand-logo img{height:20px;max-width:210px}
  .br-sp{display:inline}
  .footer-in{flex-direction:column}
  .footer-links{flex-direction:row;flex-wrap:wrap;gap:16px}
  .footer-group-links{grid-template-columns:1fr 1fr;gap:10px}
}