/*
Theme Name: Nourishing MED Japan
Theme URI: https://nourishingmedjapan.org
Author: KOKORO企画
Author URI: 
Description: 一般社団法人 Nourishing MED Japan オフィシャルサイト
Version: 1.0.0
License: Private
Text Domain: nmj
*/

/* ============================================================
   Nourishing MED Japan — style.css
   Fonts : Cormorant Garamond / Zen Old Mincho / Jost
   Colors: #FFFFFF / #1E2D3D / #FDFDFD / #6B8F71 / #E0E0E0
   ============================================================ */

/* Google Fonts: enqueued via functions.php */

/* ─ RESET ─ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }
img { max-width: 100%; height: auto; display: block; object-fit: cover; }
a { text-decoration: none; color: inherit; }
ul { list-style: none; }
button { cursor: pointer; background: none; border: none; }

/* ─ VARIABLES ─ */
:root {
  --white:     #FFFFFF;
  --bg:        #FDFDFD;
  --text:      #1E2D3D;
  --accent:    #6B8F71;
  --rule:      #E0E0E0;
  --dark:      #18232F;

  --text-60:   rgba(30,45,61,0.60);
  --text-40:   rgba(30,45,61,0.40);
  --text-25:   rgba(30,45,61,0.25);
  --text-10:   rgba(30,45,61,0.10);
  --wine:      #7C2D3A;

  --f-en:  'Cormorant Garamond', Georgia, serif;
  --f-jp:  'Zen Old Mincho', serif;
  --f-ui:  'Jost', sans-serif;

  --nav-h: 170px;
  --max:   1520px;
  --px:    60px;
}

/* ─ BASE ─ */
body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--f-ui);
  font-weight: 300;
  line-height: 1.8;
  overflow-x: hidden;
}

