/*
Theme Name: Sanitas Tansan Therapist
Theme URI: https://co2.youbemethod.com
Author: 片岡夕美子 / 株式会社 Life & Energy
Author URI: https://lp.sanitas-beauty.jp
Description: 炭酸セラピスト®︎ 総合ポータルサイト用テーマ。サニタス公式の世界観（セージグリーン #609858 ／3層見出し ／葉装飾 ／zigzagステップ）を完全再現。v3.1で全セクション見出し（英字+日本語）もカスタマイザー編集可能化。v3.2でセラピスト一覧に「本店」セクションを追加し、会社名表記を「株式会社 Life & Energy」に統一。v3.3で本店＝サニタスのみ／「東京・桜上水」独立セクション／少数カード中央揃え／固定リンク404修正。
Version: 3.4.1
Requires at least: 6.0
Requires PHP: 7.4
License: All Rights Reserved
License URI: https://co2.youbemethod.com
Text Domain: sanitas-tansan
Tags: business, beauty, wellness, japanese, custom-colors, custom-menu
*/

/* =========================================================
   炭酸セラピスト®︎ 総合ポータル｜共通スタイルシート
   準拠：サニタス_デザインシステム.md（v1）
   Color: sage #609858 / olive #90A058 / cream
   ========================================================= */

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:62.5%;scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--font-sans);
  font-size:1.5rem;
  line-height:1.9;
  color:var(--color-text);
  background:var(--color-white);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  font-feature-settings:"palt";
  letter-spacing:0.04em;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none;transition:color .3s ease,opacity .3s ease}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
ul,ol{list-style:none}
input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}

/* ---------- Tokens ---------- */
:root{
  --color-white:#FFFFFF;
  --color-off-white:#F8F8F8;
  --color-cream:#F8F5EE;
  --color-cream-soft:#F4EFE5;
  --color-border:#E8E0D4;

  --color-sage:#609858;
  --color-sage-dark:#4A7848;
  --color-sage-light:#B8C8A8;
  --color-sage-mist:#D8E0D0;
  --color-sage-pale:#EDF2E6;
  --color-olive:#90A058;
  --color-olive-dark:#7A8B4A;

  --color-text:#2B2B2B;
  --color-text-soft:#555555;
  --color-text-mute:#888888;

  --color-line:#06C755;
  --color-line-dark:#05A847;

  --font-serif:'Noto Serif JP','Yu Mincho','YuMincho','Hiragino Mincho ProN',serif;
  --font-sans:'Noto Sans JP',-apple-system,BlinkMacSystemFont,'Hiragino Sans',sans-serif;
  --font-accent:'Cormorant Garamond','Playfair Display','Times New Roman',serif;

  --container:120rem;
  --container-narrow:80rem;
  --container-wide:140rem;

  --space-section:12rem;
  --space-section-md:8rem;

  --shadow-sm:0 2px 8px rgba(43,43,43,.04);
  --shadow-md:0 8px 24px rgba(43,43,43,.08);
  --shadow-lg:0 16px 48px rgba(43,43,43,.12);
  --shadow-cta:0 6px 16px rgba(96,152,88,.25);

  --radius-sm:4px;
  --radius-md:6px;
  --radius-pill:999px;

  --transition:0.4s cubic-bezier(0.4,0,0.2,1);
  --transition-slow:0.8s cubic-bezier(0.4,0,0.2,1);

  --header-h-top:8rem;
  --header-h-nav:5.6rem;
}

/* ---------- Containers ---------- */
.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 4rem}
.container-narrow{width:100%;max-width:var(--container-narrow);margin:0 auto;padding:0 4rem}
.container-wide{width:100%;max-width:var(--container-wide);margin:0 auto;padding:0 4rem}

/* ---------- Typography Utilities ---------- */
.h-eyebrow{
  font-family:var(--font-accent);
  font-style:italic;
  font-weight:400;
  font-size:1.3rem;
  letter-spacing:.20em;
  color:var(--color-text-mute);
  text-align:center;
  display:block;
  margin-bottom:1.4rem;
}
.h-section{
  font-family:var(--font-serif);
  font-size:3.6rem;
  font-weight:400;
  letter-spacing:.18em;
  color:var(--color-sage);
  text-align:center;
  line-height:1.5;
  margin:0;
}
.h-divider{
  display:block;
  width:240px;
  height:20px;
  margin:1.6rem auto 6.4rem;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 20'><path d='M0,10 Q40,0 60,10 T120,10 T180,10 T240,10' stroke='%23609858' stroke-width='1' fill='none'/><circle cx='120' cy='10' r='2.5' fill='%23609858'/></svg>");
  background-repeat:no-repeat;
  background-position:center;
}
.lead{
  font-family:var(--font-serif);
  font-weight:300;
  font-size:1.7rem;
  line-height:2.1;
  color:var(--color-text-soft);
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:1.2rem;
  height:5.6rem;
  padding:0 4rem;
  font-family:var(--font-sans);
  font-size:1.4rem;
  font-weight:500;
  letter-spacing:.1em;
  border-radius:var(--radius-sm);
  transition:var(--transition);
  cursor:pointer;
  text-align:center;
  white-space:nowrap;
}
.btn-primary{background:var(--color-sage);color:var(--color-white);border:1px solid var(--color-sage)}
.btn-primary:hover{background:var(--color-sage-dark);border-color:var(--color-sage-dark);box-shadow:var(--shadow-cta);opacity:1}
.btn-line{background:var(--color-line);color:var(--color-white);border:1px solid var(--color-line)}
.btn-line:hover{background:var(--color-line-dark);border-color:var(--color-line-dark);opacity:1}
.btn-outline{background:transparent;color:var(--color-text);border:1px solid var(--color-text)}
.btn-outline:hover{background:var(--color-text);color:var(--color-white);opacity:1}
.btn-plus::after{content:"+";font-size:1.8rem;font-weight:300;line-height:1}
.btn-arrow::after{content:"→";font-size:1.4rem;transition:transform .3s ease}
.btn-arrow:hover::after{transform:translateX(4px)}
.btn-block{display:flex;width:100%;max-width:48rem;margin:0 auto}

