/*
Theme Name: Be ME
Theme URI: https://okumamami.com/
Author: KOKORO企画
Author URI: https://okumamami.com/
Description: 大熊まみ / Be ME 公式サイト用オリジナルテーマ。思考参謀セッション・瞑想コミュニティ Aune prAna を紹介する1ページ完結型コーポレートサイト。
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: beme
*/

/* ─── RESET & BASE ─── */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }

/* ページ読み込み時のフェードイン
   JS が body に .page-ready を付与した瞬間にふわっと表示。
   JS無効時に真っ白にならないよう、no-js では即表示する。 */
body.beme-fade { opacity:0; }
body.beme-fade.page-ready {
  opacity:1;
  transition:opacity .6s ease;
}

/* テキスト選択範囲の色（サイトのアクセントに調和） */
::selection { background:#EDD8D0; color:#6E3F3F; }
::-moz-selection { background:#EDD8D0; color:#6E3F3F; }

:root {
  --bg:          #FAFAFA;
  --white:       #FFFFFF;
  --beige:       #EAE0D3;
  --greige:      #C8BFB5;
  --gray-light:  #D6D3CE;
  --text:        #4A4845;
  --heading:     #2E2C2A;
  --accent:      #A26769;
  --accent-pale: #EDD8D0;
  --accent-deep: #6E3F3F;
  --navy:        #1C2B3A;
  --footer-bg:   #A26769;
  --dark:        #2A2725;
}

html { scroll-behavior:smooth; font-size:1.0rem; }

body {
  font-family:'Zen Old Mincho', serif;
  color:var(--text);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}

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

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

.sp-br { display:none; }

/* ─── TYPOGRAPHY ─── */
.en {
  font-family:'Cormorant Garamond', serif;
  font-size:1.25rem;
  font-weight:300;
  letter-spacing:.1em;
  color:var(--accent);
  text-transform:uppercase;
  display:block;
}

h1, h2, h3 {
  font-family:'Zen Old Mincho', serif;
  font-weight:400;
  color:var(--heading);
  letter-spacing:.04em;
  line-height:1.5;
}

h2 { font-size:2.5rem; }

p {
  font-family:'Zen Old Mincho', serif;
  font-size:1rem;
  font-weight:300;
  line-height:1.65;
  letter-spacing:.03em;
  color:var(--text);
}

/* ─── LAYOUT ─── */
.container { max-width:1520px; margin:0 auto; padding:0 100px; }
section { padding:160px 0; }

.sec-header { margin-bottom:72px; }
.sec-header .en { margin-bottom:14px; }


/* ─── LOGO IMAGE ─── */
.logo-img {
  height:68px;
  width:auto;
  display:block;
}

.logo-img-footer {
  height:68px;
  width:auto;
  display:block;
}



/* ─── NAVIGATION ─── */
#nav {
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:300;
  border-bottom:1px solid transparent;
  transition:background .4s, border-color .4s, box-shadow .4s;
}

#nav.scrolled {
  background:#FAFAFA;
  border-bottom:1px solid rgba(0,0,0,.06);
  box-shadow:0 2px 12px rgba(0,0,0,.06);
}

.nav-inner {
  display:flex;
  flex-direction:row;
  flex-wrap:nowrap;
  align-items:center;
  max-width:1520px;
  margin:0 auto;
  padding:18px 100px;
  transition:padding .3s;
}

#nav.scrolled .nav-inner {
  padding:12px 100px;
}

.nav-logo {
  display:block;
  flex-shrink:0;
  margin-right:auto;
}

.nav-links {
  display:flex;
  flex-direction:row;
  flex-wrap:nowrap;
  align-items:center;
  gap:44px;
  list-style:none;
  margin:0;
  padding:0;
  margin-right:32px;
}

.nav-links li { display:block; }

.nav-links a {
  font-family:'Zen Old Mincho', serif;
  font-size:1rem;
  font-weight:300;
  letter-spacing:.08em;
  color:#6E3F3F;
  white-space:nowrap;
  transition:color .3s;
}

