/* ==========================================================================
   Ecological Town Ebino - Main Stylesheet (merged)
   Google Fonts are loaded via functions.php wp_enqueue_style
   ========================================================================== */

/* ===== RESET & BASE ===== */
*{margin:0;padding:0;box-sizing:border-box}

:root{
  /* Legacy */
  --green:#2d6a3f;
  --amber:#d4820a;--amber-light:#f5a623;
  --white:#fff;--gray:#666;--dark:#222;
  --max:1140px;
  /* Main */
  --green-dark:  #2d5a27;
  --green-mid:   #4a8c3f;
  --green-light: #7ab648;
  --green-pale:  #eef6e8;
  --earth:       #8b6914;
  --earth-light: #f5ecd7;
  --cream:       #fdf8f0;
  --text-dark:   #1e2d1a;
  --text-mid:    #4a5a44;
  --text-light:  #7a8a74;
  --border:      #d8e8d0;
  --sh:          0 4px 24px rgba(45,90,39,.12);
  --sh-sm:       0 2px 10px rgba(45,90,39,.08);
  --r:           14px;
}

html{ overflow-x:hidden; }
body{
  font-family:'Noto Sans JP',sans-serif;
  background:#fafaf7;
  color:#333;
  line-height:1.8;
  font-size:16px;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto;display:block}
/* iframe（Googleマップ等）をレスポンシブ対応 */
iframe{ max-width:100%; }


/* ===== HEADER (Renewed) ===== */
/* ─── 半透過 → スクロールで白 ─── */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:200; overflow:hidden;
  background:rgba(255,255,255,0);
  backdrop-filter:blur(0px); -webkit-backdrop-filter:blur(0px);
  transition:background .4s ease, backdrop-filter .4s ease,
             -webkit-backdrop-filter .4s ease, box-shadow .4s ease;
	background-color: #fafaf7;
}
.site-header.scrolled{
  background:rgba(255,255,255,0.96);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  box-shadow:0 2px 24px rgba(45,90,39,.10);
}
.header-inner{
  max-width:100%; margin:0 auto; padding:0 32px;
  display:flex; align-items:center; justify-content:space-between;
  gap:8px; height:auto; min-height:64px; transition:none;
}
.site-header.scrolled .header-inner{ height:auto; }

/* ─── ロゴ ─── */
.site-logo{
  display:flex; align-items:center; gap:14px;
  text-decoration:none; flex-shrink:0; transition:opacity .2s;
}
.site-logo:hover{ opacity:.82; }
.logo-mark{
  width:150px; height:150px;
  border-radius:50%; display:flex; align-items:center; justify-content:center;
  flex-shrink:0; box-shadow:0 3px 10px rgba(45,90,39,.22);
  transition:transform .3s, box-shadow .3s, width .4s, height .4s;
}
.site-logo:hover .logo-mark{
  transform:rotate(-5deg) scale(1.06);
  box-shadow:0 6px 16px rgba(45,90,39,.30);
}
.logo-mark-inner{
  font-size:22px; color:#fff; display:block; line-height:1; transition:font-size .4s;
}
.site-header.scrolled .logo-mark{ width:90px; height:90px; }
.site-header.scrolled .logo-mark-inner{ font-size:18px; }