/* ---------- Header ---------- */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:rgba(255,255,255,.97);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--color-border);
  transition:var(--transition);
}
.site-header__top{
  display:flex;align-items:center;justify-content:space-between;
  height:var(--header-h-top);
  padding:0 4rem;
  max-width:144rem;margin:0 auto;
}
.site-logo{display:flex;align-items:center;gap:1.2rem}
.site-logo__icon{
  width:4.4rem;height:4.4rem;
  display:flex;align-items:center;justify-content:center;
  color:var(--color-sage);
}
.site-logo__icon svg{width:100%;height:100%}
.site-logo__text{display:flex;flex-direction:column;line-height:1.1}
.site-logo__name{font-family:var(--font-serif);font-size:1.3rem;letter-spacing:.12em;color:var(--color-text-soft)}
.site-logo__brand{font-family:var(--font-serif);font-size:2rem;letter-spacing:.15em;color:var(--color-text);margin-top:.2rem}
.site-logo__tag{font-family:var(--font-serif);font-style:italic;font-size:1rem;letter-spacing:.08em;color:var(--color-text-mute);margin-top:.4rem}

.site-header__cta{display:flex;align-items:center;gap:1.6rem}
.site-header__cta-block{display:flex;flex-direction:column;align-items:flex-end;gap:.4rem}
.site-header__cta-label{font-size:1rem;color:var(--color-text-mute);letter-spacing:.05em}
.btn-tel{
  display:inline-flex;align-items:center;gap:.8rem;
  height:4rem;padding:0 1.8rem;
  background:var(--color-sage);color:var(--color-white);
  font-family:var(--font-sans);font-size:1.3rem;font-weight:500;letter-spacing:.05em;
  border-radius:var(--radius-sm);
  transition:var(--transition);
}
.btn-tel:hover{background:var(--color-sage-dark);opacity:1}
.btn-tel::before{content:"☎";font-size:1.2rem}
.btn-line-mini{
  display:inline-flex;align-items:center;gap:.6rem;
  height:4rem;padding:0 1.8rem;
  background:var(--color-line);color:var(--color-white);
  font-family:var(--font-sans);font-size:1.3rem;font-weight:500;letter-spacing:.05em;
  border-radius:var(--radius-sm);
  transition:var(--transition);
}
.btn-line-mini:hover{background:var(--color-line-dark);opacity:1}
.btn-line-mini::before{content:"▶";font-size:1rem}

/* main green nav — ボタン型（WordPressのwp_nav_menu出力にも対応） */
.site-nav{
  background:var(--color-sage);
  height:var(--header-h-nav);
  display:flex;align-items:center;
}
.site-nav__list,
.site-nav .menu,
.site-nav ul{
  display:flex;align-items:stretch;justify-content:center;
  height:100%;max-width:120rem;margin:0 auto;width:100%;
  list-style:none;padding:0;gap:0;
}
/* ボタン1個（li要素）— site-nav__item クラス & WP出力の li 両対応 */
.site-nav__list > li,
.site-nav__list > .site-nav__item,
.site-nav .menu > li{
  flex:1;
  display:flex;align-items:center;justify-content:center;
  position:relative;
  padding:0 .8rem;
  border-right:1px solid rgba(255,255,255,.25);
  transition:var(--transition);
  list-style:none;
}
.site-nav__list > li:first-child,
.site-nav .menu > li:first-child{
  border-left:1px solid rgba(255,255,255,.25);
}
/* リンク本体 */
.site-nav__list > li > a,
.site-nav__list > .site-nav__item > a,
.site-nav__list .site-nav__link,
.site-nav .menu > li > a{
  display:flex;align-items:center;justify-content:center;
  width:100%;height:100%;min-height:5.6rem;
  font-family:var(--font-sans);
  font-size:1.3rem;letter-spacing:.12em;font-weight:500;
  color:var(--color-white);
  text-align:center;line-height:1.4;
  text-decoration:none;
  transition:var(--transition);
  padding:1rem 1.4rem;
}
/* ホバー時：背景を少し暗く＋ボタンが浮いた印象 */
.site-nav__list > li:hover,
.site-nav .menu > li:hover{
  background:rgba(255,255,255,.12);
}
.site-nav__list > li:hover > a,
.site-nav .menu > li:hover > a{
  color:var(--color-white);
}
/* 現在ページの強調 */
.site-nav__list > li.current-menu-item,
.site-nav__list > li.current_page_item,
.site-nav__list > .is-active,
.site-nav .menu > li.current-menu-item,
.site-nav .menu > li.current_page_item,
.site-nav__list > li > a.is-active{
  background:rgba(0,0,0,.18);
}
.site-nav__list > li.current-menu-item > a,
.site-nav__list > li.current_page_item > a,
.site-nav__list .is-active,
.site-nav .menu > li.current-menu-item > a,
.site-nav .menu > li.current_page_item > a{
  color:var(--color-white);
  font-weight:600;
}
/* 下線アクセント（ホバー＆アクティブ） */
.site-nav__list > li::after,
.site-nav .menu > li::after{
  content:"";
  position:absolute;
  left:50%;bottom:.8rem;
  transform:translateX(-50%) scaleX(0);
  width:2.4rem;height:1px;
  background:var(--color-white);
  transition:transform var(--transition);
}
.site-nav__list > li:hover::after,
.site-nav__list > li.current-menu-item::after,
.site-nav__list > li.current_page_item::after,
.site-nav .menu > li:hover::after,
.site-nav .menu > li.current-menu-item::after,
.site-nav .menu > li.current_page_item::after{
  transform:translateX(-50%) scaleX(1);
}