.nav-links a:hover { color:var(--accent); }
.nav-links a.active { color:#6E3F3F; }

.nav-cta {
  display:inline-block;
  font-family:'Zen Old Mincho', serif;
  font-size:1rem;
  font-weight:300;
  letter-spacing:.1em;
  color:#fff;
  background:var(--accent);
  padding:14px 70px;
  white-space:nowrap;
  transition:background .3s;
}

.nav-cta:hover { background:var(--accent-deep); }

/* ─── BUTTONS ─── */
.btn {
  display:inline-block;
  font-family:'Zen Old Mincho', serif;
  font-size:1rem;
  font-weight:300;
  letter-spacing:.1em;
  padding:18px 52px;
  transition:background .3s, color .3s, border-color .3s;
  cursor:pointer;
  border:none;
}

.btn-fill {
  background:var(--accent-deep);
  color:#fff;
}
.btn-fill:hover { background:var(--accent); }

.btn-navy {
  background:var(--navy);
  color:#fff;
  transition:opacity .6s ease;
}
.btn-navy:hover { background:#243545; }

.btn-outline {
  border:0.5px solid var(--heading);
  color:var(--heading);
  background:transparent;
}
.btn-outline:hover { border-color:var(--accent); color:var(--accent); }

.btn-text {
  display:inline-flex;
  align-items:center;
  justify-content:flex-end;
  gap:14px;
  max-width:100%;
  margin-left:auto;
  font-family:'Zen Old Mincho', serif;
  font-size:1rem;
  font-weight:300;
  letter-spacing:.1em;
  color:var(--text);
  border-bottom:0.5px solid var(--gray-light);
  padding-bottom:8px;
  padding-right:24px;
  transition:border-color .3s;
}
.btn-text-arrow {
  display:inline-flex;
  align-items:center;
  transition:transform .5s ease;
}
.arrow-icon {
  width:20px;
  height:auto;
  display:block;
}
.btn-text:hover .btn-text-arrow {
  transform:translateX(6px);
}

/* ─── FOOTER ─── */
/* ─── FOOTER ─── */
.site-footer { background:var(--footer-bg); }

.footer-cta-wrap {
  padding:60px 100px;
}

.footer-cta {
  max-width:1200px;
  margin:0 auto;
  background:var(--bg);
  padding:80px 100px;
}

.footer-cta-en {
  color:var(--accent);
  margin-bottom:28px;
}

.footer-cta-body {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:48px;
  align-items:start;
  margin-bottom:40px;
}

.footer-cta-left h2 {
  font-size:2.5rem;
  font-weight:400;
  color:var(--heading);
  line-height:1.5;
  letter-spacing:.04em;
}

.footer-cta-right p {
  font-size:1rem;
  color:var(--text);
  line-height:1.7;
  letter-spacing:.03em;
  padding-top:8px;
}

.footer-cta-buttons {
  display:flex;
  gap:32px;
}

.footer-cta-buttons .btn-navy:hover {
  background:#1C2B3A;
  opacity:0.7;
}

.footer-cta-buttons .btn {
  flex:1;
  text-align:center;
}

.footer-bottom {
  max-width:1520px;
  margin:0 auto;
  padding:44px 100px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}

.footer-logo {
  font-family:'Cormorant Garamond', serif;
  font-size:1.375rem;
  font-weight:300;
  letter-spacing:.1em;
  color:rgba(255,255,255,.7);
}

.footer-nav-wrap {
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:12px;
}

.footer-nav {
  display:flex;
  gap:28px;
  list-style:none;
}

.footer-nav--sub {
  gap:16px;
}

.footer-nav a {
  font-family:'Zen Old Mincho', serif;
  font-size:1rem;
  font-weight:300;
  letter-spacing:.08em;
  color:#ffffff;
  transition:color .3s;
}
.footer-nav a:hover { color:var(--accent-pale); }

.footer-copy-bar {
  border-top:1px solid #ffffff;
  padding:20px 100px;
  text-align:center;
  color:#ffffff;
}

.footer-copy {
  font-family:'Cormorant Garamond', serif;
  font-size:1rem;
  font-weight:300;
  letter-spacing:.06em;
  color:#ffffff;
}

/* ─── HERO COMMON ─── */
.page-hero {
  padding:200px 0 100px;
  text-align:center;
  position:relative;
}

.page-hero::after {
  content:'';
  position:absolute;
  bottom:0; left:50%; transform:translateX(-50%);
  width:0.5px; height:48px;
  background:var(--gray-light);
}

.page-hero .en { margin-bottom:20px; justify-content:center; display:flex; }

.page-hero h1 {
  font-size:2.5rem;
  font-weight:400;
  letter-spacing:.04em;
  color:var(--heading);
}

/* ─── PHOTO PLACEHOLDER ─── */
.photo-placeholder {
  background:linear-gradient(160deg, var(--beige) 0%, var(--greige) 100%);
  display:flex;
  align-items:center;
  justify-content:center;
}

.photo-placeholder::after {
  content:'IMAGE';
  font-family:'Cormorant Garamond', serif;
  font-size:0.625rem;
  font-weight:300;
  letter-spacing:.2em;
  color:rgba(0,0,0,.2);
}


/* ─── FORYOU BACKGROUND ─── */
.foryou-bg {
  position:absolute;
  inset:0;
  z-index:0;
}

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

.foryou-mask { display:none; }
/* ─── こんな方へ（DARK SECTION）─── */
.section-dark {
  background:var(--dark);
  position:relative;
  overflow:hidden;
}

.section-dark .en { color:rgba(162,103,105,.8); }
.section-dark h2 { color:rgba(250,250,250,.9); }
.section-dark p { color:rgba(200,190,180,.7); }

.dark-list {
  list-style:none;
  background:rgba(255,255,255,0.88);
  width:1200px;
  max-width:100%;
  margin:0 auto;
  padding:50px 300px;
}

.dark-list li {
  font-family:'Zen Old Mincho', serif;
  font-size:1rem;
  font-weight:300;
  letter-spacing:.03em;
  color:#2E2C2A;
  padding:28px 50px;
  border-bottom:0.5px solid #D1CDC8;
  display:flex;
  align-items:center;
  gap:16px;
  line-height:1.65;
}

.dark-list li:first-child { border-top:none; }
.dark-list li:last-child { border-bottom:none; }

.dark-dot {
  width:4px; height:4px;
  border-radius:50%;
  background:var(--accent);
  flex-shrink:0;
}

/* ─── RESPONSIVE ─── */
@media (max-width:960px) {
  /* レイアウト */
  html { font-size:0.9375rem; }
  .sp-br { display:inline; }
  .container { padding:0 32px; }
  section { padding:72px 0; }

  /* ナビ */
  .nav-inner { padding:22px 32px !important; }
  .nav-links { display:none !important; }
  .nav-cta { display:none !important; }
  .hamburger { display:flex !important; }
  .nav-logo .logo-img { height:44px; }
  .nav-cta { padding:10px 20px; font-size:0.875rem; letter-spacing:.06em; }

  /* フォント */
  .en, .top-hero-en { font-size:0.875rem; }
  h2 { font-size:1.5rem; }
  h3 { font-size:1.25rem; }
  p { font-size:0.9375rem; }
  .top-hero-sub { font-size:0.9375rem; }
  .btn-text { font-size:0.9375rem; }
  .btn { font-size:0.9375rem; padding:14px 36px; }
  .service-card h3 { font-size:1.25rem; }
  .foryou-lead { font-size:0.875rem; }
  .dark-list li { font-size:0.9375rem; padding:20px 28px; }
  .dark-list { width:100%; padding:16px 0; }

  /* ヒーロー */
  .top-hero { grid-template-columns:1fr; height:auto; min-height:auto; overflow:visible; }
  .top-hero-left {
    padding:80px 32px 80px 32px;
    justify-content:flex-start;
  }
  .top-hero h1 { font-size:1.875rem; }
  .top-hero-right {
    height:75vw;
    min-height:280px;
    max-height:480px;
    padding-right:0;
    overflow:hidden;
    margin:0 32px 0 24px;
    width:calc(100% - 56px);
  }
  .top-hero-right img { width:100%; height:100%; object-fit:cover; }

  /* コンセプト */

  /* サービス */
  .service-section .container { padding:0 32px; }
  .service-grid { grid-template-columns:1fr; gap:16px; }
  .service-card { padding:52px 30px; }

  /* こんな方へ */
  .foryou-inner { padding:0 32px; }

  /* 声 */
  .voice-grid { gap:16px; }
  .voice-card { grid-template-columns:1fr; gap:12px; padding:24px 28px; }

  /* プロフィール */
  .profile-section .container { padding:0 32px; }
  .profile-inner { grid-template-columns:1fr; gap:40px; }
  .profile-photo { width:100%; max-width:100%; aspect-ratio:3/4; }

  /* フッター */
  .footer-cta-wrap { padding:32px 24px; }
  .footer-cta { padding:40px 32px; }
  .footer-cta-body { grid-template-columns:1fr; gap:20px; }
  .footer-cta-left h2 { font-size:1.4375rem; }
  .footer-cta-buttons { flex-direction:column; gap:12px; }
  .footer-cta-buttons .btn { width:100%; text-align:center; }
  .footer-bottom { flex-direction:column; gap:24px; padding:32px 24px; align-items:flex-start; }
  .footer-nav-wrap { align-items:flex-start; }
  .profile-name { margin-bottom:60px; }
  .footer-nav { flex-direction:column; gap:12px; padding-left:10px; }
  .footer-nav--sub { margin-top:4px; }
  .footer-copy-bar { padding:16px 24px; }
  .logo-img-footer { height:44px; }
}

/* スマートフォン小サイズ */
@media (max-width:480px) {
  .container { padding:0 20px; }
  .nav-inner { padding:14px 20px !important; }
  .nav-logo .logo-img { height:36px; }
  .nav-cta { padding:9px 16px; font-size:0.8125rem; }
  .top-hero h1 { font-size:1.5rem; }
  h2 { font-size:1.375rem; }
  .voice-card { padding:20px; }
  .footer-cta { padding:32px 20px; }
  .footer-bottom { padding:24px 20px; }
  .dark-list li { padding:16px 16px; }
  .why-card { padding:80px 29px; }
  .why-card h3 { font-size:1.6875rem; }
  .concept-text::after { display:none; }
}


/* ─── TOP HERO ─── */
.top-hero {
  display:grid;
  grid-template-columns:1fr 1.1fr;
  height:100vh;
  min-height:700px;
  overflow:hidden;
}

.top-hero-left {
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding:140px 100px 100px max(100px, calc((100vw - 1520px) / 2 + 100px));
}

.top-hero-en {
  font-family:'Cormorant Garamond', serif;
  font-size:1.25rem;
  font-weight:300;
  letter-spacing:.2em;
  color:var(--accent);
  text-transform:uppercase;
  display:block;
  margin-bottom:28px;
}

.top-hero h1 {
  font-size:2.625rem;
  font-weight:400;
  line-height:1.65;
  letter-spacing:.02em;
  color:var(--heading);
  margin-bottom:32px;
}

.top-hero-sub {
  font-size:1.125rem;
  color:var(--text);
  line-height:1.7;
  margin-bottom:56px;
}

.top-hero-right {
  overflow:hidden;
  padding-right:max(100px, calc((100vw - 1520px) / 2 + 100px));
}

.top-hero-right img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center top;
}

/* ─── CONCEPT ─── */
.concept-section {
  background:var(--white);
  padding-left:max(100px, calc((100vw - 1520px) / 2 + 100px));
}

.concept-inner {
  display:grid;
  grid-template-columns:minmax(auto, 560px) 1fr;
  gap:clamp(60px, 12vw, 260px);
  align-items:start;
}

.concept-inner .concept-photo {
  width:100%;
  max-width:560px;
  aspect-ratio:4/4.5;
  overflow:hidden;
}

.concept-inner .concept-photo img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.concept-body {
  margin-top:80px;
  padding-left:60px;
  padding-right:max(100px, calc((100vw - 1520px) / 2 + 100px));
}

.concept-body h2 {
  font-size:1.875rem;
  margin-bottom:100px;
}

.concept-body p + p { margin-top:20px; }

.concept-quote {
  margin-top:40px;
  padding:28px 36px;
  border-left:1.5px solid var(--accent);
  background:var(--accent-pale);
}

.concept-quote p {
  font-size:1rem;
  line-height:1.7;
  color:var(--heading);
}

/* ─── SERVICE ─── */
.service-section { background:var(--bg); }

.service-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:2px;
  margin-top:72px;
}