/* ロゴテキスト（横書き） */
.logo-text{ display:flex; flex-direction:column; gap:3px; }
.logo-text-ja{
  font-size:20px; font-weight:800; color:var(--green-dark,#2d5a27);
  letter-spacing:.06em; line-height:1.2; white-space:nowrap;
  transition:font-size .4s;
}
.logo-text-en{
  font-size:11.5px; font-weight:400; color:var(--text-light,#7a8a74);
  letter-spacing:.18em; text-transform:uppercase; line-height:1; white-space:nowrap;
}
.site-header.scrolled .logo-text-ja{ font-size:13px; }

/* ─── デスクトップ ナビゲーション（縦書き） ─── */
.primary-nav{
  flex:1; display:flex; justify-content:flex-end; align-items:stretch; overflow:visible;
}
.primary-nav ul{
  display:flex; list-style:none; gap:0; align-items:stretch;
  margin:0; padding:0;
}
.primary-nav li{display: flex;
    align-items: stretch;
    border-right: 1px dashed #7ab648;
    padding: 0px 5px;
    margin: 10px 0; }
.primary-nav li:first-child{
	border-left: 1px dashed #7ab648;}
.primary-nav a{
  display:flex; align-items:center; justify-content:flex-start;
  padding:16px 13px 6px; font-size:14px; font-weight:500; color:var(--text-dark,#1e2d1a);
  text-decoration:none; white-space:nowrap;
  writing-mode:vertical-rl; text-orientation:mixed; letter-spacing:.1em;
  transition:color .22s ease, transform .22s ease;
}
.primary-nav a:hover{ color:var(--green-dark,#2d5a27); transform:translateY(-4px); background-color:#f4f9f0;}
.primary-nav a.active{ color:var(--green-dark,#2d5a27); font-weight:700; }
/* スクロール時：フォントをひと回り小さく */
.site-header.scrolled .primary-nav a{ font-size:12px; letter-spacing:.08em; }

/* お問い合わせ：ボタンタグのデフォルトをリセットしてナビと同一スタイルに */
.header-contact{
  writing-mode:vertical-rl !important; text-orientation:mixed !important;
  letter-spacing:.1em !important; font-size:14px !important;
  font-weight:500 !important; color:var(--text-dark,#1e2d1a) !important;
  background:none !important; border:none !important;
  padding:16px 13px 6px !important; border-radius:0 !important;
  justify-content:flex-start !important;
  margin-left:0 !important; box-shadow:none !important;
  cursor:pointer !important; white-space:nowrap !important;
  transition:color .22s ease, transform .22s ease !important;
}
.header-contact:hover{ color:var(--green-dark,#2d5a27) !important; background:none !important; transform:translateY(-4px) !important; }
.site-header.scrolled .header-contact{ font-size:12px !important; letter-spacing:.08em !important; }

/* ─── ハンバーガーボタン（スマホのみ表示） ─── */
.nav-toggle{
  display:none; flex-direction:column; justify-content:center; align-items:center;
  gap:5px; width:44px; height:44px; border:none; background:transparent;
  cursor:pointer; padding:8px; border-radius:6px; transition:background .2s; flex-shrink:0;
}
.nav-toggle:hover{ background:rgba(45,90,39,.08); }
.nav-toggle-bar{
  display:block; width:24px; height:2px; background:var(--green-dark,#2d5a27);
  border-radius:2px;
  transition:transform .35s cubic-bezier(.68,-.55,.265,1.55), opacity .25s;
  transform-origin:center;
}
.nav-toggle.is-open .nav-toggle-bar:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-toggle.is-open .nav-toggle-bar:nth-child(2){ opacity:0; transform:scaleX(0); }
.nav-toggle.is-open .nav-toggle-bar:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* ─── モバイル ドロワー ─── */
.mobile-drawer{
  position:fixed; top:0; right:0;
  width:min(320px,88vw); height:100vh;
  background:#fff; z-index:300;
  transform:translateX(100%);
  transition:transform .4s cubic-bezier(.22,1,.36,1);
  display:flex; flex-direction:column; overflow:hidden; will-change:transform;
}
.mobile-drawer.is-open{ transform:translateX(0); }
.mobile-drawer::before{
  content:''; display:block; height:4px;
  background:linear-gradient(to right,var(--green-light,#7ab648),var(--green-dark,#2d5a27));
  flex-shrink:0;
}
.mobile-drawer-inner{ display:flex; flex-direction:column; height:100%; overflow-y:auto; }
.mobile-drawer-head{
  display:flex; align-items:center; justify-content:space-between;
  padding:20px 24px 16px; border-bottom:1px solid var(--border,#d8e8d0);
}
.mobile-drawer-logo{ display:flex; align-items:center; gap:10px; text-decoration:none; }
.logo-mark-sm{
  width:36px; height:36px;
  background:linear-gradient(135deg,var(--green-mid,#4a8c3f),var(--green-dark,#2d5a27));
  border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-size:18px; color:#fff; flex-shrink:0;
}
.mobile-drawer-logo-text{
  font-size:12px; font-weight:700; color:var(--green-dark,#2d5a27); letter-spacing:.04em; line-height:1.4;
}
.drawer-close{
  width:36px; height:36px; border:none; background:var(--green-pale,#eef6e8);
  border-radius:50%; cursor:pointer; position:relative; transition:background .2s, transform .2s; flex-shrink:0;
}
.drawer-close:hover{ background:var(--border,#d8e8d0); transform:rotate(90deg); }
.drawer-close span{
  position:absolute; top:50%; left:50%; width:16px; height:2px;
  background:var(--green-dark,#2d5a27); border-radius:2px;
}
.drawer-close span:nth-child(1){ transform:translate(-50%,-50%) rotate(45deg); }
.drawer-close span:nth-child(2){ transform:translate(-50%,-50%) rotate(-45deg); }
.mobile-nav{ flex:1; padding:12px 0; }
.mobile-nav-list{ list-style:none; margin:0; padding:0; }
.mobile-nav-list li{ border-bottom:1px solid var(--border,#d8e8d0); }
.mobile-nav-list li:first-child{ border-top:1px solid var(--border,#d8e8d0); }
.mobile-nav-list a{
  display:flex; align-items:center; padding:18px 28px;
  font-size:15px; font-weight:500; color:var(--text-dark,#1e2d1a);
  text-decoration:none; letter-spacing:.06em;
  transition:background .18s, color .18s, padding-left .18s; position:relative;
}
.mobile-nav-list a::before{
  content:''; position:absolute; left:16px; top:50%; transform:translateY(-50%);
  width:4px; height:4px; border-radius:50%; background:var(--green-light,#7ab648);
  opacity:0; transition:opacity .18s;
}
.mobile-nav-list a:hover{ background:var(--green-pale,#eef6e8); color:var(--green-dark,#2d5a27); padding-left:36px; }
.mobile-nav-list a:hover::before{ opacity:1; }
.mobile-contact-link{ font-weight:600 !important; color:var(--green-dark,#2d5a27) !important; }
.mobile-nav-sublist li:first-child{ border-top:none; }
.mobile-drawer-foot{ padding:24px; border-top:1px solid var(--border,#d8e8d0); text-align:center; }
.mobile-drawer-tagline{ font-size:11px; color:var(--text-light,#7a8a74); letter-spacing:.12em; line-height:2; margin-bottom:8px; }
.mobile-drawer-copy{ font-size:10px; color:var(--text-light,#7a8a74); letter-spacing:.04em; }
.drawer-overlay{
  position:fixed; inset:0; background:rgba(0,0,0,0); z-index:250;
  pointer-events:none; transition:background .4s;
}
.drawer-overlay.is-open{ background:rgba(0,0,0,.48); pointer-events:auto; }


/* ===== FOOTER ===== */
.site-footer{
  background:var(--green-dark,#2d5a27);
  color:#fff;
  padding:60px 40px 32px;
}
.footer-inner{
  max-width:1120px;
  margin:0 auto;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:28px;
  text-align:center;
}
.footer-logo{
  display:flex;
  align-items:center;
  gap:12px;
}
img.f_logo {
    width: 50px;
    display: inline-block;
    vertical-align: middle;
    margin-right: 10px;
}
.footer-logo-icon{
  width:44px;height:44px;
  background:rgba(255,255,255,.15);
  border-radius:8px;
  display:flex;align-items:center;justify-content:center;
  font-size:22px;
}
.footer-logo-ja{
  font-size:14px;font-weight:700;
  display:block;letter-spacing:.04em;
}
.footer-logo-en{
  font-size:9px;color:rgba(255,255,255,.6);
  letter-spacing:.16em;text-transform:uppercase;
}
.footer-nav ul{
  display:flex;flex-wrap:wrap;justify-content:center;
  list-style:none;gap:4px 20px;
}
.footer-nav a{
  font-size:13px;color:rgba(255,255,255,.8);
  transition:color .2s;
}
.footer-nav a:hover{color:#fff;}
.footer-copy{
  font-size:12px;color:rgba(255,255,255,.5);
  padding-top:20px;
  border-top:1px solid rgba(255,255,255,.12);
  width:100%;
}


/* ===== HERO SLIDER ===== */
.hero-v2 {
  min-height:100vh;
  display:flex; flex-direction:column; justify-content:center;
  position:relative; overflow:hidden;
  margin-top:var(--hdr-h,160px);
}
.hero-slider { position:absolute; inset:0; }
.hero-slide {
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  opacity:0;
  animation: slideKenburns 18s infinite;
}
.hero-slide:nth-child(1) { animation-delay:0s;  background-image:linear-gradient(135deg,rgba(45,90,39,.82) 0%,rgba(74,140,63,.5) 60%,rgba(122,182,72,.3) 100%), url('http://organicebino.org/wp-content/uploads/2024.01.08各種野菜の生育①.jpg?w=1600&q=80'); }
.hero-slide:nth-child(2) { animation-delay:6s;  background-image:linear-gradient(135deg,rgba(45,90,39,.82) 0%,rgba(74,140,63,.5) 60%,rgba(122,182,72,.3) 100%), url('http://organicebino.org/wp-content/uploads/2023.05.03玉ねぎの収穫②.jpg?w=1600&q=80'); }
.hero-slide:nth-child(3) { animation-delay:12s; background-image:linear-gradient(135deg,rgba(45,90,39,.82) 0%,rgba(74,140,63,.5) 60%,rgba(122,182,72,.3) 100%), url('http://organicebino.org/wp-content/uploads/2023.06.13クボタ田植機実演機⑥.jpg?w=1600&q=80'); }
@keyframes slideKenburns {
  0%       { opacity:0; transform:scale(1); }
  5%       { opacity:1; }
  28%, 33% { opacity:1; transform:scale(1.07); }
  38%      { opacity:0; transform:scale(1.1); }
  100%     { opacity:0; transform:scale(1.1); }
}
.hero-slide-indicator {
  position:absolute; bottom:80px; left:50%; transform:translateX(-50%);
  display:flex; gap:8px; z-index:2;
}
.hero-dot { width:24px; height:3px; border-radius:2px; background:rgba(255,255,255,.35); transition:all .3s; }
.hero-dot.act { background:#b8e878; width:36px; }
.hero-v2-content {
  position:relative; z-index:1;
  max-width:760px; padding:60px 64px; color:#fff;
}
.hero-tag-v2 {
  display:inline-flex; align-items:center; gap:8px;
  background:rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.3);
  border-radius:20px; padding:6px 16px; font-size:12px;
  letter-spacing:.12em; margin-bottom:28px; backdrop-filter:blur(4px);
}
.hero-tag-v2::before { content: "\1F33F"; }
.hero-v2-content h1 {
  font-family:'Noto Serif JP',serif;
  font-size:clamp(30px,5vw,54px); font-weight:600;
  line-height:1.45; margin-bottom:24px;
  text-shadow:0 2px 12px rgba(0,0,0,.25);
}
.hero-v2-content h1 .accent { color:#b8e878; }
.hero-v2-content p {
  font-size:clamp(14px,2vw,16px); line-height:2;
  opacity:.92; margin-bottom:40px; max-width:520px;
}
.hero-v2-btns { display:flex; gap:16px; flex-wrap:wrap; }
.btn-hero-white {
  background:#fff; color:var(--green-dark);
  padding:15px 36px; border-radius:32px; font-weight:700; font-size:15px;
  box-shadow:0 4px 18px rgba(0,0,0,.15);
  transition:transform .2s, box-shadow .2s;
  display:inline-flex; align-items:center; gap:8px;
}
.btn-hero-white:hover { transform:translateY(-2px); box-shadow:0 8px 28px rgba(0,0,0,.2); }
.btn-hero-outline {
  background:transparent; color:#fff;
  border:2px solid rgba(255,255,255,.7);
  padding:13px 32px; border-radius:32px; font-weight:500; font-size:15px;
  transition:background .2s, border-color .2s;
  display:inline-flex; align-items:center; gap:8px;
}
.btn-hero-outline:hover { background:rgba(255,255,255,.15); border-color:#fff; }
.hero-scroll-v2 {
  position:absolute; bottom:32px; left:50%; transform:translateX(-50%);
  z-index:2; color:rgba(255,255,255,.7); font-size:11px;
  letter-spacing:.22em; display:flex; flex-direction:column; align-items:center; gap:8px;
}
.hero-scroll-v2::after {
  content:''; width:1px; height:48px;
  background:rgba(255,255,255,.5);
  animation:scrollLine 2s ease-in-out infinite;
}
@keyframes scrollLine {
  0%  { transform:scaleY(0); transform-origin:top; }
  50% { transform:scaleY(1); transform-origin:top; }
  50.001% { transform-origin:bottom; }
  100%{ transform:scaleY(0); transform-origin:bottom; }
}
.slider-note {
  position:absolute; top:12px; right:16px; z-index:5;
  background:rgba(0,0,0,.55); color:#fff; font-size:11px;
  padding:5px 12px; border-radius:20px; letter-spacing:.05em;
  backdrop-filter:blur(4px);
}


/* ===== REVEAL ANIMATIONS ===== */
.rev {
  opacity:0; transform:translateY(28px);
  transition:opacity .65s ease, transform .65s ease;
}
.rev.vis { opacity:1; transform:none; }
.rev-left  { opacity:0; transform:translateX(-32px); transition:opacity .65s ease, transform .65s ease; }
.rev-left.vis  { opacity:1; transform:none; }
.rev-right { opacity:0; transform:translateX(32px);  transition:opacity .65s ease, transform .65s ease; }
.rev-right.vis { opacity:1; transform:none; }
.d1 { transition-delay:.1s; } .d2 { transition-delay:.2s; } .d3 { transition-delay:.3s; } .d4 { transition-delay:.4s; } .d5 { transition-delay:.5s; }


/* ===== TOPICS SECTION ===== */
.topics-section { background:#fff; padding:80px 40px; }
.topics-section .container { max-width:1120px; margin:0 auto; }
.topics-inner { display:grid; grid-template-columns:240px 1fr; gap:56px; align-items:start; }
.topics-side { padding-top:8px; }
.topics-label { font-size:11px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--green-mid); display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.topics-label::before { content:''; width:28px; height:2px; background:var(--green-light); }
.topics-title { font-family:'Noto Serif JP',serif; font-size:clamp(22px,3vw,32px); font-weight:600; color:var(--text-dark); line-height:1.4; margin-bottom:20px; }
.topics-all { display:inline-flex; align-items:center; gap:8px; font-size:13px; font-weight:700; color:var(--green-mid); border:2px solid var(--green-light); padding:10px 22px; border-radius:24px; transition:all .2s; }
.topics-all:hover { background:var(--green-dark); color:#fff; border-color:var(--green-dark); }
.topics-list { display:flex; flex-direction:column; }
.topics-item {
  display:flex; gap:14px; padding:18px 14px;
  border-bottom:1px solid #f0ece8; align-items:flex-start;
  border-radius:10px; transition:background .15s; cursor:pointer;
  text-decoration:none; color:inherit;
}
.topics-item:hover { background:var(--green-pale); border-bottom-color:transparent; }
.topics-date { font-size:12px; color:var(--text-light); white-space:nowrap; padding-top:3px; min-width:78px; }
.topic-badge { font-size:10px; font-weight:700; padding:3px 10px; border-radius:10px; white-space:nowrap; flex-shrink:0; margin-top:1px; }
.tbadge-news  { background:#e8f4f0; color:#2d8a6a; }
.tbadge-event { background:#fff0e0; color:#b87800; }
.tbadge-report{ background:#f0f0ff; color:#5050c0; }
.topics-ttl { font-size:14px; font-weight:500; line-height:1.65; color:var(--text-dark); }


/* ===== ABOUT SECTION ===== */
.about-v2 { background:var(--cream); padding:80px 40px; }
.about-v2 .container { max-width:1120px; margin:0 auto; }
.about-v2-grid { display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:center; }
.about-img-wrap { position:relative; padding-bottom:30px; padding-right:30px; }
.about-main-img {
  width:100%; aspect-ratio:4/3;
  border-radius:18px; overflow:hidden; box-shadow:var(--sh);
  background:linear-gradient(135deg,#a5d6a7,#4a8c3f);
  display:flex; align-items:center; justify-content:center; font-size:60px;
}
.about-main-img img { width:100%; height:100%; object-fit:cover; }
.about-sub-img {
  position:absolute; bottom:0; right:0;
  width:46%; aspect-ratio:1;
  border-radius:14px; overflow:hidden;
  border:4px solid #fff; box-shadow:var(--sh);
  background:linear-gradient(135deg,#eef6e8,#a5d6a7);
  display:flex; align-items:center; justify-content:center; font-size:40px;
}
.about-sub-img img { width:100%; height:100%; object-fit:cover; }
.about-badge-v2 {
  position:absolute; top:24px; left:-18px;
  background:var(--green-dark); color:#fff;
  padding:14px 20px; border-radius:12px; font-size:13px; font-weight:700;
  line-height:1.4; box-shadow:var(--sh); z-index:1;
}
.about-badge-v2 .big { font-size:28px; font-family:'Noto Serif JP',serif; color:#b8e878; display:block; }
.wa-features { display:flex; flex-direction:column; gap:14px; margin-top:32px; }
.wa-feat {
  display:flex; align-items:flex-start; gap:14px;
  padding:16px 20px; background:#fff;
  border:1px solid var(--border); border-radius:var(--r);
  box-shadow:var(--sh-sm); cursor:pointer;
  transition:transform .2s, box-shadow .2s, border-color .2s;
}
.wa-feat:hover { transform:translateX(4px); box-shadow:var(--sh); border-color:var(--green-light); }
.wa-icon-box { width:44px; height:44px; background:var(--green-pale); border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:20px; flex-shrink:0; font-family:'Noto Serif JP',serif; font-weight:700; color:var(--green-dark); }
.wa-feat-text .ttl { font-weight:700; font-size:14px; color:var(--green-dark); margin-bottom:2px; }
.wa-feat-text p { font-size:13px; color:var(--text-light); line-height:1.6; }
.about-more-btn {
  display:inline-flex; align-items:center; gap:8px;
  margin-top:28px; font-size:14px; font-weight:700;
  color:var(--green-dark); border:2px solid var(--green-dark);
  padding:12px 28px; border-radius:28px;
  transition:background .2s, color .2s;
}
.about-more-btn:hover { background:var(--green-dark); color:#fff; }
.about-more-btn::after { content:'→'; transition:transform .2s; }
.about-more-btn:hover::after { transform:translateX(4px); }


/* ===== FARMERS SHOWCASE ===== */
.farmers-showcase { background:var(--green-pale); padding:80px 40px; overflow:hidden; }
.farmers-showcase .sec-label { font-size:11px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--green-mid); display:flex; align-items:center; gap:10px; margin-bottom:14px; }
.farmers-showcase .sec-label::before { content:''; width:28px; height:2px; background:var(--green-light); }
.farmers-showcase .sec-title { font-family:'Noto Serif JP',serif; font-size:clamp(24px,3.5vw,38px); font-weight:600; color:var(--text-dark); line-height:1.45; margin-bottom:14px; }
.farmers-showcase .sec-desc { font-size:15px; color:var(--text-mid); line-height:1.9; max-width:560px; margin-bottom:56px; }
.farmers-deck { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.farmer-card-dark {
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.12);
  border-radius:24px; padding:40px 28px;
  text-align:center;
  transition:transform .35s, background .35s, box-shadow .35s;
  cursor:pointer; position:relative; overflow:hidden;
}
.farmer-card-dark::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(to bottom,transparent 60%,rgba(74,140,63,.25));
  opacity:0; transition:opacity .35s;
}
.farmer-card-dark:hover { transform:translateY(-10px); background:rgba(255,255,255,.12); box-shadow:0 24px 60px rgba(0,0,0,.45); }
.farmer-card-dark:hover::after { opacity:1; }
.fc-photo {
  width:130px; height:130px; border-radius:50%;
  margin:0 auto 20px;
  background:linear-gradient(135deg,#4a8c3f,#1a3a15);
  display:flex; align-items:center; justify-content:center; font-size:58px;
  border:4px solid rgba(255,255,255,.18);
  transition:border-color .35s, transform .35s;
  position:relative; z-index:1;
}
.farmer-card-dark:hover .fc-photo { border-color:#7ab648; transform:scale(1.06); }
.fc-jas { display:inline-block; background:#7ab648; color:#fff; font-size:10px; font-weight:700; padding:3px 12px; border-radius:10px; margin-bottom:10px; letter-spacing:.08em; }
.fc-name { font-family:'Noto Serif JP',serif; font-size:1.3rem; color:#fff; font-weight:600; margin-bottom:6px; }
.fc-crop { font-size:13px; color:#7ab648; margin-bottom:18px; }
.fc-quote {
  font-size:13.5px; color:rgba(255,255,255,.78); line-height:1.85;
  font-style:italic; padding:14px 16px;
  background:rgba(255,255,255,.06); border-radius:12px;
  border-left:3px solid #7ab648; text-align:left;
}
.fc-cta {
  display:inline-flex; align-items:center; gap:8px;
  margin-top:20px; padding:10px 26px;
  border:1.5px solid rgba(255,255,255,.3); border-radius:22px;
  color:rgba(255,255,255,.8); font-size:13px; font-weight:700;
  transition:all .25s; position:relative; z-index:1;
}
.farmer-card-dark:hover .fc-cta { background:#7ab648; border-color:#7ab648; color:#fff; }
.farmers-cta-row { text-align:center; margin-top:48px; }
.btn-ghost-green {
  display:inline-flex; align-items:center; gap:10px;
  border:2px solid #7ab648; color:var(--green-dark);
  padding:14px 36px; border-radius:32px; font-weight:700; font-size:15px;
  transition:all .25s;
}
.btn-ghost-green:hover { background:#7ab648; color:#fff; }
.fc-empty { border:2px dashed rgba(45,90,39,.2); background:rgba(255,255,255,.6) !important; }
.fc-empty .fc-photo { background:linear-gradient(135deg,rgba(255,255,255,.08),rgba(255,255,255,.04)); font-size:36px; color:rgba(255,255,255,.3); }
.fc-empty .fc-name { color:rgba(255,255,255,.4); font-family:'Noto Sans JP',sans-serif; font-size:1rem; }
.fc-empty .fc-cta { border-color:rgba(255,255,255,.15); color:rgba(255,255,255,.4); }
.fc-empty:hover .fc-cta { background:var(--earth); border-color:var(--earth); color:#fff; }


/* ===== FARMERS CAROUSEL ===== */
.carousel-wrap {
  overflow:hidden; position:relative;
  margin:0; padding:16px 0 24px; width:100%;
}
/* フェードエッジ（左右） */
.carousel-wrap::before,
.carousel-wrap::after {
  content:''; position:absolute; top:0; width:80px; height:100%; z-index:2; pointer-events:none;
}
.carousel-wrap::before { left:0; background:linear-gradient(to right,var(--green-pale),transparent); }
.carousel-wrap::after  { right:0; background:linear-gradient(to left,var(--green-pale),transparent); }
/* カルーセルトラック：高速化・途切れなし */
.carousel-track {
  display:flex; gap:20px; width:max-content;
  animation: carouselScroll 12s linear infinite;
  padding:8px 0;
  will-change:transform;
}
.carousel-track:hover { animation-play-state:paused; }
@keyframes carouselScroll {
  0%   { transform:translateX(0); }
  100% { transform:translateX(-50%); }
}
/* カード */
.fc-card-lite {
  width:240px; flex-shrink:0;
  background:#eef6e8; border-radius:18px;
  padding:20px 18px 18px;
  box-shadow:0 3px 16px rgba(45,90,39,.10);
  border:1px solid rgba(45,90,39,.1);
  text-align:center;
  transition:transform .3s, box-shadow .3s;
  cursor:pointer;
	 box-shadow:0 10px 30px rgba(45,90,39,.18);
}
.fc-card-lite:hover { transform:translateY(-6px); }
/* プロフィール写真：鮮明化 */
.fc-photo-lite {
  width:250px; height:250px; border-radius:50%;
  margin:0 auto 12px;
  overflow:hidden;
  transition:border-color .3s;
  background:linear-gradient(135deg,#a5d6a7,#4a8c3f);
  /* GPU描画の歪み防止 */
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
}
.fc-card-lite:hover .fc-photo-lite { border-color:var(--green-light); }
.fc-photo-lite img {
  width:100%; height:100%; object-fit:cover;
  display:block;
  /* 写真を鮮明に */
  image-rendering:-webkit-optimize-contrast;
  image-rendering:crisp-edges;
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
  filter:contrast(1.04) brightness(1.02) saturate(1.05);
}
.fc-photo-lite .fc-emoji { font-size:36px; line-height:80px; }
.fc-jas-lite { display:inline-block; background:var(--green-dark); color:#fff; font-size:9px; font-weight:700; padding:2px 9px; border-radius:8px; margin-bottom:6px; letter-spacing:.08em; }
.fc-name-lite { font-family:'Noto Serif JP',serif; font-size:1.05rem; color:var(--text-dark); font-weight:600; margin-bottom:4px; }
.fc-catch-lite { font-size:11.5px; color:var(--text-mid); font-style:italic; margin-bottom:10px; line-height:1.5; padding-left:10px; border-left:2px solid var(--green-light); }
.fc-crop-lite { display:flex; flex-wrap:wrap; gap:5px; margin-bottom:12px; }
.fc-crop-tag { display:inline-flex; align-items:center; gap:3px; background:var(--green-pale); border:1px solid var(--border); color:var(--green-dark); font-size:10.5px; font-weight:600; padding:2px 9px; border-radius:12px; }
.fc-link-lite {
  display:inline-flex; align-items:center; gap:5px;
  font-size:12px; font-weight:700; color:var(--green-dark);
  border:1.5px solid var(--green-dark); padding:6px 16px; border-radius:16px;
  transition:all .2s;
}
/*.fc-card-lite:hover .fc-link-lite { background:var(--green-dark); color:#fff; }*/
.fc-card-empty { border:2px dashed rgba(45,90,39,.2); background:rgba(255,255,255,.6) !important; }
.fc-card-empty .fc-photo-lite { background:linear-gradient(135deg,#e8f5e9,#c8e6c9); }


/* ===== EBINO-ABOUT ===== */
.ebino-about { background:var(--cream); padding:88px 40px; }
.ebino-about .container { max-width:1120px; margin:0 auto; }
.ebino-grid { display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:center; }
.ebino-img-wrap { position:relative; padding-bottom:28px; padding-right:28px; }
.ebino-main-img { width:100%; aspect-ratio:4/3; border-radius:18px; overflow:hidden; box-shadow:var(--sh); }
.ebino-main-img img { width:100%; height:100%; object-fit:cover; display:block; }
.ebino-sub-img {
  position:absolute; bottom:0; right:0;
  width:44%; aspect-ratio:1;
  border-radius:14px; overflow:hidden;
  border:4px solid #fff; box-shadow:var(--sh);
}
.ebino-sub-img img { width:100%; height:100%; object-fit:cover; display:block; }
.ebino-badge { display:none !important; }
.ebino-features { display:flex; flex-direction:column; gap:13px; margin-top:28px; }
.ebino-feat {
  display:flex; align-items:flex-start; gap:14px;
  padding:14px 18px; background:#fff;
  border:1px solid var(--border); border-radius:14px;
  box-shadow:0 2px 10px rgba(45,90,39,.06);
  transition:transform .2s, box-shadow .2s, border-color .2s;
}
.ebino-feat:hover { transform:translateX(4px); box-shadow:0 4px 20px rgba(45,90,39,.12); border-color:var(--green-light); }
.efeat-icon { width:42px; height:42px; background:var(--green-pale); border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:20px; flex-shrink:0; }
.efeat-text .ttl { font-weight:700; font-size:14px; color:var(--green-dark); margin-bottom:2px; }
.efeat-text p { font-size:13px; color:var(--text-light); line-height:1.6; }
.ebino-cta-btn {
  display:inline-flex; align-items:center; gap:8px;
  margin-top:28px; font-size:14px; font-weight:700;
  color:var(--green-dark); border:2px solid var(--green-dark);
  padding:12px 28px; border-radius:28px; transition:background .2s, color .2s;
}
.ebino-cta-btn:hover { background:var(--green-dark); color:#fff; }
.ebino-cta-btn::after { content:'→'; transition:transform .2s; }
.ebino-cta-btn:hover::after { transform:translateX(4px); }


/* ===== WATASHI SECTION ===== */
.watashi-section {
  background:#f4f9f0;
  padding:88px 40px;
  position:relative; overflow:hidden;
}
.watashi-section .container { max-width:1120px; margin:0 auto; position:relative; z-index:1; }
.watashi-head { text-align:center; margin-bottom:56px; }
.watashi-head .sec-lbl2 { font-size:11px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--green-mid); display:inline-flex; align-items:center; gap:10px; margin-bottom:14px; }
.watashi-head .sec-lbl2::before,.watashi-head .sec-lbl2::after { content:''; width:28px; height:1px; background:var(--green-light); }
.watashi-head h2 { font-family:'Noto Serif JP',serif; font-size:clamp(24px,3.5vw,38px); font-weight:600; color:var(--text-dark); line-height:1.45; margin-bottom:16px; }
.watashi-head p { font-size:15px; color:var(--text-mid); max-width:600px; margin:0 auto; line-height:1.9; }
.watashi-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.watashi-card {
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.14);
  border-radius:20px; padding:36px 28px;
  text-align:center;
  transition:background .3s, transform .3s;
}
.watashi-card:hover { background:rgba(255,255,255,.14); transform:translateY(-4px); }
.watashi-kanji { font-family:'Noto Serif JP',serif; font-size:3rem; color:#b8e878; line-height:1; margin-bottom:8px; }
.watashi-card h3 { font-family:'Noto Serif JP',serif; font-size:1.2rem; color:#fff; margin-bottom:6px; }
.watashi-card .kana { font-size:12px; color:rgba(255,255,255,.55); letter-spacing:.1em; margin-bottom:14px; }
.watashi-card p { font-size:14px; color:rgba(255,255,255,.75); line-height:1.8; }
.watashi-more { text-align:center; margin-top:44px; }
.btn-watashi {
  display:inline-flex; align-items:center; gap:10px;
  border:2px solid var(--green-dark); color:var(--green-dark);
  padding:14px 36px; border-radius:32px; font-weight:700; font-size:15px;
  transition:all .25s;
}
.btn-watashi:hover { background:var(--green-dark); color:#fff; border-color:var(--green-dark); }

/* Photo cards */
.wa-photo-grid {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:20px; margin-bottom:40px;
}
.wa-photo-card {
  position:relative; border-radius:20px; overflow:hidden;
  height:340px; cursor:pointer;
  box-shadow:0 6px 28px rgba(45,90,39,.15);
  transition:transform .35s, box-shadow .35s;
}
.wa-photo-card:hover { transform:translateY(-6px); box-shadow:0 16px 48px rgba(45,90,39,.22); }
.wa-photo-card img { width:100%; height:100%; object-fit:cover; transition:transform .5s; display:block; }
.wa-photo-card:hover img { transform:scale(1.07); }
.wa-card-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(20,50,18,.88) 0%, rgba(20,50,18,.3) 55%, transparent 100%);
  display:flex; flex-direction:column; justify-content:flex-end;
  padding:28px 24px; color:#fff;
}
.wa-card-kanji { font-family:'Noto Serif JP',serif; font-size:3.6rem; color:#b8e878; line-height:1; margin-bottom:8px; opacity:.9; }
.wa-card-title { font-family:'Noto Serif JP',serif; font-size:1.15rem; font-weight:600; margin-bottom:6px; }
.wa-card-kana { font-size:12px; color:rgba(255,255,255,.65); letter-spacing:.1em; margin-bottom:10px; }
.wa-card-text { font-size:13px; color:rgba(255,255,255,.85); line-height:1.7; }
.wa-quote-bar {
  background:#fff; border-left:5px solid #7ab648;
  border-radius:0 16px 16px 0;
  padding:24px 32px; margin:0 0 32px;
  box-shadow:0 3px 16px rgba(45,90,39,.07);
}
.wa-quote-bar blockquote { font-family:'Noto Serif JP',serif; font-size:1.1rem; color:#2d5a27; line-height:1.9; font-style:italic; }
.wa-quote-bar cite { display:block; font-size:13px; color:#7a8a74; margin-top:8px; font-style:normal; }


/* ===== ACCESS SECTION ===== */
.access-v2 { background:var(--cream); padding:80px 40px; }
.access-v2 .container { max-width:1120px; margin:0 auto; }
.access-v2-grid { display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start; }
.access-info-list { display:flex; flex-direction:column; gap:14px; }
.access-info-item {
  display:flex; gap:16px; align-items:flex-start;
  padding:16px 20px; background:#fff; border-radius:var(--r);
  border:1px solid var(--border); box-shadow:var(--sh-sm);
  transition:transform .2s, box-shadow .2s;
}
.access-info-item:hover { transform:translateX(4px); box-shadow:var(--sh); }
.acc-icon { width:42px; height:42px; background:var(--green-pale); border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:18px; flex-shrink:0; }
.acc-lbl { font-weight:700; font-size:13px; color:var(--green-dark); margin-bottom:3px; }
.acc-val { font-size:13px; color:var(--text-mid); line-height:1.7; }
.map-box { position:sticky; top:88px; }
.map-placeholder-v2 {
  width:100%; aspect-ratio:4/3;
  background:linear-gradient(135deg,#c8e6c0,#a5d6a7);
  border-radius:18px; display:flex; align-items:center; justify-content:center;
  box-shadow:var(--sh); position:relative; overflow:hidden; cursor:pointer;
  transition:box-shadow .3s;
}
.map-placeholder-v2:hover { box-shadow:0 12px 40px rgba(45,90,39,.25); }
.map-inner-text { text-align:center; position:relative; z-index:1; width:100%; }
.map-inner-text iframe { width:100%; display:block; }
.map-pin-icon {
    font-size: 20px;
    display: block;
    animation: mapBounce 2.2s ease-in-out infinite;
    margin-bottom: 0;
    margin-top: 60px;
}
@keyframes mapBounce { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-10px)} }
.map-inner-text p { font-size:14px; font-weight:700; color:var(--green-dark); }
.map-inner-text small { font-size:12px; color:var(--text-light); display:block; margin-top:6px; }
.map-open-btn {
  display:flex; align-items:center; justify-content:center; gap:8px;
  margin-top:14px; background:var(--green-dark); color:#fff;
  padding:14px; border-radius:12px; font-size:14px; font-weight:700;
  cursor:pointer; transition:background .2s;
}
.map-open-btn:hover { background:var(--green-mid); }


/* ===== CONTACT CTA ===== */
.contact-cta-section {
  position:relative;
  padding:120px 40px;
  text-align:center;
  background-image:
    linear-gradient(rgba(10,30,8,.62), rgba(10,30,8,.62)),
    url('https://images.unsplash.com/photo-1500382017468-9049fed747ef?w=1600&q=80');
  background-size:cover;
  background-position:center;
  background-attachment:fixed;
  overflow:hidden;
}
.contact-cta-section::before {
  content:''; position:absolute; inset:0;
  background:linear-gradient(135deg, rgba(45,90,39,.5) 0%, rgba(10,30,8,.3) 100%);
  pointer-events:none;
}
.contact-cta-inner { position:relative; z-index:1; max-width:700px; margin:0 auto; }
.contact-cta-en {
  font-family:'Noto Serif JP',serif;
  font-size:.78rem; letter-spacing:.32em;
  color:rgba(255,255,255,.6); text-transform:uppercase;
  margin-bottom:18px; display:block;
}
.contact-cta-section h2 {
  font-family:'Noto Serif JP',serif;
  font-size:2.4rem; font-weight:600; color:#fff;
  margin-bottom:20px; letter-spacing:.06em; line-height:1.4;
}
.contact-cta-section p {
  color:rgba(255,255,255,.8); font-size:1rem;
  line-height:1.9; margin-bottom:48px; font-weight:300;
}
.btn-contact-ghost {
  display:inline-block; padding:18px 64px;
  border:1.5px solid rgba(255,255,255,.85); color:#fff;
  font-family:'Noto Serif JP',serif; font-size:.95rem;
  letter-spacing:.18em; text-decoration:none; border-radius:0;
  transition:background .3s, color .3s, border-color .3s;
  background:transparent; cursor:pointer;
}
.btn-contact-ghost:hover { background:#fff; color:var(--green-dark); border-color:#fff; }
.contact-cta-deco { display:flex; align-items:center; justify-content:center; gap:18px; margin-bottom:36px; }
.contact-cta-deco-line { width:60px; height:1px; background:rgba(255,255,255,.4); }
.contact-cta-deco-dot { width:6px; height:6px; border-radius:50%; background:rgba(255,255,255,.6); }


/* ==========================================================================
   Page Template Styles (WordPress)
   ========================================================================== */

.page-hero {
  position: relative;
  overflow: hidden;
  margin-top: 108px;
  min-height: 340px;
  display: flex;
  align-items: center;
}
.page-hero-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transform: scale(1.05);
  animation: pageHeroZoom 10s ease forwards;
  z-index: 0;
}
@keyframes pageHeroZoom { to { transform: scale(1); } }
.page-hero-bg:not([style*="url("]) {
  background: linear-gradient(160deg, #0d2010 0%, var(--green-dark, #2d5a27) 55%, var(--green-mid, #4a8c3f) 100%);
}
.page-hero-content {
  position: relative;
  z-index: 2;
  padding: 80px 40px 72px;
  width: 100%;
  max-width: 1140px;
  margin: 0 auto;
}
.page-hero-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: rgba(255,255,255,.72);
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 18px;
}
.page-hero-label::before {
  content: '';
  display: inline-block;
  width: 32px;
  height: 1.5px;
  background: rgba(255,255,255,.5);
  flex-shrink: 0;
}
.page-hero-title {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(26px, 4vw, 48px);
  font-weight: 600;
  color: #fff;
  line-height: 1.4;
  letter-spacing: .06em;
  text-shadow: 0 2px 20px rgba(0,0,0,.4);
  margin-bottom: 18px;
}
.page-hero-desc {
  font-size: .95rem;
  color: rgba(255,255,255,.85);
  line-height: 1.85;
  max-width: 560px;
}
.page-content {
  max-width:860px; margin:0 auto;
  padding:60px 40px 100px; line-height:2; color:#333; font-size:1rem;
}
.page-content h3 {
  font-family:'Noto Serif JP',serif; font-size:1.3rem; color:var(--green-dark);
  margin:48px 0 16px; padding-left:16px; border-left:4px solid var(--green-mid);
}
.page-content h4 { font-size:1.1rem; color:#333; margin:32px 0 12px; font-weight:700; }
.page-content p { margin-bottom:1.5em; }

.single-hero { background:var(--green-pale); padding:80px 40px 48px; margin-top:var(--hdr-h,160px); }
.single-hero .single-title {
  max-width:860px; margin:0 auto;
  font-family:'Noto Serif JP',serif; font-size:1.8rem; font-weight:600;
  color:var(--green-dark); line-height:1.5;
}
.single-hero .post-meta { max-width:860px; margin:16px auto 0; font-size:.875rem; color:#888; }
.single-content { max-width:860px; margin:0 auto; padding:60px 40px 100px; line-height:2; color:#333; }

.archive-header { background:var(--green-pale); padding:80px 40px 48px; text-align:center; margin-top:var(--hdr-h,160px); }
.archive-title { font-family:'Noto Serif JP',serif; font-size:2rem; font-weight:600; color:var(--green-dark); }
.archive-grid { max-width:1100px; margin:60px auto; padding:0 40px; display:grid; grid-template-columns:repeat(3,1fr); gap:32px; }


/* ==========================================================================
   Responsive
   ========================================================================== */
@media(max-width:768px){
  /* ヘッダー：スマホ */
  .header-inner { height:64px; padding:0 16px; }
  .site-header.scrolled .header-inner{ height:56px; }
  .primary-nav { display:none; }
  .nav-toggle { display:flex; }
  .logo-text-en { display:none; }
  .logo-text-ja { font-size:13px; }
  .logo-mark { width:40px !important; height:40px !important; }
  .logo-mark-inner{ font-size:20px; }
  /* ページ余白調整 */
  .hero-v2 { margin-top:64px; }
  .hero-v2-content { padding:40px 20px; }
  .hero-v2-content h1 { font-size:28px; }
  .hero-v2-btns { flex-direction:column; }
  .topics-inner { grid-template-columns:1fr; gap:32px; }
  .about-v2-grid { grid-template-columns:1fr; }
  .farmers-deck { grid-template-columns:1fr; }
  .ebino-grid { grid-template-columns:1fr; gap:48px; }
  .watashi-cards { grid-template-columns:1fr; gap:16px; }
  .wa-photo-grid { grid-template-columns:1fr; }
  .wa-photo-card { height:240px; }
  .access-v2-grid { grid-template-columns:1fr; }
  .map-box { position:static; }
  .archive-grid { grid-template-columns:1fr; }
  /* フッター：スマホではサイトメニュー・下部リンクを非表示 */
  .footer-sitenav { display:none; }
  .footer-grid { grid-template-columns:1fr !important; }
  .footer-bottom-links { display:none !important; }
  .page-hero, .page-content, .single-hero, .single-content { padding-left:20px; padding-right:20px; }
  .contact-cta-section { background-attachment:scroll; }
}
/* タブレット */
@media(min-width:769px) and (max-width:1024px){
  .header-inner { height:auto; padding:0 20px; }
  .site-header.scrolled .header-inner{ height:auto; }
  .primary-nav a{ padding:4px 10px; font-size:13px; letter-spacing:.09em; }
  .site-header.scrolled .primary-nav a{ font-size:11px; letter-spacing:.07em; }
  .header-contact{ font-size:13px !important; padding:4px 10px !important; }
  .site-header.scrolled .header-contact{ font-size:11px !important; }
  .logo-text-ja{ font-size:13px; }
  .logo-mark{ width:42px; height:42px; }
}


/* ==========================================================================
   Inner Page: Common Components (pg-) ― 各内部ページ共通
   ========================================================================== */

/* ── Page Hero ── */
.pg-hero {
  position: relative;
  min-height: 500px;
  margin-top: 108px;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}

.pg-hero-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transform: scale(1.05);
  animation: pgHeroZoom 12s ease forwards;
  z-index: 0;
}
@keyframes pgHeroZoom {
  to { transform: scale(1); }
}

.pg-hero-bg:not([style*="url("]) {
  background: linear-gradient(160deg, #0d2010 0%, #2d5a27 50%, #3a7030 100%);
}

.pg-hero-content {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 860px;
  margin: 0 auto;
  padding: 72px 40px 80px;
  color: #fff;
}

.pg-hero-en {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .30em;
  text-transform: uppercase;
  color: rgba(255,255,255,.7);
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 20px;
}
.pg-hero-en::before {
  content: '';
  display: inline-block;
  width: 32px;
  height: 1.5px;
  background: rgba(255,255,255,.5);
  flex-shrink: 0;
}

.pg-hero-title {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(26px, 4vw, 48px);
  font-weight: 600;
  color: #fff;
  line-height: 1.5;
  text-shadow: 0 2px 24px rgba(0,0,0,.45);
  letter-spacing: .06em;
  margin-bottom: 20px;
}

.pg-hero-line {
  width: 40px;
  height: 3px;
  background: #b8e878;
  border-radius: 2px;
  margin-bottom: 20px;
}

.pg-hero-desc {
  font-size: .95rem;
  color: rgba(255,255,255,.82);
  line-height: 1.85;
  max-width: 560px;
}

/* ── Breadcrumb ── */
.pg-breadcrumb-wrap {
  background: #f2f6ee;
  border-bottom: 1px solid #d8eacf;
  padding: 11px 0;
  font-size: 12px;
  color: var(--text-light);
}
.pg-breadcrumb-wrap a { color: var(--green-mid); text-decoration: none; }
.pg-breadcrumb-wrap a:hover { text-decoration: underline; }

/* ── Container & Body ── */
.pg-container {
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 40px;
}

.pg-page-body {
  padding-top: 72px;
  padding-bottom: 100px;
  background: #fafdf8;
}

/* ── Section ── */
.pg-section { margin-bottom: 88px; }
.pg-section-head { margin-bottom: 40px; text-align: center; }

.pg-section-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--green-mid);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-bottom: 12px;
}
.pg-section-label::before {
  content: '';
  width: 28px;
  height: 2px;
  background: var(--green-light);
  display: inline-block;
  flex-shrink: 0;
}

.pg-section-title {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(22px, 3vw, 32px);
  font-weight: 600;
  color: var(--text-dark);
  line-height: 1.45;
}

/* ── section-label / section-title / section-desc (汎用見出しセット) ── */
.section-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--green-mid, #4a8c3f);
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}
.section-label::before {
  content: '';
  width: 28px;
  height: 2px;
  background: var(--green-light, #7ab648);
  display: inline-block;
  flex-shrink: 0;
}
.section-title {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(22px, 3vw, 32px);
  font-weight: 600;
  color: var(--text-dark, #1e2d1a);
  line-height: 1.45;
}
.section-desc {
  font-size: .95rem;
  color: var(--text-mid, #4a5a44);
  line-height: 1.9;
  max-width: 620px;
  margin-top: 14px;
}


/* ==========================================================================
   Page About: えびのについて (ab-) ― about ページ固有
   ========================================================================== */

.ab-two-col {
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 48px;
  align-items: start;
}

.ab-body-text {
  font-size: 15px;
  color: var(--text-mid);
  line-height: 2;
  margin-bottom: 1.2em;
}

.ab-fact-box {
  background: var(--green-pale, #eef6e8);
  border: 1px solid var(--border, #d8e8d0);
  border-radius: 18px;
  padding: 24px 22px;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.ab-fact-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 11px 0;
  border-bottom: 1px solid var(--border, #d8e8d0);
  gap: 12px;
}
.ab-fact-item:last-child { border-bottom: none; }

.ab-fact-label {
  font-size: 13px;
  color: var(--text-mid);
  font-weight: 500;
}

.ab-fact-value {
  font-size: 14px;
  font-weight: 700;
  color: var(--green-dark, #2d5a27);
  font-family: 'Noto Serif JP', serif;
  text-align: right;
}

.ab-photo-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 80px;
}

.ab-strip-item {
  position: relative;
  border-radius: 14px;
  overflow: hidden;
  aspect-ratio: 3/4;
  cursor: pointer;
  background: linear-gradient(135deg, #a5d6a7, #4a8c3f);
}

.ab-strip-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .5s ease;
}
.ab-strip-item:hover img { transform: scale(1.07); }

.ab-strip-cap {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  background: linear-gradient(to top, rgba(10,25,8,.78), transparent);
  color: #fff;
  font-size: 12px;
  padding: 22px 12px 10px;
  letter-spacing: .06em;
}

.ab-three-col {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.ab-nature-card {
  background: #fff;
  border: 1px solid var(--border, #d8e8d0);
  border-radius: 20px;
  padding: 36px 28px;
  text-align: center;
  box-shadow: var(--sh-sm, 0 2px 10px rgba(45,90,39,.08));
  transition: transform .3s, box-shadow .3s, border-color .3s;
}
.ab-nature-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--sh, 0 4px 24px rgba(45,90,39,.12));
  border-color: var(--green-light, #7ab648);
}

.ab-nature-icon {
  font-size: 38px;
  margin-bottom: 18px;
  display: block;
}

.ab-nature-card h3 {
  font-family: 'Noto Serif JP', serif;
  font-size: 1.1rem;
  color: var(--green-dark, #2d5a27);
  margin-bottom: 12px;
  font-weight: 600;
}

.ab-nature-card p {
  font-size: 14px;
  color: var(--text-mid, #4a5a44);
  line-height: 1.85;
}

.ab-timeline-wrap {
  background: var(--green-pale, #eef6e8);
  border-radius: 20px;
  padding: 44px 56px 52px;
}

.ab-timeline {
  position: relative;
  margin-top: 4px;
}
.ab-timeline::before {
  content: '';
  position: absolute;
  left: 94px;
  top: 8px;
  bottom: 8px;
  width: 2px;
  background: linear-gradient(to bottom, var(--green-light, #7ab648), rgba(122,182,72,.1));
}

.ab-tl-item {
  display: flex;
  align-items: flex-start;
  margin-bottom: 28px;
  position: relative;
}
.ab-tl-item:last-child { margin-bottom: 0; }

.ab-tl-year {
  width: 94px;
  font-size: 13px;
  font-weight: 700;
  color: var(--green-dark, #2d5a27);
  padding-top: 2px;
  flex-shrink: 0;
  font-family: 'Noto Serif JP', serif;
}

.ab-tl-dot {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--green-dark, #2d5a27);
  border: 3px solid #b8e878;
  flex-shrink: 0;
  margin: 3px 20px 0 -7px;
  position: relative;
  z-index: 1;
}

.ab-tl-text {
  flex: 1;
  font-size: 14px;
  color: var(--text-mid, #4a5a44);
  line-height: 1.9;
  padding: 2px 0;
}

.ab-cta-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 80px;
  padding-bottom: 20px;
}

.ab-cta-card {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 24px 22px;
  background: #fff;
  border: 1px solid var(--border, #d8e8d0);
  border-radius: 16px;
  box-shadow: var(--sh-sm, 0 2px 10px rgba(45,90,39,.08));
  transition: transform .25s, box-shadow .25s, border-color .25s;
  text-decoration: none;
  color: inherit;
}
.ab-cta-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--sh, 0 4px 24px rgba(45,90,39,.12));
  border-color: var(--green-light, #7ab648);
}

.ab-cta-icon {
  font-size: 26px;
  flex-shrink: 0;
  width: 52px;
  height: 52px;
  background: var(--green-pale, #eef6e8);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.ab-cta-text { flex: 1; }

.ab-cta-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--green-dark, #2d5a27);
  margin-bottom: 4px;
}

.ab-cta-desc {
  font-size: 12px;
  color: var(--text-light, #7a8a74);
  line-height: 1.5;
}

.ab-cta-arrow {
  font-size: 18px;
  color: var(--green-mid, #4a8c3f);
  transition: transform .25s;
  flex-shrink: 0;
}
.ab-cta-card:hover .ab-cta-arrow { transform: translateX(5px); }


/* ==========================================================================
   Inner Pages: Responsive
   ========================================================================== */
@media (max-width: 768px) {
  .pg-hero { min-height: 320px; margin-top: 72px; }
  .pg-hero-content { padding: 48px 20px; }
  .pg-container { padding: 0 20px; }
  .pg-page-body { padding-top: 48px; padding-bottom: 60px; }

  .ab-two-col { grid-template-columns: 1fr; }
  .ab-photo-strip { grid-template-columns: repeat(2, 1fr); }
  .ab-three-col { grid-template-columns: 1fr; }
  .ab-timeline-wrap { padding: 32px 20px 36px; }
  .ab-timeline::before { left: 72px; }
  .ab-tl-year { width: 72px; }
  .ab-cta-row { grid-template-columns: 1fr; }
}


/* ==========================================================================
   Page About: わたしたちの想い (mis-) ― about ページ固有
   ========================================================================== */

/* ── キャッチコピー ── */
.mis-catch {
  text-align: center;
  padding: 0 0 64px;
}
.mis-catch-inner {
  background: linear-gradient(160deg, #f4f9f0 0%, #eef6e8 100%);
  border: 1px solid var(--border, #d8e8d0);
  border-radius: 24px;
  padding: 56px 48px;
  position: relative;
  overflow: hidden;
}
.mis-catch-inner::before {
  content: '';
  position: absolute;
  top: -40px; left: -40px;
  width: 160px; height: 160px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(122,182,72,.12), transparent 70%);
}
.mis-catch-deco {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  margin-bottom: 28px;
}
.mis-catch-deco-line {
  width: 60px; height: 1px;
  background: var(--green-light, #7ab648);
  display: inline-block;
}
.mis-catch-deco-leaf {
  font-size: 20px;
  display: inline-block;
}
.mis-catch-main {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(18px, 2.8vw, 28px);
  font-weight: 600;
  color: var(--green-dark, #2d5a27);
  line-height: 1.65;
  letter-spacing: .06em;
  margin-bottom: 16px;
}
.mis-catch-sub {
  font-size: clamp(14px, 1.8vw, 18px);
  color: var(--text-mid, #4a5a44);
  letter-spacing: .1em;
  font-style: italic;
}

/* ── ストーリー（2カラム） ── */
.mis-story-grid {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 56px;
  align-items: center;
}
.mis-story-text { }
.mis-img-card {
  position: relative;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: var(--sh, 0 4px 24px rgba(45,90,39,.12));
  background: linear-gradient(135deg, #2d5a27, #4a8c3f);
}
.mis-img-card img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .5s ease;
}
.mis-img-card:hover img { transform: scale(1.05); }
.mis-img-caption {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  background: linear-gradient(to top, rgba(10,25,8,.78), transparent);
  color: rgba(255,255,255,.9);
  font-size: 12px;
  padding: 22px 14px 12px;
  letter-spacing: .06em;
}

/* ── 和・輪・環 セクション ── */
.mis-wawakan-section {
  background: var(--green-dark, #2d5a27);
  border-radius: 28px;
  padding: 64px 56px;
  margin-bottom: 80px;
  position: relative;
  overflow: hidden;
}
.mis-wawakan-section::before {
  content: '';
  position: absolute;
  top: -60px; right: -60px;
  width: 280px; height: 280px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(184,232,120,.1), transparent 70%);
}
.mis-wawakan-head {
  margin-bottom: 48px;
  position: relative; z-index: 1;
}
.mis-wawakan-section .pg-section-label {
  color: #b8e878;
}
.mis-wawakan-section .pg-section-label::before {
  background: #b8e878;
}
.mis-wawakan-section .pg-section-title {
  color: #fff;
}
.mis-wawakan-lead {
  font-size: 15px;
  color: rgba(255,255,255,.72);
  margin-top: 12px;
  letter-spacing: .04em;
}
.mis-wawakan-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  position: relative; z-index: 1;
}
.mis-ww-card {
  border-radius: 20px;
  overflow: hidden;
  cursor: default;
}
.mis-ww-card-inner {
  position: relative;
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 20px;
  padding: 40px 28px 36px;
  transition: background .3s, transform .3s, box-shadow .3s;
  height: 100%;
}
.mis-ww-card:hover .mis-ww-card-inner {
  background: rgba(255,255,255,.13);
  transform: translateY(-5px);
  box-shadow: 0 16px 48px rgba(0,0,0,.3);
}
.mis-ww-kanji {
  font-family: 'Noto Serif JP', serif;
  font-size: 4rem;
  color: #b8e878;
  line-height: 1;
  margin-bottom: 6px;
  letter-spacing: -.02em;
}
.mis-ww-read {
  font-size: 13px;
  color: rgba(255,255,255,.55);
  letter-spacing: .12em;
  margin-bottom: 10px;
}
.mis-ww-subtitle {
  font-size: 15px;
  font-weight: 700;
  color: #fff;
  margin-bottom: 14px;
  letter-spacing: .04em;
}
.mis-ww-divider {
  width: 32px; height: 2px;
  background: #b8e878;
  border-radius: 1px;
  margin-bottom: 16px;
}
.mis-ww-text {
  font-size: 13.5px;
  color: rgba(255,255,255,.78);
  line-height: 1.9;
}

/* ── 4つの実践目標 ── */
.mis-mission-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  border: 1px solid var(--border, #d8e8d0);
  border-radius: 20px;
  overflow: hidden;
}
.mis-mission-item {
  display: flex;
  align-items: flex-start;
  gap: 28px;
  padding: 32px 36px;
  border-bottom: 1px solid var(--border, #d8e8d0);
  transition: background .2s;
}
.mis-mission-item:last-child { border-bottom: none; }
.mis-mission-item:hover { background: var(--green-pale, #eef6e8); }
.mis-mission-num {
  font-family: 'Noto Serif JP', serif;
  font-size: 2.2rem;
  font-weight: 700;
  color: var(--green-light, #7ab648);
  line-height: 1;
  min-width: 52px;
  padding-top: 2px;
  letter-spacing: -.02em;
}
.mis-mission-title {
  font-family: 'Noto Serif JP', serif;
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--green-dark, #2d5a27);
  margin-bottom: 10px;
  line-height: 1.5;
}
.mis-mission-text {
  font-size: 14px;
  color: var(--text-mid, #4a5a44);
  line-height: 1.9;
}

/* ── ビジョン引用 ── */
.mis-vision-block {
  margin-bottom: 80px;
}
.mis-vision-inner {
  background: var(--green-pale, #eef6e8);
  border-left: 5px solid var(--green-dark, #2d5a27);
  border-radius: 0 20px 20px 0;
  padding: 44px 48px;
  text-align: center;
}
.mis-vision-icon {
  font-size: 28px;
  margin-bottom: 20px;
  display: block;
}
.mis-vision-quote {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(16px, 2.2vw, 22px);
  font-weight: 600;
  color: var(--green-dark, #2d5a27);
  line-height: 2;
  letter-spacing: .06em;
  font-style: normal;
  margin-bottom: 16px;
}
.mis-vision-cite {
  font-size: 13px;
  color: var(--text-light, #7a8a74);
  letter-spacing: .06em;
}

/* ── 課題グリッド ── */
.mis-challenge-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.mis-challenge-card {
  background: #fff;
  border: 1px solid var(--border, #d8e8d0);
  border-radius: 20px;
  padding: 36px 24px;
  text-align: center;
  box-shadow: var(--sh-sm, 0 2px 10px rgba(45,90,39,.08));
  transition: transform .3s, box-shadow .3s, border-color .3s;
}
.mis-challenge-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--sh, 0 4px 24px rgba(45,90,39,.12));
  border-color: var(--green-light, #7ab648);
}
.mis-challenge-icon {
  font-size: 36px;
  margin-bottom: 16px;
  display: block;
}
.mis-challenge-card h3 {
  font-family: 'Noto Serif JP', serif;
  font-size: 1rem;
  color: var(--green-dark, #2d5a27);
  margin-bottom: 12px;
  font-weight: 600;
}
.mis-challenge-card p {
  font-size: 13.5px;
  color: var(--text-mid, #4a5a44);
  line-height: 1.85;
}

/* ── レスポンシブ ── */
@media (max-width: 768px) {
  .mis-catch-inner { padding: 36px 24px; }
  .mis-story-grid { grid-template-columns: 1fr; gap: 32px; }
  .mis-story-img { order: -1; }
  .mis-img-card { aspect-ratio: 16/9; }
  .mis-wawakan-section { padding: 40px 24px; border-radius: 20px; }
  .mis-wawakan-grid { grid-template-columns: 1fr; }
  .mis-mission-item { padding: 24px 20px; gap: 16px; }
  .mis-vision-inner { padding: 32px 24px; }
  .mis-challenge-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   org-* ? 有機農業とは（page-organic.php）
   ============================================================ */

/* ── イントロ 2カラム ── */
.org-intro-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: center;
  margin-top: 40px;
}
.org-intro-text {
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.org-intro-img .mis-img-card {
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 8px 32px rgba(45,90,39,.14);
}
.org-intro-img .mis-img-card img {
  width: 100%;
  height: 340px;
  object-fit: cover;
  display: block;
}

/* ── 定義セクション ── */
.org-def-section {
  background: linear-gradient(145deg, #1e3a1a 0%, #2d5a27 60%, #3a7030 100%);
  border-radius: 28px;
  padding: 56px 48px;
  margin: 64px 0;
  color: #fff;
}
.org-def-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(255,255,255,.55);
  margin-bottom: 8px;
}
.org-def-title {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(1.35rem, 2.4vw, 1.75rem);
  font-weight: 700;
  color: #fff;
  margin-bottom: 36px;
}
.org-def-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.org-def-card {
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 18px;
  padding: 32px 24px;
  transition: background .3s, transform .3s;
}
.org-def-card:hover {
  background: rgba(255,255,255,.14);
  transform: translateY(-4px);
}
.org-def-icon {
  font-size: 34px;
  margin-bottom: 14px;
  display: block;
}
.org-def-card h3 {
  font-family: 'Noto Serif JP', serif;
  font-size: 1rem;
  font-weight: 700;
  color: #fff;
  margin-bottom: 12px;
}
.org-def-card p {
  font-size: 13.5px;
  color: rgba(255,255,255,.80);
  line-height: 1.85;
}

/* ── 循環型農業フロー ── */
.org-cycle-flow {
  display: flex;
  align-items: flex-start;
  gap: 0;
  margin-top: 40px;
  flex-wrap: nowrap;
}
.org-cycle-step {
  flex: 1;
  background: #fff;
  border: 2px solid var(--border, #d8e8d0);
  border-radius: 18px;
  padding: 28px 10px;
  text-align: center;
  transition: transform .3s, box-shadow .3s, border-color .3s;
  box-shadow: 0 2px 12px rgba(45,90,39,.07);
	    min-height: 260px;
	
}
.org-cycle-step:hover {
  transform: translateY(-5px);
  box-shadow: 0 6px 28px rgba(45,90,39,.13);
  border-color: var(--green-mid, #4a8c3f);
}
.org-cycle-icon {
  font-size: 34px;
  margin-bottom: 10px;
  display: block;
}
.org-cycle-label {
  font-family: 'Noto Serif JP', serif;
  font-size: .95rem;
  font-weight: 700;
  color: var(--green-dark, #2d5a27);
  margin-bottom: 10px;
}
.org-cycle-step p {
  font-size: 12.5px;
  color: var(--text-mid, #4a5a44);
  line-height: 1.8;
}
.org-cycle-arrow {
  font-size: 24px;
  color: var(--green-mid, #4a8c3f);
  padding: 0 10px;
  flex-shrink: 0;
  align-self: center;
  font-weight: 700;
}
.org-cycle-note {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  background: var(--green-pale, #eef6e8);
  border-left: 4px solid var(--green-mid, #4a8c3f);
  border-radius: 0 14px 14px 0;
  padding: 20px 24px;
  margin-top: 36px;
  font-size: 14px;
  color: var(--text-dark, #1e2d1a);
  line-height: 1.85;
}
.org-cycle-note-icon {
  font-size: 20px;
  flex-shrink: 0;
  margin-top: 2px;
}

/* ── 生物多様性カードグリッド ── */
.org-bio-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
  margin-top: 40px;
}
.org-bio-card {
  background: #fff;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 3px 16px rgba(45,90,39,.09);
  border: 1px solid var(--border, #d8e8d0);
  transition: transform .3s, box-shadow .3s;
}
.org-bio-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 32px rgba(45,90,39,.14);
}
.org-bio-img {
  width: 100%;
  height: 200px;
  overflow: hidden;
  position: relative;
}
.org-bio-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .4s;
}
.org-bio-card:hover .org-bio-img img {
  transform: scale(1.05);
}
.org-bio-body {
  padding: 24px 22px;
}
.org-bio-body h3 {
  font-family: 'Noto Serif JP', serif;
  font-size: 1rem;
  font-weight: 700;
  color: var(--green-dark, #2d5a27);
  margin-bottom: 10px;
}
.org-bio-body p {
  font-size: 13.5px;
  color: var(--text-mid, #4a5a44);
  line-height: 1.85;
}

/* ── SDGs セクション ── */
.org-sdgs-section {
  background: var(--green-pale, #eef6e8);
  border-radius: 28px;
  padding: 56px 48px;
  margin: 64px 0;
}
.org-sdgs-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.org-sdgs-card {
  background: #fff;
  border-radius: 18px;
  padding: 32px 26px;
  border: 1px solid var(--border, #d8e8d0);
  box-shadow: 0 2px 12px rgba(45,90,39,.07);
  transition: transform .3s, box-shadow .3s;
}
.org-sdgs-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 6px 24px rgba(45,90,39,.12);
}
.org-sdgs-num {
  font-size: 2.2rem;
  font-weight: 900;
  color: var(--green-light, #7ab648);
  line-height: 1;
  margin-bottom: 14px;
  font-family: 'Montserrat', sans-serif;
  letter-spacing: -.02em;
  opacity: .7;
}
.org-sdgs-card h3 {
  font-family: 'Noto Serif JP', serif;
  font-size: 1rem;
  font-weight: 700;
  color: var(--green-dark, #2d5a27);
  margin-bottom: 12px;
}
.org-sdgs-card p {
  font-size: 13.5px;
  color: var(--text-mid, #4a5a44);
  line-height: 1.85;
}

/* ── org-* レスポンシブ ── */
@media (max-width: 768px) {
  .org-intro-grid { grid-template-columns: 1fr; gap: 32px; }
  .org-intro-img { order: -1; }
  .org-def-section { padding: 36px 24px; border-radius: 20px; }
  .org-def-grid { grid-template-columns: 1fr; gap: 18px; }
  .org-cycle-flow {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }
  .org-cycle-arrow {
    display: block;
    text-align: center;
    padding: 4px 0;
    transform: rotate(90deg);
    font-size: 20px;
  }
  .org-bio-grid { grid-template-columns: 1fr; gap: 20px; }
  .org-sdgs-section { padding: 36px 24px; border-radius: 20px; }
  .org-sdgs-grid { grid-template-columns: 1fr; gap: 18px; }
}

/* ============================================================
   pro-* ? 生産者紹介シングル（farmer.php / producers CPT）
   ============================================================ */

/* ── プロフィールバナー ── */
.pro-profile-band {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 40px;
  align-items: center;
  background: #fff;
  border: 1.5px solid var(--border, #d8e8d0);
  border-radius: 24px;
  padding: 36px 40px;
  box-shadow: 0 6px 32px rgba(45,90,39,.11), 0 1px 4px rgba(0,0,0,.04);
  margin-bottom: 16px;
}
.pro-profile-photo {
  width: 200px;
  height: 200px;
  border-radius: 50%;
  overflow: hidden;
  border: 4px solid var(--green-light, #7ab648);
  box-shadow: 0 4px 20px rgba(45,90,39,.15);
  flex-shrink: 0;
}
.pro-profile-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.pro-photo-fallback {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--green-pale, #eef6e8);
  font-size: 64px;
}
.pro-profile-meta {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.pro-farm-name {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(1.4rem, 2.8vw, 2rem);
  font-weight: 700;
  color: var(--green-dark, #2d5a27);
  line-height: 1.3;
}
.pro-farm-reading {
  font-size: 13px;
  color: var(--text-mid, #4a5a44);
  letter-spacing: .08em;
  margin-top: -6px;
}
.pro-farm-area {
  font-size: 14px;
  color: var(--text-mid, #4a5a44);
  display: flex;
  align-items: center;
  gap: 6px;
}
.pro-area-icon { font-size: 16px; }
.pro-cert-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 4px;
}
.pro-badge {
  display: inline-flex;
  align-items: center;
  background: var(--green-pale, #eef6e8);
  border: 1px solid var(--green-mid, #4a8c3f);
  color: var(--green-dark, #2d5a27);
  font-size: 11.5px;
  font-weight: 600;
  padding: 4px 12px;
  border-radius: 20px;
  letter-spacing: .04em;
}
.pro-catch {
  font-family: 'Noto Serif JP', serif;
  font-size: 1.05rem;
  color: var(--green-dark, #2d5a27);
  font-style: italic;
  border-left: 3px solid var(--green-light, #7ab648);
  padding-left: 16px;
  margin-top: 4px;
  line-height: 1.7;
}

/* ── 想い・こだわりブロック ── */
.pro-story-block {
  display: flex;
  gap: 28px;
  align-items: flex-start;
  background: linear-gradient(135deg, #eef6e8 0%, #f5faf0 100%);
  border-radius: 20px;
  padding: 40px 44px;
  border: 1px solid rgba(122,182,72,.2);
}
.pro-story-icon {
  font-size: 42px;
  flex-shrink: 0;
  line-height: 1;
  margin-top: 4px;
}
.pro-story-text {
  flex: 1;
  font-size: 15px;
  color: var(--text-dark, #1e2d1a);
  line-height: 1.9;
}
.pro-story-text p { margin-bottom: 1em; }
.pro-story-text p:last-child { margin-bottom: 0; }

/* ── 土づくりセクション ── */
.pro-soil-section {
  background: linear-gradient(145deg, #1e3a1a 0%, #2d5a27 60%, #3a7030 100%);
  border-radius: 28px;
  padding: 48px 44px;
  color: #fff;
}
.pro-soil-cycle {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  margin-bottom: 32px;
  flex-wrap: nowrap;
}
.pro-soil-step {
  flex: 1;
  max-width: 160px;
  text-align: center;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 16px;
  padding: 20px 12px;
  transition: background .3s;
}
.pro-soil-step:hover { background: rgba(255,255,255,.17); }
.pro-soil-icon {
  font-size: 30px;
  display: block;
  margin-bottom: 8px;
}
.pro-soil-label {
  font-size: 12.5px;
  font-weight: 600;
  color: rgba(255,255,255,.90);
  line-height: 1.4;
}
.pro-soil-arrow {
  font-size: 22px;
  color: var(--green-light, #7ab648);
  padding: 0 10px;
  flex-shrink: 0;
  font-weight: 700;
}
.pro-soil-text {
  font-size: 14.5px;
  color: rgba(255,255,255,.88);
  line-height: 1.9;
}
.pro-soil-text p { margin-bottom: 1em; }
.pro-soil-text p:last-child { margin-bottom: 0; }

/* ── 生物多様性グリッド ── */
.pro-eco-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
}
.pro-eco-text {
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.pro-eco-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--green-pale, #eef6e8);
  border: 1px solid var(--green-mid, #4a8c3f);
  border-radius: 20px;
  padding: 8px 18px;
  font-size: 13px;
  font-weight: 600;
  color: var(--green-dark, #2d5a27);
  width: fit-content;
}
.pro-eco-text p {
  font-size: 15px;
  color: var(--text-dark, #1e2d1a);
  line-height: 1.9;
}
.pro-eco-photo .mis-img-card,
.pro-eco-photo-fallback {
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 8px 32px rgba(45,90,39,.14);
}
.pro-eco-photo img,
.pro-eco-photo-fallback img {
  width: 100%;
  height: 300px;
  object-fit: cover;
  display: block;
}

/* ── 農産物データグリッド ── */
.pro-data-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 36px;
}
.pro-data-card {
  background: #fff;
  border: 1px solid var(--border, #d8e8d0);
  border-radius: 20px;
  padding: 28px 24px;
  box-shadow: 0 2px 12px rgba(45,90,39,.07);
  transition: transform .3s, box-shadow .3s, border-color .3s;
}
.pro-data-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 32px rgba(45,90,39,.14);
  border-color: var(--green-mid, #4a8c3f);
}
.pro-data-icon {
  font-size: 34px;
  display: block;
  margin-bottom: 12px;
}
.pro-data-label {
  font-family: 'Noto Serif JP', serif;
  font-size: .95rem;
  font-weight: 700;
  color: var(--green-dark, #2d5a27);
  margin-bottom: 14px;
}
.pro-data-body {
  font-size: 14px;
  color: var(--text-mid, #4a5a44);
  line-height: 1.85;
}
.pro-data-body p { margin: 0; }
.pro-crop-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.pro-crop-tag {
  background: var(--green-pale, #eef6e8);
  border: 1px solid var(--green-light, #7ab648);
  color: var(--green-dark, #2d5a27);
  font-size: 12.5px;
  font-weight: 600;
  padding: 4px 12px;
  border-radius: 14px;
}
.pro-cert-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.pro-cert-list li {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 13.5px;
  line-height: 1.6;
}
.pro-cert-list li::before {
  content: '\2713';
  color: var(--green-mid, #4a8c3f);
  font-weight: 700;
  flex-shrink: 0;
  margin-top: 1px;
}

/* ── フォトギャラリー ── */
.pro-gallery {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-top: 36px;
}
.pro-gallery-item {
  border-radius: 14px;
  overflow: hidden;
  aspect-ratio: 1 / 1;
  box-shadow: 0 3px 14px rgba(45,90,39,.10);
  transition: transform .3s, box-shadow .3s;
}
.pro-gallery-item:hover {
  transform: scale(1.03);
  box-shadow: 0 7px 24px rgba(45,90,39,.18);
}
.pro-gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* ── つながりセクション（濃緑背景） ── */
.pro-connect-section {
  background: linear-gradient(160deg, #1e3a1a 0%, #2d5a27 55%, #3a7030 100%);
  border-radius: 28px;
  padding: 56px 48px;
  margin: 64px 0;
}
.pro-connect-title {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(1.25rem, 2.2vw, 1.6rem);
  font-weight: 700;
  color: #fff;
  margin-bottom: 32px;
}
.pro-connect-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
}
.pro-connect-card {
  background: rgba(255,255,255,.09);
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 20px;
  padding: 32px 28px;
  transition: background .3s;
}
.pro-connect-card:hover { background: rgba(255,255,255,.14); }
.pro-connect-icon {
  font-size: 32px;
  display: block;
  margin-bottom: 12px;
}
.pro-connect-card h3 {
  font-family: 'Noto Serif JP', serif;
  font-size: 1rem;
  font-weight: 700;
  color: #fff;
  margin-bottom: 14px;
}
.pro-connect-card p,
.pro-connect-card li {
  font-size: 14px;
  color: rgba(255,255,255,.85);
  line-height: 1.85;
}
.pro-quote {
  border-left: 3px solid var(--green-light, #7ab648);
  padding-left: 18px;
  margin: 0;
  font-style: italic;
}
.pro-quote p {
  font-size: 14.5px;
  color: rgba(255,255,255,.90);
  line-height: 1.9;
}

/* ── pro-* レスポンシブ ── */
@media (max-width: 768px) {
  .pro-profile-band { grid-template-columns: 1fr; gap: 24px; text-align: center; padding: 28px 24px; }
  .pro-profile-photo { width: 140px; height: 140px; margin: 0 auto; }
  .pro-cert-badges { justify-content: center; }
  .pro-catch { text-align: left; }
  .pro-story-block { flex-direction: column; padding: 28px 24px; gap: 18px; }
  .pro-soil-section { padding: 36px 24px; border-radius: 20px; }
  .pro-soil-cycle { flex-wrap: wrap; gap: 8px; justify-content: center; }
  .pro-soil-arrow { padding: 0 4px; font-size: 18px; }
  .pro-eco-grid { grid-template-columns: 1fr; gap: 32px; }
  .pro-eco-photo { order: -1; }
  .pro-data-grid { grid-template-columns: 1fr; gap: 18px; }
  .pro-gallery { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .pro-connect-section { padding: 36px 24px; border-radius: 20px; }
  .pro-connect-grid { grid-template-columns: 1fr; gap: 20px; }
}

/* ============================================================
   farmer-* 生産者紹介一覧（page-farmer.php）
   ============================================================ */

/* ── ラッパー ── */
.farmer-wrap {
  background: #f5f7f2;
  padding: 64px 60px 100px;
}
.farmer-wrap-inner {
  max-width: 1200px;
  margin: 0 auto;
}

/* ── セクションヘッダー ── */
.farmer-section-head {
  text-align: center;
  margin-bottom: 56px;
}
.farmer-section-title {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(22px, 3vw, 34px);
  font-weight: 600;
  color: var(--text-dark, #1e2d1a);
  letter-spacing: .06em;
  margin-bottom: 16px;
}
.farmer-section-desc {
  font-size: .95rem;
  color: var(--text-mid, #4a5a44);
  line-height: 1.85;
}

/* ── 3列グリッド ── */
.farmer-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
  margin-bottom: 72px;
}

/* ── カード ── */
.farmer-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 22px;
  overflow: hidden;
  text-decoration: none;
  box-shadow: 0 2px 18px rgba(45,90,39,.08), 0 1px 4px rgba(0,0,0,.04);
  transition: transform .32s cubic-bezier(.22,.61,.36,1), box-shadow .32s;
}
.farmer-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 20px 52px rgba(45,90,39,.15), 0 4px 14px rgba(0,0,0,.06);
}

/* ── サムネイル（正方形） ── */
.farmer-thumb {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--green-pale, #eef6e8);
  flex-shrink: 0;
}
.farmer-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .5s cubic-bezier(.22,.61,.36,1);
}
.farmer-card:hover .farmer-thumb img { transform: scale(1.07); }
.farmer-thumb::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(10,28,8,0);
  transition: background .32s;
}
.farmer-card:hover .farmer-thumb::after { background: rgba(10,28,8,.08); }

.farmer-thumb-fallback {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 64px;
  background: var(--green-pale, #eef6e8);
}

/* 農業歴バッジ */
.farmer-years-badge {
  position: absolute;
  top: 12px;
  right: 12px;
  background: rgba(20,48,18,.78);
  color: #b8e878;
  font-size: .68rem;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 20px;
  letter-spacing: .06em;
  backdrop-filter: blur(4px);
  z-index: 1;
}

/* ── テキストエリア ── */
.farmer-body {
  padding: 22px 24px 26px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1;
}

/* 名前 */
.farmer-name {
  font-family: 'Noto Serif JP', serif;
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--text-dark, #1e2d1a);
  line-height: 1.4;
  margin: 0;
}

/* エリア */
.farmer-area {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: .78rem;
  color: var(--text-light, #7a8a74);
  font-weight: 600;
  letter-spacing: .04em;
}
.farmer-area-icon { font-size: .9em; }

/* 作物タグ */
.farmer-crops {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.farmer-crop-tag {
  display: inline-block;
  background: var(--green-pale, #eef6e8);
  border: 1px solid var(--green-light, #7ab648);
  color: var(--green-dark, #2d5a27);
  font-size: .68rem;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 14px;
  letter-spacing: .04em;
}

/* キャッチ / エクサープト */
.farmer-catch,
.farmer-excerpt {
  font-size: .83rem;
  color: var(--text-mid, #4a5a44);
  line-height: 1.8;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin: 0;
}
.farmer-products-text {
  font-size: .8rem;
  color: var(--text-mid, #4a5a44);
  line-height: 1.65;
}

/* 詳しく見るリンク */
.farmer-more {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: .76rem;
  font-weight: 700;
  color: var(--green-mid, #4a8c3f);
  margin-top: auto;
  padding-top: 4px;
  letter-spacing: .06em;
  transition: gap .25s, color .2s;
}
.farmer-card:hover .farmer-more {
  gap: 10px;
  color: var(--green-dark, #2d5a27);
}

/* ── CTAカード行 ── */
.farmer-cta-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 0;
}
.farmer-cta-card {
  display: flex;
  align-items: center;
  gap: 16px;
  background: #fff;
  border: 1.5px solid var(--border, #d8e8d0);
  border-radius: 18px;
  padding: 22px 24px;
  text-decoration: none;
  transition: border-color .25s, box-shadow .25s, transform .25s;
}
.farmer-cta-card:hover {
  border-color: var(--green-mid, #4a8c3f);
  box-shadow: 0 8px 28px rgba(45,90,39,.12);
  transform: translateY(-3px);
}
.farmer-cta-icon { font-size: 28px; flex-shrink: 0; line-height: 1; }
.farmer-cta-text { flex: 1; }
.farmer-cta-title {
  font-family: 'Noto Serif JP', serif;
  font-size: .9rem;
  font-weight: 700;
  color: var(--text-dark, #1e2d1a);
  margin-bottom: 4px;
}
.farmer-cta-desc {
  font-size: .76rem;
  color: var(--text-light, #7a8a74);
  line-height: 1.55;
}
.farmer-cta-arrow {
  font-size: 1.1rem;
  color: var(--green-mid, #4a8c3f);
  font-weight: 700;
  flex-shrink: 0;
  transition: transform .25s;
}
.farmer-cta-card:hover .farmer-cta-arrow { transform: translateX(4px); }

/* ── レスポンシブ ── */
@media (max-width: 1200px) {
  .farmer-wrap { padding: 56px 40px 80px; }
}
@media (max-width: 1024px) {
  .farmer-grid { grid-template-columns: repeat(2, 1fr); gap: 22px; }
  .farmer-cta-row { grid-template-columns: 1fr; gap: 14px; }
}
@media (max-width: 768px) {
  .farmer-wrap { padding: 40px 20px 72px; }
  .farmer-grid { grid-template-columns: 1fr; gap: 18px; }
  .farmer-cta-card { padding: 18px 20px; }
}


/* ============================================================
   act-* ? わたしたちの活動（page-activities.php）
   ============================================================ */

/* ── 共通 ── */
.act-page-body { background: #f5f7f2; }

.act-section { padding: 80px 0; }

.act-container {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 40px;
}

.act-section-head {
  text-align: center;
  margin-bottom: 56px;
}
.act-en-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--green-mid, #4a8c3f);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-bottom: 14px;
}
.act-en-label::before,
.act-en-label::after {
  content: '';
  display: inline-block;
  width: 28px;
  height: 1.5px;
  background: currentColor;
  opacity: .6;
}
.act-section-title {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(22px, 3vw, 34px);
  font-weight: 600;
  color: var(--text-dark, #1e2d1a);
  letter-spacing: .05em;
  line-height: 1.5;
  margin-bottom: 16px;
}
.act-section-desc {
  font-size: .95rem;
  color: var(--text-mid, #4a5a44);
  line-height: 1.9;
  max-width: 640px;
  margin: 0 auto;
}


/* ================================================================
   SECTION 1: 推進体制
   ================================================================ */
.act-org-section { background: #fff; }

.act-org-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  align-items: start;
}

/* 共通カードベース */
.act-org-info-card,
.act-members-card {
  background: #fafdf8;
  border: 1.5px solid var(--border, #d8e8d0);
  border-radius: 22px;
  padding: 36px 36px;
  box-shadow: 0 4px 24px rgba(45,90,39,.07);
  height: 100%;
}

.act-org-badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--green-dark, #2d5a27);
  background: var(--green-pale, #eef6e8);
  border: 1px solid var(--green-light, #7ab648);
  padding: 5px 14px;
  border-radius: 20px;
  margin-bottom: 20px;
}
.act-org-badge--green { }

.act-org-name {
  font-family: 'Noto Serif JP', serif;
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--green-dark, #2d5a27);
  line-height: 1.55;
  margin-bottom: 14px;
}
.act-org-date {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: .85rem;
  color: var(--text-mid, #4a5a44);
  font-weight: 600;
  margin-bottom: 8px;
}
.act-org-date-icon { font-size: 1em; }
.act-org-divider {
  height: 1px;
  background: var(--border, #d8e8d0);
  margin: 18px 0;
}
.act-org-milestone {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 18px;
}
.act-org-milestone-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--green-mid, #4a8c3f);
  flex-shrink: 0;
  margin-top: 5px;
}
.act-org-milestone-label {
  display: block;
  font-size: .88rem;
  font-weight: 700;
  color: var(--text-dark, #1e2d1a);
  margin-bottom: 3px;
}
.act-org-milestone-date {
  display: block;
  font-size: .78rem;
  color: var(--text-light, #7a8a74);
  font-weight: 600;
}
.act-org-role {
  font-size: .88rem;
  color: var(--text-mid, #4a5a44);
  line-height: 1.8;
  margin: 0;
  padding-top: 4px;
}

/* 構成メンバーカード */
.act-members-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin: 4px 0 20px;
}
.act-member-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  background: #fff;
  border: 1px solid var(--border, #d8e8d0);
  border-radius: 14px;
  padding: 16px 10px;
  text-align: center;
  transition: border-color .2s, box-shadow .2s;
}
.act-member-item:hover {
  border-color: var(--green-mid, #4a8c3f);
  box-shadow: 0 4px 14px rgba(45,90,39,.10);
}
.act-member-icon { font-size: 26px; line-height: 1; }
.act-member-name { font-size: .78rem; font-weight: 700; color: var(--text-dark, #1e2d1a); }
.act-members-note {
  font-size: .83rem;
  color: var(--text-mid, #4a5a44);
  line-height: 1.8;
  margin: 0;
  border-top: 1px solid var(--border, #d8e8d0);
  padding-top: 18px;
}


/* ================================================================
   SECTION 2: 活動の柱
   ================================================================ */
.act-pillars-section { background: #f5f7f2; }

/* ステップバー */
.act-steps-bar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  margin-bottom: 48px;
  background: #fff;
  border: 1.5px solid var(--border, #d8e8d0);
  border-radius: 16px;
  padding: 20px 32px;
}
.act-step-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 0 24px;
}
.act-step-num {
  font-size: .7rem;
  font-weight: 800;
  color: var(--text-light, #7a8a74);
  letter-spacing: .12em;
}
.act-step-item--active .act-step-num { color: var(--green-mid, #4a8c3f); }
.act-step-label {
  font-size: .85rem;
  font-weight: 700;
  color: var(--text-mid, #4a5a44);
}
.act-step-item--active .act-step-label { color: var(--text-dark, #1e2d1a); }
.act-step-arrow {
  font-size: 1.1rem;
  color: var(--border, #d8e8d0);
  flex-shrink: 0;
}

/* 3柱グリッド */
.act-pillars-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.act-pillar-card {
  background: #fff;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 3px 18px rgba(45,90,39,.08);
  transition: transform .3s, box-shadow .3s;
  display: flex;
  flex-direction: column;
}
.act-pillar-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 14px 40px rgba(45,90,39,.14);
}

.act-pillar-header {
  padding: 28px 28px 22px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  position: relative;
  overflow: hidden;
}
.act-pillar-header--production {
  background: linear-gradient(135deg, #2d5a27 0%, #4a8c3f 100%);
}
.act-pillar-header--distribution {
  background: linear-gradient(135deg, #1a4a7a 0%, #2e6db4 100%);
}
.act-pillar-header--consumption {
  background: linear-gradient(135deg, #7a4010 0%, #c2610c 100%);
}
.act-pillar-header::after {
  content: '';
  position: absolute;
  right: -20px;
  bottom: -20px;
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: rgba(255,255,255,.08);
  pointer-events: none;
}
.act-pillar-num {
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .2em;
  color: rgba(255,255,255,.65);
}
.act-pillar-icon { font-size: 32px; line-height: 1; }
.act-pillar-title {
  font-family: 'Noto Serif JP', serif;
  font-size: 1rem;
  font-weight: 700;
  color: #fff;
  line-height: 1.5;
  margin: 0;
}

.act-pillar-list {
  list-style: none;
  padding: 24px 24px 28px;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 18px;
  flex: 1;
}
.act-pillar-item {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  font-size: .875rem;
  color: var(--text-mid, #4a5a44);
  line-height: 1.75;
}
.act-pillar-item strong {
  display: block;
  font-size: .88rem;
  color: var(--text-dark, #1e2d1a);
  margin-bottom: 3px;
}
.act-pillar-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--green-mid, #4a8c3f);
  flex-shrink: 0;
  margin-top: 6px;
}
.act-pillar-dot--dist { background: #2e6db4; }
.act-pillar-dot--cons { background: #c2610c; }


/* ================================================================
   SECTION 3: 循環型農業
   ================================================================ */
.act-cycle-section {
  background: linear-gradient(160deg, #0d2010 0%, #1e3a1a 40%, #2d5a27 75%, #3a7030 100%);
  padding: 88px 0;
}

.act-cycle-flow {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  flex-wrap: nowrap;
  margin-bottom: 32px;
}

.act-cycle-node {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  background: rgba(255,255,255,.10);
  border: 1.5px solid rgba(255,255,255,.20);
  border-radius: 20px;
  padding: 24px 20px;
  min-width: 130px;
  text-align: center;
  transition: background .3s, transform .3s;
  cursor: default;
}
.act-cycle-node:hover {
  background: rgba(255,255,255,.18);
  transform: translateY(-4px);
}
.act-cycle-node--livestock { border-color: rgba(184,232,120,.35); }
.act-cycle-node--compost   { border-color: rgba(122,182,72,.4); }
.act-cycle-node--soil      { border-color: rgba(74,140,63,.5); }
.act-cycle-node--product   { border-color: rgba(184,232,120,.5); }

.act-cycle-node-icon { font-size: 36px; line-height: 1; }
.act-cycle-node-label {
  font-family: 'Noto Serif JP', serif;
  font-size: .95rem;
  font-weight: 700;
  color: #fff;
}
.act-cycle-node-sub {
  font-size: .72rem;
  color: rgba(255,255,255,.65);
  font-weight: 500;
}

.act-cycle-arrow-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 0 10px;
  flex-shrink: 0;
}
.act-cycle-arrow-line {
  width: 40px;
  height: 2px;
  background: linear-gradient(90deg, rgba(122,182,72,.4), rgba(184,232,120,.8));
  position: relative;
}
.act-cycle-arrow-line::after {
  content: '▶';
  position: absolute;
  right: -6px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 10px;
  color: rgba(184,232,120,.8);
  line-height: 1;
}
.act-cycle-arrow-label {
  font-size: .65rem;
  color: rgba(255,255,255,.55);
  font-weight: 600;
  white-space: nowrap;
  letter-spacing: .04em;
}

.act-cycle-caption {
  text-align: center;
  font-size: .88rem;
  color: rgba(255,255,255,.75);
  line-height: 1.8;
  max-width: 680px;
  margin: 0 auto;
  padding: 18px 24px;
  background: rgba(255,255,255,.06);
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.12);
}


/* ================================================================
   SECTION 4: 目標数値
   ================================================================ */
.act-goals-section { background: #fff; }

.act-goals-grid {
  display: grid;
  grid-template-columns: 1fr 1.2fr 1fr;
  gap: 24px;
  align-items: center;
}

.act-goal-card {
  background: #fafdf8;
  border: 1.5px solid var(--border, #d8e8d0);
  border-radius: 22px;
  padding: 36px 28px;
  text-align: center;
  box-shadow: 0 4px 20px rgba(45,90,39,.07);
  transition: transform .3s, box-shadow .3s, border-color .3s;
}
.act-goal-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 12px 36px rgba(45,90,39,.13);
  border-color: var(--green-mid, #4a8c3f);
}
.act-goal-card--center {
  background: linear-gradient(145deg, #1e3a1a, #2d5a27);
  border-color: transparent;
  color: #fff;
  padding: 44px 32px;
}
.act-goal-card--center:hover { border-color: transparent; }

.act-goal-icon { font-size: 36px; margin-bottom: 12px; line-height: 1; }
.act-goal-label {
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--text-light, #7a8a74);
  margin-bottom: 12px;
}
.act-goal-value {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(2.5rem, 5vw, 3.5rem);
  font-weight: 700;
  color: var(--green-dark, #2d5a27);
  line-height: 1;
  margin-bottom: 10px;
}
.act-goal-unit { font-size: .55em; font-weight: 600; margin-left: 3px; }
.act-goal-detail {
  font-size: .76rem;
  color: var(--text-light, #7a8a74);
  margin-bottom: 6px;
}
.act-goal-sub-value {
  font-family: 'Noto Serif JP', serif;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--green-mid, #4a8c3f);
}
.act-goal-unit-sm { font-size: .65em; font-weight: 600; }

/* 中央カード */
.act-goal-year-badge {
  display: inline-block;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .12em;
  color: rgba(255,255,255,.65);
  border: 1px solid rgba(255,255,255,.25);
  padding: 4px 14px;
  border-radius: 20px;
  margin-bottom: 18px;
}
.act-goal-year {
  font-family: 'Noto Serif JP', serif;
  font-size: 1.5rem;
  font-weight: 700;
  color: #fff;
  margin-bottom: 4px;
}
.act-goal-year-sub {
  font-size: .85rem;
  color: rgba(255,255,255,.7);
  margin-bottom: 20px;
}
.act-goal-year-line {
  width: 32px;
  height: 2px;
  background: #b8e878;
  border-radius: 1px;
  margin: 0 auto 20px;
}
.act-goal-year-note {
  font-size: .82rem;
  color: rgba(255,255,255,.75);
  line-height: 1.8;
  margin: 0;
}


/* ================================================================
   CTA セクション
   ================================================================ */
.act-cta-section { background: #f5f7f2; padding: 80px 0; }

.act-cta-inner {
  background: linear-gradient(145deg, #1e3a1a 0%, #2d5a27 55%, #3a7030 100%);
  border-radius: 28px;
  padding: 64px 56px;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.act-cta-inner::before {
  content: '';
  position: absolute;
  right: -60px;
  bottom: -60px;
  width: 280px;
  height: 280px;
  border-radius: 50%;
  background: rgba(255,255,255,.05);
  pointer-events: none;
}
.act-cta-leaf { font-size: 36px; margin-bottom: 14px; }
.act-cta-title {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(20px, 2.8vw, 30px);
  font-weight: 600;
  color: #fff;
  letter-spacing: .05em;
  margin-bottom: 14px;
}
.act-cta-desc {
  font-size: .95rem;
  color: rgba(255,255,255,.78);
  line-height: 1.8;
  margin-bottom: 36px;
}
.act-cta-btns {
  display: flex;
  gap: 14px;
  justify-content: center;
  flex-wrap: wrap;
}
.act-cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: .88rem;
  font-weight: 700;
  padding: 13px 26px;
  border-radius: 28px;
  text-decoration: none;
  transition: transform .25s, box-shadow .25s;
}
.act-cta-btn:hover { transform: translateY(-3px); box-shadow: 0 8px 24px rgba(0,0,0,.2); }
.act-cta-btn--primary { background: #b8e878; color: #1e2d1a; }
.act-cta-btn--secondary { background: rgba(255,255,255,.15); color: #fff; border: 1.5px solid rgba(255,255,255,.35); }
.act-cta-btn--outline { background: transparent; color: rgba(255,255,255,.85); border: 1.5px solid rgba(255,255,255,.35); }


/* ================================================================
   act-* レスポンシブ
   ================================================================ */
@media (max-width: 1024px) {
  .act-pillars-grid { grid-template-columns: 1fr; gap: 20px; }
  .act-goals-grid { grid-template-columns: 1fr; gap: 18px; }
  .act-goal-card--center { padding: 36px 28px; }
  .act-cycle-flow { flex-wrap: wrap; gap: 20px; justify-content: center; }
  .act-cycle-arrow-wrap { transform: rotate(0); }
}
@media (max-width: 768px) {
  .act-section { padding: 56px 0; }
  .act-container { padding: 0 20px; }
  .act-org-grid { grid-template-columns: 1fr; }
  .act-members-grid { grid-template-columns: repeat(2, 1fr); }
  .act-steps-bar { flex-direction: column; gap: 10px; padding: 20px; }
  .act-step-arrow { transform: rotate(90deg); }
  .act-cycle-section { padding: 56px 0; }
  .act-cycle-flow { gap: 12px; }
  .act-cycle-node { min-width: 100px; padding: 18px 14px; }
  .act-cycle-node-icon { font-size: 28px; }
  .act-cta-inner { padding: 44px 28px; border-radius: 20px; }
  .act-cta-btns { flex-direction: column; align-items: center; }
  .act-cta-btn { width: 100%; justify-content: center; max-width: 300px; }
}


/* ============================================================
   st-* ? 有機農業をはじめませんか（page-start.php）
   ============================================================ */

/* ── キャッチブロック ── */
.st-catch {
  margin: 48px 0 16px;
}
.st-catch-inner {
  background: linear-gradient(145deg, #f0f8ea 0%, #e4f5d8 100%);
  border: 2px solid var(--green-light, #7ab648);
  border-radius: 28px;
  padding: 52px 56px;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.st-catch-inner::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 70% 30%, rgba(122,182,72,.10) 0%, transparent 70%);
  pointer-events: none;
}
.st-catch-leaf {
  font-size: 42px;
  margin-bottom: 16px;
  display: block;
}
.st-catch-head {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(1.3rem, 2.6vw, 1.9rem);
  font-weight: 700;
  color: var(--text-dark, #1e2d1a);
  line-height: 1.55;
  margin-bottom: 20px;
}
.st-catch-em {
  color: var(--green-dark, #2d5a27);
  text-decoration: underline;
  text-decoration-color: var(--green-light, #7ab648);
  text-underline-offset: 5px;
}
.st-catch-body {
  font-size: 15px;
  color: var(--text-mid, #4a5a44);
  line-height: 1.95;
  max-width: 700px;
  margin: 0 auto 28px;
}
.st-catch-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--green-dark, #2d5a27);
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  padding: 14px 36px;
  border-radius: 32px;
  text-decoration: none;
  transition: background .3s, transform .3s, box-shadow .3s;
  box-shadow: 0 4px 18px rgba(45,90,39,.22);
}
.st-catch-btn:hover {
  background: var(--green-mid, #4a8c3f);
  transform: translateY(-2px);
  box-shadow: 0 7px 26px rgba(45,90,39,.28);
}

/* ── えびので始める意義カード ── */
.st-why-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
  margin-top: 40px;
}
.st-why-card {
  background: #fff;
  border: 1px solid var(--border, #d8e8d0);
  border-radius: 22px;
  padding: 32px 28px;
  box-shadow: 0 3px 16px rgba(45,90,39,.07);
  transition: transform .3s, box-shadow .3s, border-color .3s;
  position: relative;
}
.st-why-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 10px 32px rgba(45,90,39,.13);
  border-color: var(--green-mid, #4a8c3f);
}
.st-why-num {
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .14em;
  color: var(--green-light, #7ab648);
  margin-bottom: 8px;
}
.st-why-icon {
  font-size: 38px;
  display: block;
  margin-bottom: 12px;
}
.st-why-card h3 {
  font-family: 'Noto Serif JP', serif;
  font-size: 1rem;
  font-weight: 700;
  color: var(--green-dark, #2d5a27);
  margin-bottom: 14px;
  line-height: 1.5;
}
.st-why-card p {
  font-size: 14px;
  color: var(--text-mid, #4a5a44);
  line-height: 1.9;
}

/* ── ロードマップ（濃緑背景） ── */
.st-roadmap-section {
  background: linear-gradient(145deg, #1e3a1a 0%, #2d5a27 60%, #3a7030 100%);
  border-radius: 28px;
  padding: 56px 48px;
  margin: 64px 0;
}
.st-roadmap-title {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(1.3rem, 2.4vw, 1.75rem);
  font-weight: 700;
  color: #fff;
  margin-bottom: 10px;
}
.st-roadmap-sub {
  font-size: 14px;
  color: rgba(255,255,255,.75);
  margin-bottom: 40px;
}
.st-roadmap-grid {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  flex-wrap: nowrap;
}
.st-roadmap-item {
  flex: 1;
  max-width: 220px;
  text-align: center;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 20px;
  padding: 28px 20px;
  transition: background .3s;
}
.st-roadmap-item:hover { background: rgba(255,255,255,.16); }
.st-rm-icon { font-size: 34px; display: block; margin-bottom: 10px; }
.st-rm-num {
  font-family: 'Montserrat', sans-serif;
  font-size: 2.6rem;
  font-weight: 900;
  color: var(--green-light, #7ab648);
  line-height: 1;
  margin-bottom: 8px;
}
.st-rm-num span {
  font-size: 1rem;
  font-weight: 600;
  margin-left: 4px;
  color: rgba(255,255,255,.80);
}
.st-rm-label {
  font-family: 'Noto Serif JP', serif;
  font-size: .95rem;
  font-weight: 700;
  color: #fff;
  margin-bottom: 8px;
}
.st-rm-note {
  font-size: 12px;
  color: rgba(255,255,255,.65);
}
.st-roadmap-arrow {
  font-size: 24px;
  color: var(--green-light, #7ab648);
  padding: 0 16px;
  flex-shrink: 0;
  font-weight: 700;
}

/* ── 支援体制カード ── */
.st-support-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
  margin-top: 40px;
}
.st-support-card {
  background: #fff;
  border: 1px solid var(--border, #d8e8d0);
  border-radius: 22px;
  padding: 28px 26px;
  box-shadow: 0 3px 14px rgba(45,90,39,.07);
}
.st-sup-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--border, #d8e8d0);
}
.st-sup-icon { font-size: 28px; flex-shrink: 0; }
.st-sup-title {
  font-family: 'Noto Serif JP', serif;
  font-size: 1rem;
  font-weight: 700;
  color: var(--text-dark, #1e2d1a);
  flex: 1;
}
.st-sup-badge {
  background: var(--green-dark, #2d5a27);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 12px;
  flex-shrink: 0;
}
.st-sup-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.st-sup-list li {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-size: 13.5px;
  color: var(--text-mid, #4a5a44);
  line-height: 1.8;
}
.st-sup-check { font-size: 16px; flex-shrink: 0; margin-top: 2px; }
.st-sup-list strong {
  display: block;
  font-size: 13.5px;
  color: var(--green-dark, #2d5a27);
  margin-bottom: 3px;
}

/* ── 資源循環フロー ── */
.st-cycle-wrap { margin-top: 8px; }
.st-cycle-flow {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 0;
  flex-wrap: nowrap;
  margin-bottom: 28px;
}
.st-cycle-step {
  flex: 1;
  max-width: 170px;
  text-align: center;
  background: #fff;
  border: 2px solid var(--border, #d8e8d0);
  border-radius: 18px;
  padding: 22px 14px;
  box-shadow: 0 2px 10px rgba(45,90,39,.07);
  transition: border-color .3s, transform .3s;
}
.st-cycle-step:hover {
  border-color: var(--green-mid, #4a8c3f);
  transform: translateY(-3px);
}
.st-cycle-step-eco {
  background: var(--green-pale, #eef6e8);
  border-color: var(--green-light, #7ab648);
}
.st-cycle-icon { font-size: 30px; display: block; margin-bottom: 8px; }
.st-cycle-label {
  font-family: 'Noto Serif JP', serif;
  font-size: .9rem;
  font-weight: 700;
  color: var(--green-dark, #2d5a27);
  margin-bottom: 6px;
  line-height: 1.4;
}
.st-cycle-note {
  font-size: 11.5px;
  color: var(--text-mid, #4a5a44);
  line-height: 1.6;
}
.st-cycle-arrow {
  font-size: 20px;
  color: var(--green-mid, #4a8c3f);
  padding: 0 8px;
  flex-shrink: 0;
  align-self: center;
  font-weight: 700;
}
.st-cycle-badge {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  background: var(--green-pale, #eef6e8);
  border-left: 4px solid var(--green-mid, #4a8c3f);
  border-radius: 0 14px 14px 0;
  padding: 18px 24px;
  font-size: 14px;
  color: var(--text-dark, #1e2d1a);
  line-height: 1.85;
}
.st-cycle-badge span { font-size: 20px; flex-shrink: 0; margin-top: 1px; }

/* ── ステップガイド ── */
.st-steps-wrap {
  max-width: 720px;
  margin: 40px auto 0;
}
.st-step {
  display: flex;
  gap: 24px;
  align-items: flex-start;
  background: #fff;
  border: 1px solid var(--border, #d8e8d0);
  border-radius: 20px;
  padding: 28px 32px;
  box-shadow: 0 2px 12px rgba(45,90,39,.07);
}
.st-step-num {
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .1em;
  color: rgba(255,255,255,.80);
  background: var(--green-dark, #2d5a27);
  border-radius: 14px;
  padding: 10px 14px;
  text-align: center;
  flex-shrink: 0;
  line-height: 1;
}
.st-step-num span {
  display: block;
  font-size: 1.5rem;
  font-weight: 900;
  color: #fff;
  letter-spacing: -.02em;
  margin-top: 4px;
}
.st-step-body h3 {
  font-family: 'Noto Serif JP', serif;
  font-size: 1rem;
  font-weight: 700;
  color: var(--green-dark, #2d5a27);
  margin-bottom: 10px;
}
.st-step-body p {
  font-size: 14px;
  color: var(--text-mid, #4a5a44);
  line-height: 1.9;
}
.st-step-connector {
  width: 2px;
  height: 28px;
  background: var(--border, #d8e8d0);
  margin: 0 auto;
  position: relative;
}
.st-step-connector::after {
  content: '';
  position: absolute;
  bottom: -6px;
  left: 50%;
  transform: translateX(-50%);
  border: 6px solid transparent;
  border-top-color: var(--green-light, #7ab648);
}

/* ── 先輩の声（濃緑背景） ── */
.st-voice-section {
  background: linear-gradient(155deg, #1e3a1a 0%, #2d5a27 55%, #3a7030 100%);
  border-radius: 28px;
  padding: 56px 48px;
  margin: 64px 0;
}
.st-voice-title {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(1.25rem, 2.2vw, 1.6rem);
  font-weight: 700;
  color: #fff;
  text-align: center;
  margin-bottom: 36px;
}
.st-voice-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}
.st-voice-card {
  background: rgba(255,255,255,.09);
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 20px;
  padding: 32px 28px;
  transition: background .3s;
}
.st-voice-card:hover { background: rgba(255,255,255,.14); }
.st-voice-quote {
  font-size: 48px;
  color: var(--green-light, #7ab648);
  line-height: .8;
  font-family: Georgia, serif;
  margin-bottom: 14px;
  opacity: .7;
}
.st-voice-text {
  font-size: 14.5px;
  color: rgba(255,255,255,.88);
  line-height: 1.95;
  margin-bottom: 18px;
}
.st-voice-name {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--green-light, #7ab648);
  letter-spacing: .06em;
}

/* ── FAQ ── */
.st-faq-list {
  max-width: 780px;
  margin: 36px auto 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.st-faq-item {
  background: #fff;
  border: 1px solid var(--border, #d8e8d0);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(45,90,39,.06);
  transition: border-color .3s;
}
.st-faq-item[open] { border-color: var(--green-mid, #4a8c3f); }
.st-faq-q {
  padding: 18px 24px;
  font-size: 14.5px;
  font-weight: 600;
  color: var(--text-dark, #1e2d1a);
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 10px;
  transition: background .2s;
}
.st-faq-q:hover { background: var(--green-pale, #eef6e8); }
.st-faq-q::after {
  content: '＋';
  margin-left: auto;
  color: var(--green-mid, #4a8c3f);
  font-size: 18px;
  line-height: 1;
  flex-shrink: 0;
  transition: transform .3s;
}
.st-faq-item[open] .st-faq-q::after {
  content: '－';
}
.st-faq-a {
  padding: 0 24px 20px;
  font-size: 14px;
  color: var(--text-mid, #4a5a44);
  line-height: 1.9;
  border-top: 1px solid var(--border, #d8e8d0);
  padding-top: 16px;
}

/* ── お問い合わせ ── */
.st-contact-section {
  background: var(--green-pale, #eef6e8);
  border-radius: 28px;
  padding: 56px 48px;
  margin: 64px 0;
  text-align: center;
}
.st-contact-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--green-mid, #4a8c3f);
  margin-bottom: 12px;
}
.st-contact-title {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(1.3rem, 2.4vw, 1.75rem);
  font-weight: 700;
  color: var(--green-dark, #2d5a27);
  margin-bottom: 16px;
  line-height: 1.55;
}
.st-contact-body {
  font-size: 14.5px;
  color: var(--text-mid, #4a5a44);
  line-height: 1.9;
  margin-bottom: 36px;
}
.st-contact-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  max-width: 860px;
  margin: 0 auto;
}
.st-contact-card {
  background: #fff;
  border: 1px solid var(--border, #d8e8d0);
  border-radius: 18px;
  padding: 28px 22px;
  box-shadow: 0 2px 10px rgba(45,90,39,.07);
}
.st-contact-icon { font-size: 30px; margin-bottom: 10px; display: block; }
.st-contact-method {
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .12em;
  color: var(--green-mid, #4a8c3f);
  margin-bottom: 8px;
}
.st-contact-val {
  font-size: 16px;
  font-weight: 700;
  color: var(--text-dark, #1e2d1a);
  margin-bottom: 8px;
}
.st-contact-note {
  font-size: 12px;
  color: var(--text-light, #7a8a74);
}
.st-contact-btn {
  display: inline-block;
  background: var(--green-dark, #2d5a27);
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  padding: 10px 24px;
  border-radius: 20px;
  text-decoration: none;
  margin: 4px 0 8px;
  transition: background .3s, transform .3s;
}
.st-contact-btn:hover {
  background: var(--green-mid, #4a8c3f);
  transform: translateY(-2px);
}

/* ── st-* レスポンシブ ── */
@media (max-width: 768px) {
  .st-catch-inner { padding: 36px 24px; border-radius: 20px; }
  .st-why-grid { grid-template-columns: 1fr; gap: 18px; }
  .st-roadmap-section { padding: 36px 20px; border-radius: 20px; }
  .st-roadmap-grid { flex-direction: column; align-items: center; gap: 8px; }
  .st-roadmap-item { width: 100%; max-width: 100%; flex: none; padding: 22px 28px; }
  .st-roadmap-arrow { transform: rotate(90deg); padding: 4px 0; }
  .st-support-grid { grid-template-columns: 1fr; gap: 20px; }
  .st-cycle-flow {
    flex-direction: column;
    align-items: center;
    gap: 0;
  }
  .st-cycle-step {
    width: 100%;
    max-width: 320px;
    flex: none;
    padding: 18px 20px;
    border-radius: 14px;
  }
  .st-cycle-step .st-cycle-icon { font-size: 26px; margin-bottom: 6px; }
  .st-cycle-step .st-cycle-label { font-size: .85rem; }
  .st-cycle-arrow {
    transform: rotate(90deg);
    padding: 4px 0;
    font-size: 18px;
  }
  .st-steps-wrap { margin-top: 28px; }
  .st-step { flex-direction: column; gap: 14px; padding: 22px 20px; }
  .st-voice-section { padding: 36px 24px; border-radius: 20px; }
  .st-voice-grid { grid-template-columns: 1fr; gap: 18px; }
  .st-faq-list { margin-top: 24px; }
  .st-contact-section { padding: 36px 24px; border-radius: 20px; }
  .st-contact-grid { grid-template-columns: 1fr; gap: 16px; }
}


/* ==========================================================================
   Contact Page  (/contact/)
   Classes: contact-section / contact-wrap / contact-info / contact-cards /
            contact-card / c-lbl / c-val / c-note / cf7-form-box /
            cf7-form-header / cf7-form-body  +  Contact Form 7 overrides
   ========================================================================== */

/* ── Section wrapper ── */
.contact-section {
  padding: 100px 0 120px;
  background: #fff;
}
.contact-section .container {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 40px;
}

/* ── 2-column grid ── */
.contact-wrap {
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 56px;
  align-items: start;
	    margin-top: 60px;
}

/* ── Left: Contact info ── */
.contact-info { }
.contact-info-desc {
  font-size: .9rem;
  color: #666;
  line-height: 1.85;
  margin: 18px 0 32px;
}

/* カード一覧 */
.contact-cards {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

/* 各カード */
.contact-card {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  background: #fff;
  border: 1.5px solid var(--green-pale, #eef6e8);
  border-radius: 16px;
  padding: 18px 20px;
  text-decoration: none;
  color: inherit;
  transition: box-shadow .25s, border-color .25s, transform .25s;
  box-shadow: 0 2px 10px rgba(45,90,39,.06);
}
a.contact-card:hover {
  border-color: var(--green-mid, #4a8c3f);
  box-shadow: 0 6px 20px rgba(45,90,39,.12);
  transform: translateY(-2px);
}
.contact-card-icon {
  font-size: 26px;
  line-height: 1;
  flex-shrink: 0;
  margin-top: 2px;
}
.c-lbl {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .1em;
  color: var(--green-mid, #4a8c3f);
  text-transform: uppercase;
  margin-bottom: 4px;
}
.c-val {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--text-dark, #1a1a1a);
  line-height: 1.4;
  margin-bottom: 2px;
}
.c-note {
  font-size: .78rem;
  color: #888;
  line-height: 1.5;
}

/* ── Right: Form box ── */
.cf7-form-box {
  background: #fff;
  border: 1.5px solid var(--green-pale, #eef6e8);
  border-radius: 24px;
  box-shadow: 0 4px 32px rgba(45,90,39,.08);
  overflow: hidden;
}

/* フォームヘッダー */
.cf7-form-header {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 24px 32px;
  background: linear-gradient(135deg, var(--green-dark, #2d5a27) 0%, var(--green-mid, #4a8c3f) 100%);
  color: #fff;
}
.cf7-form-header-icon {
  font-size: 28px;
  line-height: 1;
  flex-shrink: 0;
}
.cf7-form-header .title {
  font-family: 'Noto Serif JP', serif;
  font-size: 1.1rem;
  font-weight: 600;
  line-height: 1.3;
}
.cf7-form-header .sub {
  font-size: .78rem;
  opacity: .85;
  margin-top: 2px;
  letter-spacing: .04em;
}

/* フォーム本体 */
.cf7-form-body {
  padding: 36px 32px 40px;
}

/* ── Contact Form 7 overrides ── */

/* CF7 ラッパー */
.wpcf7 { margin: 0; padding: 0; }

/* CF7 の p タグのリセット */
.cf7-form-body .wpcf7 p {
  margin: 0 0 20px;
}
.cf7-form-body .wpcf7 p:last-child { margin-bottom: 0; }

/* ラベル */
.cf7-form-body .wpcf7 label,
.cf7-form-body .wpcf7 .wpcf7-form-control-wrap {
  display: block;
  width: 100%;
}
.cf7-form-body .wpcf7 label {
  font-size: .82rem;
  font-weight: 700;
  color: #444;
  margin-bottom: 6px;
  letter-spacing: .04em;
}

/* 必須マーク */
.cf7-form-body .wpcf7 .req {
  color: var(--green-mid, #4a8c3f);
  font-size: .72rem;
  font-weight: 700;
  margin-left: 4px;
  vertical-align: 1px;
}

/* テキスト / email / tel / number 入力 */
.cf7-form-body .wpcf7 input[type="text"],
.cf7-form-body .wpcf7 input[type="email"],
.cf7-form-body .wpcf7 input[type="tel"],
.cf7-form-body .wpcf7 input[type="number"],
.cf7-form-body .wpcf7 input[type="url"],
.cf7-form-body .wpcf7 select,
.cf7-form-body .wpcf7 textarea {
  display: block;
  width: 100%;
  box-sizing: border-box;
  background: var(--green-pale, #eef6e8);
  border: 1.5px solid transparent;
  border-radius: 10px;
  padding: 12px 16px;
  font-size: .95rem;
  color: #1a1a1a;
  font-family: inherit;
  transition: border-color .2s, background .2s, box-shadow .2s;
  outline: none;
  -webkit-appearance: none;
  appearance: none;
}
.cf7-form-body .wpcf7 input[type="text"]:focus,
.cf7-form-body .wpcf7 input[type="email"]:focus,
.cf7-form-body .wpcf7 input[type="tel"]:focus,
.cf7-form-body .wpcf7 input[type="number"]:focus,
.cf7-form-body .wpcf7 input[type="url"]:focus,
.cf7-form-body .wpcf7 select:focus,
.cf7-form-body .wpcf7 textarea:focus {
  background: #fff;
  border-color: var(--green-mid, #4a8c3f);
  box-shadow: 0 0 0 3px rgba(74,140,63,.15);
}

/* テキストエリア */
.cf7-form-body .wpcf7 textarea {
  resize: vertical;
  min-height: 140px;
  line-height: 1.7;
}

/* セレクト */
.cf7-form-body .wpcf7 select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%234a8c3f' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 40px;
  cursor: pointer;
}

/* チェックボックス / ラジオ 行 */
.cf7-form-body .wpcf7 .wpcf7-checkbox,
.cf7-form-body .wpcf7 .wpcf7-radio {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
}
.cf7-form-body .wpcf7 .wpcf7-list-item {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0;
}
.cf7-form-body .wpcf7 .wpcf7-list-item-label {
  font-size: .88rem;
  color: #333;
  cursor: pointer;
}
.cf7-form-body .wpcf7 input[type="checkbox"],
.cf7-form-body .wpcf7 input[type="radio"] {
  width: 18px;
  height: 18px;
  accent-color: var(--green-mid, #4a8c3f);
  cursor: pointer;
  flex-shrink: 0;
}

/* バリデーションエラー */
.cf7-form-body .wpcf7 .wpcf7-not-valid {
  border-color: #e05252 !important;
  background: #fff5f5 !important;
}
.cf7-form-body .wpcf7 .wpcf7-not-valid-tip {
  display: block;
  font-size: .75rem;
  color: #e05252;
  margin-top: 4px;
}

/* 送信ボタン */
.cf7-form-body .wpcf7 input[type="submit"],
.cf7-form-body .wpcf7 .wpcf7-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  padding: 16px 32px;
  background: linear-gradient(135deg, var(--green-dark, #2d5a27) 0%, var(--green-mid, #4a8c3f) 100%);
  color: #fff;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: .08em;
  border: none;
  border-radius: 50px;
  cursor: pointer;
  transition: opacity .25s, transform .25s, box-shadow .25s;
  box-shadow: 0 4px 16px rgba(45,90,39,.3);
  margin-top: 8px;
}
.cf7-form-body .wpcf7 input[type="submit"]:hover,
.cf7-form-body .wpcf7 .wpcf7-submit:hover {
  opacity: .88;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(45,90,39,.4);
}
.cf7-form-body .wpcf7 input[type="submit"]:active,
.cf7-form-body .wpcf7 .wpcf7-submit:active {
  transform: translateY(0);
}

/* スピナー */
.cf7-form-body .wpcf7 .wpcf7-spinner {
  margin-left: 10px;
}

/* レスポンスメッセージ */
.cf7-form-body .wpcf7 .wpcf7-response-output {
  margin: 16px 0 0;
  padding: 14px 18px;
  border-radius: 10px;
  font-size: .88rem;
  line-height: 1.6;
  border: none;
}
.cf7-form-body .wpcf7-form.sent .wpcf7-response-output {
  background: var(--green-pale, #eef6e8);
  color: var(--green-dark, #2d5a27);
  border: 1.5px solid var(--green-mid, #4a8c3f);
}
.cf7-form-body .wpcf7-form.invalid .wpcf7-response-output,
.cf7-form-body .wpcf7-form.spam .wpcf7-response-output,
.cf7-form-body .wpcf7-form.failed .wpcf7-response-output {
  background: #fff5f5;
  color: #c0392b;
  border: 1.5px solid #e05252;
}

/* フォームの横並び（名前 + ふりがな など） */
.cf7-form-body .wpcf7 .cf7-row-2col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

/* ── CF7 カスタム HTML 構造スタイル ──
   Contact Form 7 のフォーム本文（管理画面で設定するカスタムHTML）に
   対応するクラス。cf7-form-body の中に直接出力される。
   ────────────────────────────────── */

/* 2カラム横並び行 */
.cf7-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 0;
}

/* 1フィールド単位のグループ */
.cf7-form-group {
  margin-bottom: 18px;
}
.cf7-form-group:last-child { margin-bottom: 0; }

/* ラベル ? 入力欄との距離を最小限に */
.cf7-label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: .82rem;
  font-weight: 700;
  color: #444;
  letter-spacing: .04em;
  margin-bottom: 2px;   /* ← 入力欄との距離（ここで調整） */
}

/* 必須マーク → 赤い ※ */
.cf7-required {
  font-size: .8rem;
  font-weight: 700;
  color: #d9222a;
  line-height: 1;
}
.cf7-required::before {
  content: '※';
}
/* テキスト「必須」は非表示（※ に置き換え） */
.cf7-required {
  font-size: 0;           /* テキスト自体を非表示 */
  color: transparent;
}
.cf7-required::before {
  font-size: .82rem;
  color: #d9222a;
}

/* 任意バッジ */
.cf7-optional {
  font-size: .72rem;
  font-weight: 500;
  color: #999;
  background: #f2f2f2;
  border-radius: 4px;
  padding: 1px 6px;
  line-height: 1.5;
}

/* フォーム入力欄（cf7-form-body スコープ外でも効くよう追記） */
.cf7-form-body input[type="text"],
.cf7-form-body input[type="email"],
.cf7-form-body input[type="tel"],
.cf7-form-body input[type="number"],
.cf7-form-body input[type="url"],
.cf7-form-body select,
.cf7-form-body textarea {
  display: block;
  width: 100%;
  box-sizing: border-box;
  background: var(--green-pale, #eef6e8);
  border: 1.5px solid transparent;
  border-radius: 10px;
  padding: 11px 14px;
  font-size: .95rem;
  color: #1a1a1a;
  font-family: inherit;
  transition: border-color .2s, background .2s, box-shadow .2s;
  outline: none;
  -webkit-appearance: none;
  appearance: none;
}
.cf7-form-body input[type="text"]:focus,
.cf7-form-body input[type="email"]:focus,
.cf7-form-body input[type="tel"]:focus,
.cf7-form-body input[type="number"]:focus,
.cf7-form-body input[type="url"]:focus,
.cf7-form-body select:focus,
.cf7-form-body textarea:focus {
  background: #fff;
  border-color: var(--green-mid, #4a8c3f);
  box-shadow: 0 0 0 3px rgba(74,140,63,.15);
}
.cf7-form-body textarea {
  resize: vertical;
  min-height: 130px;
  line-height: 1.7;
}
.cf7-form-body select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%234a8c3f' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 40px;
  cursor: pointer;
}

/* ヒントテキスト */
.cf7-hint {
  font-size: .78rem;
  color: #888;
  margin-top: 5px;
  line-height: 1.5;
}

/* プライバシー同意 */
.cf7-privacy-wrap {
  background: var(--green-pale, #eef6e8);
  border-radius: 12px;
  padding: 14px 20px;
  display: flex;
  justify-content: center;
}
/* label のインラインスタイル（flex-start/gap:12px）を !important で上書き */
.cf7-privacy-wrap label {
  align-items: center !important;
  gap: 8px !important;
  width: auto;
  max-width: 520px;
}
/* ラッパー span を透過させてチェックボックスを直接 flex 子にする */
.cf7-privacy-wrap .wpcf7-form-control-wrap,
.cf7-privacy-wrap .wpcf7-acceptance,
.cf7-privacy-wrap .wpcf7-list-item {
  display: contents;
}
.cf7-privacy-wrap input[type="checkbox"] {
  flex-shrink: 0;
  margin: 0;
  align-self: center;
}
.cf7-privacy-text {
  font-size: .82rem;
  color: #555;
  line-height: 1.7;
}
.cf7-privacy-text a {
  color: var(--green-mid, #4a8c3f);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.cf7-privacy-text a:hover {
  color: var(--green-dark, #2d5a27);
}

/* 送信ボタン（.wpcf7-submit） */
.cf7-form-body .wpcf7-submit,
.cf7-form-body button[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  padding: 16px 32px;
  background: linear-gradient(135deg, var(--green-dark, #2d5a27) 0%, var(--green-mid, #4a8c3f) 100%);
  color: #fff;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: .08em;
  border: none;
  border-radius: 50px;
  cursor: pointer;
  transition: opacity .25s, transform .25s, box-shadow .25s;
  box-shadow: 0 4px 16px rgba(45,90,39,.3);
  margin-top: 4px;
}
.cf7-form-body .wpcf7-submit:hover,
.cf7-form-body button[type="submit"]:hover {
  opacity: .88;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(45,90,39,.4);
}

/* 送信後の注記 */
.cf7-submit-note {
  font-size: .78rem;
  color: #888;
  text-align: center;
  margin-top: 10px;
  line-height: 1.5;
}

/* ── Contact Page Responsive ── */
@media (max-width: 900px) {
  .contact-wrap {
    grid-template-columns: 1fr;
    gap: 40px;
  }
}
@media (max-width: 768px) {
  .contact-section { padding: 60px 0 80px; }
  .contact-section .container { padding: 0 20px; }
  .cf7-form-header { padding: 20px 22px; }
  .cf7-form-body { padding: 24px 20px 28px; }
  .cf7-form-row {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .cf7-form-body .wpcf7 .cf7-row-2col {
    grid-template-columns: 1fr;
    gap: 0;
  }
}


/* ==========================================================================
   Topics Archive & Single  (tp-*)
   CPT: ete_topics  /  Taxonomy: topics_cat
   ========================================================================== */

/* ── カテゴリーバッジ カラー定義 ── */
.tp-cat-news     { background: #dbeafe; color: #1d4ed8; }
.tp-cat-event    { background: #dcfce7; color: #15803d; }
.tp-cat-shokuiku { background: #ffedd5; color: #c2410c; }
.tp-cat-field    { background: #fef3c7; color: #92400e; }
.tp-cat-pr       { background: #ede9fe; color: #6d28d9; }

/* ── フィルタータブのアクティブ色 ── */
.tp-filter-btn.tp-cat-news.is-active     { background: #1d4ed8; color: #fff; border-color: #1d4ed8; }
.tp-filter-btn.tp-cat-event.is-active    { background: #15803d; color: #fff; border-color: #15803d; }
.tp-filter-btn.tp-cat-shokuiku.is-active { background: #c2410c; color: #fff; border-color: #c2410c; }
.tp-filter-btn.tp-cat-field.is-active    { background: #92400e; color: #fff; border-color: #92400e; }
.tp-filter-btn.tp-cat-pr.is-active       { background: #6d28d9; color: #fff; border-color: #6d28d9; }


/* ================================================================
   Archive: フィルタータブ（CSS は保持、PHP 側でサイドバーに移動済み）
   ================================================================ */
.tp-filter-bar {
  background: #fff;
  border-bottom: 1px solid var(--border, #d8e8d0);
  position: sticky;
  top: 108px;
  z-index: 50;
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
}
.tp-filter-inner {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 12px 0;
  overflow-x: auto;
  scrollbar-width: none;
}
.tp-filter-inner::-webkit-scrollbar { display: none; }
.tp-filter-btn {
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  padding: 7px 18px;
  border: 1.5px solid var(--border, #d8e8d0);
  border-radius: 24px;
  font-size: .82rem;
  font-weight: 700;
  color: var(--text-mid, #4a5a44);
  background: #fff;
  text-decoration: none;
  transition: background .2s, color .2s, border-color .2s;
  flex-shrink: 0;
}
.tp-filter-btn:hover {
  background: var(--green-pale, #eef6e8);
  border-color: var(--green-mid, #4a8c3f);
  color: var(--green-dark, #2d5a27);
}
.tp-filter-btn.is-active {
  background: var(--green-dark, #2d5a27);
  color: #fff;
  border-color: var(--green-dark, #2d5a27);
}


/* ================================================================
   Archive: 2カラムレイアウト（左：記事一覧 ／ 右：サイドバー）
   ================================================================ */
.tp-body-wrap {
  background: #f5f7f2;
  padding: 64px 60px 120px;
}
.tp-content-row {
  display: flex;
  align-items: flex-start;
  gap: 48px;
  max-width: 1200px;
  margin: 0 auto;
}

/* 左：メインエリア */
.tp-main { flex: 1 1 0; min-width: 0; }

/* 右：サイドバー */
.tp-sidebar { flex: 0 0 248px; width: 248px; }
.tp-sidebar-widget {
  background: #fff;
  border-radius: 18px;
  padding: 28px 22px;
  box-shadow: 0 4px 24px rgba(45,90,39,.09);
  position: sticky;
  top: 128px;
}
.tp-sidebar-title {
  font-family: 'Noto Serif JP', serif;
  font-size: .8rem;
  font-weight: 700;
  color: var(--green-dark, #2d5a27);
  letter-spacing: .18em;
  text-transform: uppercase;
  padding-bottom: 14px;
  margin-bottom: 12px;
  border-bottom: 2px solid var(--green-pale, #eef6e8);
  display: flex;
  align-items: center;
  gap: 8px;
}
.tp-sidebar-title::before {
  content: '';
  display: inline-block;
  width: 4px;
  height: 14px;
  background: var(--green-mid, #4a8c3f);
  border-radius: 2px;
  flex-shrink: 0;
}

/* カテゴリーリスト */
.tp-cat-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.tp-cat-list-link {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 10px;
  text-decoration: none;
  color: var(--text-mid, #4a5a44);
  font-size: .875rem;
  font-weight: 500;
  transition: background .2s, color .2s, padding-left .2s;
  position: relative;
}
.tp-cat-list-link:hover {
  background: var(--green-pale, #eef6e8);
  color: var(--green-dark, #2d5a27);
  padding-left: 16px;
}
.tp-cat-list-item.is-active .tp-cat-list-link {
  background: var(--green-pale, #eef6e8);
  color: var(--green-dark, #2d5a27);
  font-weight: 700;
  padding-left: 16px;
}
.tp-cat-list-item.is-active .tp-cat-list-link::before {
  content: '';
  position: absolute;
  left: 0;
  top: 20%;
  bottom: 20%;
  width: 3px;
  border-radius: 0 2px 2px 0;
  background: var(--green-mid, #4a8c3f);
}

/* カラードット */
.tp-cat-list-dot {
  display: inline-block;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  flex-shrink: 0;
}
.tp-cat-all                      { background: var(--green-mid, #4a8c3f); }
.tp-cat-news.tp-cat-list-dot     { background: #1d4ed8; }
.tp-cat-event.tp-cat-list-dot    { background: #15803d; }
.tp-cat-shokuiku.tp-cat-list-dot { background: #c2410c; }
.tp-cat-field.tp-cat-list-dot    { background: #92400e; }
.tp-cat-pr.tp-cat-list-dot       { background: #6d28d9; }

.tp-cat-list-name { flex: 1; }
.tp-cat-list-count {
  font-size: .72rem;
  color: var(--text-light, #7a8a74);
  background: var(--green-pale, #eef6e8);
  padding: 1px 8px;
  border-radius: 20px;
  font-weight: 600;
  min-width: 24px;
  text-align: center;
}


/* ================================================================
   Archive: 3列カードグリッド
   ================================================================ */
.tp-grid {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

/* カード */
.tp-card {
  background: #fff;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 2px 16px rgba(45,90,39,.07), 0 1px 4px rgba(0,0,0,.04);
  transition: transform .32s cubic-bezier(.22,.61,.36,1), box-shadow .32s;
  display: flex;
  flex-direction: column;
}
.tp-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 20px 48px rgba(45,90,39,.14), 0 4px 12px rgba(0,0,0,.06);
}

/* サムネイル */
.tp-card-thumb {
  display: block;
  position: relative;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  background: var(--green-pale, #eef6e8);
  flex-shrink: 0;
}
.tp-card-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .5s cubic-bezier(.22,.61,.36,1);
}
.tp-card:hover .tp-card-thumb img { transform: scale(1.07); }
.tp-card-thumb::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(20,48,18,0);
  transition: background .32s;
  z-index: 0;
}
.tp-card:hover .tp-card-thumb::after { background: rgba(20,48,18,.10); }

.tp-card-noimg {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 40px;
  color: var(--text-light, #7a8a74);
  background: var(--green-pale, #eef6e8);
}

/* サムネイル下部カテゴリーカラーバー */
.tp-card-cat-bar {
  display: block;
  height: 4px;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1;
}
.tp-cat-news.tp-card-cat-bar     { background: #1d4ed8; }
.tp-cat-event.tp-card-cat-bar    { background: #15803d; }
.tp-cat-shokuiku.tp-card-cat-bar { background: #c2410c; }
.tp-cat-field.tp-card-cat-bar    { background: #92400e; }
.tp-cat-pr.tp-card-cat-bar       { background: #6d28d9; }

/* テキスト本体 */
.tp-card-body {
  padding: 18px 20px 22px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1;
}
.tp-card-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
}
.tp-card-date {
  font-size: .73rem;
  color: var(--text-light, #7a8a74);
  font-weight: 600;
  letter-spacing: .06em;
}
.tp-card-badge {
  display: inline-block;
  font-size: .68rem;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 20px;
  text-decoration: none;
  line-height: 1.5;
  letter-spacing: .04em;
  transition: opacity .2s, transform .2s;
}
.tp-card-badge:hover { opacity: .8; transform: scale(1.04); }

.tp-card-title {
  font-family: 'Noto Serif JP', serif;
  font-size: .95rem;
  font-weight: 600;
  color: var(--text-dark, #1e2d1a);
  line-height: 1.65;
  margin: 0;
}
.tp-card-title a {
  text-decoration: none;
  color: inherit;
  background-image: linear-gradient(var(--green-mid, #4a8c3f), var(--green-mid, #4a8c3f));
  background-repeat: no-repeat;
  background-size: 0% 1px;
  background-position: left bottom;
  transition: color .25s, background-size .25s;
  padding-bottom: 1px;
}
.tp-card-title a:hover {
  color: var(--green-mid, #4a8c3f);
  background-size: 100% 1px;
}

.tp-card-excerpt {
  font-size: .82rem;
  color: var(--text-mid, #4a5a44);
  line-height: 1.8;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.tp-card-more {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: .75rem;
  font-weight: 700;
  color: var(--green-mid, #4a8c3f);
  text-decoration: none;
  margin-top: auto;
  padding-top: 4px;
  letter-spacing: .06em;
  transition: gap .25s, color .2s;
}
.tp-card:hover .tp-card-more { gap: 10px; color: var(--green-dark, #2d5a27); }

/* 記事なし */
.tp-no-posts {
  padding: 80px 0;
  text-align: center;
  color: var(--text-mid, #4a5a44);
  font-size: .95rem;
}

/* ページネーション */
.tp-pagination {
  margin-top: 64px;
  display: flex;
  justify-content: center;
}
.tp-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  justify-content: center;
}
.tp-pagination .page-numbers a,
.tp-pagination .page-numbers span {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1.5px solid var(--border, #d8e8d0);
  font-size: .88rem;
  font-weight: 600;
  color: var(--text-mid, #4a5a44);
  text-decoration: none;
  transition: all .2s;
  padding: 0 8px;
}
.tp-pagination .page-numbers a:hover {
  background: var(--green-pale, #eef6e8);
  border-color: var(--green-mid, #4a8c3f);
  color: var(--green-dark, #2d5a27);
}
.tp-pagination .page-numbers .current {
  background: var(--green-dark, #2d5a27);
  color: #fff;
  border-color: var(--green-dark, #2d5a27);
}
.tp-pagination .page-numbers .dots { border: none; }


/* ================================================================
   レスポンシブ
   ================================================================ */
@media (max-width: 1200px) {
  .tp-body-wrap { padding: 56px 40px 100px; }
}
@media (max-width: 1024px) {
  .tp-grid { grid-template-columns: repeat(2, 1fr); }
  .tp-sidebar { flex: 0 0 210px; width: 210px; }
}
@media (max-width: 768px) {
  .tp-body-wrap { padding: 40px 20px 80px; }
  .tp-content-row { flex-direction: column; }
  .tp-sidebar { width: 100%; }
  .tp-sidebar-widget { position: static; }
  .tp-cat-list { flex-direction: row; flex-wrap: wrap; gap: 6px; }
  .tp-cat-list-link { padding: 6px 14px; border: 1.5px solid var(--border, #d8e8d0); border-radius: 20px; }
  .tp-cat-list-link:hover,
  .tp-cat-list-item.is-active .tp-cat-list-link { padding-left: 14px; }
  .tp-cat-list-item.is-active .tp-cat-list-link::before { display: none; }
  .tp-cat-list-count { display: none; }
  .tp-grid { grid-template-columns: 1fr; gap: 20px; }
  .page-hero-content { padding: 60px 20px 52px; }
}


/* ================================================================
   Single: 詳細ページ
   ================================================================ */

/* ── ヒーロー：アイキャッチを背景に ── */
.tp-single-hero {
  position: relative;
  min-height: 480px;
  display: flex;
  align-items: flex-end;
  background: linear-gradient(160deg, #0d2010 0%, var(--green-dark, #2d5a27) 60%, var(--green-mid, #4a8c3f) 100%);
  background-size: cover;
  background-position: center;
  margin-top: 108px;
  overflow: hidden;
}
.tp-single-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: inherit;
  background-size: cover;
  background-position: center;
  transform: scale(1.04);
  animation: pageHeroZoom 12s ease forwards;
  z-index: 0;
}
.tp-single-hero-inner {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 860px;
  margin: 0 auto;
  padding: 72px 40px 80px;
}

/* ヒーロー：メタ情報行 */
.tp-single-hero-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 20px;
}
.tp-single-cat-badge {
  display: inline-block;
  font-size: .72rem;
  font-weight: 700;
  padding: 4px 12px;
  border-radius: 20px;
  text-decoration: none;
  letter-spacing: .04em;
  transition: opacity .2s;
}
.tp-single-cat-badge:hover { opacity: .85; }
.tp-single-date {
  font-size: .78rem;
  color: rgba(255,255,255,.8);
  font-weight: 600;
  letter-spacing: .06em;
}
.tp-single-read {
  font-size: .72rem;
  color: rgba(255,255,255,.55);
  font-weight: 500;
  letter-spacing: .04em;
  padding-left: 4px;
  border-left: 1px solid rgba(255,255,255,.25);
}

/* ヒーロー：タイトル */
.tp-single-title {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(22px, 3.5vw, 38px);
  font-weight: 600;
  color: #fff;
  line-height: 1.6;
  letter-spacing: .04em;
  text-shadow: 0 2px 24px rgba(0,0,0,.45);
}


/* ── 記事パネル（ヒーローから浮き上がり） ── */
.tp-single-body {
  background: #f5f7f2;
  padding: 0 40px 100px;
}
.tp-single-panel {
  position: relative;
  z-index: 2;
  max-width: 860px;
  margin: -64px auto 0;
  background: #fff;
  border-radius: 24px;
  box-shadow: 0 8px 48px rgba(20,48,18,.12), 0 2px 12px rgba(0,0,0,.06);
  padding: 56px 64px 48px;
}

/* ── 本文スタイル ── */
.tp-single-content {
  font-size: 1rem;
  line-height: 2;
  color: var(--text-dark, #1e2d1a);
}
.tp-single-content p { margin-bottom: 1.6em; }
.tp-single-content h2 {
  font-family: 'Noto Serif JP', serif;
  font-size: 1.35rem;
  font-weight: 600;
  color: var(--green-dark, #2d5a27);
  padding: 14px 18px;
  margin: 52px 0 22px;
  line-height: 1.55;
  background: var(--green-pale, #eef6e8);
  border-left: 4px solid var(--green-mid, #4a8c3f);
  border-radius: 0 8px 8px 0;
}
.tp-single-content h3 {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--text-dark, #1e2d1a);
  margin: 40px 0 14px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--green-pale, #eef6e8);
  display: flex;
  align-items: center;
  gap: 8px;
}
.tp-single-content h3::before {
  content: '';
  display: inline-block;
  width: 4px;
  height: 16px;
  background: var(--green-mid, #4a8c3f);
  border-radius: 2px;
  flex-shrink: 0;
}
.tp-single-content ul,
.tp-single-content ol {
  padding-left: 1.6em;
  margin-bottom: 1.4em;
}
.tp-single-content li { margin-bottom: .6em; }
.tp-single-content img {
  max-width: 100%;
  height: auto;
  border-radius: 12px;
  margin: 20px 0;
  box-shadow: 0 4px 20px rgba(0,0,0,.08);
}
.tp-single-content figure { margin: 28px 0; }
.tp-single-content figcaption {
  font-size: .8rem;
  color: var(--text-light, #7a8a74);
  text-align: center;
  margin-top: 8px;
}
.tp-single-content blockquote {
  border-left: 4px solid var(--green-mid, #4a8c3f);
  background: var(--green-pale, #eef6e8);
  border-radius: 0 12px 12px 0;
  padding: 18px 24px;
  margin: 28px 0;
  font-style: italic;
  color: var(--text-mid, #4a5a44);
}
.tp-single-content a {
  color: var(--green-mid, #4a8c3f);
  text-decoration: underline;
  text-decoration-color: rgba(74,140,63,.4);
  text-underline-offset: 3px;
  transition: color .2s, text-decoration-color .2s;
}
.tp-single-content a:hover {
  color: var(--green-dark, #2d5a27);
  text-decoration-color: var(--green-dark, #2d5a27);
}


/* ── 記事フッター（タグ ＋ 戻るボタン） ── */
.tp-single-footer {
  margin-top: 48px;
  padding-top: 28px;
  border-top: 1px solid var(--border, #d8e8d0);
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px;
}
.tp-single-cats {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.tp-single-cats-label {
  font-size: .72rem;
  font-weight: 700;
  color: var(--text-light, #7a8a74);
  letter-spacing: .1em;
  text-transform: uppercase;
  margin-right: 4px;
}

/* 戻るボタン */
.tp-single-back-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: .82rem;
  font-weight: 700;
  color: var(--green-dark, #2d5a27);
  text-decoration: none;
  padding: 10px 20px;
  border: 1.5px solid var(--green-mid, #4a8c3f);
  border-radius: 24px;
  transition: background .2s, color .2s, transform .2s;
  white-space: nowrap;
}
.tp-single-back-btn:hover {
  background: var(--green-dark, #2d5a27);
  color: #fff;
  border-color: var(--green-dark, #2d5a27);
  transform: translateX(-2px);
}
.tp-single-back-icon { font-size: 1em; }


/* ── 前後ナビゲーション ── */
.tp-single-nav {
  background: #f0f4ec;
  border-top: 1px solid var(--border, #d8e8d0);
}
.tp-single-nav-inner {
  max-width: 940px;
  margin: 0 auto;
  padding: 40px 40px 56px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: start;
  gap: 20px;
}

.tp-nav-side { display: flex; }
.tp-nav-prev { justify-content: flex-start; }
.tp-nav-next { justify-content: flex-end; }

/* ナビカード */
.tp-nav-card {
  display: flex;
  gap: 14px;
  align-items: center;
  text-decoration: none;
  background: #fff;
  border: 1.5px solid var(--border, #d8e8d0);
  border-radius: 16px;
  padding: 14px 16px;
  max-width: 320px;
  transition: border-color .25s, box-shadow .25s, transform .25s;
}
.tp-nav-card:hover {
  border-color: var(--green-mid, #4a8c3f);
  box-shadow: 0 8px 28px rgba(45,90,39,.12);
  transform: translateY(-3px);
}
.tp-nav-prev .tp-nav-card { flex-direction: row; }
.tp-nav-next .tp-nav-card { flex-direction: row-reverse; }

/* サムネイル */
.tp-nav-thumb {
  width: 68px;
  height: 56px;
  border-radius: 10px;
  background-size: cover;
  background-position: center;
  flex-shrink: 0;
  overflow: hidden;
}

/* テキスト */
.tp-nav-card-body {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.tp-nav-next .tp-nav-card-body { align-items: flex-end; }
.tp-nav-dir {
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .06em;
}
.tp-nav-dir--prev { color: var(--green-mid, #4a8c3f); }
.tp-nav-dir--next { color: var(--green-mid, #4a8c3f); }
.tp-nav-badge {
  display: inline-block;
  font-size: .64rem;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 12px;
  line-height: 1.5;
}
.tp-nav-ttl {
  font-size: .82rem;
  font-weight: 600;
  color: var(--text-dark, #1e2d1a);
  line-height: 1.55;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.tp-nav-next .tp-nav-ttl { text-align: right; }

/* 一覧ボタン */
.tp-nav-index {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  text-decoration: none;
  font-size: .72rem;
  font-weight: 700;
  color: var(--text-mid, #4a5a44);
  padding: 12px 18px;
  border: 1.5px solid var(--border, #d8e8d0);
  border-radius: 50px;
  background: #fff;
  transition: border-color .2s, background .2s, color .2s;
  white-space: nowrap;
  align-self: center;
}
.tp-nav-index:hover {
  border-color: var(--green-mid, #4a8c3f);
  background: var(--green-pale, #eef6e8);
  color: var(--green-dark, #2d5a27);
}
.tp-nav-index-icon { font-size: 20px; line-height: 1; }
.tp-nav-empty { display: block; flex: 1; }


/* ================================================================
   Topics Single レスポンシブ
   ================================================================ */
@media (max-width: 768px) {
  .tp-single-hero { min-height: 360px; }
  .tp-single-hero-inner { padding: 60px 24px 72px; }
  .tp-single-body { padding: 0 16px 72px; }
  .tp-single-panel { margin-top: -48px; padding: 36px 24px 36px; border-radius: 18px; }
  .tp-single-footer { flex-direction: column; align-items: flex-start; }
  .tp-single-nav-inner {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto auto;
    gap: 12px;
    padding: 28px 20px 48px;
  }
  .tp-nav-index {
    grid-column: 1 / -1;
    order: -1;
    flex-direction: row;
    justify-content: center;
    border-radius: 12px;
    padding: 10px 20px;
  }
  .tp-nav-card { max-width: 100%; }
  .tp-nav-next .tp-nav-card { flex-direction: row; }
  .tp-nav-next .tp-nav-card-body { align-items: flex-start; }
  .tp-nav-next .tp-nav-ttl { text-align: left; }
  .tp-nav-empty { display: none; }
  .tp-single-content h2 { font-size: 1.15rem; padding: 12px 14px; }
}
@media (max-width: 480px) {
  .tp-single-panel { padding: 28px 18px 28px; }
  .tp-single-read { display: none; }
}



/* ================================================================
   えびの市について（page-ebino.php）追加スタイル
   ================================================================ */

/* セクションリード文 */
.eb-section-lead{
  text-align:center; color:var(--text-light,#7a8a74);
  font-size:15px; margin-top:12px; line-height:1.8;
}

/* ---- 農と文化グリッド ---- */
.eb-culture-grid{
  display:grid; grid-template-columns:repeat(2,1fr); gap:32px; margin-top:40px;
}
.eb-culture-card{
  display:flex; flex-direction:column; background:#fff; border-radius:12px;
  overflow:hidden; box-shadow:0 2px 20px rgba(0,0,0,.07);
  transition:box-shadow .3s;
}
.eb-culture-card:hover{ box-shadow:0 6px 32px rgba(0,0,0,.12); }
.eb-culture-img{ aspect-ratio:16/9; overflow:hidden; }
.eb-culture-img img{ width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.eb-culture-card:hover .eb-culture-img img{ transform:scale(1.04); }
.eb-culture-body{ padding:28px; flex:1; }
.eb-culture-label{
  display:inline-block; font-size:11px; font-weight:700; letter-spacing:.12em;
  color:var(--green-dark,#2d5a27); background:var(--green-pale,#eef6e8);
  padding:4px 12px; border-radius:99px; margin-bottom:12px;
}
.eb-culture-title{
  font-size:18px; font-weight:700; color:var(--text-dark,#1e2d1a);
  margin-bottom:12px; line-height:1.5;
}
.eb-culture-text{ font-size:14px; line-height:1.9; color:var(--text-mid,#3e4e38); }

/* ---- 観光スポットグリッド ---- */
.eb-spot-grid{
  display:grid; grid-template-columns:repeat(2,1fr); gap:28px; margin-top:40px;
}
.eb-spot-card{
  display:flex; flex-direction:column; background:#fff; border-radius:12px;
  overflow:hidden; box-shadow:0 2px 20px rgba(0,0,0,.07);
  transition:box-shadow .3s;
}
.eb-spot-card:hover{ box-shadow:0 6px 32px rgba(0,0,0,.12); }
.eb-spot-img{ aspect-ratio:4/3; overflow:hidden; }
.eb-spot-img img{ width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.eb-spot-card:hover .eb-spot-img img{ transform:scale(1.04); }
.eb-spot-body{ padding:24px; flex:1; }
.eb-spot-title{
  font-size:17px; font-weight:700; color:var(--text-dark,#1e2d1a); margin-bottom:10px;
}
.eb-spot-text{ font-size:14px; line-height:1.85; color:var(--text-mid,#3e4e38); }
.eb-spot-link-wrap{ text-align:center; margin-top:40px; }

/* 外部リンクボタン */
.eb-ext-btn{
  display:inline-block; padding:14px 36px;
  border:2px solid var(--green-dark,#2d5a27); color:var(--green-dark,#2d5a27);
  text-decoration:none; border-radius:6px;
  font-size:14px; font-weight:600; letter-spacing:.06em;
  transition:background .25s, color .25s;
}
.eb-ext-btn:hover{ background:var(--green-dark,#2d5a27); color:#fff; }

/* ---- 食と観光の連携 ---- */
.eb-food-inner{
  display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center;
}
.eb-food-img{
  border-radius:14px; overflow:hidden; aspect-ratio:4/3;
  box-shadow:0 4px 32px rgba(0,0,0,.1);
}
.eb-food-img img{ width:100%; height:100%; object-fit:cover; }
.eb-link-btn{
  display:inline-block; padding:14px 36px;
  background:var(--green-dark,#2d5a27); color:#fff;
  text-decoration:none; border-radius:6px;
  font-size:14px; font-weight:600; letter-spacing:.06em;
  transition:background .25s;
}
.eb-link-btn:hover{ background:#1e2d1a; }

/* ---- レスポンシブ ---- */
@media(max-width:768px){
  .eb-culture-grid,
  .eb-spot-grid{ grid-template-columns:1fr; }
  .eb-food-inner{ grid-template-columns:1fr; gap:28px; }
  .eb-food-img{ order:0; }
  .eb-food-text{ order:1; }
}

/* ================================================================
   農業の現状セクション（eb-agri）― リスト部分のみ
   ================================================================ */
/* ヘッダーは pg-section-head / pg-section-label / pg-section-title を使用 */

/* 横並びrow */
.eb-agri-rows{ display:flex; flex-direction:column; }
.eb-agri-row{
  display:flex; align-items:flex-start; gap:48px;
  padding:40px 0;
  border-top:1px solid #d8e8ce;
}
.eb-agri-row:last-child{ border-bottom:1px solid #d8e8ce; }

/* 大きな番号 */
.eb-agri-row-num{
  font-family:'Noto Serif JP',serif;
  font-size:3.8rem; font-weight:700; line-height:1;
  color:#cddfc4; letter-spacing:-.02em;
  flex-shrink:0; width:90px; text-align:right;
  user-select:none; padding-top:4px;
}
.eb-agri-row-body{ flex:1; }
.eb-agri-row-top{
  display:flex; align-items:center; gap:14px;
  margin-bottom:12px; flex-wrap:wrap;
}
.eb-agri-row-alt{
  font-size:11px; font-weight:700; letter-spacing:.06em;
  color:#4a7c3f;
  border:1px solid #a8c99a;
  border-radius:20px; padding:3px 12px;
}
.eb-agri-row-title{
  font-family:'Noto Serif JP',serif;
  font-size:1.25rem; font-weight:700; color:#1e2d1a;
  margin:0; letter-spacing:.04em;
}
.eb-agri-row-text{
  font-size:.9rem; line-height:1.95;
  color:#4a5e42; margin:0;
}

/* ================================================================
   CTAリンクセクション（eb-cta-photo）― 写真背景フル幅
   ================================================================ */

.eb-cta-photo{
  position:relative;
  padding:110px 40px;
  text-align:center;
  background-size:cover;
  background-position:center;
  background-attachment:fixed;
  overflow:hidden;
}
.eb-cta-photo::before{
  content:''; position:absolute; inset:0;
  background:linear-gradient(135deg, rgba(30,70,20,.45) 0%, rgba(8,24,6,.25) 100%);
  pointer-events:none;
}
.eb-cta-photo-inner{
  position:relative; z-index:1;
  max-width:1040px; margin:0 auto;
}
.eb-cta-photo-en{
  font-family:'Noto Serif JP',serif;
  font-size:.75rem; letter-spacing:.36em; text-transform:uppercase;
  color:rgba(255,255,255,.55); display:block; margin-bottom:18px;
}
.eb-cta-photo-title{
  font-family:'Noto Serif JP',serif;
  font-size:2.1rem; font-weight:600; color:#fff;
  letter-spacing:.06em; margin:0 0 56px;
}
.eb-cta-photo-links{
  display:grid; grid-template-columns:repeat(3,1fr); gap:20px;
}
.eb-cta-photo-card{
  display:flex; flex-direction:column; align-items:center; gap:10px;
  padding:40px 24px;
  border:1px solid rgba(255,255,255,.25); border-radius:4px;
  text-decoration:none;
  background:rgba(255,255,255,.06);
  backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  transition:background .3s, border-color .3s, transform .3s;
}
.eb-cta-photo-card:hover{
  background:rgba(255,255,255,.14);
  border-color:rgba(255,255,255,.5);
  transform:translateY(-5px);
}
.eb-cta-photo-icon{ font-size:2.2rem; line-height:1; }
.eb-cta-photo-label{
  font-family:'Noto Serif JP',serif;
  font-size:1.05rem; font-weight:700; color:#fff; letter-spacing:.06em;
}
.eb-cta-photo-desc{
  font-size:.82rem; color:rgba(255,255,255,.62); line-height:1.6;
}
.eb-cta-photo-arrow{ font-size:.9rem; color:rgba(255,255,255,.45); margin-top:4px; }

/* デコライン（eb-agri-deco はCTA側でも流用） */
.eb-agri-deco{
  display:flex; align-items:center; justify-content:center;
  gap:18px; margin-bottom:28px;
}
.eb-agri-deco-line{ width:56px; height:1px; background:rgba(255,255,255,.3); }
.eb-agri-deco-dot{ width:5px; height:5px; border-radius:50%; background:rgba(255,255,255,.5); }

/* レスポンシブ */
@media(max-width:768px){
  .eb-agri-row{ flex-direction:column; gap:12px; padding:32px 0; }
  .eb-agri-row-num{ width:auto; text-align:left; font-size:2.4rem; }
  .eb-cta-photo{ padding:80px 24px; background-attachment:scroll; }
  .eb-cta-photo-links{ grid-template-columns:1fr; gap:14px; }
  .eb-cta-photo-title{ font-size:1.6rem; }
}



/* ================================================================
   生産者詳細ページ（farmer.php）スタイル
   ================================================================ */

/* ---- プロフィールカード ---- */
.fp-profile-card{
  display:flex; gap:40px; align-items:flex-start;
  background:#fff; border-radius:16px; padding:36px 40px;
  box-shadow:0 2px 24px rgba(0,0,0,.07); margin-bottom:48px;
}
.fp-profile-photo{
  flex:0 0 160px; width:160px; height:160px; border-radius:50%;
  overflow:hidden; box-shadow:0 4px 20px rgba(0,0,0,.12);
}
.fp-profile-photo img{ width:100%; height:100%; object-fit:cover; }
.fp-profile-info{ flex:1; }
.fp-farming-badge{
  display:inline-block; font-size:11px; font-weight:700; letter-spacing:.1em;
  color:var(--green-dark,#2d5a27); background:var(--green-pale,#eef6e8);
  padding:4px 14px; border-radius:99px; margin-bottom:12px;
}
.fp-farm-title{ font-size:26px; font-weight:700; color:var(--text-dark,#1e2d1a); margin-bottom:4px; }
.fp-farmer-name{ font-size:15px; color:var(--text-mid,#3e4e38); margin-bottom:4px; }
.fp-reading{ font-size:13px; color:var(--text-light,#7a8a74); margin-bottom:8px; }
.fp-area{
  display:flex; align-items:center; gap:4px;
  font-size:13px; color:var(--text-light,#7a8a74); margin-bottom:14px;
}
.fp-area-icon{ font-size:14px; }
.fp-crops,.fp-crops-inline{ display:flex; flex-wrap:wrap; gap:6px; margin-bottom:10px; }
.fp-crop-tag{
  background:var(--green-pale,#eef6e8); color:var(--green-dark,#2d5a27);
  font-size:12px; font-weight:600; padding:4px 12px; border-radius:99px;
}
.fp-certs{ display:flex; flex-wrap:wrap; gap:6px; }
.fp-cert-badge{
  font-size:12px; color:var(--text-mid,#3e4e38);
  background:#f5f5f0; padding:4px 12px; border-radius:6px;
}

/* ---- 想いブロック ---- */
.fp-story-block{
  position:relative; padding:40px 48px;
  background:var(--green-pale,#eef6e8);
  border-radius:16px; border-left:4px solid var(--green-dark,#2d5a27);
}
.fp-story-quote{
  position:absolute; top:20px; left:24px;
  font-size:80px; color:var(--green-dark,#2d5a27); opacity:.15;
  font-family:Georgia,serif; line-height:1; pointer-events:none;
}
.fp-story-text{
  position:relative; font-size:16px; line-height:2; color:var(--text-dark,#1e2d1a);
}
.fp-story-text p{ margin-bottom:1.2em; }

/* ---- 農園データグリッド ---- */
.fp-data-grid{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
  gap:16px; margin-top:32px;
}
.fp-data-item{
  background:#fff; border-radius:12px; padding:24px 28px;
  box-shadow:0 2px 16px rgba(0,0,0,.06);
  border-top:3px solid var(--green-dark,#2d5a27);
}
.fp-data-label{
  font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  color:var(--green-dark,#2d5a27); margin-bottom:10px;
}
.fp-data-value{ font-size:15px; color:var(--text-dark,#1e2d1a); line-height:1.7; }

/* ---- 複数枚カルーセル ---- */
.fp-multi-wrap{
  position:relative; padding:0 56px;
}
.fp-multi-carousel{ overflow:hidden; border-radius:12px; }
.fp-multi-track{
  display:flex;
  transition:transform .42s cubic-bezier(.4,0,.2,1);
}
.fp-multi-slide{
  flex-shrink:0; border-radius:10px; overflow:hidden;
  aspect-ratio:4/3;
}
.fp-multi-img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .35s;
}
.fp-multi-slide:hover .fp-multi-img{ transform:scale(1.03); }
.fp-multi-btn{
  position:absolute; top:50%; transform:translateY(-50%);
  background:#fff; border:none; box-shadow:0 2px 12px rgba(0,0,0,.14);
  color:var(--green-dark,#2d5a27); font-size:32px;
  width:44px; height:44px; border-radius:50%;
  cursor:pointer; z-index:10; transition:all .2s;
  display:flex; align-items:center; justify-content:center;
}
.fp-multi-btn:hover{ background:var(--green-dark,#2d5a27); color:#fff; box-shadow:0 4px 20px rgba(0,0,0,.2); }
.fp-multi-prev{ left:4px; }
.fp-multi-next{ right:4px; }

/* ---- SNSボタン（円形・パステル） ---- */
.fp-sns-row{
  display:flex; flex-wrap:wrap; gap:24px; margin-top:32px;
}
.fp-sns-btn{
  display:flex; flex-direction:column; align-items:center; gap:8px;
  text-decoration:none; transition:transform .2s;
}
.fp-sns-btn:hover{ transform:translateY(-5px); }
.fp-sns-circle{
  width:64px; height:64px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:26px; font-weight:700; transition:box-shadow .2s;
}
.fp-sns-btn:hover .fp-sns-circle{ box-shadow:0 6px 20px rgba(0,0,0,.15); }
.fp-sns-label{
  font-size:11px; font-weight:600; color:var(--text-light,#7a8a74);
  letter-spacing:.04em;
}
/* 各プラットフォームのカラー */
.fp-sns-web  .fp-sns-circle{ background:#e8f5e9; color:#2d5a27; }
.fp-sns-shop .fp-sns-circle{ background:#fff3e0; color:#e65100; }
.fp-sns-ig   .fp-sns-circle{ background:#fce4ec; color:#c2185b; }
.fp-sns-yt   .fp-sns-circle{ background:#ffebee; color:#d32f2f; }
.fp-sns-fb   .fp-sns-circle{ background:#e3f2fd; color:#1565c0; font-size:22px; letter-spacing:0; }
.fp-sns-tw   .fp-sns-circle{ background:#f3f3f3; color:#111; font-size:18px; }

/* ---- レスポンシブ ---- */
@media(max-width:768px){
  .fp-profile-card{ flex-direction:column; align-items:center; padding:28px 20px; text-align:center; gap:24px; }
  .fp-profile-photo{ flex:0 0 120px; width:120px; height:120px; }
  .fp-farm-title{ font-size:22px; }
  .fp-crops,.fp-certs{ justify-content:center; }
  .fp-story-block{ padding:28px 24px; }
  .fp-story-quote{ font-size:56px; }
  .fp-data-grid{ grid-template-columns:1fr; }
  .fp-multi-wrap{ padding:0 44px; }
  .fp-multi-btn{ width:36px; height:36px; font-size:24px; }
  .fp-sns-row{ gap:16px; }
  .fp-sns-circle{ width:54px; height:54px; font-size:22px; }
}

/* ================================================================
   生産者詳細 v2 (fp2-*)
   ================================================================ */

/* ---- 明朝体フォント ---- */
.fp2-mincho{
  font-family:'Hiragino Mincho ProN','Yu Mincho','游明朝',
              'ヒラギノ明朝 ProN','Noto Serif JP',Georgia,serif;
}

/* ---- ヒーロー：明るめオーバーレイ ---- */
.fp2-hero .pg-hero-title{
  text-shadow:0 2px 12px rgba(0,0,0,.45);
}
.fp2-hero .pg-hero-desc{
  text-shadow:0 1px 8px rgba(0,0,0,.4);
  font-size:1.15rem;
  letter-spacing:.06em;
}

/* ---- プロフィールカード ---- */
.fp2-profile{
  display:flex;
  gap:48px;
  align-items:flex-start;
  background:#fff;
  border-radius:20px;
  padding:48px 48px;
  box-shadow:0 4px 32px rgba(0,0,0,.07);
  margin-bottom:56px;
}
.fp2-profile-photo{
  flex-shrink:0;
  width:220px;
}
.fp2-profile-photo img{
  width:100%;
  aspect-ratio:3/4;
  object-fit:cover;
  border-radius:14px;
  display:block;
}
.fp2-profile-info{
  flex:1;
  min-width:0;
}
.fp2-type-badge{
  display:inline-block;
  background:#eaf5e6;
  color:#2d6a22;
  border:1.5px solid #b0d8a0;
  padding:5px 18px;
  border-radius:100px;
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.06em;
  margin-bottom:14px;
}
.fp2-farm-name{
  font-size:2rem;
  color:#1e3a1a;
  margin:0 0 10px;
  line-height:1.3;
  font-weight:700;
}
.fp2-farmer-name{
  color:#555;
  margin-bottom:6px;
  font-size:.97rem;
}
.fp2-reading{
  color:#999;
  font-size:.85rem;
}
.fp2-area{
  color:#777;
  font-size:.92rem;
  margin:10px 0 18px;
}
.fp2-crops{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:20px;
}
.fp2-certs{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:8px;
}
.fp2-cert-badge{
  display:inline-flex;
  align-items:center;
  gap:5px;
  background:linear-gradient(135deg,#fdf8ec,#f5ead0);
  border:1.5px solid #d4aa50;
  border-radius:8px;
  padding:7px 14px;
  font-size:.78rem;
  color:#6a4c10;
  font-weight:700;
  letter-spacing:.03em;
}

/* ---- ストーリー：フォト交互 ---- */
.fp2-story-row{
  display:flex;
  gap:48px;
  align-items:flex-start;
  margin-bottom:56px;
}
.fp2-story-photo{
  flex-shrink:0;
  width:44%;
  border-radius:14px;
  overflow:hidden;
  box-shadow:0 6px 28px rgba(0,0,0,.10);
}
.fp2-story-photo img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  display:block;
}
.fp2-story-text{
  flex:1;
  min-width:0;
}
.fp2-story-full{
  max-width:720px;
  margin:0 auto;
  text-align:center;
}
.fp2-story-subtitle{
  font-size:1.25rem;
  color:#2d5a27;
  margin:0 0 16px;
  padding-bottom:12px;
  border-bottom:2px solid #cce4c2;
  font-weight:700;
}
.fp2-story-text p{
  color:#444;
  line-height:1.9;
  font-size:.97rem;
}

/* ---- 農園データ（アイコンカード）---- */
.fp2-data-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(160px,1fr));
  gap:16px;
}
.fp2-data-card{
  background:#fff;
  border:1px solid #e6f0e2;
  border-radius:14px;
  padding:28px 16px 22px;
  text-align:center;
  box-shadow:0 2px 10px rgba(0,0,0,.04);
  transition:box-shadow .25s, transform .25s;
}
.fp2-data-card:hover{
  box-shadow:0 8px 28px rgba(45,90,39,.13);
  transform:translateY(-3px);
}
.fp2-data-icon{
  font-size:1.9rem;
  margin-bottom:10px;
  line-height:1;
}
.fp2-data-label{
  font-size:.68rem;
  color:#a0b09a;
  letter-spacing:.1em;
  text-transform:uppercase;
  margin-bottom:10px;
  font-weight:700;
}
.fp2-data-val{
  font-size:.88rem;
  color:#333;
  font-weight:600;
  line-height:1.5;
}

/* ---- フォトギャラリー（マソンリー）---- */
.fp2-masonry{
  columns:3;
  column-gap:12px;
}
.fp2-masonry-item{
  break-inside:avoid;
  margin-bottom:12px;
  border-radius:10px;
  overflow:hidden;
  cursor:zoom-in;
}
.fp2-masonry-item img{
  width:100%;
  height:auto;
  display:block;
  transition:transform .4s ease;
}
.fp2-masonry-item:hover img{
  transform:scale(1.04);
}

/* ---- SNSボタン（大きな丸型）---- */
.fp2-sns-grid{
  display:flex;
  flex-wrap:wrap;
  gap:16px;
  justify-content:center;
}
.fp2-sns-btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:16px 28px;
  border-radius:100px;
  text-decoration:none;
  font-weight:700;
  font-size:1rem;
  color:#fff !important;
  transition:transform .22s, box-shadow .22s;
  min-width:170px;
  justify-content:center;
  letter-spacing:.03em;
}
.fp2-sns-btn:hover{
  transform:translateY(-4px);
  box-shadow:0 10px 28px rgba(0,0,0,.22);
}
.fp2-sns-icon{
  font-size:1.25rem;
  line-height:1;
}
.fp2-web  { background:linear-gradient(135deg,#2d7a3a,#52b84d); }
.fp2-shop { background:linear-gradient(135deg,#d84f00,#f5a623); }
.fp2-ig   { background:linear-gradient(135deg,#833ab4,#e1306c,#f77737); }
.fp2-yt   { background:linear-gradient(135deg,#c4302b,#ff3d00); }
.fp2-fb   { background:linear-gradient(135deg,#1877f2,#42a5f5); }
.fp2-tw   { background:linear-gradient(135deg,#14171a,#536471); }

/* ---- レスポンシブ ---- */
@media(max-width:900px){
  .fp2-profile{ gap:32px; padding:36px 32px; }
  .fp2-profile-photo{ width:180px; }
  .fp2-story-row{ gap:32px; }
  .fp2-story-photo{ width:44%; }
  .fp2-data-grid{ grid-template-columns:repeat(3,1fr); }
}
@media(max-width:768px){
  .fp2-profile{ flex-direction:column; padding:28px 22px; gap:22px; align-items:center; text-align:center; }
  .fp2-profile-photo{ width:100%; max-width:200px; }
  .fp2-profile-photo img{ aspect-ratio:1/1; }
  .fp2-farm-name{ font-size:1.5rem; }
  .fp2-crops,.fp2-certs{ justify-content:center; }
  .fp2-story-row{ flex-direction:column; gap:24px; }
  .fp2-story-row-alt{ flex-direction:column-reverse; }
  .fp2-story-photo{ width:100%; }
  .fp2-data-grid{ grid-template-columns:repeat(2,1fr); }
  .fp2-masonry{ columns:2; }
  .fp2-sns-btn{ min-width:calc(50% - 8px); padding:14px 18px; font-size:.92rem; }
}
@media(max-width:480px){
  .fp2-data-grid{ grid-template-columns:1fr 1fr; }
  .fp2-masonry{ columns:2; column-gap:8px; }
  .fp2-masonry-item{ margin-bottom:8px; }
  .fp2-sns-btn{ min-width:calc(50% - 8px); font-size:.85rem; padding:13px 14px; }
}

/* ================================================================
   生産者詳細 v3 (fp3-*)
   詳細情報カード・無限ループカルーセル・SNS アイコン丸ボタン
   ================================================================ */

/* ---- 詳細情報カード ---- */
.fp2-detail-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(260px,1fr));
  gap:20px;
}
.fp2-detail-card{
  background:#fff;
  border:1px solid #e6f0e2;
  border-radius:16px;
  padding:32px 28px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:10px;
  box-shadow:0 2px 12px rgba(0,0,0,.04);
  transition:box-shadow .25s, transform .25s;
}
.fp2-detail-card:hover{
  box-shadow:0 8px 28px rgba(45,90,39,.11);
  transform:translateY(-3px);
}
.fp2-detail-icon{
  width:48px;height:48px;
  background:#eaf5e6;
  border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  color:#2d6a22;
  margin-bottom:4px;
}
.fp2-detail-label{
  font-size:.72rem;
  color:#a0b09a;
  letter-spacing:.1em;
  text-transform:uppercase;
  font-weight:700;
}
.fp2-detail-val{
  font-size:.97rem;
  color:#333;
  line-height:1.7;
}
.fp2-detail-link{
  color:#2d7a27;
  text-decoration:underline;
  text-underline-offset:2px;
  word-break:break-all;
}
.fp2-detail-link:hover{
  color:#1a5a16;
  text-decoration:none;
}

/* ---- 無限ループ カルーセル（右→左スクロール）---- */
.fp3-marquee-wrap{
  overflow:hidden;
  border-radius:14px;
  position:relative;
  touch-action:pan-y;        /* 縦スクロールはブラウザ、横フリックはJSで処理 */
  user-select:none;          /* PCドラッグ中のテキスト選択を防止 */
  -webkit-user-select:none;
}
.fp3-marquee-track{
  display:flex;
  gap:16px;
  will-change:transform;
}
.fp3-marquee-slide{
  flex-shrink:0;
  width:340px;
  height:255px;
  border-radius:10px;
  overflow:hidden;
}
.fp3-marquee-slide img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .4s ease;
}
.fp3-marquee-slide img[data-orig]:hover{
  transform:scale(1.04);
  cursor:zoom-in;
}

/* ---- SNS アイコン丸ボタン（淡い色・アイコンのみ）---- */
.fp3-sns-row{
  display:flex;
  flex-wrap:wrap;
  gap:20px;
  justify-content:flex-start;
  margin-top:8px;
}
.fp3-sns-circle{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  text-decoration:none;
  transition:transform .22s;
}
.fp3-sns-circle:hover{ transform:translateY(-5px); }
.fp3-sns-circle svg{
  width:60px;height:60px;
  padding:14px;
  border-radius:50%;
  box-shadow:0 2px 10px rgba(0,0,0,.06);
  transition:box-shadow .22s;
  display:block;
  box-sizing:border-box;
}
.fp3-sns-circle:hover svg{ box-shadow:0 6px 20px rgba(0,0,0,.14); }
.fp3-sns-label{
  font-size:.7rem;
  font-weight:600;
  letter-spacing:.04em;
  color:#7a8a74;
}
/* プラットフォーム別カラー */
.fp3-web  svg{ background:#e8f5e9; color:#2d6a22; }
.fp3-shop svg{ background:#fff3e0; color:#e65100; }
.fp3-ig   svg{ background:#fce4ec; color:#c2185b; }
.fp3-yt   svg{ background:#ffebee; color:#c62828; }
.fp3-fb   svg{ background:#e3f2fd; color:#1565c0; }
.fp3-tw   svg{ background:#f3f3f3; color:#14171a; }
.fp3-line svg{ background:#e8f5e1; color:#06c755; }

/* ---- コンパクトヒーロー（農園名のみ・200px・カラー背景）---- */
.fp3-hero-compact{
  height:200px;
  margin-top:var(--hdr-h,160px); /* 固定ヘッダーの実高さ（JSがセット）*/
  background:linear-gradient(135deg,#2a5428 0%,#3d7a36 60%,#4a9040 100%);
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
}
@media(max-width:768px){
  .fp3-hero-compact{ margin-top:var(--hdr-h,72px); height:160px; }
  .fp3-hero-name{ font-size:1.5rem; }
}
.fp3-hero-inner{
  text-align:center;
  padding:0 24px;
}
.fp3-hero-name{
  font-size:clamp(1.6rem,4vw,2.6rem);
  color:#fff;
  font-weight:700;
  letter-spacing:.08em;
  margin:0;
  text-shadow:0 2px 12px rgba(0,0,0,.25);
  line-height:1.3;
}

/* ---- キャッチコピーブロック ---- */
.fp3-catch-block{
  text-align:center;
  padding:40px 24px 8px;
}
.fp3-catch-text{
  font-size:clamp(1.1rem,2.5vw,1.5rem);
  color:#2d5a27;
  line-height:1.7;
  letter-spacing:.06em;
  margin:0;
  font-weight:500;
}

/* ---- マーキー：ドラッグカーソル ---- */
.fp3-marquee-wrap{ cursor:grab; }
.fp3-marquee-wrap:active{ cursor:grabbing; }

/* ---- SNS 左寄せ上書き ---- */
.fp3-sns-left{ justify-content:flex-start; }

/* アーカイブ：栽培方法バッジ */
.farmer-cultivation-badge{
  position:absolute;
  bottom:10px;left:10px;
  background:rgba(45,90,39,.82);
  color:#fff;
  font-size:.7rem;
  font-weight:700;
  padding:4px 10px;
  border-radius:100px;
  letter-spacing:.04em;
  backdrop-filter:blur(4px);
}

/* ================================================================
   栽培品目セクション
   ================================================================ */
.fp3-crops-inner{
  background:linear-gradient(135deg,#f4faf0 0%,#eaf5e3 100%);
  border-radius:20px;
  padding:36px 40px;
  border:1px solid #d4ecc8;
}

/* タグ群 */
.fp3-crops-tags{
  display:flex; flex-wrap:wrap; gap:12px;
  margin-bottom:36px;
}

/* 個別ピル */
.fp3-crop-pill{
  display:inline-flex;
  align-items:center;
  gap:7px;
  background:#fff;
  color:#2d5a27;
  font-size:clamp(.9rem,1.8vw,1.05rem);
  font-weight:700;
  padding:10px 22px 10px 16px;
  border-radius:100px;
  border:1.5px solid #b8dda8;
  box-shadow:0 2px 8px rgba(45,90,39,.08);
  letter-spacing:.03em;
  transition:transform .15s, box-shadow .15s;
}
.fp3-crop-pill:hover{
  transform:translateY(-2px);
  box-shadow:0 6px 16px rgba(45,90,39,.14);
}
.fp3-crop-icon{
  width:18px; height:18px;
  flex-shrink:0;
  color:#52a045;
}

/* 写真＋テキスト行 */
.fp3-crops-row{
  margin-top:0;
  gap:40px;
}
.fp3-crops-row .fp2-story-photo img{
  border-radius:14px;
  box-shadow:0 4px 20px rgba(45,90,39,.12);
}
.fp3-crops-row .fp2-story-text{
  color:#3a4a36;
  font-size:.97rem;
  line-height:1.9;
}

/* ================================================================
   購入できるお店 — カードグリッド
   ================================================================ */
.fp3-shops-intro{
  color:#666;
  font-size:.95rem;
  margin:0 0 28px;
  line-height:1.7;
}

.fp3-shop-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(280px, 1fr));
  gap:20px;
}

.fp3-shop-card{
  background:#fff;
  border-radius:16px;
  border:1px solid #e4ede0;
  box-shadow:0 3px 16px rgba(45,90,39,.07);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  transition:transform .2s, box-shadow .2s;
}
.fp3-shop-card:hover{
  transform:translateY(-4px);
  box-shadow:0 10px 28px rgba(45,90,39,.13);
}

/* カードヘッダー（緑ストライプ＋アイコン＋店名） */
.fp3-shop-card-head{
  background:linear-gradient(135deg,#2a5428 0%,#3d7a36 100%);
  padding:16px 20px;
  display:flex;
  align-items:center;
  gap:10px;
}
.fp3-shop-card-icon{
  width:22px; height:22px;
  color:#b8e878;
  flex-shrink:0;
}
.fp3-shop-card-name{
  color:#fff;
  font-weight:700;
  font-size:.97rem;
  line-height:1.4;
  letter-spacing:.03em;
}

/* 詳細テキスト */
.fp3-shop-card-detail{
  padding:16px 20px;
  font-size:.88rem;
  color:#4a5a46;
  line-height:1.85;
  flex:1;
  border-bottom:1px solid #f0ede8;
}

/* リンクボタン */
.fp3-shop-card-link{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin:14px 20px 18px;
  padding:8px 18px;
  background:#e8f5e1;
  color:#2d5a27;
  font-size:.85rem;
  font-weight:600;
  border-radius:100px;
  text-decoration:none;
  border:1.5px solid #b8dda8;
  align-self:flex-start;
  transition:background .15s, color .15s;
}
.fp3-shop-card-link:hover{
  background:#2d5a27;
  color:#fff;
  border-color:#2d5a27;
}
.fp3-shop-card-link svg{
  flex-shrink:0;
}

/* ---- レスポンシブ ---- */
@media(max-width:768px){
  .fp3-marquee-slide{ width:240px; height:180px; }
  .fp3-sns-circle svg{ width:52px; height:52px; padding:12px; }
  .fp2-detail-grid{ grid-template-columns:1fr; }
  .fp3-crops-inner{ padding:24px 20px; }
  .fp3-crops-tags{ gap:8px; margin-bottom:24px; }
  .fp3-crop-pill{ font-size:.88rem; padding:8px 16px 8px 12px; }
  .fp3-shop-grid{ grid-template-columns:1fr; }
}
@media(max-width:480px){
  .fp3-marquee-slide{ width:200px; height:150px; }
  .fp3-sns-row{ gap:14px; }
  .fp3-sns-circle svg{ width:48px; height:48px; padding:11px; }
  .fp3-sns-label{ font-size:.65rem; }
}

/* ===========================================================
   activities page – new sections (2025 redesign)
   =========================================================== */

/* ---- Vision section ---- */
.act-vision-section { background:#f5f7f2; }

.act-vision-lead {
  text-align:center;
  margin:0 auto 56px;
  max-width:680px;
}
.act-vision-lead-deco {
  font-family:'Noto Serif JP',serif;
  font-size:5rem;
  line-height:1;
  color:#b8e878;
  margin-bottom:-12px;
  display:block;
}
.act-vision-lead-text {
  font-family:'Noto Serif JP',serif;
  font-size:clamp(1.2rem,2.5vw,1.65rem);
  font-weight:700;
  color:#1e2d1a;
  line-height:1.65;
  margin-bottom:14px;
}
.act-vision-lead-text strong { color:#2d7a22; }
.act-vision-lead-sub {
  font-size:.9rem;
  color:#5a7a52;
  letter-spacing:.04em;
}

/* 3つの「わ」 */
.act-vision-cards {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
  margin-bottom:56px;
}
.act-vision-card {
  background:#fff;
  border-radius:12px;
  padding:36px 28px;
  text-align:center;
  border:1.5px solid #ddecd4;
  transition:box-shadow .3s, transform .3s;
}
.act-vision-card:hover {
  box-shadow:0 8px 28px rgba(45,90,39,.12);
  transform:translateY(-4px);
}
.act-vision-card-icon { font-size:36px; margin-bottom:12px; line-height:1; }
.act-vision-card-kanji {
  font-family:'Noto Serif JP',serif;
  font-size:2.8rem;
  font-weight:900;
  color:#2d7a22;
  line-height:1;
  margin:0 0 2px;
}
.act-vision-card-kana {
  font-size:.78rem;
  color:#7aa870;
  letter-spacing:.18em;
  margin-bottom:14px;
}
.act-vision-card p {
  font-size:.875rem;
  color:#4a5e42;
  line-height:1.85;
  margin:0;
}

/* 組織沿革タイムライン */
.act-vision-timeline {
  max-width:680px;
  margin:0 auto;
  position:relative;
  padding-left:28px;
}
.act-vision-timeline::before {
  content:'';
  position:absolute;
  left:7px; top:0; bottom:0;
  width:2px;
  background:linear-gradient(#b8e878, #4a8c3f);
}
.act-vision-tl-item {
  position:relative;
  display:flex;
  gap:20px;
  margin-bottom:28px;
}
.act-vision-tl-item:last-child { margin-bottom:0; }
.act-vision-tl-dot {
  position:absolute;
  left:-28px;
  top:4px;
  width:16px; height:16px;
  border-radius:50%;
  background:#4a8c3f;
  border:3px solid #fff;
  box-shadow:0 0 0 2px #4a8c3f;
  flex-shrink:0;
}
.act-vision-tl-content { flex:1; }
.act-vision-tl-date {
  display:inline-block;
  font-size:.78rem;
  font-weight:700;
  color:#2d7a22;
  background:#eaf5e0;
  padding:2px 10px;
  border-radius:20px;
  margin-bottom:6px;
  letter-spacing:.04em;
}
.act-vision-tl-content p {
  font-size:.875rem;
  color:#4a5e42;
  line-height:1.85;
  margin:0;
}

/* ---- Scheme section (dark bg) ---- */
.act-scheme-section {
  background:linear-gradient(160deg, #0a1c08 0%, #162e10 60%, #0e2309 100%);
  position:relative;
  overflow:hidden;
}
.act-scheme-section::before {
  content:'';
  position:absolute;
  inset:0;
  background:url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23b8e878' fill-opacity='0.03'%3E%3Ccircle cx='20' cy='20' r='1.5'/%3E%3C/g%3E%3C/svg%3E");
}

/* ダイアグラム全体 */
.act-scheme-wrap { max-width:800px; margin:0 auto; }

.act-scheme-diagram {
  display:grid;
  grid-template-areas:
    ". seisan ."
    "kakou center hanbai";
  grid-template-columns:1fr 1fr 1fr;
  grid-template-rows:auto auto;
  gap:28px 20px;
  position:relative;
  margin-bottom:8px;
}

/* 接続線（疑似要素で三角形の辺を描く） */
.act-scheme-diagram::before,
.act-scheme-diagram::after {
  content:'';
  position:absolute;
  background:rgba(184,232,120,.2);
}
/* 中央縦線 */
.act-scheme-diagram::before {
  width:2px;
  top:80px; bottom:80px;
  left:50%;
  transform:translateX(-50%);
}

.act-scheme-item { position:relative; z-index:1; }
.act-scheme-item--seisan { grid-area:seisan; }
.act-scheme-item--kakou  { grid-area:kakou; }
.act-scheme-item--hanbai { grid-area:hanbai; }

/* 各ノードボタン */
.act-scheme-btn {
  width:100%;
  background:rgba(255,255,255,.06);
  border:1.5px solid rgba(184,232,120,.22);
  border-radius:12px;
  padding:28px 20px 24px;
  cursor:pointer;
  text-align:center;
  transition:background .3s, border-color .3s, transform .25s, box-shadow .3s;
  color:#fff;
}
.act-scheme-btn:hover,
.act-scheme-btn.is-active {
  background:rgba(184,232,120,.12);
  border-color:#b8e878;
  transform:translateY(-4px);
  box-shadow:0 10px 30px rgba(0,0,0,.35);
}
.act-scheme-btn-icon { font-size:40px; line-height:1; margin-bottom:10px; }
.act-scheme-btn-name {
  font-family:'Noto Serif JP',serif;
  font-size:1.15rem;
  font-weight:700;
  color:#b8e878;
  margin-bottom:4px;
}
.act-scheme-btn-en {
  font-size:.68rem;
  letter-spacing:.1em;
  color:rgba(255,255,255,.5);
  text-transform:uppercase;
  margin-bottom:16px;
}
.act-scheme-btn-plus {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px; height:28px;
  border-radius:50%;
  border:1.5px solid rgba(184,232,120,.4);
  font-size:1rem;
  color:#b8e878;
  transition:background .25s, transform .25s;
}
.act-scheme-btn.is-active .act-scheme-btn-plus {
  background:#b8e878;
  color:#1e2d1a;
  transform:rotate(45deg);
}

/* 中央バッジ */
.act-scheme-center {
  grid-area:center;
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:1;
}
.act-scheme-center-inner {
  background:rgba(184,232,120,.1);
  border:1.5px solid rgba(184,232,120,.3);
  border-radius:50%;
  width:150px; height:150px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:12px;
}
.act-scheme-center-sub {
  font-size:.65rem;
  letter-spacing:.12em;
  color:rgba(255,255,255,.55);
  margin-bottom:4px;
}
.act-scheme-center-main {
  font-family:'Noto Serif JP',serif;
  font-size:.78rem;
  font-weight:700;
  color:#b8e878;
  line-height:1.6;
}
.act-scheme-center-city {
  font-size:.62rem;
  color:rgba(255,255,255,.45);
  margin-top:4px;
}

/* ヒントテキスト */
.act-scheme-hint {
  text-align:center;
  font-size:.75rem;
  color:rgba(255,255,255,.35);
  letter-spacing:.06em;
  margin:8px 0 24px;
}

/* 展開パネル */
.act-scheme-detail-panel {
  margin-bottom:24px;
  animation:schemeDetailIn .3s ease;
}
@keyframes schemeDetailIn {
  from { opacity:0; transform:translateY(-10px); }
  to   { opacity:1; transform:translateY(0); }
}
.act-scheme-detail-inner {
  background:rgba(255,255,255,.07);
  border:1.5px solid rgba(184,232,120,.2);
  border-radius:12px;
  padding:32px 36px;
}
.act-scheme-detail-head {
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:24px;
}
.act-scheme-detail-icon { font-size:32px; line-height:1; }
.act-scheme-detail-head h3 {
  font-family:'Noto Serif JP',serif;
  font-size:1.1rem;
  font-weight:700;
  color:#b8e878;
  margin:0;
}
.act-scheme-detail-list {
  list-style:none;
  padding:0; margin:0;
  display:flex;
  flex-direction:column;
  gap:18px;
}
.act-scheme-detail-list li {
  display:flex;
  gap:16px;
  align-items:flex-start;
}
.act-scheme-detail-num {
  font-family:'Noto Serif JP',serif;
  font-size:1.4rem;
  font-weight:700;
  color:rgba(184,232,120,.4);
  flex-shrink:0;
  width:32px;
  line-height:1.4;
}
.act-scheme-detail-list strong {
  color:#fff;
  font-size:.9rem;
}
.act-scheme-detail-list li > div {
  font-size:.875rem;
  color:rgba(255,255,255,.72);
  line-height:1.85;
}

/* 横断的取り組み（supportバー） */
.act-scheme-support {
  margin-top:40px;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(184,232,120,.15);
  border-radius:10px;
  padding:22px 28px;
}
.act-scheme-support-label {
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.1em;
  color:rgba(184,232,120,.7);
  text-transform:uppercase;
  margin-bottom:16px;
}
.act-scheme-support-items {
  display:flex;
  flex-wrap:wrap;
  gap:16px 32px;
}
.act-scheme-support-item {
  display:flex;
  align-items:center;
  gap:8px;
  font-size:.875rem;
  color:rgba(255,255,255,.75);
}
.act-scheme-support-icon { font-size:1.2em; }

/* ---- Goals Progress ---- */
.act-goals-progress {
  margin-top:48px;
  background:#f5f7f2;
  border-radius:12px;
  padding:32px 36px;
}
.act-goals-progress-label {
  font-size:.8rem;
  font-weight:700;
  letter-spacing:.1em;
  color:#4a8c3f;
  text-transform:uppercase;
  margin-bottom:24px;
}
.act-goals-progress-row {
  display:flex;
  align-items:center;
  gap:0;
  flex-wrap:wrap;
}
.act-goals-progress-item {
  flex:1;
  display:flex;
  align-items:center;
  gap:20px;
  justify-content:center;
}
.act-goals-progress-divider {
  width:1px;
  height:60px;
  background:#cddfc4;
  margin:0 24px;
  flex-shrink:0;
}
.act-goals-progress-now,
.act-goals-progress-target {
  text-align:center;
}
.act-goals-progress-val {
  display:block;
  font-family:'Noto Serif JP',serif;
  font-size:1.8rem;
  font-weight:700;
  color:#1e2d1a;
  line-height:1.2;
}
.act-goals-progress-target .act-goals-progress-val { color:#2d7a22; }
.act-goals-progress-val small {
  font-size:.55em;
  font-weight:600;
  margin-left:2px;
}
.act-goals-progress-text {
  display:block;
  font-size:.72rem;
  color:#7aa870;
  margin-top:2px;
}
.act-goals-progress-arrow {
  font-size:1.4rem;
  color:#4a8c3f;
  flex-shrink:0;
}

/* ---- Responsive ---- */
@media(max-width:960px){
  .act-scheme-center-inner { width:120px; height:120px; }
}
@media(max-width:768px){
  .act-vision-cards { grid-template-columns:1fr; gap:16px; }
  .act-scheme-diagram {
    grid-template-areas:
      "seisan seisan"
      "kakou hanbai"
      "center center";
    grid-template-columns:1fr 1fr;
    grid-template-rows:auto auto auto;
  }
  .act-scheme-center { grid-area:center; }
  .act-scheme-center-inner { width:100%; height:auto; border-radius:10px; padding:18px 20px; }
  .act-scheme-detail-inner { padding:22px 20px; }
  .act-scheme-support-items { flex-direction:column; gap:12px; }
  .act-goals-progress-row { flex-direction:column; gap:24px; }
  .act-goals-progress-divider { display:none; }
  .act-goals-progress-item { width:100%; border-bottom:1px solid #ddecd4; padding-bottom:20px; }
  .act-goals-progress-item:last-child { border:none; padding:0; }
}
@media(max-width:480px){
  .act-scheme-diagram {
    grid-template-areas:"seisan" "kakou" "hanbai" "center";
    grid-template-columns:1fr;
  }
  .act-scheme-btn { padding:22px 18px 18px; }
  .act-scheme-btn-icon { font-size:32px; }
}

/* ============================================================
   organic page – 2025 redesign
   ============================================================ */

/* ---- pg-section-sub ---- */
.pg-section-sub {
  font-size: 15px;
  color: var(--text-mid);
  margin-top: 8px;
  line-height: 1.8;
}

/* ---- Lead section ---- */
.org-lead-section { margin-bottom: 64px; }
.org-lead-box {
  background: linear-gradient(135deg,#f0f7ec 0%,#e6f3df 100%);
  border-radius: 16px;
  padding: 40px 35px;
  border: 1.5px solid #c4e0b4;
}
.org-lead-text {
  font-size: 16px;
  line-height: 2;
  color: var(--text-dark);
  margin-bottom: 36px;
}
.org-lead-goals {
  display: flex;
  align-items: center;
  gap: 0;
  flex-wrap: wrap;
  justify-content: center;
}
.org-lead-goal-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 0 32px;
  text-align: center;
}
.org-lead-goal-num {
  font-family: 'Noto Serif JP', serif;
  font-size: 2.6rem;
  font-weight: 900;
  color: #2d7a22;
  line-height: 1;
}
.org-lead-goal-num small {
  font-size: 1rem;
  font-weight: 700;
  margin-left: 2px;
}
.org-lead-goal-label {
  font-size: 12px;
  color: var(--text-mid);
  line-height: 1.6;
}
.org-lead-goal-div {
  width: 1px;
  height: 48px;
  background: #b6d9a4;
  flex-shrink: 0;
}

/* ---- 3-stage flow ---- */
.org-flow3-wrap {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 0;
  margin-bottom: 28px;
  flex-wrap: wrap;
}
.org-flow3-step {
  background: #fff;
  border: 1.5px solid #c4e0b4;
  border-radius: 14px;
  padding: 28px 24px;
  text-align: center;
  width: 200px;
  flex-shrink: 0;
  transition: box-shadow .25s, transform .25s;
}
.org-flow3-step:hover {
  box-shadow: 0 8px 24px rgba(45,122,34,.14);
  transform: translateY(-4px);
}
.org-flow3-icon { font-size: 2.4rem; margin-bottom: 10px; }
.org-flow3-name {
  font-family: 'Noto Serif JP', serif;
  font-size: 1.1rem;
  font-weight: 800;
  color: #1e4a16;
  margin-bottom: 8px;
}
.org-flow3-desc { font-size: 13px; color: var(--text-mid); line-height: 1.7; margin: 0; }
.org-flow3-arrow {
  font-size: 2rem;
  color: #6bbb58;
  align-self: center;
  padding: 0 12px;
  flex-shrink: 0;
}
.org-flow3-cycle-note {
  display: flex;
  align-items: center;
  gap: 10px;
  background: rgba(107,187,88,.1);
  border: 1px solid rgba(107,187,88,.3);
  border-radius: 8px;
  padding: 14px 20px;
  font-size: 14px;
  color: var(--text-mid);
  max-width: 715px;
  margin: 0 auto;
  line-height: 1.8;
}
.org-flow3-cycle-note span:first-child { font-size: 1.4rem; flex-shrink: 0; }

/* ---- stage sections ---- */
.org-stage-section { border-left: 3px solid #6bbb58; padding-left: 24px; }
.org-stage-section--alt {
  background: linear-gradient(135deg,#f5f7f2 0%,#eef5e9 100%);
  border-radius: 16px;
  padding: 48px 48px 40px;
  margin-bottom: 56px;
}
.org-stage-grid {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 24px;
  margin-bottom: 32px;
}
.org-stage-card {
  background: #fff;
  border-radius: 12px;
  padding: 32px 24px;
  border: 1.5px solid #ddecd4;
  transition: box-shadow .25s, transform .25s;
}
.org-stage-card:hover {
  box-shadow: 0 8px 24px rgba(45,122,34,.12);
  transform: translateY(-4px);
}
.org-stage-card-icon { font-size: 2rem; margin-bottom: 12px; }
.org-stage-card-title {
  font-family: 'Noto Serif JP', serif;
  font-size: 1.05rem;
  font-weight: 800;
  color: #1e4a16;
  margin: 0 0 12px;
}
.org-stage-card-body { font-size: 14px; color: var(--text-mid); line-height: 1.9; margin: 0; }
.org-stage-img-wrap { max-width: 640px; margin: 0 auto; }
.org-stage-img-wrap .mis-img-card { border-radius: 12px; overflow: hidden; }

/* 2-column layout for 流通・加工 */
.org-stage-2col {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 32px;
}
.org-stage-2item {
  background: #fff;
  border-radius: 12px;
  padding: 32px 28px;
  border: 1.5px solid #ddecd4;
}
.org-stage-2num {
  font-family: 'Noto Serif JP', serif;
  font-size: 1.05rem;
  font-weight: 800;
  color: #2d7a22;
  margin-bottom: 12px;
  padding-bottom: 10px;
  border-bottom: 2px solid #c4e0b4;
}
.org-stage-2body { font-size: 14px; color: var(--text-mid); line-height: 1.9; margin: 0; }

/* ---- 消費 cons items ---- */
.org-cons-item {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  margin-bottom: 28px;
}
.org-cons-item:last-child { margin-bottom: 0; }
.org-cons-icon { font-size: 1.8rem; flex-shrink: 0; padding-top: 2px; }
.org-cons-title {
  font-family: 'Noto Serif JP', serif;
  font-size: 1rem;
  font-weight: 800;
  color: #1e4a16;
  margin: 0 0 8px;
}
.org-cons-body { font-size: 14px; color: var(--text-mid); line-height: 1.9; margin: 0; }

/* ---- nurture section ---- */
.org-nurture-section {
  background: linear-gradient(160deg,#0a1c08 0%,#162e10 60%,#0e2309 100%);
  border-radius: 16px;
  padding: 56px 48px;
  margin-bottom: 56px;
  color: #fff;
}
.org-nurture-section .pg-section-label { color: rgba(184,232,120,.7); }
.org-nurture-section .pg-section-title { color: #fff; }
.org-nurture-grid {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 24px;
  margin-top: 8px;
}
.org-nurture-card {
  background: rgba(255,255,255,.06);
  border: 1.5px solid rgba(184,232,120,.22);
  border-radius: 12px;
  padding: 32px 24px;
  transition: background .25s, border-color .25s;
}
.org-nurture-card:hover {
  background: rgba(184,232,120,.1);
  border-color: rgba(184,232,120,.5);
}
.org-nurture-icon { font-size: 2rem; margin-bottom: 14px; }
.org-nurture-card h3 {
  font-family: 'Noto Serif JP', serif;
  font-size: 1rem;
  font-weight: 800;
  color: #b8e878;
  margin: 0 0 12px;
}
.org-nurture-card p { font-size: 14px; color: rgba(255,255,255,.78); line-height: 1.9; margin: 0; }

/* ---- Responsive ---- */
@media(max-width:960px){
  .org-lead-box { padding: 32px 28px; }
  .org-stage-grid { grid-template-columns: 1fr 1fr; }
  .org-nurture-grid { grid-template-columns: 1fr 1fr; }
}
@media(max-width:680px){
  .org-flow3-wrap { gap: 12px; }
  .org-flow3-step { width: 100%; }
  .org-flow3-arrow { transform: rotate(90deg); padding: 4px 0; }
  .org-stage-grid { grid-template-columns: 1fr; }
  .org-stage-2col { grid-template-columns: 1fr; }
  .org-stage-section--alt { padding: 32px 20px; }
  .org-nurture-section { padding: 40px 24px; }
  .org-nurture-grid { grid-template-columns: 1fr; }
  .org-lead-goal-item { padding: 0 16px; }
  .org-lead-goal-num { font-size: 2rem; }
}