/* mobile toggle */
.menu-toggle{display:none;width:4rem;height:4rem;position:relative;margin-left:1rem}
.menu-toggle span{position:absolute;left:.6rem;width:2.8rem;height:1px;background:var(--color-text);transition:.3s ease}
.menu-toggle span:nth-child(1){top:1.4rem}
.menu-toggle span:nth-child(2){top:2rem}
.menu-toggle span:nth-child(3){top:2.6rem}

/* spacer for fixed header */
.header-spacer{height:calc(var(--header-h-top) + var(--header-h-nav))}

/* ---------- Botanical leaf SVG (decoration) ---------- */
.leaf-deco{
  position:absolute;pointer-events:none;
  opacity:.55;
}
.leaf-deco svg{width:100%;height:auto;display:block}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  padding:6rem 0 9rem;
  background:var(--color-white);
  overflow:hidden;
}
.hero__inner{
  position:relative;
  max-width:var(--container);
  margin:0 auto;
  padding:0 4rem;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6rem;
  align-items:center;
  z-index:2;
}
.hero__content{position:relative;z-index:3}
.hero__pre{
  font-family:var(--font-serif);font-weight:400;
  font-size:1.6rem;letter-spacing:.2em;color:var(--color-text-soft);
  margin-bottom:2rem;
}
.hero__title{
  font-family:var(--font-serif);font-weight:300;
  font-size:5rem;line-height:1.4;letter-spacing:.08em;
  color:var(--color-text);margin-bottom:2.6rem;
}
.hero__title .accent{color:var(--color-sage);font-weight:400}
.hero__brand{
  font-family:var(--font-serif);font-size:1.6rem;letter-spacing:.18em;color:var(--color-sage);margin-bottom:.6rem;
}
.hero__brand-en{
  font-family:var(--font-accent);font-size:3.6rem;letter-spacing:.16em;color:var(--color-sage);font-weight:400;margin-bottom:1rem;
}
.hero__tagline{
  font-family:var(--font-serif);font-style:italic;font-size:1.4rem;color:var(--color-text-mute);margin-bottom:3rem;
}
.hero__lead{
  font-family:var(--font-serif);font-weight:300;
  font-size:1.6rem;line-height:2.1;color:var(--color-text-soft);margin-bottom:3.6rem;max-width:46rem;
}
.hero__cta{display:flex;flex-wrap:wrap;gap:1.2rem}

.hero__visual{
  position:relative;
  aspect-ratio:1/1;
  display:grid;
  grid-template-columns:1.4fr 1fr;
  grid-template-rows:1fr 1fr;
  gap:1.4rem;
}
.hero__photo{
  position:relative;
  background:linear-gradient(135deg,#D8E0D0 0%,#B8C8A8 100%);
  overflow:hidden;
  border-radius:2px;
}
.hero__photo::after{
  content:attr(data-label);
  position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-accent);font-style:italic;font-size:1.2rem;letter-spacing:.2em;color:rgba(255,255,255,.85);
}
.hero__photo--main{grid-row:1/3}

.hero__menu-row{
  display:grid;grid-template-columns:repeat(3,1fr);gap:2.4rem;
  margin-top:2rem;
}
.hero__menu-item{
  display:flex;flex-direction:column;align-items:center;gap:1rem;
  padding:2rem 1rem;
  text-decoration:none;
  color:var(--color-text);
  transition:var(--transition);
  border-radius:4px;
}
a.hero__menu-item:hover{
  background:var(--color-cream);
  transform:translateY(-4px);
  box-shadow:var(--shadow-md);
  opacity:1;
}
a.hero__menu-item:hover .hero__menu-circle{
  transform:scale(1.05);
  box-shadow:var(--shadow-cta);
}
.hero__menu-circle{
  width:9rem;height:9rem;border-radius:50%;
  background:linear-gradient(135deg,#D8E0D0,#B8C8A8);
  background-size:cover;background-position:center;
  position:relative;overflow:hidden;
  transition:var(--transition);
}
.hero__menu-circle::after{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 30% 30%, rgba(255,255,255,.4), transparent 60%);
  pointer-events:none;
}
.hero__menu-en{font-family:var(--font-accent);font-style:italic;font-size:1.1rem;color:var(--color-sage);letter-spacing:.18em}
.hero__menu-jp{font-family:var(--font-serif);font-size:1.5rem;color:var(--color-text);letter-spacing:.08em;font-weight:400}

/* big leaf decoration */
.hero .leaf-deco--tl{top:0;left:0;width:28rem;height:28rem;transform:translate(-30%,-20%)}
.hero .leaf-deco--br{bottom:0;right:0;width:32rem;height:32rem;transform:translate(20%,20%)}

/* tagline below hero */
.hero-after{
  text-align:center;
  padding:6rem 0 0;
}
.hero-after__title{
  font-family:var(--font-serif);font-weight:400;
  font-size:3.2rem;letter-spacing:.18em;color:var(--color-sage);
}