.service-card {
  background:var(--white);
  padding:52px 48px;
  display:flex;
  flex-direction:column;
  text-decoration:none;
  color:inherit;
  border-bottom:2px solid transparent;
  transition:border-color 0.5s ease;
  position:relative;
  overflow:hidden;
}

/* ホバー背景は疑似要素で重ね、透明度をフェード（.reveal の transition と干渉させない） */
.service-card::after {
  content:'';
  position:absolute;
  inset:0;
  background-color:#F7F4EF;
  opacity:0;
  transition:opacity 0.5s ease;
  z-index:0;
  pointer-events:none;
}
.service-card:hover::after {
  opacity:1;
}
.service-card:hover {
  border-bottom-color:var(--accent);
}
/* カード内のコンテンツは背景レイヤーより前面に */
.service-card > * {
  position:relative;
  z-index:1;
}

.service-card--session {
  background-color:rgba(196,148,136,0.04);
}

.service-card--community {
  background-color:var(--white);
  border:0.5px solid #D6D3CE;
}

.service-num {
  font-family:'Jost', sans-serif;
  font-size:1rem;
  font-weight:600;
  letter-spacing:0.05em;
  color:#A26769;
  display:block;
  margin-bottom:20px;
}

.service-card h3 {
  font-size:2rem;
  font-weight:400;
  letter-spacing:.04em;
  color:var(--heading);
  margin-bottom:8px;
  line-height:1.6;
}

.service-card-sub {
  font-family:'Cormorant Garamond', serif;
  font-size:1rem;
  font-weight:300;
  letter-spacing:.08em;
  color:var(--text);
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:20px;
}

.service-card-sub::before {
  content:'—';
  color:var(--accent);
  flex-shrink:0;
  font-style:normal;
}

.service-card p {
  font-size:1rem;
  line-height:1.65;
}

.service-link {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:14px;
  font-family:'Zen Old Mincho', serif;
  font-size:1rem;
  font-weight:300;
  letter-spacing:.1em;
  color:var(--text);
  margin-top:auto;
  padding-top:32px;
  border-bottom:0.5px solid var(--gray-light);
  padding-bottom:8px;
  padding-right:24px;
  transition:border-color .3s;
}
.service-link .btn-text-arrow {
  display:inline-flex;
  align-items:center;
  transition:transform .5s ease;
}
.service-card:hover .service-link .btn-text-arrow {
  transform:translateX(6px);
}

/* ─── こんな方へ ─── */
.foryou-section {
  position:relative;
  background:var(--dark);
  position:relative;
  overflow:hidden;
  padding:100px 0;
}

.foryou-bg {
  position:absolute;
  inset:0;
  opacity:.08;
  pointer-events:none;
}

.foryou-inner {
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
}