/* ─ NAV ─ */
.nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 200;
  height: var(--nav-h);
  background: rgba(253,253,253,0.95);
  backdrop-filter: blur(12px);
  transition: box-shadow .3s;
}
.nav-inner {
  max-width: var(--max);
  margin: 0 auto;
  width: 100%;
  height: 100%;
  padding: 0 var(--px);
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.nav { transition: height .35s cubic-bezier(.4, 0, .2, 1); }
.nav.scrolled { box-shadow: 0 2px 20px rgba(30,45,61,.05); height: 110px; }
.nav.scrolled .nav-logo-img { height: 90px; }

.nav-logo { display: flex; align-items: center; padding-top: 8px; }
.nav-logo-img {
  height: 150px;
  width: auto;
  display: block;
  object-fit: contain;
  transition: height .35s cubic-bezier(.4, 0, .2, 1);
}
/* テキストロゴ（フッター用・残存） */
.nav-logo-sub  { font-family: 'Noto Sans JP', sans-serif; font-size: .75rem; letter-spacing: .12em; color: #1E2D3D; line-height: 1.3; font-weight: 400; }
.nav-logo-main { font-family: var(--f-ui); font-weight: 400; font-size: 1.05rem; letter-spacing: .06em; color: #1E2D3D; line-height: 1.3; }

.nav-links { display: flex; gap: 2.5rem; }
.nav-links li a {
  font-family: var(--f-ui);
  font-weight: 500;
  font-size: 0.937rem;
  letter-spacing: .05em;
  color: #1E2D3D !important;
  transition: color .25s;
}
.nav-links li a:hover,
.nav-links li a.active { color: var(--accent) !important; }

.nav-right { display: flex; align-items: center; gap: 1rem; }
.nav-btn-contact {
  font-family: var(--f-ui);
  font-weight: 400;
  font-size: clamp(.75rem, 1vw, 0.9375rem); /* 15px */
  letter-spacing: .12em;
  color: var(--white);
  background: var(--dark);
  padding: .65rem 2.5rem;
  transition: background .25s;
  display: inline-block;
  min-width: 140px;
  text-align: center;
}
.nav-btn-contact:hover { background: var(--accent); }
.nav-lang {
  font-family: var(--f-ui);
  font-weight: 500;
  font-size: 0.937rem;
  letter-spacing: .05em;
  color: #1E2D3D;
  transition: color .25s;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
  text-decoration: none;
  display: inline-block;
}
.nav-lang:hover { color: var(--accent); }
.nav-hamburger { display: none; flex-direction: column; gap: 5px; width: 24px; }
.nav-hamburger span { display: block; height: .5px; background: var(--text); transform-origin: center; transition: transform .5s cubic-bezier(.4, 0, .2, 1), opacity .4s cubic-bezier(.4, 0, .2, 1); }
.nav-hamburger.open span:nth-child(1) { transform: rotate(45deg) translate(4px,4px); }
.nav-hamburger.open span:nth-child(2) { transform: scaleX(0); opacity: 0; }
.nav-hamburger.open span:nth-child(3) { transform: rotate(-45deg) translate(4px,-4px); }

.nav-mobile {
  display: flex;
  flex-direction: column;
  position: fixed;
  top: var(--nav-h);
  left: 0; right: 0;
  background: var(--bg);
  border-bottom: 1px solid var(--rule);
  padding: 1.5rem var(--px) 2rem;
  gap: 1.4rem;
  z-index: 199;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-12px);
  transition: opacity .5s cubic-bezier(.4, 0, .2, 1),
              transform .5s cubic-bezier(.4, 0, .2, 1),
              visibility .5s;
  pointer-events: none;
}
.nav-mobile.open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}
.nav-mobile a {
  font-family: var(--f-ui);
  font-weight: 300;
  font-size: .9rem;
  letter-spacing: .08em;
  color: #1E2D3D;
  padding-bottom: 1.2rem;
  border-bottom: 1px solid var(--rule);
  transition: color .3s ease;
}
.nav-mobile a:hover { color: var(--accent); }
.nav-mobile .nav-btn-contact {
  background: var(--dark);
  color: var(--white) !important;
  padding: .65rem 2rem;
  text-align: center;
  border-bottom: none;
  transition: opacity .25s;
  margin-top: .5rem;
  display: block;
  width: 100%;
}
.nav-mobile .nav-btn-contact:hover { color: var(--white) !important; opacity: .8; }
/* nav-lang-mobile: モバイルナビ内言語切替 – nav-mobile a を継承 */
.nav-lang-mobile,
.nav-mobile .nav-lang-mobile {
  font-family: var(--f-ui);
  font-size: .875rem;
  font-weight: 600;
  letter-spacing: .14em;
  color: var(--text);
  padding-bottom: 1.2rem;
  border-bottom: none !important;
  text-decoration: none;
}
.nav-lang-mobile:hover { color: var(--accent); }

/* ─ COMMON ─ */
.wrap { max-width: var(--max); margin: 0 auto; padding: 0 var(--px); }
.sec  { padding: 90px var(--px); max-width: var(--max); margin: 0 auto; }

.label-sm {
  font-family: var(--f-ui);
  font-size: clamp(.75rem, 1.05vw, 1rem);
  letter-spacing: 0.07em;
  color: #888888;
  display: block;
  margin-bottom: 50px;
}
.label-sm-accent { color: var(--accent); }

.heading-page {
  font-family: var(--f-en);
  font-weight: 300;
  font-size: clamp(3rem, 7vw, 7.5rem);
  letter-spacing: -.01em;
  line-height: 1.05;
  color: var(--text);
}
.heading-sec {
  font-family: var(--f-en);
  font-weight: 300;
  font-size: clamp(1.5rem, 3vw, 3rem);
  line-height: 1.2;
  letter-spacing: -.01em;
  color: var(--text);
}
.heading-sec em { font-style: italic; }
.heading-jp {
  font-family: var(--f-jp);
  font-size: 0.875rem;
  letter-spacing: .28em;
  color: #1E2D3D;
  margin-top: .4rem;
  display: block;
  font-style: normal;
}

.body-jp {
  font-family: var(--f-jp);
  font-size: clamp(.9rem, 1.1vw, 1.0625rem); /* 17px */
  line-height: 2.3;
  color: #1E2D3D;
}
.body-jp p + p { margin-top: 1.3em; }

.rule-line { display: none; }

/* Buttons */
.btn { font-family: var(--f-ui); font-weight: 400; font-size: .7rem; letter-spacing: .14em; display: inline-block; transition: background .25s, color .25s, transform .2s; }
.btn-dark  { background: var(--dark);   color: var(--white); padding: .8rem 2rem; font-size: 0.937rem; letter-spacing: .12em; }
.btn-dark:hover  { background: var(--accent); transform: translateY(-1px); }
.btn-accent{ background: var(--accent); color: var(--white); padding: .8rem 2rem; }
.btn-accent:hover{ background: #4E7354; transform: translateY(-1px); }
.btn-wine  { background: var(--wine);   color: var(--white); padding: .9rem 2.4rem; font-size: 0.9375rem; letter-spacing: .12em; }
.join-cta-box .btn-wine { font-size: 0.9375rem; display: block; text-align: center; margin: 0 auto; width: fit-content; }
.btn-wine:hover  { opacity: .88; transform: translateY(-1px); }
.btn-text  {
  font-family: var(--f-ui);
  font-size: .68rem;
  letter-spacing: .14em;
  color: var(--text-40);
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  transition: gap .25s, color .25s;
}
.btn-text::after { content: '→'; }
.btn-text:hover  { gap: .9rem; color: var(--text); }

/* Image placeholder */
.img-ph {
  width: 100%; height: 100%;
  background: #e8e8e8;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: .6rem;
  position: relative;
  overflow: hidden;
}
.img-ph svg { opacity: .2; }
.img-ph-lbl { font-family: var(--f-ui); font-size: .5rem; letter-spacing: .18em; color: rgba(30,45,61,.3); text-align: center; line-height: 2; }
.img-ph-dark { background: #2a3a4a; }
.img-ph-dark .img-ph-lbl { color: rgba(255,255,255,.2); }

/* Fade-up animation */
.fade-up { opacity: 0; transform: translateY(22px); transition: opacity .8s cubic-bezier(.16,1,.3,1), transform .8s cubic-bezier(.16,1,.3,1); }
.fade-up.visible { opacity: 1; transform: translateY(0); }
.d1 { transition-delay: .1s; } .d2 { transition-delay: .2s; }
.d3 { transition-delay: .3s; } .d4 { transition-delay: .4s; }


/* ─ ACTUAL IMAGES ─ */
/* hero-r */
.hero-r img { width:100%; height:100%; object-fit:cover; display:block; }

/* concept background moved to .concept-split level */

/* act-dark bg: plan_bg.jpg + #0D0D0D 47% overlay */
.act-dark-bg {
  background-image: url('images/plan_bg.jpg');
  background-size: cover;
  background-position: center;
  position: relative;
}
.act-dark-bg::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(13,13,13,0.47);
  z-index: 0;
}
.act-dark-bg .act-dark-inner { position: relative; z-index: 1; }

/* about_us.jpg: img-ph-dark replacement */
.img-about { width:100%; height:100%; object-fit:cover; display:block; }


/* VIEW ABOUT US link */
.view-link-wrap {
  margin-top: 3rem;
  display: flex;
  justify-content: flex-end;
}
.view-link {
  font-family: var(--f-ui);
  font-weight: 400;
  font-size: 0.9375rem; /* 15px */
  letter-spacing: .1em;
  color: #1E2D3D;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  padding-bottom: 5px;
  border-bottom: 0.5px solid #1E2D3D;
  transition: color .25s;
}
.view-link svg {
  width: 18px; height: 14px;
  flex-shrink: 0;
  transition: transform .3s ease;
}
.view-link:hover { color: #1E2D3D; }
.view-link:hover svg { transform: translateX(5px); }
/* ─ TOP: HERO ─ */
.hero {
  padding-top: var(--nav-h);
  display: grid;
  grid-template-columns: 52% 48%;
  min-height: 100vh;
}
.hero-l {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 4rem var(--px);
  padding-left: max(var(--px), calc((100vw - var(--max)) / 2 + var(--px)));
  position: relative;
  min-width: 0;
}
.hero-r { position: relative; overflow: hidden; min-height: 400px; }
.hero-l .nav-btn-contact { align-self: flex-start; display: inline-block; }
.hero-r img, .hero-r .img-ph { width: 100%; height: 100%; }

.hero-h1 {
  font-family: var(--f-en);
  font-weight: 300;
  font-size: clamp(2.8rem, 4.5vw, 4.9rem);
  line-height: 1.1;
  letter-spacing: -.01em;
  color: var(--text);
  margin-bottom: 1.8rem;
}
.hero-h1 em { font-style: italic; color: var(--accent); }
.hero-lead {
  font-family: var(--f-en);
  font-weight: 300;
  font-size: clamp(1rem, 1.5vw, 1.4375rem); /* 23px */
  line-height: 1.75;
  color: #1E2D3D;
}
.hero-lead-jp {
  font-family: var(--f-jp);
  font-size: clamp(.875rem, 1.3vw, 1.25rem); /* 20px */
  color: #1E2D3D;
  margin-bottom: 60px;
  line-height: 1.9;
}
.hero-body {
  font-family: var(--f-jp);
  font-size: clamp(.82rem, 1.05vw, 1rem); /* 16px */
  line-height: 2.2;
  color: #1E2D3D;
  margin-bottom: 2.5rem;
}
.hero-scroll { display: none; }
.hero-scroll-bar { width: .5px; height: 50px; background: linear-gradient(to bottom, var(--text-25), transparent); animation: spulse 2s ease-in-out infinite; }
.hero-scroll-txt { font-family: var(--f-ui); font-size: .5rem; letter-spacing: .25em; color: var(--text-25); writing-mode: vertical-rl; }
@keyframes spulse { 0%,100%{opacity:.4;} 50%{opacity:1;} }

/* ─ TOP: CONCEPT SPLIT ─ */
.concept-split {
  display: grid;
  grid-template-columns: 52% 48%;
  min-height: 520px;
  position: relative;
  background-image: url('images/mission_bg.jpg');
  background-size: cover;
  background-position: center;
}
.concept-split::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,0.90);
  z-index: 0;
  pointer-events: none;
}
.concept-photo {
  position: relative;
  z-index: 1;
  padding: 140px 0 140px max(var(--px), calc((100vw - var(--max)) / 2 + var(--px)));
}
.concept-photo img {
  width: 100%;
  max-width: 601px;
  aspect-ratio: 601 / 683;
  object-fit: cover;
  display: block;
}
.concept-content { position: relative; z-index: 1; }
.concept-content {
  padding: 6rem max(var(--px), calc((100vw - var(--max)) / 2 + var(--px))) 6rem 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  z-index: 1;
}
.concept-h {
  font-family: var(--f-en);
  font-weight: 300;
  font-size: clamp(2rem, 3.5vw, 3.6rem);
  line-height: 1.2;
  color: var(--text);
  letter-spacing: -.01em;
  margin-bottom: 2.5rem;
}
.concept-h em { font-style: italic; color: #6B8F71; }

/* ─ TOP: THREE PILLARS ─ */
.pillars-band {
  width: 100%;
  overflow: hidden;
  margin-bottom: 3rem;
}
.pillars-band img {
  width: 100%;
  height: 480px;
  object-fit: cover;
  display: block;
}

.pillars-sec {
  padding: 140px var(--px);
  max-width: var(--max);
  margin: 0 auto;
}
.pillars-header { margin-bottom: 100px; }
.pillars-sec .heading-sec em { color: #6B8F71; }
.pillars-intro { font-family: var(--f-jp); font-size: clamp(.85rem, 1.05vw, 1rem); line-height: 2.2; color: #1E2D3D; margin-bottom: 3rem; }
.pillars-grid { display: grid; grid-template-columns: repeat(3,1fr); border: 1px solid #898989; align-items: stretch; background: rgba(107,143,113,0.06); }
.pillar {
  padding: 3.9rem 3rem;
  border-right: 1px solid #898989;
  display: flex;
  flex-direction: column;
}
.pillar:last-child { border-right: none; }
.pillar-num {
  font-family: var(--f-ui);
  font-size: 1.125rem; /* 18px */
  letter-spacing: 0.06em;
  color: #6B8F71;
  margin-bottom: 1.8rem;
  display: flex;
  align-items: center;
  gap: .8rem;
}
.pillar-num::after {
  content: '';
  flex: 1;
  height: 1px;
  background: #E0E0E0;
  display: block;
}
.pillar-title {
  font-family: var(--f-jp);
  font-size: clamp(1.2rem, 1.6vw, 1.875rem); /* 30px */
  color: #6B8F71;
  line-height: 1.5;
  margin-bottom: 30px;
  font-weight: 400;
  min-height: 3em; /* 2行分の高さを確保 */
}
.pillar-body { font-family: var(--f-jp); font-size: clamp(.9rem, 1.1vw, 1.0625rem); line-height: 2.1; color: #1E2D3D; flex: 1; }
.pillars-link {
  margin-top: 2.5rem;
  display: flex;
  justify-content: flex-end;
}

/* ─ TOP: ACTIVITY DARK ─ */
.act-dark {
  background-image: url('images/plan_bg.jpg');
  background-size: cover;
  background-position-x: 65%;
  background-color: rgba(13,13,13,0.47);
  background-blend-mode: multiply;
  padding: 140px var(--px);
}
.act-dark-inner { max-width: var(--max); margin: 0 auto; }
.act-dark-header {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  margin-bottom: 3rem;
  align-items: center;
}
.act-dark-h {
  font-family: var(--f-en);
  font-weight: 300;
  font-size: clamp(2rem, 3.5vw, 3.2rem);
  line-height: 1.2;
  color: rgba(255,255,255,.88);
}
.act-dark-h em { font-style: normal; }
.act-dark-jp { font-family: var(--f-jp); font-size: 1.125rem; letter-spacing: .1em; color: #ffffff; margin-top: .4rem; display: block; }
.act-dark-desc { font-family: var(--f-jp); font-size: 1rem; line-height: 2.1; color: #ffffff; align-self: center; }

/* White card inside dark section */
.act-card {
  background: rgba(253,253,253,.96);
  padding: 100px 150px;
  max-width: var(--max);
  margin: 0 auto;
}
.act-group-header {
  padding: .8rem 0;
  display: flex;
  align-items: center;
  gap: .6rem;
}
.act-group-header .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--text); flex-shrink: 0; display: block; }
.act-group-header .label { font-family: var(--f-en); font-size: 1rem; letter-spacing: .1em; color: #1E2D3D; }
.act-group-planned { margin-top: 80px; }
.act-row {
  display: grid;
  grid-template-columns: clamp(140px, 25vw, 380px) 2.5fr 30px;
  gap: 2rem;
  align-items: center;
  padding: 1.6rem 2rem;
  border-bottom: 1px solid var(--rule);
  transition: background .2s;
  text-decoration: none;
  color: inherit;
}
.act-row:last-of-type { border-bottom: none; }
.act-row:hover { background: rgba(107,143,113,.05); }
.act-row-name { font-family: var(--f-jp); font-size: clamp(1.2rem, 2vw, 2rem); /* 32px */ color: var(--accent); font-weight: 400; }
.act-row-desc, div.act-row-desc { font-family: var(--f-jp); font-size: clamp(.9rem, 1.1vw, 1.0625rem); line-height: 2; color: #1E2D3D; }
.act-row-desc p, .act-row-desc span, .act-row-desc strong, .act-row-desc em, .act-row-desc u { font-family: var(--f-jp); font-size: inherit; line-height: inherit; }
.act-row-sub { font-family: var(--f-ui); font-size: .65rem; letter-spacing: .1em; color: var(--text-25); margin-top: .4rem; display: block; }
.act-row-arrow { color: #6B8F71; display: flex; align-items: center; justify-content: flex-end; }
.act-row-arrow svg { width: 18px; height: 14px; flex-shrink: 0; transition: transform .3s ease; }
.act-row:hover .act-row-arrow svg { transform: translateX(5px); }
.act-card-footer { padding: 2rem 2rem; border-top: 1px solid var(--rule); display: flex; justify-content: center; font-family: var(--f-ui); font-size: clamp(.75rem, 1vw, 0.9375rem); letter-spacing: .12em; }

/* ─ PHOTO BAND ─ */
.photo-band { margin: 5px 0; overflow: hidden; }
.photo-band .slick-slide { margin: 0 2.5px; }
.photo-band .slick-list { margin: 0 -2.5px; overflow: hidden; }
.photo-band-cell { height: 520px; overflow: hidden; }
.photo-band-cell img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ─ JOIN CTA (reused on multiple pages) ─ */
.join-cta-sec { background: var(--dark); padding: 60px var(--px); }
.join-cta-box {
  max-width: 1180px;
  margin: 0 auto;
  background: #ffffff;
  padding: 6rem;
  text-align: left;
}
.join-cta-lbl { font-family: var(--f-ui); font-size: clamp(.75rem, 1.05vw, 1rem); letter-spacing: 0.07em; color: #888888; margin-bottom: 3px; display: block; }
.join-cta-h {
  font-family: var(--f-en);
  font-weight: 300;
  font-size: clamp(1.75rem, 3vw, 3rem);
  line-height: 1.2;
  color: var(--text);
  margin-bottom: .5rem;
}
.join-cta-h em { font-style: italic; color: var(--accent); }
.join-cta-jp { font-family: var(--f-jp); font-size: clamp(.9rem, 1.1vw, 1.0625rem); line-height: 1.8; color: #1E2D3D; margin-bottom: 4rem; text-align: left; }

/* ─ FOOTER ─ */
footer { background: var(--dark); padding: 60px var(--px) 36px; }
.footer-inner { max-width: 1180px; margin: 0 auto; color: #ffffff; }
.footer-cols {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: 3rem;
  padding-bottom: 2.5rem;
  margin-bottom: 2rem;
  align-items: start;
  position: relative;
}
.footer-cols::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  height: 1px;
  background: rgba(255,255,255,1);
}
.footer-divider { display: none; }
.footer-sns-col { border-left: 0.5px solid rgba(255,255,255,0.3); padding-left: 2rem; }
.footer-logo-sub  { font-family: 'Noto Sans JP', sans-serif; font-size: 1rem; font-weight: 400; letter-spacing: .15em; color: #ffffff; margin-bottom: .3rem; }
.footer-logo-main { font-family: var(--f-ui); font-weight: 400; font-size: 1.125rem; letter-spacing: .08em; color: #ffffff; margin-bottom: 1.8rem; }
.footer-address   { font-family: var(--f-ui); font-size: 0.875rem; font-weight: 400; line-height: 2; color: #ffffff; }
.footer-nav-title { font-family: var(--f-ui); font-size: 0.875rem; font-weight: 400; letter-spacing: .2em; color: #ffffff; margin-bottom: 1.2rem; display: none; }
.footer-nav-links { display: flex; flex-direction: column; gap: .7rem; }
.footer-nav-links a { font-family: var(--f-ui); font-size: 0.875rem; font-weight: 400; letter-spacing: .08em; color: #ffffff; transition: color .25s; }
.footer-nav-links a:hover { color: rgba(255,255,255,.7); }
.footer-sns-title { font-family: var(--f-ui); font-size: 0.875rem; font-weight: 400; letter-spacing: .08em; color: #6B8F71; margin-bottom: 1.2rem; }
.footer-sns-links { display: flex; flex-direction: column; gap: .7rem; }
.footer-sns-links a { font-family: var(--f-ui); font-size: 0.875rem; font-weight: 400; letter-spacing: .08em; color: #ffffff; transition: color .25s; }
.footer-sns-links a:hover { color: rgba(255,255,255,.7); }
.footer-copy { font-family: var(--f-ui); font-size: 0.875rem; font-weight: 400; letter-spacing: .08em; color: #ffffff; text-align: center; }

/* ─ ABOUT US PAGE ─ */
.about-intro {
  max-width: var(--max);
  padding: 0 var(--px) 0 0;
  margin: 0 auto;
}
.about-intro p {
  font-family: var(--f-jp);
  font-size: clamp(.9rem, 1.1vw, 1.0625rem);
  line-height: 2.2;
  color: #1E2D3D;
  margin-bottom: .5rem;
}

.about-page-heading {
  padding: calc(var(--nav-h) + 80px) var(--px) 110px;
  max-width: var(--max);
  margin: 0 auto;
}
.about-page-heading h1 { font-size: clamp(2.8rem, 5.2vw, 4.1875rem); /* 67px */ }

.profile-wrap {
  display: grid;
  grid-template-columns: 32% 68%;
  align-items: start;
  gap: 0;
  padding: 0 var(--px) 100px;
  max-width: var(--max);
  margin: 0 auto;
  align-items: start;
}
.profile-photo-col {}
.profile-photo-frame { width: 100%; aspect-ratio: 601 / 551; overflow: hidden; }
.profile-photo-frame img { width: 100%; height: 100%; object-fit: cover; display: block; }
.profile-name-row { margin-bottom: .2rem; display: flex; align-items: baseline; gap: 1rem; flex-wrap: wrap; }
.profile-name { font-family: var(--f-jp); font-size: 2rem; color: var(--text); font-weight: 400; display: inline; }
.profile-name-en { font-family: var(--f-en); font-style: normal; font-size: .9rem; color: #1E2D3D; display: inline; margin-left: 1rem; vertical-align: middle; }
.profile-text-col { padding-left: 4rem; padding-top: .5rem; }
.profile-role-lbl { font-family: var(--f-jp); font-size: .72rem; letter-spacing: .2em; color: #1E2D3D; margin-bottom: 0; display: block; }

.founding { display: grid; grid-template-columns: 55% 45%; padding: 0 var(--px) 100px; max-width: var(--max); margin: 0 auto; align-items: start; }
.founding-text { padding: 0px 6rem 70px 0; }
.founding-photo { position: sticky; top: calc(var(--nav-h) + 20px); overflow: hidden; height: 680px; align-self: start; }
.founding-photo img, .founding-photo .img-ph { width: 100%; height: 100%; }

.overview-sec {
  background-image: url('images/fonding_story_bg.jpg');
  background-size: cover;
  background-position: center;
  padding: 130px 0;
  position: relative;
}
.overview-sec::before { content:''; position:absolute; inset:0; background: rgba(255,255,255,0.8); }
.overview-inner { position: relative; z-index: 1; max-width: var(--max); margin: 0 auto; }
.overview-lbl { font-family: var(--f-ui); font-size: clamp(.75rem, 1.05vw, 1rem); letter-spacing: 0.07em; color: #888888; margin-bottom: 0; display: block; }
.overview-h { font-family: var(--f-jp); font-weight: 400; font-size: clamp(1.75rem, 3.5vw, 2.6rem); line-height: 1.2; color: #1E2D3D; margin-bottom: 2.5rem; margin-top: 0; }
.overview-card { background: rgba(253,253,253,.93); max-width: 1225px; margin: 0 auto; }
.overview-table { width: 100%; border-collapse: collapse; }
.overview-table tr { border-bottom: 1px solid var(--rule); }
.overview-table tr:first-child { border-top: 1px solid var(--rule); }
.overview-table th { font-family: var(--f-jp); font-size: 1rem; color: #6B8F71; font-weight: 400; width: 260px; padding: 1.6rem 5rem 1.6rem 4rem; text-align: left; vertical-align: top; }
.overview-table td { font-family: var(--f-jp); font-size: 1rem; color: var(--text); line-height: 1.9; padding: 1.2rem 2rem 1.2rem 0; }

.mission-link {
  padding: 140px var(--px);
  max-width: var(--max);
  margin: 0 auto;
  border-top: 1px solid var(--rule);
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 2rem;
  align-items: center;
}
.mission-link-h { font-family: var(--f-en); font-weight: 300; font-size: clamp(2.5rem, 5.2vw, 4.1875rem); /* 67px */ color: var(--text); margin-bottom: .4rem; }
.mission-link-h em { font-style: italic; }
.mission-link .label-sm { font-family: var(--f-jp); letter-spacing: .2em; }
.mission-link-jp { font-family: var(--f-jp); font-size: .78rem; letter-spacing: .25em; color: var(--text-40); margin-bottom: 1rem; display: block; }
.mission-link-body { font-family: var(--f-jp); font-size: 1.125rem; line-height: 2; color: #1E2D3D; margin-top: 50px; }

/* ─ MISSION/VISION PAGE ─ */
.mission-page-heading {
  padding: calc(var(--nav-h) + 80px) var(--px) 110px;
  max-width: var(--max);
  margin: 0 auto;
}
.mission-page-heading h1 { font-size: clamp(2.8rem, 5.2vw, 4.1875rem); /* 67px */ }

/* MVV block with background photo */
.mvv-section {
  position: relative;
  background-image: url('images/our_mission_bg.jpg');
  background-size: cover;
  background-position: center;
}
.mvv-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,0.86);
  z-index: 0;
}
.mvv-block {
  position: relative;
  z-index: 1;
  min-height: 420px;
  border-bottom: 1px solid rgba(30,45,61,.1);
}
.mvv-block:last-child { border-bottom: none; }
.mvv-block-inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 28% 72%;
  min-height: 420px;
  max-width: var(--max);
  margin: 0 auto;
}
.mvv-num-col {
  padding: 60px 3rem 60px var(--px);
  border-right: 1px solid rgba(30,45,61,.1);
  display: flex;
  flex-direction: column;
  gap: .6rem;
}
.mvv-num { font-family: var(--f-jp); font-size: 1.125rem; color: #6B8F71; line-height: 1; font-weight: 400; }
.mvv-h { font-family: var(--f-en); font-weight: 300; font-size: clamp(1.75rem,3vw,3rem); line-height: 1.15; color: var(--text); margin-top: .5rem; }
.mvv-h em { font-style: normal; color: #6B8F71; }
.mvv-jp { font-family: var(--f-jp); font-size: 1.125rem; letter-spacing: .22em; color: #1E2D3D; }
.mvv-content-col { padding: 120px var(--px) 120px 5rem; display: flex; flex-direction: column; justify-content: center; }
.mvv-content-col .body-jp em { font-style: normal; color: #6B8F71; }
.mvv-content-col .body-jp span[style] { font-family: var(--f-jp); }
.mvv-content-col .body-jp { line-height: 1.9; }
.mvv-content-col .body-jp p { margin-bottom: 1em; }
.mvv-content-col .body-jp p + p { margin-top: 0; }
.mvv-en-line { font-family: var(--f-jp); font-size: 1rem; color: #1E2D3D; margin-bottom: 2rem; display: flex; align-items: center; gap: 1rem; }
.mvv-en-line::before { content: ''; display: inline-block; width: 30px; height: 1px; background: #1E2D3D; flex-shrink: 0; }

/* 食医学・料理医学とは section */
.culinary-sec {
  padding: 140px var(--px);
  max-width: var(--max);
  margin: 0 auto;
  border-top: 1px solid var(--rule);
}
.culinary-header {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  margin-bottom: 5rem;
  align-items: initial;
}
.culinary-h { font-family: var(--f-jp); font-size: clamp(1.75rem,3vw,2.5rem); color: var(--text); font-weight: 400; line-height: 1.3; }
.culinary-label { font-family: var(--f-ui); font-size: 1rem; letter-spacing: 0.07em; color: #888888; margin-bottom: 3px; display: block; }
.culinary-body-right { font-family: var(--f-jp); font-size: clamp(.9rem, 1.1vw, 1.0625rem); line-height: 2.3; color: #1E2D3D; }
.culinary-cards { display: grid; grid-template-columns: repeat(3,1fr); border: 1px solid #898989; margin-top: 2rem; }
.culinary-card { padding: 3.9rem 3rem; border-right: 1px solid #898989; display: flex; flex-direction: column; }
.culinary-card:last-child { border-right: none; }
.culinary-card-num {
  font-family: var(--f-ui);
  font-size: 1.125rem;
  letter-spacing: 0.06em;
  color: #6B8F71;
  margin-bottom: 1.8rem;
  display: flex;
  align-items: center;
  gap: .8rem;
}
.culinary-card-num::after {
  content: '';
  flex: 1;
  height: 1px;
  background: #E0E0E0;
  display: block;
}
.culinary-card-title {
  font-family: var(--f-jp);
  font-size: clamp(1.2rem, 1.6vw, 1.875rem);
  color: #6B8F71;
  line-height: 1.5;
  margin-bottom: 30px;
  font-weight: 400;
  min-height: 3em;
}
.culinary-card-body { font-family: var(--f-jp); font-size: clamp(.9rem, 1.1vw, 1.0625rem); line-height: 2.1; color: #1E2D3D; flex: 1; }

/* アプローチ section */
.approach-sec {
  background-color: var(--dark);
  background-image: url('images/approach_bg.jpg');
  background-size: cover;
  background-position: center;
  padding: 130px 0;
  position: relative;
}
.approach-sec::before { content:''; position:absolute; inset:0; background: rgba(255,255,255,0.80); }
.approach-inner { position: relative; z-index: 1; max-width: var(--max); margin: 0 auto; padding: 0 var(--px); text-align: center; }
.approach-top-lbl { font-family: var(--f-ui); font-size: 1rem; letter-spacing: .2em; color: #888888; margin-bottom: .8rem; display: block; }
.approach-body-text { font-family: var(--f-jp); font-size: clamp(.9rem, 1.1vw, 1.0625rem); line-height: 2.2; color: #1E2D3D; margin: 2rem 0 2.5rem; max-width: 760px; margin-left: auto; margin-right: auto; }
.approach-link-wrap { text-align: center; }
.approach-h { font-family: var(--f-jp); font-size: clamp(1.6rem,2.5vw,2.5rem); color: #1E2D3D; font-weight: 400; margin-bottom: 3rem; }
.approach-card { background: #ffffff; max-width: var(--max); margin: 0 auto; text-align: left; padding: 100px 150px; }
.approach-row { display: grid; grid-template-columns: 220px 1fr; gap: 2rem; padding: 2rem 3rem; border-bottom: 1px dotted var(--rule); align-items: center; }
.approach-row:last-child { border-bottom: none; }
.approach-cat-jp { font-family: var(--f-jp); font-size: 1.875rem; color: #6B8F71; font-weight: 400; margin-bottom: .3rem; }
.approach-cat-sub { font-family: var(--f-jp); font-size: 0.875rem; letter-spacing: .08em; color: #1E2D3D; display: flex; align-items: center; gap: .5rem; }
.approach-cat-sub::before { content: ''; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: #1E2D3D; flex-shrink: 0; }
.approach-desc { font-family: var(--f-jp); font-size: clamp(.9rem, 1.1vw, 1.0625rem); line-height: 2.2; color: #1E2D3D; padding-top: .3rem; }

/* Activity link on mission page */
.act-link-sec {
  padding: 140px var(--px);
  max-width: var(--max);
  margin: 0 auto;
  border-top: 1px solid var(--rule);
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 2rem;
  align-items: center;
}
.act-link-h  { font-family: var(--f-en); font-weight: 300; font-size: clamp(1.6rem,2.5vw,2.5rem); color: var(--text); }
.act-link-h em { font-style: italic; }
.act-link-jp { font-family: var(--f-jp); font-size: 1.125rem; letter-spacing: .22em; color: #1E2D3D; margin-bottom: 50px; display: block; }
.act-link-body { font-family: var(--f-jp); font-size: clamp(.9rem, 1.1vw, 1.0625rem); line-height: 2; color: #1E2D3D; margin-top: .6rem; }

/* ─ ACTIVITIES PAGE ─ */
.act-page-heading {
  padding: calc(var(--nav-h) + 80px) var(--px) 110px;
  max-width: var(--max);
  margin: 0 auto;
}
.act-page-heading h1 { font-size: clamp(2.8rem, 5.2vw, 4.1875rem); }
.act-intro { padding: 40px var(--px) 60px; max-width: var(--max); margin: 0 auto; border-bottom: 1px solid var(--rule); }
.act-intro-text { font-family: var(--f-jp); font-size: clamp(.9rem, 1.1vw, 1.0625rem); line-height: 2.3; color: #1E2D3D; max-width: 1000px; }

.act-body { max-width: var(--max); margin: 0 auto; padding: 0 var(--px) 80px; }
.act-group-lbl {
  display: flex;
  align-items: center;
  gap: .6rem;
  font-family: var(--f-en);
  font-size: 1.25rem;
  letter-spacing: .1em;
  color: #1E2D3D;
  padding: 2rem 0 1.2rem;
}
.act-group-lbl .dot { width: 8px; height: 8px; border-radius: 50%; background: #1E2D3D; flex-shrink: 0; }

/* Current row (学び) */
.current-row {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 3rem;
  align-items: start;
  padding: 1.5rem 2rem 2rem;
  border-bottom: 1px solid var(--rule);
}
.current-row-name { font-family: var(--f-jp); font-size: 1.875rem; color: var(--accent); font-weight: 400; }
.current-row-desc { font-family: var(--f-jp); font-size: clamp(.9rem, 1.1vw, 1.0625rem); line-height: 2.1; color: #1E2D3D; padding-top: .3rem; }

/* Blog cards - 2 columns */
.blog-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(2rem, 12vw, 170px);
  margin: 2.5rem 0 6rem;
}
.blog-card-2 {
  background: var(--bg);
  border: 1px solid var(--rule);
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
  transition: opacity .25s;
}
.blog-card-2:hover { opacity: .85; }
.blog-card-2-thumb { width: 100%; aspect-ratio: 4/3; overflow: hidden; }
.blog-card-2-thumb img, .blog-card-2-thumb .img-ph { width: 100%; height: 100%; }
.blog-card-2-body { padding: 1.5rem 1.8rem 2rem; flex: 1; }
.blog-card-2-title { font-family: var(--f-jp); font-size: 1.25rem; color: var(--accent); line-height: 1.7; margin-bottom: 1rem; font-weight: 400; }
.blog-card-2-text  { font-family: var(--f-jp); font-size: 1rem; line-height: 2.1; color: #1E2D3D; }
.blog-card-2-more  { font-family: var(--f-ui); font-size: 0.875rem; letter-spacing: .12em; color: var(--text-40); margin-top: 1.2rem; display: block; text-align: right; }

/* Planned rows */
.planned-row {
  display: grid;
  grid-template-columns: 370px 1fr;
  gap: 2rem;
  align-items: start;
  padding: 1.8rem 2rem;
  border-bottom: 1px solid var(--rule);
}
.planned-row:last-child { border-bottom: none; }
.planned-row-name { font-family: var(--f-jp); font-size: 1.875rem; color: var(--accent); font-weight: 400; }
.planned-row-desc { font-family: var(--f-jp); font-size: clamp(.9rem, 1.1vw, 1.0625rem); line-height: 2.1; color: #1E2D3D; }
.planned-row-arrow { display: none; }

/* ─ JOIN/SUPPORT PAGE ─ */
.join-page-heading {
  padding: calc(var(--nav-h) + 80px) var(--px) 110px;
  max-width: var(--max);
  margin: 0 auto;
}
.join-page-heading h1 { font-size: clamp(2.8rem, 5.2vw, 4.1875rem); }

.join-hero-photo {
  position: relative;
  width: 100%;
  min-height: 540px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 var(--px);
  background-image: url('images/join_bg.jpg');
  background-size: cover;
  background-position: center;
}
.join-hero-photo::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,0.40);
  z-index: 0;
}
.join-hero-photo > img,
.join-hero-photo > .img-ph {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.join-hero-box {
  position: relative;
  z-index: 1;
  background: rgba(253,253,253,.88);
  padding: 4rem 5rem;
  max-width: var(--max);
  width: 100%;
  margin: 80px auto;
  text-align: center;
}
.join-hero-lbl  { font-family: var(--f-ui); font-size: clamp(.75rem, 1.05vw, 1rem); letter-spacing: 0.07em; color: #888888; margin-bottom: 1rem; display: block; }
.join-hero-h { font-family: var(--f-jp); font-size: clamp(1.6rem,2.5vw,2.5rem); color: var(--text); font-weight: 400; line-height: 1.5; margin-bottom: 2rem; }
.join-hero-body { font-family: var(--f-jp); font-size: clamp(.9rem, 1.1vw, 1.0625rem); line-height: 2.3; color: #1E2D3D; margin-bottom: 2.5rem; }

.how-to-join { padding: 80px var(--px); max-width: var(--max); margin: 0 auto; border-top: 1px solid var(--rule); }
.how-header {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  margin-bottom: 4rem;
  align-items: center;
}
.how-h { font-family: var(--f-jp); font-size: clamp(1.6rem,2.5vw,2.2rem); color: var(--text); font-weight: 400; line-height: 1.5; }
.how-intro { font-family: var(--f-jp); font-size: clamp(.9rem, 1.1vw, 1.0625rem); line-height: 2.3; color: #1E2D3D; }
.how-label { font-family: var(--f-ui); font-size: clamp(.75rem, 1.05vw, 1rem); letter-spacing: 0.07em; color: #888888; margin-bottom: 0; display: block; }
.join-cards { display: grid; grid-template-columns: repeat(3,1fr); border: 1px solid #898989; }
.join-card-item { padding: 3.9rem 3rem; border-right: 1px solid #898989; display: flex; flex-direction: column; }
.join-card-item:last-child { border-right: none; }
.join-card-num {
  font-family: var(--f-ui);
  font-size: 1.125rem;
  letter-spacing: 0.06em;
  color: #6B8F71;
  margin-bottom: 1.8rem;
  display: flex;
  align-items: center;
  gap: .8rem;
}
.join-card-num::after {
  content: '';
  flex: 1;
  height: 1px;
  background: #E0E0E0;
  display: block;
}
.join-card-title { font-family: var(--f-jp); font-size: clamp(1.2rem, 1.6vw, 1.5rem); color: #6B8F71; font-weight: 400; line-height: 1.5; margin-bottom: 30px; min-height: 3em; }
.join-card-body { font-family: var(--f-jp); font-size: clamp(.9rem, 1.1vw, 1.0625rem); line-height: 2.1; color: #1E2D3D; flex: 1; }

/* ─ CONTACT PAGE ─ */
.contact-wrap {
  padding-top: var(--nav-h);
  display: grid;
  grid-template-columns: 48% 52%;
  min-height: 60vh;
}
.contact-l {
  padding: 5rem var(--px) 5rem max(var(--px), calc((100vw - var(--max)) / 2 + var(--px)));
  border-right: 1px solid var(--rule);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.contact-r { position: relative; overflow: hidden; }
.contact-r img, .contact-r .img-ph { width: 100%; height: 100%; min-height: 500px; }

.contact-h { font-family: var(--f-en); font-weight: 300; font-size: clamp(2.8rem, 5.2vw, 4.1875rem); color: var(--text); margin-bottom: 3rem; letter-spacing: -.01em; }
.contact-intro { font-family: var(--f-jp); font-size: clamp(.9rem, 1.1vw, 1.0625rem); line-height: 2.2; color: #1E2D3D; margin-bottom: .5rem; }
.contact-note { font-family: var(--f-jp); font-size: .875rem; color: #1E2D3D; margin-bottom: 0; }

/* Form */
.contact-form-sec {
  max-width: 1000px;
  margin: 0 auto;
  padding: 80px var(--px) 100px;
}
.form-wrap {}
.form-grp { margin-bottom: 2rem; display: grid; grid-template-columns: 160px 1fr; gap: 1rem; align-items: start; }
.form-lbl { font-family: var(--f-jp); font-size: 1rem; color: #1E2D3D; padding-top: .8rem; }
.form-lbl .req { font-family: var(--f-ui); font-size: .6rem; color: var(--accent); margin-left: .3rem; }
.form-inp, .form-sel, .form-ta {
  width: 100%;
  background: var(--bg);
  border: 1px solid var(--rule);
  padding: .75rem 1rem;
  font-family: var(--f-jp);
  font-size: 1rem;
  color: #1E2D3D;
  outline: none;
  appearance: none;
  transition: border-color .25s;
  line-height: 1.7;
}
.form-inp:focus, .form-sel:focus, .form-ta:focus { border-color: var(--accent); }
.form-sel-wrap { position: relative; }
.form-sel-wrap::after {
  display: none; /* グラデーションに変更のため無効化 */
}
.form-sel-wrap::before {
  content: '';
  position: absolute;
  right: 19px;
  top: 1.3rem;          /* セレクト高さの中央固定 */
  width: 9px;
  height: 9px;
  border-right: 1.5px solid #ffffff;
  border-bottom: 1.5px solid #ffffff;
  transform: rotate(45deg); /* translateY不要 */
  pointer-events: none;
  z-index: 1;
}
.form-sel-btn { background: linear-gradient(to right, var(--bg) calc(100% - 44px), #6B8F71 calc(100% - 44px)); color: #1E2D3D; width: 100%; padding: .75rem 3.5rem .75rem 1rem; font-family: var(--f-jp); font-size: 1rem; border: 1px solid var(--rule); cursor: pointer; text-align: left; appearance: none; }
.form-ta { height: 140px; resize: vertical; }
.form-submit-row { margin-top: 2.5rem; text-align: center; }
.form-submit {
  background: var(--accent);
  color: var(--white);
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 0.875rem;
  letter-spacing: .15em;
  padding: .9rem 6rem;
  border: none;
  cursor: pointer;
  transition: background .25s;
  min-width: 240px;
}
.form-submit:hover { background: #4E7354; }

/* ─ RESPONSIVE ─ */
@media (max-width: 1280px) {
  .nav-links a { font-size: 0.82rem; }
  .concept-content { padding-left: var(--px); }
}
@media (max-width: 1024px) {
  :root { --px: 40px; }
  .nav-links a { font-size: 0.75rem; letter-spacing: .04em; }
  .nav-links { gap: 2rem; }
  .concept-content { padding-left: var(--px); }
}
@media (max-width: 860px) {
  :root { --px: 24px; --nav-h: 88px; }
  .nav-links, .nav-btn-contact, .nav-lang { display: none; }
  .nav-mobile a { font-size: 0.875rem; }
  .view-link { font-size: 0.875rem; }
  .label-sm { margin-bottom: 10px; }
  .nav-hamburger { display: flex; }
  .nav-logo-img { height: 68px; }
  .nav.scrolled .nav-logo-img { height: 48px; }
  /* hero text responsive */
  .hero-lead    { font-size: 1rem; }
  .hero-lead-jp { font-size: .875rem; }
  .hero-body    { font-size: .82rem; }
  .body-jp      { font-size: .85rem; }

  .hero {
    grid-template-columns: 1fr;
    min-height: 100svh;
    position: relative;
  }
  .hero-r {
    position: absolute;
    inset: 0;
    height: 100%;
    z-index: 0;
  }
  .hero-r img { width:100%; height:100%; object-fit:cover; }
  .hero-l {
    position: relative;
    z-index: 1;
    padding: 4rem var(--px) 3rem;
    background: rgba(253,253,253,0.76);
    min-height: 100svh;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  .hero-l .nav-btn-contact { width: 100%; text-align: center; box-sizing: border-box; }

  .concept-split { grid-template-columns: 1fr; }
  .concept-photo { padding: 60px var(--px) 0; }
  .concept-photo img { max-width: 100%; aspect-ratio: 601 / 683; }
  .concept-content { padding: 3.5rem var(--px); }

  .pillars-band img { height: 320px; }
  .pillars-sec { padding: 100px var(--px); }
  .pillars-grid { grid-template-columns: 1fr; }
  .pillar { border-right: none; border-bottom: 1px solid var(--rule); padding: 3rem 2rem; }
  .pillar:last-child { border-bottom: none; }

  .act-dark-header { grid-template-columns: 1fr; gap: 1.5rem; }
  .act-card { padding: 2rem 1.5rem; }
  .act-row {
    grid-template-columns: 1fr 24px;
    grid-template-rows: auto auto;
    align-items: start;
    gap: .4rem 1rem;
    padding: 1.6rem 1.6rem;
  }
  .act-row-name { grid-column: 1; grid-row: 1; font-size: clamp(1rem, 5vw, 1.2rem); }
  .act-row-desc { grid-column: 1 / 3; grid-row: 2; font-size: .82rem; }
  .act-row-arrow { grid-column: 2; grid-row: 1; align-self: center; }
  .act-group-planned { margin-top: 2.5rem; }

  .overview-sec { padding: 100px 0; }
  .overview-card { padding: 0 2rem !important; }
  .approach-card { padding: 2rem 0; }
  .approach-row { grid-template-columns: 1fr; gap: .8rem; padding: 2rem var(--px); border-bottom: none; position: relative; }
  .approach-row::after { content: ''; display: block; position: absolute; bottom: 0; left: var(--px); right: var(--px); border-bottom: 1px dotted var(--rule); }
  .approach-row:last-child::after { display: none; }

  .photo-band-cell { height: 85vw; }
  .photo-band .slick-list { overflow: hidden; }

  .join-cta-box { padding: 3.5rem 2rem; }

  .profile-wrap { grid-template-columns: 1fr; border-bottom: 1px solid var(--rule); }
  .profile-photo-col { padding-bottom: 2rem; }
  .profile-text-col { padding-left: 0; padding-top: 2rem; }
  .founding { grid-template-columns: 1fr; }
  .founding-text { padding: 3.5rem 0; }
  .founding-photo { height: 55vw; }
  .mission-link { grid-template-columns: 1fr; }
  .mission-link-body { margin-top: 3rem; }

  .overview-h { font-size: clamp(1.8rem, 6vw, 2.5rem); }
  .overview-table tr { display: flex; flex-direction: column; border-bottom: 1px solid var(--rule); }
  .overview-table tr:first-child { border-top: 1px solid var(--rule); }
  .overview-inner { padding: 0 var(--px); }
  .overview-table th { padding: 1rem var(--px) 0.3rem; width: 100%; }
  .overview-table td { padding: 0.3rem var(--px) 1rem; }

  .btn-dark { text-align: center; display: block; }

  .mvv-block-inner { grid-template-columns: 1fr; }
  .mvv-num-col { border-right: none; border-bottom: 1px solid rgba(30,45,61,.1); padding: 2.5rem var(--px); flex-direction: column; align-items: flex-start; gap: .3rem; }
  .mvv-num-col .mvv-num { margin-bottom: 1rem; }
  .mvv-jp { font-size: 0.875rem; }
  .body-jp p { font-size: 0.875rem; }
  .mvv-en-line { font-size: 0.875rem; }
  .pillars-intro { font-size: 0.875rem; }
  .act-link-body { font-size: 0.875rem; }
  .founding-text .body-jp { font-size: 0.875rem; }
  .mvv-content-col { padding: 2.5rem var(--px) 4rem; }
  .culinary-header { grid-template-columns: 1fr; gap: 1.5rem; }
  .culinary-cards { grid-template-columns: 1fr; }
  .culinary-card { border-right: none; border-bottom: 1px solid #898989; padding: 3.9rem 2rem; }
  .culinary-card:last-child { border-bottom: none; }
  .act-link-sec { grid-template-columns: 1fr; gap: 1.5rem; }

  .current-row { grid-template-columns: 1fr; gap: .5rem; }
  .blog-grid-2 { grid-template-columns: 1fr; }
  .planned-row { grid-template-columns: 1fr; gap: .5rem; padding: 1.5rem var(--px); }
  .act-intro-text br { display: none; }
  .join-hero-body { font-size: 0.875rem; }
  .how-intro { font-size: 0.875rem; }
  .form-lbl { font-size: 0.875rem; padding-top: 0; }
  .contact-intro { font-size: 0.875rem; }
  .act-intro-text { font-size: 0.875rem; }
  .current-row-desc { font-size: 0.875rem; }
  .planned-row-desc { font-size: 0.875rem; }
  .act-group-lbl { font-size: 1rem; }
  .blog-card-2-title { font-size: 1rem; }
  .blog-card-2-text { font-size: 0.875rem; }

  .how-header { grid-template-columns: 1fr; gap: 2rem; }
  .join-cards { grid-template-columns: 1fr; }
  .join-card-item { border-right: none; border-bottom: 1px solid #898989; padding: 3.9rem 2rem; }
  .join-card-item:last-child { border-bottom: none; }
  .join-hero-box { padding: 3rem 2rem; margin: 60px 0; }

  .contact-wrap { grid-template-columns: 1fr; }
  .contact-r { height: auto; min-height: unset; }
  .contact-r img, .contact-r .img-ph { min-height: unset; height: auto; object-fit: contain; }
  .contact-l { padding: 3.5rem var(--px) 3.5rem; }
  .form-grp { grid-template-columns: 1fr; }

  .footer-cols { grid-template-columns: 1fr; gap: 2rem; }
  .footer-divider { display: none; }
  .mission-link, .how-to-join, .act-link-sec { padding: 50px var(--px); }
}
@media (max-width: 480px) {
  .heading-page { font-size: 2.5rem; }
  .hero-h1 { font-size: 2.5rem; }
  .act-card { padding: 1.5rem 1rem; }
  .act-dark { padding: 80px var(--px); background-position-x: 65%; }
}

/* ─ CONTACT FORM 7 スタイル調整 ─ */
/* CF7ラッパーがグリッドを壊さないよう調整 */
.wpcf7 { width: 100%; }
.wpcf7 form { width: 100%; }
.wpcf7 .form-grp {
  margin-bottom: 2rem;
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 1rem;
  align-items: start;
}
.wpcf7 .form-lbl {
  font-family: var(--f-jp);
  font-size: 1rem;
  color: #1E2D3D;
  padding-top: .8rem;
  display: flex;
  align-items: flex-start;
  gap: .2rem;
}
/* CF7のwrapスパンを透過 */
.wpcf7-form-control-wrap {
  display: block;
  width: 100%;
}
/* CF7のエラーメッセージ */
.wpcf7-not-valid-tip {
  font-family: var(--f-jp);
  font-size: .75rem;
  color: #c0392b;
  margin-top: .3rem;
  display: block;
}
.wpcf7-response-output { display: none; } /* デフォルト非表示 - JSで制御 */
/* CF7がステータスクラスを付与したときのみ表示 */
/* 送信完了・サーバーエラー時のみ表示 */
.wpcf7-form.sent .wpcf7-response-output,
.wpcf7-form.failed .wpcf7-response-output {
  display: block;
  font-family: var(--f-jp);
  font-size: .875rem;
  padding: 1rem 1.5rem;
  margin-top: 1.5rem;
  border: 1px solid var(--rule);
  text-align: center;
}
.wpcf7-form.sent .wpcf7-response-output {
  border-color: var(--accent);
  color: var(--accent);
}
.wpcf7-form.failed .wpcf7-response-output {
  border-color: #c0392b;
  color: #c0392b;
}
.hidden-fields-container { display: none !important; }
.screen-reader-response { display: none !important; }
.wpcf7-spinner { display: none !important; }
/* 必須マーク */
.wpcf7 .req,
.wpcf7-form abbr[title] {
  color: var(--accent);
  font-size: .7rem;
  text-decoration: none;
}
/* スマホ */
@media (max-width: 860px) {
  .wpcf7 .form-grp { grid-template-columns: 1fr; }
  .wpcf7 .form-lbl { padding-top: 0; }
}

/* ─ SINGLE: nmj_activity 投稿ページ ─ */
.act-post-heading {
  padding: calc(var(--nav-h) + 60px) var(--px) 50px;
  max-width: 1000px;
  margin: 0 auto;
  border-bottom: 1px solid var(--rule);
}
.act-post-heading .label-sm {
  font-family: var(--f-jp);
  font-size: 1.5rem;
  letter-spacing: .2em;
  margin-bottom: 20px;
}
.act-post-heading h1.heading-page {
  font-size: 2rem !important;
}
.act-post-meta {
  margin-top: 1.2rem;
  display: flex;
  align-items: center;
  gap: 1.5rem;
}
.act-post-date {
  font-family: var(--f-ui);
  font-size: .8rem;
  letter-spacing: .1em;
  color: var(--text-40);
}
.act-post-thumb {
  max-width: 1000px;
  margin: 0 auto;
  padding: 60px var(--px) 0;
}
.act-post-thumb img {
  width: 100%;
  max-height: 560px;
  object-fit: cover;
  display: block;
}
.act-post-body {
  max-width: 1000px;
  margin: 0 auto;
  padding: 60px var(--px) 80px;
}
.act-post-content {
  font-family: var(--f-jp);
  font-size: 1rem;
  line-height: 2.3;
  color: var(--text);
}
.act-post-content p  { margin-bottom: 1.6em; }
.act-post-content h2 { font-family: var(--f-en); font-weight: 300; font-size: clamp(1.4rem,2.5vw,2rem); margin: 2.5em 0 1em; }
.act-post-content h3 { font-family: var(--f-jp); font-weight: 400; font-size: 1.2rem; margin: 2em 0 .8em; color: var(--accent); }
.act-post-content img { max-width: 100%; height: auto; margin: 2em 0; }
.act-post-content ul, .act-post-content ol { padding-left: 1.5em; margin-bottom: 1.6em; }
.act-post-content li { margin-bottom: .5em; }
.act-post-content a  { color: var(--accent); text-decoration: underline; }
.act-post-nav {
  max-width: 1000px;
  margin: 0 auto;
  padding: 40px var(--px) 80px;
  border-top: 1px solid var(--rule);
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 1.5rem;
}
.act-post-back {
  font-family: var(--f-ui);
  font-size: .85rem;
  letter-spacing: .1em;
  color: var(--text);
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  transition: color .25s;
}
.act-post-back svg { width: 18px; height: 14px; flex-shrink: 0; }
.act-post-back:hover { color: var(--accent); }
.act-post-prev-next {
  display: flex;
  gap: 2rem;
  font-family: var(--f-jp);
  font-size: .875rem;
}
.act-post-prev a, .act-post-next a {
  color: var(--text-60);
  transition: color .25s;
}
.act-post-prev a:hover, .act-post-next a:hover { color: var(--accent); }

@media (max-width: 860px) {
  .act-post-heading { padding-bottom: 36px; }
  .act-post-heading h1.heading-page { font-size: 1.125rem !important; }  /* スマホ: 18px */
  .act-post-heading .label-sm     { font-size: 1.125rem; }
  .act-post-thumb { padding-top: 36px; }
  .act-post-body  { padding: 40px var(--px) 60px; }
  .act-post-nav   { flex-direction: column; align-items: flex-start; }
  .act-post-prev-next { flex-direction: column; gap: 1rem; }
}

/* ─ reCAPTCHA ─ */
/* バッジ非表示（Googleガイドライン準拠のため、フォーム内に規約文を明記） */
.grecaptcha-badge { visibility: hidden !important; }

/* 送信ボタン上の規約文 */
.recaptcha-notice {
  font-family: var(--f-jp);
  font-size: 0.75rem;
  color: #888888;
  text-align: center;
  margin-bottom: 1.2rem;
  line-height: 1.8;
}
.recaptcha-notice a {
  color: #888888;
  border-bottom: 0.5px solid #aaaaaa;
  text-decoration: none;
}
.recaptcha-notice a:hover { color: var(--accent); border-color: var(--accent); }