/* sub hero (sub pages) */
.hero-sub{
  position:relative;
  padding:6rem 0 8rem;
  text-align:center;
  background:var(--color-white);
  overflow:hidden;
}
.hero-sub__inner{position:relative;z-index:2}
.hero-sub__title{
  font-family:var(--font-serif);font-weight:400;
  font-size:4.2rem;letter-spacing:.2em;color:var(--color-sage);
  margin-bottom:1.2rem;
}
.hero-sub__lead{
  font-family:var(--font-serif);font-weight:300;
  font-size:1.6rem;line-height:2;color:var(--color-text-soft);
  max-width:64rem;margin:2.4rem auto 0;
}
.hero-sub .leaf-deco--tl{top:1rem;left:0;width:20rem;height:20rem;transform:translate(-30%,-10%)}
.hero-sub .leaf-deco--br{bottom:1rem;right:0;width:22rem;height:22rem;transform:translate(15%,15%)}

/* ---------- Sections ---------- */
.section{padding:var(--space-section) 0;position:relative}
.section-md{padding:var(--space-section-md) 0}
.section-cream{background:var(--color-cream)}
.section-off{background:var(--color-off-white)}
.section-pale{background:var(--color-sage-pale)}
.section__head{margin-bottom:6rem;text-align:center}

/* down arrow between sections */
.flow-arrow{
  display:block;
  width:0;height:0;margin:0 auto;
  border-left:1.6rem solid transparent;
  border-right:1.6rem solid transparent;
  border-top:1.4rem solid var(--color-sage-light);
}

/* ---------- Concern checklist (TOPの4悩み) ---------- */
.concerns{max-width:64rem;margin:0 auto;padding:5rem 4rem;background:var(--color-white);border:1px solid var(--color-sage-light)}
.concerns__title{
  font-family:var(--font-serif);text-align:center;
  font-size:2rem;color:var(--color-sage);margin-bottom:3rem;letter-spacing:.08em;
}
.concerns__list{display:flex;flex-direction:column;gap:1.6rem}
.concerns__item{display:flex;gap:1.6rem;align-items:flex-start;font-family:var(--font-serif);font-size:1.6rem;line-height:1.9;color:var(--color-text)}
.concerns__check{
  flex-shrink:0;width:2.2rem;height:2.2rem;margin-top:.4rem;
  border:1px solid var(--color-sage);
  display:flex;align-items:center;justify-content:center;
}
.concerns__check::after{
  content:"";width:.9rem;height:.4rem;
  border-left:1px solid var(--color-sage);border-bottom:1px solid var(--color-sage);
  transform:rotate(-45deg) translate(2px,-1px);
}

/* ---------- Pillars (3 cards) ---------- */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:2.4rem}
.pillar{
  background:var(--color-white);
  border:1px solid var(--color-border);
  padding:5rem 3rem;
  text-align:center;
  transition:var(--transition);
  position:relative;
}
.pillar:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.pillar__num{
  font-family:var(--font-accent);font-style:italic;font-weight:400;
  font-size:1.4rem;letter-spacing:.3em;color:var(--color-sage);margin-bottom:1rem;display:block;
}
.pillar__divider{
  width:4rem;height:1px;background:var(--color-sage);margin:0 auto 2.4rem;
}
.pillar__title{
  font-family:var(--font-serif);font-weight:400;
  font-size:2rem;letter-spacing:.08em;color:var(--color-text);margin-bottom:2rem;
}
.pillar__desc{
  font-size:1.4rem;line-height:2;color:var(--color-text-soft);text-align:left;
}

/* ---------- Founder ---------- */
.founder{display:grid;grid-template-columns:1fr 1.2fr;gap:8rem;align-items:center}
.founder__visual{
  aspect-ratio:3/4;
  background:linear-gradient(135deg,#B8C8A8 0%,#90A058 100%);
  position:relative;overflow:hidden;border-radius:2px;
}
.founder__visual::after{
  content:"FOUNDER PORTRAIT";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-family:var(--font-accent);font-style:italic;font-size:1.3rem;letter-spacing:.2em;color:rgba(255,255,255,.8);
}
.founder__name{font-family:var(--font-serif);font-size:3rem;letter-spacing:.12em;color:var(--color-text);margin-bottom:.4rem}
.founder__name-en{
  font-family:var(--font-accent);font-style:italic;font-size:1.6rem;letter-spacing:.25em;color:var(--color-sage);margin-bottom:3rem;
}
.founder__role{font-size:1.4rem;color:var(--color-text-soft);margin-bottom:2.4rem;letter-spacing:.05em}
.founder__bio{font-size:1.5rem;line-height:2.1;color:var(--color-text-soft);margin-bottom:3rem}
.founder__stats{
  display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;
  padding:3rem 0;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);margin-bottom:3rem;
}
.founder__stat-num{
  font-family:var(--font-accent);font-style:italic;font-size:3.2rem;color:var(--color-sage);line-height:1;display:block;
}
.founder__stat-unit{font-family:var(--font-sans);font-size:1.2rem;color:var(--color-text-mute);margin-left:.4rem}
.founder__stat-label{font-size:1.1rem;color:var(--color-text-soft);margin-top:.8rem;letter-spacing:.05em}