.foryou-section .en { color:#F59FA0; margin-bottom:14px; }
.foryou-section h2 { font-size:1.75rem; color:rgba(250,250,250,.9); margin-bottom:12px; }
.foryou-lead { font-size:1.125rem; color:#ffffff; margin-bottom:44px; }

/* ─── VOICE ─── */
.voice-section { background:var(--bg); }

.voice-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:24px;
  margin-top:72px;
}

.voice-card {
  background:#C58C8D;
  padding:30px 52px;
  display:grid;
  grid-template-columns:1fr auto;
  gap:40px;
  align-items:center;
}

.voice-card p {
  font-family:'Zen Old Mincho', serif;
  font-size:1rem;
  line-height:1.65;
  color:#ffffff;
  font-weight:500;
}

.voice-attr {
  font-family:'Zen Old Mincho', serif;
  font-size:1rem;
  font-weight:500;
  letter-spacing:.06em;
  color:rgba(255,255,255,.8);
  white-space:nowrap;
  text-align:right;
}

/* ─── PROFILE ─── */
.profile-section {
  background:var(--white);
}

.profile-inner {
  display:grid;
  grid-template-columns:minmax(auto, 560px) 1fr;
  gap:clamp(60px, 12vw, 250px);
  align-items:start;
}

.profile-photo {
  width:100%;
  max-width:560px;
  aspect-ratio: 4 / 4.5;
  overflow:hidden;
}

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

.profile-name-en {
  font-family:'Cormorant Garamond', serif;
  font-size:1.25rem;
  font-weight:300;
  letter-spacing:.2em;
  color:var(--accent);
  text-transform:uppercase;
  display:block;
}

.profile-name {
  font-size:2.5rem;
  font-weight:400;
  letter-spacing:.06em;
  color:var(--heading);
  margin-bottom:100px;
}

@media (max-width:480px) {
  .profile-name { margin-bottom:72px; }
}

.profile-title {
  font-family:'Zen Old Mincho', serif;
  font-size:0.75rem;
  font-weight:300;
  letter-spacing:.08em;
  color:var(--accent);
  display:block;
  margin-bottom:36px;
}

.profile-text p + p { margin-top:20px; }

.profile-link {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:14px;
  font-family:'Zen Old Mincho', serif;
  font-size:1rem;
  font-weight:300;
  letter-spacing:.1em;
  color:var(--text);
  margin-top:64px;
  border-bottom:0.5px solid var(--gray-light);
  padding-bottom:8px;
  padding-right:24px;
  transition:border-color .3s;
}
.profile-link .btn-text-arrow {
  display:inline-flex;
  align-items:center;
  transition:transform .5s ease;
}
.profile-link:hover .btn-text-arrow {
  transform:translateX(6px);
}

@media (max-width:960px) {
  .top-hero {
    grid-template-columns:1fr;
    height:auto;
    min-height:0;
    overflow:visible;
  }
  .top-hero-left { padding:120px 32px 80px; }
  .top-hero-right {
    height:75vw;
    min-height:280px;
    max-height:480px;
    aspect-ratio:unset;
    margin:0 32px 0 24px;
    width:calc(100% - 56px);
  }
  .top-hero h1 { font-size:1.875rem; }

  /* ===== スマホ ファーストビュー 2案（960px以下のみ） =====
     body.beme-hero-a … 全面写真＋テキスト重ね
     body.beme-hero-b … 上に写真、下に白地テキスト
     ※デスクトップ（961px以上）には一切影響しない */

  /* --- 案A：全面写真＋テキストオーバーレイ --- */
  body.beme-hero-a .top-hero {
    position:relative;
    display:block;
    min-height:auto;
    overflow:visible;
    padding:96px 24px 0px;
  }
  body.beme-hero-a .top-hero-right {
    position:relative;
    inset:auto;
    margin:0;
    width:100%;
    height:150vw;
    min-height:520px;
    max-height:680px;
    padding:0;
    overflow:hidden;
  }
  body.beme-hero-a .top-hero-right img {
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center top;
  }
  /* 下方向に暗くなるグラデーション（写真の枠内・文字の可読性確保） */
  body.beme-hero-a .top-hero-right::after {
    content:'';
    position:absolute;
    left:0; right:0; bottom:0;
    height:70%;
    background:linear-gradient(to top, rgba(40,30,28,0.78) 0%, rgba(40,30,28,0.5) 38%, rgba(40,30,28,0) 100%);
    z-index:1;
    pointer-events:none;
  }
  body.beme-hero-a .top-hero-left {
    position:absolute;
    left:24px; right:24px; bottom:70px;
    z-index:2;
    padding:0 24px 50px;
    justify-content:flex-end;
  }
  body.beme-hero-a .top-hero-en { color:#EDD8D0; margin-bottom:16px; }
  body.beme-hero-a .top-hero h1 { color:#FFFFFF; margin-bottom:16px; }
  body.beme-hero-a .top-hero-sub { color:rgba(255,255,255,0.88); margin-bottom:24px; }
  body.beme-hero-a .top-hero .btn-text { color:#FFFFFF; border-bottom-color:rgba(255,255,255,0.6); }
  body.beme-hero-a .top-hero .btn-text .arrow-icon { filter:brightness(0) invert(1); }

  /* --- 案B：上に写真、下に白地テキスト --- */
  body.beme-hero-b .top-hero {
    display:flex;
    flex-direction:column;
    min-height:0;
    height:auto;
    overflow:visible;
  }
  body.beme-hero-b .top-hero-right {
    order:-1;            /* 写真を上へ */
    position:relative;
    margin:0;
    width:100%;
    height:56vw;
    min-height:300px;
    max-height:420px;
    padding:0;
  }
  body.beme-hero-b .top-hero-right img {
    width:100%; height:100%;
    object-fit:cover; object-position:center top;
  }
  body.beme-hero-b .top-hero-left {
    padding:32px 28px 8px;
    justify-content:flex-start;
  }

  /* concept section */
  .concept-section { padding-left:0 !important; padding-top:48px; padding-bottom:72px; }
  .concept-inner { grid-template-columns:1fr; gap:0; }
  .concept-inner .concept-photo {
    order:2;
    justify-self:end;
    height:75vw;
    min-height:280px;
    max-height:480px;
    width:calc(100% - 96px);
    margin-top:32px;
    margin-right:24px;
    aspect-ratio:unset;
    overflow:hidden;
    margin-bottom:0;
  }
  .concept-body { order:1; }
  .concept-body { margin-top:0 !important; padding:32px 32px 0 !important; }
  .concept-body h2 { margin-bottom:32px; }
  /* フォントサイズ統一・サービス調整 */
  .concept-body h2,
  .service-section h2,
  .foryou-section h2,
  .voice-section h2,
  .profile-name,
  .footer-cta-left h2 { font-size:1.4375rem; }
  .service-card h3 { font-size:1.5rem; margin-bottom:10px; }
  .diff-card h3 { font-size:1.625rem; }
  .service-num { margin-bottom:10px; }
  .foryou-section .sec-header { margin-bottom:30px; }
  .dark-list { padding:30px 10px; }
  .dark-list li { padding:16px 20px; }
  .top-hero-en { letter-spacing:.1em; }
  .en { letter-spacing:.1em; }
  .sec-header .en { margin-bottom:0; }
  .foryou-lead { font-size:0.875rem; margin-bottom:40px; }
  .foryou-section .en { color:#F59FA0; }
  .service-grid { grid-template-columns:1fr; }
  .voice-card { grid-template-columns:1fr; gap:16px; padding:32px; }
  .voice-card p { font-size:0.9375rem; }
  .voice-attr { font-size:0.9375rem; }
  .profile-inner { grid-template-columns:1fr; }
  /* flow-section mobile */
  .flow-step {
    display:block !important;
    padding:20px 24px;
    background:var(--bg);
  }
  .flow-left {
    display:flex;
    align-items:center;
    gap:12px;
    margin-bottom:8px;
  }
  .flow-right { display:block; }
  /* price-section mobile */
  .price-table { padding:24px 20px !important; }
  .price-row {
    display:block;
    padding:10px 0;
  }
  .price-label-wrap {
    display:flex;
    align-items:center;
    gap:8px;
    margin-bottom:6px;
  }

  .price-value {
    display:block;
    width:100%;
    padding-left:0;
  }
  .price-btn-wrap { margin-top:48px; }
  .price-btn-wrap .btn { max-width:100%; }
}

/* 案A：狭い端末（〜430px）でテキストが写真からはみ出さないよう高さ・余白を調整 */
@media (max-width:430px) {
  body.beme-hero-a .top-hero-right {
    height:172vw;
    min-height:600px;
    max-height:760px;
  }
  body.beme-hero-a .top-hero-left {
    bottom:40px;
    padding:0 20px 28px;
  }
  body.beme-hero-a .top-hero-en { margin-bottom:12px; }
  body.beme-hero-a .top-hero h1 { font-size:1.625rem; line-height:1.55; margin-bottom:14px; }
  body.beme-hero-a .top-hero-sub { font-size:0.8125rem; line-height:1.7; margin-bottom:18px; }
}

/* スマホのみ：コンセプトの本文と写真の間隔を 20px に */
@media (max-width:480px) {
  .concept-inner { gap:20px; }
  .concept-inner .concept-photo { margin-top:20px; }
}

/* ── session.html ── */
/* ─── SESSION HERO ─── */
.session-hero {
  min-height:640px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:200px 0 80px;
  background-image:url('images/session-bg.jpg');
  background-size:cover;
  background-position:center;
  text-align:center;
  position:relative;
  overflow:hidden;
}

.session-hero::before {
  content:'';
  position:absolute;
  inset:0;
  background:rgba(255,255,255,0.9);
  z-index:1;
}

.session-hero .container {
  position:relative;
  z-index:2;
  width:100%;
}

.session-hero .en { justify-content:center; margin-bottom:20px; }

.session-hero-title {
  display:flex;
  align-items:baseline;
  justify-content:center;
  gap:20px;
  margin-bottom:48px;
}

.session-hero-title h1 {
  font-size:2.5rem;
  font-weight:400;
  letter-spacing:.1em;
}

.session-hero-subtitle {
  font-family:'Cormorant Garamond', serif;
  font-size:0.875rem;
  font-weight:300;
  letter-spacing:.15em;
  color:var(--accent);
}

.session-hero-text {
  max-width:600px;
  margin:0 auto 64px;
}

.session-hero-text p { text-align:center; line-height:2rem; }
.session-hero-text p + p { margin-top:0; }

.session-hero-image {
  height:300px;
  background:linear-gradient(180deg, transparent 0%, rgba(0,0,0,.03) 100%);
  position:relative;
  overflow:hidden;
}

.session-hero-bg {
  position:absolute;
  inset:0;
  opacity:.15;
}

/* ─── DIFFERENCE ─── */
.difference-section { background:var(--bg); }

.diff-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:2px;
  margin-top:52px;
}

.diff-card {
  padding:48px 44px;
  background:var(--white);
}

.diff-card.highlight {
  background:var(--bg);
  border:1.5px solid var(--accent);
}

.diff-label {
  font-family:'Zen Old Mincho', serif;
  font-size:1rem;
  font-weight:300;
  letter-spacing:.08em;
  color:var(--text);
  display:block;
  margin-bottom:20px;
}

.diff-label.accent { color:var(--accent); }

.diff-card h3 {
  font-size:1.875rem;
  font-weight:400;
  margin-bottom:28px;
  line-height:1.5;
}

.diff-list {
  list-style:none;
}

.diff-list li {
  font-family:'Zen Old Mincho', serif;
  font-size:1rem;
  font-weight:300;
  letter-spacing:.06em;
  color:var(--text);
  padding:3px 0;
  display:flex;
  gap:12px;
  align-items:center;
}

.diff-list li:first-child { border-top:none; }
.diff-list li::before { content:'—'; color:var(--gray-light); flex-shrink:0; }

/* ─── WHAT HAPPENS ─── */
.happens-section { background:var(--white); }

.happens-inner {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px;
  align-items:start;
}

.happens-photo {
  width:100%;
  aspect-ratio:4/5;
  overflow:hidden;
  align-self:start;
}

.happens-left { display:flex; flex-direction:column; }

.happens-body p + p { margin-top:20px; }

.happens-quote { display:none; }

.happens-quote p {
  font-size:1rem;
  line-height:1.7;
  color:var(--heading);
}

/* ─── FLOW ─── */
.flow-section { background:var(--bg); }

.flow-steps {
  margin-top:52px;
  display:flex;
  flex-direction:column;
  gap:10px;
}

.flow-step {
  display:grid;
  grid-template-columns:0.6fr 1fr;
  gap:40px;
  background:var(--white);
  padding:32px 48px;
  align-items:center;
}

.flow-left {
  display:flex;
  align-items:center;
  gap:20px;
}

.flow-sep {
  font-family:'Zen Old Mincho', serif;
  font-size:1rem;
  color:var(--accent);
  font-weight:300;
}

.flow-right { }

.flow-num {
  font-family:'Zen Old Mincho', serif;
  font-size:1rem;
  font-weight:300;
  color:var(--accent);
  letter-spacing:.05em;
}

.flow-title {
  font-family:'Zen Old Mincho', serif;
  font-size:1rem;
  font-weight:400;
  letter-spacing:.08em;
  color:var(--accent);
  margin:0;
}

.flow-desc { font-size:1rem; }

/* ─── PRICE ─── */
.price-section { background:var(--bg); }

.price-table {
  background:#ffffff;
  padding:50px clamp(20px, 10vw, 14rem);
  margin-top:52px;
}

.price-sep {
  font-family:'Zen Old Mincho', serif;
  font-size:1rem;
  font-weight:300;
  color:var(--accent);
  text-align:center;
  display:flex;
  align-items:center;
  justify-content:center;
}

.price-row {
  display:grid;
  grid-template-columns:160px 28px 1fr;
  gap:0;
  padding:6px 0;
  align-items:center;
}

.price-row::before {
  display:none;
}

.price-label::after {
  content:none;
}

.price-label {
  font-family:'Zen Old Mincho', serif;
  font-size:1rem;
  font-weight:300;
  letter-spacing:.1em;
  color:var(--accent);
  display:flex;
  align-items:center;
}

.price-value {
  font-family:'Zen Old Mincho', serif;
  font-size:1rem;
  font-weight:300;
  letter-spacing:.08em;
  color:var(--heading);
  padding-left:20px;
}

.price-value .large {
  font-family:'Zen Old Mincho', serif;
  font-size:1rem;
  font-weight:300;
  letter-spacing:.08em;
}

.price-btn-wrap {
  margin-top:80px;
  display:flex;
  justify-content:center;
}

.price-btn-wrap .btn {
  width:100%;
  max-width:600px;
  text-align:center;
}

@media (max-width:960px) {
  .diff-grid { grid-template-columns:1fr; }
  .happens-inner { grid-template-columns:1fr; }
  .happens-photo { position:static; aspect-ratio:4/5; }
  .flow-step { grid-template-columns:60px 1fr; gap:24px; padding:28px 32px; }
  .price-row { grid-template-columns:1fr; gap:8px; }
}

/* ── community.html ── */
/* ─── COMMUNITY HERO ─── */
.community-hero {
  padding:200px 0 80px;
  text-align:center;
  background-image:url('images/session-bg.jpg');
  background-size:cover;
  background-position:center;
  position:relative;
  overflow:hidden;
  min-height:400px;
}

.community-hero::before {
  content:'';
  position:absolute;
  inset:0;
  background:rgba(255,255,255,0.9);
  z-index:1;
}

.community-hero-bg {
  position:absolute;
  inset:0;
  opacity:.08;
  pointer-events:none;
}

.community-hero-inner { position:relative; z-index:2; }
.community-hero .en { color:var(--accent); justify-content:center; margin-bottom:20px; }

.community-hero h1 {
  font-size:2.5rem;
  font-weight:400;
  letter-spacing:.04em;
  color:var(--heading);
  margin-bottom:14px;
  line-height:1.5;
}

.community-hero-sub {
  font-family:'Cormorant Garamond', serif;
  font-size:1rem;
  font-weight:300;
  letter-spacing:.1em;
  color:#4A4845;
  margin-bottom:40px;
  display:block;
}

.community-hero-sub::before {
  content:'—';
  color:var(--accent);
  margin-right:8px;
}

.community-hero-text { max-width:560px; margin:0 auto 20px; }
.community-hero-text p { color:var(--text); text-align:center; }

/* ─── WHY BOTH ─── */
.why-section { background:var(--bg); }
.why-section .en { color:var(--accent); }
.why-section h2 { color:var(--heading); font-size:2.5rem; }

.why-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:2px;
  margin-top:52px;
}

.why-card {
  padding:80px 44px;
  background:var(--white);
}

.why-card.highlight {
  background:var(--bg);
  border:1.5px solid var(--accent);
  border:1.5px solid var(--accent);
}

.why-card-num {
  font-family:'Jost', sans-serif;
  font-size:1rem;
  font-weight:600;
  letter-spacing:.05em;
  color:#A26769;
  display:block;
  margin-bottom:30px;
}

.why-card h3 {
  font-size:1.875rem;
  font-weight:400;
  color:var(--heading);
  margin-bottom:30px;
  line-height:1.5;
}

.why-card p { color:var(--text); font-size:1rem; }

.why-bridge {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:44px;
  margin-top:20px;
  padding:36px 60px;
  background:#F6F3F3;
}

.why-bridge-item { text-align:center; display:flex; flex-direction:column; align-items:center; }

.why-bridge-item span {
  font-family:'Zen Old Mincho', serif;
  font-size:1rem;
  font-weight:300;
  letter-spacing:.1em;
  color:#9A9590;
  display:block;
  margin-bottom:6px;
}

.why-bridge-item strong {
  font-family:'Zen Old Mincho', serif;
  font-size:1.125rem;
  font-weight:400;
  letter-spacing:.08em;
  color:#2E2C2A;
}

.why-arrow {
  font-family:'Cormorant Garamond', serif;
  font-size:1.5rem;
  font-weight:300;
  color:var(--accent);
  opacity:.6;
}

/* ─── CONCEPT ─── */
.concept-section { background:var(--white); }

.concept-inner {
  display:grid;
  grid-template-columns:1fr 1.3fr;
  gap:80px;
  align-items:start;
}

.concept-inner .concept-photo {
  aspect-ratio:4/4.5;
  overflow:hidden;
  position:static;
}

.concept-body p + p { margin-top:20px; }

.concept-list {
  list-style:none;
  margin:28px 0;
}

.concept-list li {
  font-family:'Zen Old Mincho', serif;
  font-size:1rem;
  font-weight:300;
  letter-spacing:.06em;
  color:var(--text);
  padding:5px 0;
  display:flex;
  gap:14px;
  align-items:center;
}
.concept-dot { width:4px; height:4px; border-radius:50%; background:var(--accent); flex-shrink:0; }

.concept-quote {
  margin-top:40px;
  padding:28px 36px;
  border-left:1.5px solid var(--accent);
  background:var(--accent-pale);
}

.concept-quote p { font-size:0.8125rem; line-height:1.7; color:var(--heading); }

/* ─── ACTIVITY ─── */
.activity-section { background:var(--bg); }

.activity-grid {
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:10px;
  margin-top:52px;
}

.activity-card {
  background:var(--white);
  padding:48px 40px;
}

.activity-num {
  font-family:'Jost', sans-serif;
  font-size:1rem;
  font-weight:600;
  letter-spacing:.05em;
  color:#A26769;
  display:block;
  margin-bottom:10px;
}

.activity-card h3 {
  font-size:1.5rem;
  font-weight:400;
  color:#A26769;
  margin-bottom:30px;
  line-height:1.5;
}

.activity-time { display:none; }

.activity-card p { font-size:1rem; }

.activity-note { display:none; }

.activity-note-bar {
  width:1.5px;
  height:44px;
  background:var(--accent);
  flex-shrink:0;
}

.activity-note p { font-size:1rem; font-weight:300; color:var(--heading); }

/* ─── FLOW ─── */
.flow-section { background:var(--bg); }

.flow-steps {
  margin-top:52px;
  display:flex;
  flex-direction:column;
  gap:10px;
}

.flow-step {
  display:grid;
  grid-template-columns:0.6fr 1fr;
  gap:40px;
  background:var(--white);
  padding:32px 48px;
  align-items:center;
}

.flow-left {
  display:flex;
  align-items:center;
  gap:20px;
}

.flow-sep {
  font-family:'Zen Old Mincho', serif;
  font-size:1rem;
  color:var(--accent);
  font-weight:300;
}

.flow-right { }

.flow-num {
  font-family:'Zen Old Mincho', serif;
  font-size:1rem;
  font-weight:300;
  color:var(--accent);
  letter-spacing:.05em;
}

.flow-title {
  font-family:'Zen Old Mincho', serif;
  font-size:1rem;
  font-weight:400;
  letter-spacing:.08em;
  color:var(--accent);
  margin:0;
}

.flow-desc { font-size:1rem; }

/* ─── PRICE ─── */
.price-section { background:var(--bg); }

.price-table {
  background:#ffffff;
  padding:50px clamp(20px, 10vw, 14rem);
  margin-top:52px;
}

.price-sep {
  font-family:'Zen Old Mincho', serif;
  font-size:1rem;
  font-weight:300;
  color:var(--accent);
  text-align:center;
  display:flex;
  align-items:center;
  justify-content:center;
}

.price-row {
  display:grid;
  grid-template-columns:160px 28px 1fr;
  gap:0;
  padding:6px 0;
  align-items:center;
}

.price-row::before {
  display:none;
}

.price-label::after {
  content:none;
}

.price-label {
  font-family:'Zen Old Mincho', serif;
  font-size:1rem;
  font-weight:300;
  letter-spacing:.1em;
  color:var(--accent);
  display:flex;
  align-items:center;
}

.price-value {
  font-family:'Zen Old Mincho', serif;
  font-size:1rem;
  font-weight:300;
  letter-spacing:.08em;
  color:var(--heading);
  padding-left:20px;
}

.price-value .large {
  font-family:'Zen Old Mincho', serif;
  font-size:1rem;
  font-weight:300;
  letter-spacing:.08em;
}

.price-btn-wrap {
  margin-top:80px;
  display:flex;
  justify-content:center;
}

.price-btn-wrap .btn {
  width:100%;
  max-width:600px;
  text-align:center;
}

@media (max-width:960px) {
  .why-grid { grid-template-columns:1fr; }
  .why-bridge { flex-direction:column; gap:20px; padding:32px; }
  .concept-inner { grid-template-columns:1fr; }
  .concept-photo { position:static; }
  .activity-grid { grid-template-columns:1fr; }
  .flow-step { grid-template-columns:60px 1fr; gap:24px; padding:28px 32px; }
  .price-row { grid-template-columns:1fr; gap:8px; }
}

/* ── profile.html ── */
/* ─── PROFILE HERO ─── */
.profile-hero {
  padding:200px 0 80px;
  background:var(--white);
  text-align:center;
}

.profile-hero .en { justify-content:center; margin-bottom:16px; }

.profile-hero h1 {
  font-size:2.25rem;
  font-weight:400;
  letter-spacing:.01em;
}

/* ─── PROFILE INTRO ─── */
.intro-section { background:var(--white); padding-top:0; }

.intro-inner {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(60px, 8vw, 120px);
  align-items:start;
}

.intro-photo {
  aspect-ratio:3/4;
  overflow:hidden;
}

.intro-name-en {
  font-family:'Cormorant Garamond', serif;
  font-size:1.25rem;
  font-weight:300;
  letter-spacing:.1em;
  color:var(--accent);
  text-transform:uppercase;
  display:block;
}

.intro-name {
  display:flex;
  align-items:center;
  gap:16px;
  margin-bottom:100px;
}

.intro-name h2 {
  font-size:2.5rem;
  font-weight:400;
  letter-spacing:.08em;
}

.intro-name-bar {
  width:1px;
  height:2.5rem;
  background:var(--gray-light);
}

.intro-name-title {
  font-size:2.5rem;
  font-weight:400;
  letter-spacing:.08em;
  color:var(--heading);
}

/* スマホ：名前と肩書を縦2行・左寄せ・小さめに（デスクトップ基本定義の後に置き確実に適用） */
@media (max-width:480px) {
  .intro-name {
    display:flex;
    flex-direction:row;
    align-items:center;
    gap:16px;
    margin-bottom:72px;
  }
  .intro-name h2 { font-size:1.4375rem; }
  .intro-name-title { font-size:1.4375rem; }
  .intro-name-bar { display:block; width:1px; height:1.4375rem; }
}

.intro-text { margin-top:32px; }
.intro-text p + p { margin-top:16px; }

.intro-ig {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:14px;
  margin-left:0;
  font-family:'Zen Old Mincho', serif;
  font-size:1rem;
  font-weight:300;
  letter-spacing:.1em;
  color:var(--text);
  margin-top:100px;
  border-bottom:0.5px solid var(--gray-light);
  padding-bottom:8px;
  padding-right:24px;
  transition:color .3s, border-color .3s;
}
.intro-ig:hover { color:var(--accent); border-color:var(--accent); }
.intro-ig .btn-text-arrow { display:inline-flex; align-items:center; transition:transform .5s ease; }
.intro-ig:hover .btn-text-arrow { transform:translateX(6px); }

/* ─── CONCEPT (profile専用) ─── */
.concept-section:has(.concept-photo-wrap) {
  background:#FAFAFA;
  display:grid;
  grid-template-columns:1.2fr 0.8fr;
  gap:0;
  align-items:stretch;
  padding:0;
  position:relative;
}

/* テキスト列が先（左）、写真列が後（右）*/
.concept-section:has(.concept-photo-wrap) .concept-text { order:1; }
.concept-section:has(.concept-photo-wrap) .concept-photo-wrap { order:2; }

.concept-photo-wrap {
  position:relative;
  overflow:hidden;
}

.concept-section:has(.concept-photo-wrap) .concept-photo {
  width:100%;
  height:100%;
  min-height:600px;
}

.concept-text {
  padding:100px 80px 100px max(100px, calc((100vw - 1520px) / 2 + 100px));
  position:relative;
}

.concept-text::after {
  content:'';
  position:absolute;
  bottom:0;
  left:max(100px, calc((100vw - 1520px) / 2 + 100px));
  right:80px;
  height:0.5px;
  background:var(--gray-light);
}

.concept-list {
  list-style:none;
  margin:24px 0 28px;
}

.concept-list li {
  font-family:'Zen Old Mincho', serif;
  font-size:1rem;
  font-weight:300;
  letter-spacing:.06em;
  color:var(--text);
  padding:5px 0;
  display:flex;
  gap:14px;
  align-items:center;
}
.concept-dot { width:4px; height:4px; border-radius:50%; background:var(--accent); flex-shrink:0; }

.concept-text p + p { margin-top:16px; }

.concept-quote {
  margin-top:40px;
  padding:28px 36px;
  border-left:1.5px solid var(--accent);
  background:var(--accent-pale);
}
.concept-quote p { font-size:0.875rem; line-height:1.7; color:var(--heading); }

/* ─── STORY ─── */
.story-section {
  background:#FAFAFA;
  display:grid;
  grid-template-columns:1.2fr 0.8fr;
  gap:0;
  padding:0;
}

.story-text { padding:100px 80px 100px max(100px, calc((100vw - 1520px) / 2 + 100px)); }
.story-text .en { margin-bottom:14px; }
.story-text h2 { font-size:1.75rem; margin-bottom:24px; }
.story-text p + p { margin-top:16px; }

.story-photos {
  display:flex;
  flex-direction:column;
  gap:2px;
  align-self:stretch;
  width:100%;
}

.story-photo {
  flex:1;
  overflow:hidden;
  min-height:300px;
  width:100%;
}

/* ─── APPROACH ─── */
.approach-section { background:#ffffff; }

.approach-flow {
  max-width:720px;
  margin:52px auto 0;
}

.approach-body p + p { margin-top:16px; }

.approach-list {
  list-style:none;
  margin:24px 0;
  background:#FAFAFA;
  padding:20px 40px;
}

.approach-list li {
  font-family:'Zen Old Mincho', serif;
  font-size:1rem;
  font-weight:300;
  letter-spacing:.06em;
  color:var(--text);
  padding:5px 0;
  display:flex;
  gap:14px;
  align-items:center;
  line-height:1;
}
.approach-dot { width:4px; height:4px; border-radius:50%; background:var(--accent); flex-shrink:0; }

.approach-closing { display:none; }

@media (max-width:960px) {
  .intro-inner { grid-template-columns:1fr; }
  .concept-section:has(.concept-photo-wrap) { grid-template-columns:1fr; }
  .concept-text { padding:80px 32px; }
  .story-section { grid-template-columns:1fr; }
  .story-text { padding:80px 32px; }
  .approach-flow { max-width:100%; }
}

/* ── contact.html ── */
/* ─── CONTACT HERO ─── */
.contact-hero {
  padding:160px 0 80px;
  text-align:center;
  background:var(--white);
}

.contact-hero .en { justify-content:center; margin-bottom:20px; }

.contact-hero h1 {
  font-size:2.25rem;
  font-weight:400;
  letter-spacing:.1em;
}

@media (max-width:480px) {
  .contact-hero h1 { font-size:2rem; }
}

/* ─── FORM SECTION ─── */
.form-section { background:var(--bg); padding-top:0; }

.form-section .container {
  max-width:800px;
  margin:0 auto;
}

.form-wrap {
  max-width:800px;
  margin:0 auto;
  padding:64px 0px;
}

.form-lead {
  font-size:1.125rem;
  color:var(--text);
  margin-bottom:10px;
  line-height:1.7;
}

.form-lead-note {
  font-size:1.125rem;
  color:var(--text);
  margin-bottom:30px;
  line-height:1.7;
}

.form-lead a {
  color:var(--accent);
  border-bottom:0.5px solid var(--accent);
}

.form-group { margin-bottom:36px; }

.form-label {
  font-family:'Zen Old Mincho', serif;
  font-size:1rem;
  font-weight:300;
  letter-spacing:.1em;
  color:var(--heading);
  display:block;
  margin-bottom:10px;
}

.req { color:#C48183; }

.form-label .req {
  font-family:'Cormorant Garamond', serif;
  font-size:0.625rem;
  font-weight:300;
  color:#C48183;
  margin-left:6px;
  letter-spacing:.05em;
}

.form-input,
.form-textarea {
  width:100%;
  background:#FFFFFF;
  border:1px solid #C6BFB8;
  padding:14px 10px;
  font-family:'Zen Old Mincho', serif;
  font-size:0.875rem;
  font-weight:300;
  letter-spacing:.06em;
  color:var(--heading);
  outline:none;
  transition:border-color .3s;
  appearance:none;
}

.form-input:focus,
.form-textarea:focus { border-color:var(--accent); }

.form-textarea {
  height:160px;
  resize:vertical;
  line-height:2;
}

.form-radio-group {
  display:flex;
  flex-direction:column;
  gap:14px;
}

.form-radio {
  display:flex;
  align-items:center;
  gap:12px;
  cursor:pointer;
}

.form-radio input[type="radio"] {
  accent-color:var(--accent);
  width:14px;
  height:14px;
  flex-shrink:0;
}

.form-radio span {
  font-family:'Zen Old Mincho', serif;
  font-size:1rem;
  font-weight:300;
  letter-spacing:.06em;
  color:var(--text);
}

.form-privacy {
  font-family:'Zen Old Mincho', serif;
  font-size:0.875rem;
  font-weight:300;
  line-height:1.7;
  letter-spacing:.06em;
  color:var(--text);
  margin-bottom:36px;
  text-align:center;
}

.form-privacy a {
  color:var(--accent);
  border-bottom:0.5px solid var(--accent);
}

.btn-submit {
  display:block;
  width:100%;
  background:var(--accent);
  border:none;
  color:#fff;
  font-family:'Zen Old Mincho', serif;
  font-size:0.8125rem;
  font-weight:300;
  letter-spacing:.25em;
  padding:22px;
  cursor:pointer;
  transition:background .3s;
  text-align:center;
}

.btn-submit:hover { background:var(--accent-deep); }

@media (max-width:960px) {
  .form-wrap { padding:48px 32px; }
}

/* ─── PAGE ANIMATIONS ─── */

/* 初期状態 */
.reveal {
  opacity:0;
  transform:translateY(20px);
  transition:opacity 2.6s cubic-bezier(0.16, 1, 0.3, 1),
             transform 2.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal.is-visible {
  opacity:1;
  transform:translateY(0);
}

/* ヒーロー専用：ページロード時 */
.hero-anim {
  opacity:0;
  transform:translateY(24px);
  animation:heroFadeIn 2.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.hero-anim-img {
  opacity:0;
  animation:heroFadeInImg 3.0s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes heroFadeIn {
  to {
    opacity:1;
    transform:translateY(0);
  }
}

@keyframes heroFadeInImg {
  to { opacity:1; }
}

/* 遅延クラス */
.delay-1 { animation-delay:.5s; transition-delay:.2s; }
.delay-2 { animation-delay:1.0s; transition-delay:.4s; }
.delay-3 { animation-delay:1.5s; transition-delay:.6s; }
.delay-4 { animation-delay:2.0s; transition-delay:.8s; }
.delay-5 { animation-delay:2.5s; transition-delay:1.0s; }

/* スクロール reveal 遅延 */
.reveal.delay-1 { transition-delay:.1s; }
.reveal.delay-2 { transition-delay:.2s; }
.reveal.reveal.delay-3 { transition-delay:.3s; }

/* アクセシビリティ: モーション無効設定を尊重 */
@media (prefers-reduced-motion: reduce) {
  .reveal, .hero-anim, .hero-anim-img { transition:none; animation:none; opacity:1; transform:none; }
  body.beme-fade { opacity:1; }
}

/* ─── HAMBURGER MENU ─── */
.hamburger {
  display:none;
  flex-direction:column;
  justify-content:center;
  gap:6px;
  width:36px;
  height:36px;
  cursor:pointer;
  background:none;
  border:none;
  padding:4px;
}

.hamburger-line {
  display:block;
  width:100%;
  height:1px;
  background:var(--heading);
  transition:transform .4s ease, opacity .4s ease;
  transform-origin:center;
}

.hamburger.is-open .hamburger-line:nth-child(1) {
  transform:translateY(7px) rotate(45deg);
}
.hamburger.is-open .hamburger-line:nth-child(2) {
  opacity:0;
  transform:scaleX(0);
}
.hamburger.is-open .hamburger-line:nth-child(3) {
  transform:translateY(-7px) rotate(-45deg);
}

.mobile-menu {
  position:fixed;
  inset:0;
  z-index:280;
  background:rgba(250,250,250,.98);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:0;
  opacity:0;
  pointer-events:none;
  transition:opacity .5s ease;
}

.mobile-menu.is-open {
  opacity:1;
  pointer-events:all;
}

.mobile-menu-links {
  list-style:none;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:0;
  width:100%;
}

.mobile-menu-links li {
  width:100%;
  text-align:center;
  border-bottom:0.5px solid var(--gray-light);
}

.mobile-menu-links li:first-child { border-top:none; }
.mobile-menu-links li:last-child { border-bottom:none; }

.mobile-menu-links a {
  display:block;
  font-family:'Zen Old Mincho', serif;
  font-size:1rem;
  font-weight:300;
  letter-spacing:.15em;
  color:var(--heading);
  padding:22px 0;
  transition:color .3s;
}

.mobile-menu-links a:hover,
.mobile-menu-links a.active { color:var(--accent); }

.mobile-menu-cta {
  margin-top:40px;
  display:inline-block;
  font-family:'Zen Old Mincho', serif;
  font-size:1rem;
  font-weight:300;
  letter-spacing:.15em;
  color:#fff;
  background:var(--accent);
  padding:16px 64px;
  transition:background .3s;
}
.mobile-menu-cta:hover { background:var(--accent-deep); }
/* ─── price-row mobile fix（最終上書き）─── */
@media (max-width:960px) {
  .price-row {
    display:flex !important;
    flex-wrap:wrap;
    gap:0 !important;
    padding:10px 0;
  }
  .price-label {
    flex:0 0 auto;
  }
  .price-sep {
    flex:0 0 auto;
    padding:0 4px;
  }
  .price-value {
    flex:0 0 100%;
    margin-top:6px;
    padding-left:0;
    word-break:break-all;
    overflow-wrap:break-word;
  }
}

/* ─── session-hero-title mobile ─── */
@media (max-width:960px) {
  .session-hero-title {
    flex-direction:column;
    align-items:center;
    gap:8px;
  }
  .session-hero-title h1 {
    font-size:2rem;
  }
  .session-hero-subtitle {
    font-size:0.9375rem;
  }
}

/* ─── COMMUNITY CONCEPT ─── */
.community-concept-section {
  background:var(--white);
}

.community-concept-inner {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(40px, 6vw, 80px);
  align-items:start;
}

.community-concept-photo {
  width:100%;
  aspect-ratio:4/4.5;
  overflow:hidden;
}

.community-concept-right {
  display:flex;
  flex-direction:column;
}

.community-concept-right .sec-header {
  margin-bottom:52px;
}

.community-concept-right .concept-body {
  margin-top:0;
  padding-left:0 !important;
  padding-right:0 !important;
}

.community-concept-right .concept-body p {
  font-size:0.9375rem;
}

/* ─── community-concept mobile ─── */
@media (max-width:960px) {
  .community-concept-inner {
    grid-template-columns:1fr !important;
    gap:32px;
  }
  .community-concept-photo {
    aspect-ratio:4/5;
  }
  .activity-grid { grid-template-columns:1fr; }
}

/* ─── community mobile fix ─── */
@media (max-width:960px) {
  /* community-hero h1 */
  .community-hero h1 { font-size:1.4375rem; }

  /* why-section h2: 他ページと統一（1.625rem） */
  .why-section h2 { font-size:1.5625rem; }

  /* why-arrow: "=" を縦向き（↓）に */
  .why-bridge { flex-direction:column; gap:16px; padding:28px 32px; }
  .why-arrow { font-size:1.25rem; }
  .why-arrow:last-of-type { transform:rotate(90deg); }
}

/* ─── approach-list / concept-list li mobile ─── */
@media (max-width:960px) {
  .approach-list li { font-size:0.875rem !important; }
  .concept-list li  { font-size:0.875rem !important; }
}
/* =========================================================
   WordPress ページ別オーバーライド（旧インラインstyle統合）
   ========================================================= */

/* session / community：nav直下に濃色ヒーローがあるため常時白背景 */
.page-session #nav,
.page-community #nav {
  background:#ffffff !important;
  border-bottom:1px solid rgba(0,0,0,.06) !important;
}

/* community ヒーロー背景（メタボックス未設定時のフォールバックはテンプレ側） */
.page-community .community-hero {
  background-size:cover;
  background-position:center;
}
.page-community .community-hero::before {
  content:'';
  position:absolute;
  inset:0;
  background:rgba(255,255,255,0.9);
  z-index:1;
}
.page-community .community-hero-inner { position:relative; z-index:2; }

/* session フッターCTAの余白・比率調整 */
.page-session .footer-cta { padding:80px 70px; }
.page-session .footer-cta-body { grid-template-columns:1.7fr 1fr; }

/* =========================================================
   Contact Form 7 連携用スタイル
   ========================================================= */
/* CF7のラジオ出力（.wpcf7-radio）を .form-radio 風に整える */
.form-radio-group .wpcf7-radio { display:flex; flex-direction:column; gap:14px; }
.form-radio-group .wpcf7-list-item { margin:0; }
.form-radio-group .wpcf7-list-item label {
  display:flex; align-items:center; gap:12px; cursor:pointer;
}
.form-radio-group .wpcf7-list-item input[type="radio"] {
  accent-color:var(--accent); width:14px; height:14px; flex-shrink:0;
}
.form-radio-group .wpcf7-list-item-label {
  font-family:'Zen Old Mincho', serif; font-size:1rem; font-weight:300;
  letter-spacing:.06em; color:var(--text);
}
/* CF7 入力欄をテーマのフォーム入力に合わせる（class指定が効かない場合の保険） */
.form-wrap .wpcf7-form-control.wpcf7-text,
.form-wrap .wpcf7-form-control.wpcf7-textarea {
  width:100%; background:#FFFFFF; border:1px solid #C6BFB8;
  padding:14px 10px; font-family:'Zen Old Mincho', serif; font-size:0.875rem;
  font-weight:300; letter-spacing:.06em; color:var(--heading);
  outline:none; transition:border-color .3s; appearance:none;
}
.form-wrap .wpcf7-form-control.wpcf7-textarea { height:160px; resize:vertical; line-height:2; }
/* CF7 応答メッセージ：枠線なし・中央寄せ・テキスト色をアクセントに */
.form-wrap .wpcf7-response-output {
  margin:24px 0 0;
  padding:12px 0 0;
  border:none !important;
  font-size:0.875rem;
  text-align:center;
  color:#6E3F3F;
}
/* バリデーション個別エラー（各項目下の注意書き）も色を揃える */
.form-wrap .wpcf7-not-valid-tip {
  color:#C48183;
  font-size:0.8125rem;
  margin-top:6px;
}
/* CF7 送信中スピナーを非表示 */
.form-wrap .wpcf7-spinner { display:none !important; }

/* CF7：ラベルと入力欄の余白を詰める */
.form-wrap .form-group .wpcf7-form-control-wrap {
  display:block;
  margin-top:0;
}
.form-wrap .form-group br { display:none; }
.form-wrap .form-label { margin-bottom:10px; }

/* =========================================================
   固定ページ本文（特商法・プライバシーポリシー等）ブロック間余白
   page.php の .beme-page-content 内に適用
   ========================================================= */
.beme-page-content > * {
  margin-bottom: 28px;
}
.beme-page-content > *:last-child {
  margin-bottom: 0;
}
/* 見出しは上に少し余白を足してセクションの区切りを明確に */
.beme-page-content > h2,
.beme-page-content > h3,
.beme-page-content > .wp-block-heading {
  margin-top: 40px;
}
.beme-page-content > h2:first-child,
.beme-page-content > h3:first-child,
.beme-page-content > .wp-block-heading:first-child {
  margin-top: 0;
}
/* リスト項目の行間 */
.beme-page-content ul,
.beme-page-content ol {
  padding-left: 1.4em;
}
.beme-page-content li {
  margin-bottom: 8px;
}
/* テーブル（特商法を表組みにした場合） */
.beme-page-content table {
  border-collapse: collapse;
  width: 100%;
}
.beme-page-content table th,
.beme-page-content table td {
  border: 1px solid #E2DDD7;
  padding: 14px 16px;
  text-align: left;
  vertical-align: top;
}
.beme-page-content table th {
  background: #FAF7F4;
  white-space: nowrap;
  width: 30%;
}

/* =========================================================
   規約・ポリシーページ（プライバシーポリシー / 利用規約）
   ========================================================= */
.policy-wrap { line-height:2; }

.policy-lead {
  font-size:0.9375rem;
  color:var(--text);
  margin-bottom:48px;
}
.policy-lead p { margin-bottom:16px; }
.policy-lead p:last-child { margin-bottom:0; }

.policy-block { margin-bottom:48px; }
.policy-block:last-child { margin-bottom:0; }

.policy-head {
  font-family:'Zen Old Mincho', serif;
  font-size:1.25rem;
  font-weight:500;
  letter-spacing:.04em;
  color:var(--heading);
  margin-bottom:16px;
}

.policy-divider {
  width:100%;
  height:0.5px;
  background:var(--gray-light);
  margin-bottom:24px;
}

.policy-body {
  font-size:0.9375rem;
  color:var(--text);
}
.policy-body p { margin-bottom:16px; }
.policy-body p:last-child { margin-bottom:0; }

.policy-list {
  list-style:none;
  padding-left:0;
  margin:8px 0 16px;
}
.policy-list li {
  position:relative;
  padding-left:1.2em;
  margin-bottom:6px;
}
.policy-list li::before {
  content:'・';
  position:absolute;
  left:0;
  color:var(--text);
}

.policy-enacted {
  margin-top:48px;
  text-align:right;
  font-size:0.9375rem;
  color:var(--text);
}

@media (max-width:480px) {
  .policy-head { font-size:1.125rem; }
  .policy-body { font-size:0.875rem; }
  .policy-lead { font-size:0.875rem; }
  .policy-enacted { font-size:0.875rem; }
}