/* ---------- Steps (zigzag) ---------- */
.steps{display:flex;flex-direction:column;gap:0;max-width:96rem;margin:0 auto}
.step{
  display:grid;grid-template-columns:1fr 1fr;gap:6rem;align-items:center;
  padding:5rem 4rem;
  background:var(--color-cream);
}
.step:nth-child(even) > .step__visual{order:2}
.step:nth-child(even) > .step__body{order:1}
.step__visual{
  aspect-ratio:4/3;
  background:linear-gradient(135deg,#D8E0D0,#B8C8A8);
  position:relative;overflow:hidden;border-radius:2px;
}
.step__visual::after{
  content:"PHOTO";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-family:var(--font-accent);font-style:italic;letter-spacing:.3em;color:rgba(255,255,255,.7);
}
.step__num{
  font-family:var(--font-accent);font-style:italic;font-weight:400;
  font-size:3.6rem;color:var(--color-sage);letter-spacing:.04em;line-height:1;display:block;margin-bottom:1.2rem;
}
.step__divider{width:6rem;height:1px;background:var(--color-sage);margin-bottom:1.6rem}
.step__title{font-family:var(--font-serif);font-size:2.2rem;color:var(--color-sage);letter-spacing:.05em;margin-bottom:1.6rem;font-weight:400}
.step__desc{font-size:1.4rem;line-height:2;color:var(--color-text-soft)}
.step-arrow{
  display:flex;justify-content:center;padding:2.4rem 0;
}
.step-arrow::after{
  content:"";display:block;width:0;height:0;
  border-left:1.4rem solid transparent;border-right:1.4rem solid transparent;border-top:1.2rem solid var(--color-sage-light);
}

/* ---------- Voices ---------- */
.voices{display:grid;grid-template-columns:repeat(2,1fr);gap:3rem;max-width:108rem;margin:0 auto}
.voice{
  background:var(--color-white);
  border:1px solid var(--color-border);
  overflow:hidden;
}
.voice__head{
  background:var(--color-sage-mist);
  text-align:center;
  padding:1.6rem 2rem;
  font-family:var(--font-serif);font-size:1.5rem;color:var(--color-sage);letter-spacing:.05em;
  border-bottom:1px solid var(--color-sage-light);
}
.voice__body{padding:3rem}
.voice__profile{
  display:flex;align-items:center;gap:1rem;margin-bottom:1.6rem;
  font-family:var(--font-serif);font-size:1.4rem;color:var(--color-text);letter-spacing:.05em;
}
.voice__profile::before{content:"▶";color:var(--color-sage);font-size:.9rem}
.voice__text{font-size:1.4rem;line-height:2;color:var(--color-text-soft)}
.disclaimer{
  font-size:1.1rem;line-height:1.8;color:var(--color-text-mute);
  text-align:center;margin-top:4rem;max-width:64rem;margin-left:auto;margin-right:auto;
}

/* ---------- News ---------- */
.news-list{max-width:88rem;margin:0 auto;display:flex;flex-direction:column;gap:0}
.news-item{
  padding:3.2rem 0;
  border-top:1px solid var(--color-sage-light);
  display:grid;grid-template-columns:auto 1fr;gap:3rem;align-items:start;
}
.news-item:last-child{border-bottom:1px solid var(--color-sage-light)}
.news-item__date{
  font-family:var(--font-accent);font-style:italic;font-size:1.4rem;color:var(--color-sage);letter-spacing:.1em;
}
.news-item__title{
  font-family:var(--font-serif);font-size:1.7rem;color:var(--color-text);letter-spacing:.05em;line-height:1.7;
}
.news-item__title:hover{color:var(--color-sage)}

/* ---------- Therapist filter & grid ---------- */
.therapist-filter{
  display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center;margin-bottom:6rem;max-width:88rem;margin-left:auto;margin-right:auto;
}
.therapist-filter__btn{
  padding:1rem 2.4rem;font-size:1.3rem;letter-spacing:.08em;
  background:var(--color-white);border:1px solid var(--color-sage);color:var(--color-sage);
  transition:var(--transition);border-radius:var(--radius-pill);
}
.therapist-filter__btn:hover,
.therapist-filter__btn.is-active{background:var(--color-sage);color:var(--color-white)}

.therapist-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3.6rem}
.therapist-card{
  background:var(--color-white);
  border:1px solid var(--color-border);
  transition:var(--transition);
  display:flex;flex-direction:column;
}
.therapist-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);opacity:1}
.therapist-card__photo{
  aspect-ratio:4/5;
  background:linear-gradient(135deg,#D8E0D0,#B8C8A8);
  position:relative;
}
.therapist-card__photo::after{
  content:"PHOTO";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-family:var(--font-accent);font-style:italic;letter-spacing:.3em;color:rgba(255,255,255,.7);font-size:1.2rem;
}
.therapist-card__photo.has-photo::after{content:none}
/* v3.3: カードが3枚未満のセクションは中央揃え */
.therapist-grid--center{display:flex;flex-wrap:wrap;justify-content:center;gap:3.6rem}
.therapist-grid--center .therapist-card{flex:0 0 calc((100% - 7.2rem)/3);max-width:calc((100% - 7.2rem)/3)}
.therapist-card__body{padding:3rem;flex:1;display:flex;flex-direction:column}
.therapist-card__region{
  font-family:var(--font-accent);font-style:italic;font-size:1.2rem;letter-spacing:.2em;color:var(--color-sage);display:block;margin-bottom:.8rem;
}
.therapist-card__name{font-family:var(--font-serif);font-size:2rem;letter-spacing:.05em;color:var(--color-text);margin-bottom:.4rem;font-weight:400}
.therapist-card__rank{font-size:1.1rem;letter-spacing:.1em;color:var(--color-text-mute);margin-bottom:1.6rem}
.therapist-card__desc{font-size:1.3rem;line-height:1.9;color:var(--color-text-soft);margin-bottom:2rem;flex:1}
.therapist-card__link{
  font-family:var(--font-accent);font-style:italic;font-size:1.3rem;letter-spacing:.2em;
  color:var(--color-sage);align-self:flex-start;border-bottom:1px solid var(--color-sage);padding-bottom:.4rem;
}

/* ---------- Blog cards ---------- */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3.6rem}
.blog-card{
  background:var(--color-white);
  border:1px solid var(--color-border);
  display:flex;flex-direction:column;
  transition:var(--transition);
}
.blog-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);opacity:1}
.blog-card__photo{
  aspect-ratio:16/10;
  background:linear-gradient(135deg,#B8C8A8,#90A058);
  position:relative;
}
.blog-card__photo::after{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 70% 30%,rgba(255,255,255,.3),transparent 50%);
}
.blog-card__body{padding:3rem;flex:1;display:flex;flex-direction:column}
.blog-card__meta{
  display:flex;gap:1.6rem;margin-bottom:1.4rem;
  font-family:var(--font-accent);font-style:italic;font-size:1.2rem;letter-spacing:.15em;color:var(--color-text-mute);
}
.blog-card__category{color:var(--color-sage)}
.blog-card__title{
  font-family:var(--font-serif);font-size:1.8rem;line-height:1.6;letter-spacing:.04em;color:var(--color-text);margin-bottom:1.4rem;flex:1;font-weight:400;
}
.blog-card__excerpt{font-size:1.3rem;line-height:1.9;color:var(--color-text-soft)}

/* ---------- Article (blog post) ---------- */
.article{max-width:76rem;margin:0 auto;padding:0 4rem}
.article__head{text-align:center;padding-bottom:5rem;border-bottom:1px solid var(--color-sage-light);margin-bottom:5rem}
.article__category{
  font-family:var(--font-accent);font-style:italic;font-size:1.3rem;letter-spacing:.3em;color:var(--color-sage);display:inline-block;margin-bottom:2rem;
}
.article__title{
  font-family:var(--font-serif);font-weight:400;font-size:3.6rem;line-height:1.6;letter-spacing:.05em;color:var(--color-text);margin-bottom:3rem;
}
.article__meta{display:flex;justify-content:center;gap:2.4rem;font-size:1.3rem;color:var(--color-text-mute);letter-spacing:.05em}
.article__body{font-size:1.6rem;line-height:2.2;color:var(--color-text)}
.article__body p{margin-bottom:2.4rem}
.article__body h2{
  font-family:var(--font-serif);font-weight:400;font-size:2.6rem;line-height:1.5;letter-spacing:.06em;
  color:var(--color-sage);margin:6rem 0 3rem;padding-left:2rem;border-left:3px solid var(--color-sage);
}
.article__body h3{
  font-family:var(--font-serif);font-weight:400;font-size:2rem;letter-spacing:.05em;
  color:var(--color-text);margin:4rem 0 2rem;
}
.article__body strong{background:linear-gradient(transparent 60%,var(--color-sage-pale) 60%);font-weight:500}
.article__body blockquote{
  font-family:var(--font-serif);font-size:1.7rem;line-height:2;font-style:italic;
  background:var(--color-cream);border-left:3px solid var(--color-sage);
  padding:3rem;margin:4rem 0;color:var(--color-text-soft);
}
.article__body ul{margin:2.4rem 0;padding:0;list-style:none}
.article__body ul li{padding-left:2.4rem;margin-bottom:1rem;position:relative}
.article__body ul li::before{content:"—";position:absolute;left:0;color:var(--color-sage)}
.article__notice{
  background:var(--color-cream-soft);border:1px solid var(--color-border);
  padding:2.4rem;margin:4rem 0;font-size:1.3rem;line-height:1.9;color:var(--color-text-soft);
}
.article__notice strong{display:block;margin-bottom:.6rem;color:var(--color-sage);font-weight:500}

/* ---------- LINE block ---------- */
.line-block{
  background:linear-gradient(135deg,var(--color-sage) 0%,var(--color-olive) 100%);
  padding:9rem 2.4rem;
  text-align:center;color:var(--color-white);
  position:relative;overflow:hidden;
}
.line-block__title{
  font-family:var(--font-serif);font-weight:300;font-size:3.2rem;letter-spacing:.18em;margin-bottom:1.6rem;
}
.line-block__text{font-size:1.5rem;line-height:2.1;max-width:66rem;margin:0 auto 3.6rem;opacity:.95;text-wrap:pretty}
.line-block__inner{display:flex;flex-direction:column;align-items:center;gap:1.4rem}
.line-block__note{font-size:1.25rem;letter-spacing:.06em;opacity:.85;margin:0}
.line-block__btn{
  background:var(--color-line);color:var(--color-white);
  padding:0 5rem;height:6rem;font-size:1.5rem;letter-spacing:.1em;
  display:inline-flex;align-items:center;gap:1.2rem;border-radius:var(--radius-pill);transition:var(--transition);box-shadow:0 8px 24px rgba(0,0,0,.12);
}
.line-block__btn:hover{background:var(--color-line-dark);opacity:1}
.line-block__btn::before{
  content:"";display:inline-block;width:2.4rem;height:2.4rem;border-radius:50%;background:var(--color-white);
  font-family:var(--font-accent);font-size:1.4rem;color:var(--color-line);font-weight:700;
  display:inline-flex;align-items:center;justify-content:center;
}
.line-block__btn::before{content:"L"}

/* ---------- License banner (subtle, sub-CTA) ---------- */
.license-banner{
  background:var(--color-cream);
  padding:6rem 4rem;text-align:center;
}
.license-banner__title{
  font-family:var(--font-serif);font-size:2.4rem;color:var(--color-sage);letter-spacing:.1em;margin-bottom:1.4rem;font-weight:400;
}
.license-banner__text{font-size:1.4rem;line-height:2;color:var(--color-text-soft);max-width:54rem;margin:0 auto 2.8rem}

/* ---------- Footer ---------- */
.site-footer__photo{
  width:100%;aspect-ratio:21/6;
  background:linear-gradient(135deg,#B8C8A8 0%,#90A058 50%,#7A8B4A 100%);
  position:relative;
}
.site-footer__photo::after{
  content:"FACILITY PHOTO";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-family:var(--font-accent);font-style:italic;letter-spacing:.4em;color:rgba(255,255,255,.6);font-size:1.5rem;
}
.site-footer{
  background:linear-gradient(180deg,var(--color-olive) 0%,var(--color-olive-dark) 100%);
  color:var(--color-white);padding:8rem 0 4rem;
}
.site-footer__inner{max-width:120rem;margin:0 auto;padding:0 4rem;text-align:center}
.site-footer__logo{display:flex;flex-direction:column;align-items:center;margin-bottom:3rem}
.site-footer__logo svg{width:5rem;height:5rem;color:var(--color-white);margin-bottom:1.4rem}
.site-footer__name{font-family:var(--font-serif);font-size:1.4rem;letter-spacing:.15em;color:var(--color-white);margin-bottom:.4rem}
.site-footer__brand{font-family:var(--font-serif);font-size:2.2rem;letter-spacing:.18em;color:var(--color-white);margin-bottom:.4rem}
.site-footer__tag{font-family:var(--font-serif);font-style:italic;font-size:1.2rem;letter-spacing:.08em;color:rgba(255,255,255,.85)}
.site-footer__address{font-size:1.3rem;line-height:1.9;color:rgba(255,255,255,.9);margin-bottom:3rem;letter-spacing:.05em}
.site-footer__nav{
  display:flex;flex-wrap:wrap;justify-content:center;gap:1rem 2.4rem;margin-bottom:3rem;
}
.site-footer__nav a{font-size:1.2rem;letter-spacing:.08em;color:rgba(255,255,255,.85)}
.site-footer__nav a:hover{color:var(--color-white)}
.site-footer__copy{font-family:var(--font-accent);font-style:italic;font-size:1.1rem;letter-spacing:.2em;color:rgba(255,255,255,.7)}

/* ---------- Floating LINE ---------- */
.float-line{
  position:fixed;right:2.4rem;bottom:2.4rem;z-index:90;
  display:inline-flex;align-items:center;gap:.8rem;
  height:5rem;padding:0 2rem;
  background:var(--color-line);color:var(--color-white);
  font-size:1.3rem;letter-spacing:.08em;border-radius:var(--radius-pill);
  box-shadow:0 8px 24px rgba(6,199,85,.3);transition:var(--transition);
}
.float-line:hover{background:var(--color-line-dark);transform:translateY(-2px);opacity:1}
.float-line::before{
  content:"L";display:inline-flex;align-items:center;justify-content:center;
  width:2.4rem;height:2.4rem;border-radius:50%;background:var(--color-white);color:var(--color-line);
  font-family:var(--font-accent);font-style:italic;font-weight:700;font-size:1.4rem;
}

/* ---------- Animations ---------- */
.fade-in{opacity:0;transform:translateY(24px);transition:opacity .8s ease, transform .8s ease}
.fade-in.is-visible{opacity:1;transform:translateY(0)}

/* ---------- Region map (simple) ---------- */
.region-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;max-width:88rem;margin:0 auto 4rem}
.region-btn{
  display:flex;flex-direction:column;align-items:center;gap:.4rem;
  padding:2rem 1.4rem;
  background:var(--color-white);border:1px solid var(--color-sage-light);
  transition:var(--transition);
}
.region-btn:hover{background:var(--color-sage);color:var(--color-white);border-color:var(--color-sage);opacity:1}
.region-btn__name{font-family:var(--font-serif);font-size:1.5rem;letter-spacing:.05em}
.region-btn__count{font-family:var(--font-accent);font-style:italic;font-size:1.1rem;letter-spacing:.15em;color:var(--color-sage)}
.region-btn:hover .region-btn__count{color:rgba(255,255,255,.85)}

/* ---------- Quote / pull ---------- */
.pull-quote{
  font-family:var(--font-serif);font-style:italic;font-weight:300;
  font-size:2rem;line-height:2;color:var(--color-text);
  text-align:center;max-width:64rem;margin:0 auto;padding:0 2rem;letter-spacing:.05em;
}
.pull-quote__attr{display:block;font-size:1.3rem;color:var(--color-text-mute);font-style:normal;margin-top:1.6rem;letter-spacing:.15em}

/* ---------- Breadcrumbs ---------- */
.breadcrumbs{
  font-family:var(--font-accent);font-style:italic;font-size:1.2rem;letter-spacing:.15em;
  color:var(--color-text-mute);text-align:center;margin-bottom:2rem;
}
.breadcrumbs a:hover{color:var(--color-sage)}

/* ---------- Responsive ---------- */
@media (max-width:1100px){
  .therapist-grid,.blog-grid{grid-template-columns:repeat(2,1fr)}
  .therapist-grid--center .therapist-card{flex-basis:calc((100% - 3.6rem)/2);max-width:calc((100% - 3.6rem)/2)}
}
@media (max-width:960px){
  html{font-size:56.25%}
  .container,.container-narrow,.container-wide,.hero__inner,.site-header__top,.site-footer__inner{padding-left:2.4rem;padding-right:2.4rem}

  .site-nav{display:none}
  .menu-toggle{display:block}
  .header-spacer{height:var(--header-h-top)}

  .site-header__cta-block{display:none}
  .site-header__cta{gap:.8rem}

  .hero{padding:3rem 0 6rem}
  .hero__inner{grid-template-columns:1fr;gap:4rem}
  .hero__title{font-size:3.6rem}
  .hero__brand-en{font-size:2.8rem}
  .hero__visual{max-width:48rem;margin:0 auto}
  .hero .leaf-deco--tl,.hero .leaf-deco--br{display:none}

  .hero-after__title{font-size:2.4rem}
  .hero-sub{padding:4rem 0 6rem}
  .hero-sub__title{font-size:3rem}

  .section{padding:8rem 0}
  .h-section{font-size:2.6rem}

  .pillars,.therapist-grid,.blog-grid{grid-template-columns:1fr}
  .therapist-grid--center .therapist-card{flex-basis:100%;max-width:100%}
  .voices{grid-template-columns:1fr}
  .founder{grid-template-columns:1fr;gap:4rem}
  .founder__stats{grid-template-columns:repeat(2,1fr)}
  .step{grid-template-columns:1fr;gap:3rem;padding:3rem 2rem}
  .step:nth-child(even) > .step__visual{order:1}
  .step:nth-child(even) > .step__body{order:2}
  .region-grid{grid-template-columns:repeat(2,1fr)}
  .news-item{grid-template-columns:1fr;gap:.6rem}
  .article{padding:0 2.4rem}
  .article__title{font-size:2.6rem}
  .article__body h2{font-size:2.2rem}
  .float-line{right:1.4rem;bottom:1.4rem;height:4.4rem;font-size:1.2rem;padding:0 1.4rem}
}
@media (max-width:560px){
  .hero__title{font-size:3rem}
  .hero__brand-en{font-size:2.4rem}
  .h-section{font-size:2.2rem}
  .pillar{padding:3rem 2rem}
  .voice__body{padding:2rem}
  .therapist-card__body,.blog-card__body{padding:2rem}
  .line-block__title{font-size:2.4rem}
  .line-block__text{font-size:1.4rem}
  .therapist-filter__btn{padding:.8rem 1.6rem;font-size:1.2rem}
}


/* ========== v3.4: セラピスト横長カード ========== */
.tlist{display:flex;flex-direction:column;gap:2.4rem;max-width:96rem;margin:0 auto}
.tcard{
  display:flex;align-items:stretch;gap:0;
  background:var(--color-white);border:1px solid var(--color-border);
  transition:var(--transition);overflow:hidden;
}
.tcard:hover{box-shadow:0 10px 30px rgba(0,0,0,.06);transform:translateY(-2px)}
.tcard__photo{
  flex:0 0 22rem;min-height:26rem;display:block;position:relative;
  background:var(--color-sage-pale,#eef3ea) center/cover no-repeat;
}
.tcard__photo:not(.has-photo)::after{
  content:"PHOTO";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-family:var(--font-accent);font-style:italic;letter-spacing:.3em;color:rgba(255,255,255,.8);font-size:1.2rem;
}
.tcard__body{flex:1;min-width:0;padding:2.8rem 3.2rem;display:flex;flex-direction:column;gap:.6rem}
.tcard__region{font-family:var(--font-accent);font-style:italic;font-size:1.2rem;letter-spacing:.2em;color:var(--color-sage);display:block}
.tcard__name{font-size:2rem;letter-spacing:.06em;line-height:1.4;margin:0}
.tcard__name a{color:inherit;text-decoration:none}
.tcard__name a:hover{color:var(--color-sage)}
.tcard__rank{font-size:1.25rem;letter-spacing:.12em;color:var(--color-text-light,#6b6b6b);margin:0}
.tcard__desc{font-size:1.4rem;line-height:1.9;margin:.4rem 0 0;color:var(--color-text)}
.tcard__meta{margin:1rem 0 0;padding:1.2rem 0 0;border-top:1px dashed var(--color-border);display:grid;grid-template-columns:1fr;gap:.5rem}
.tcard__meta div{display:flex;gap:1.2rem;font-size:1.35rem;line-height:1.7}
.tcard__meta dt{flex:0 0 6em;color:var(--color-sage);letter-spacing:.1em;font-weight:600}
.tcard__meta dd{margin:0;min-width:0;word-break:break-word}
.tcard__meta a{color:inherit;text-decoration:underline;text-decoration-color:rgba(0,0,0,.2)}
.tcard__actions{display:flex;align-items:center;gap:1.2rem;margin-top:auto;padding-top:1.6rem;flex-wrap:wrap}
.tcard__line{
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  padding:1.1rem 2.4rem;border-radius:var(--radius-pill);
  background:#06C755;color:#fff;font-size:1.35rem;letter-spacing:.08em;text-decoration:none;
  transition:var(--transition);
}
.tcard__line:hover{background:#05b04c}
.tcard__icon{
  display:inline-flex;align-items:center;justify-content:center;width:4rem;height:4rem;border-radius:50%;
  border:1px solid var(--color-sage);color:var(--color-sage);transition:var(--transition);
}
.tcard__icon:hover{background:var(--color-sage);color:#fff}
.tcard__more{font-size:1.3rem;letter-spacing:.08em;color:var(--color-sage);text-decoration:none;border-bottom:1px solid currentColor}
.tcard__soon{font-size:1.2rem;letter-spacing:.2em;color:var(--color-text-light,#8a8a8a);margin-top:auto}
.tcard--placeholder{opacity:.75}
@media (max-width:760px){
  .tcard{flex-direction:column}
  .tcard__photo{flex-basis:auto;width:100%;min-height:0;aspect-ratio:4/3}
  .tcard__body{padding:2.2rem 2rem}
  .tcard__meta dt{flex-basis:5em}
  .tcard__line{width:100%}
}
