:root{
  --G:#7DC221;--GD:#4f8c0e;--GL:#a8d84a;--GP:#d6f090;--GBG:#f4fae2;
  --black:#1a1a1a;--white:#fff;--text:#1e1e1e;--tsub:#555;--border:#c8eeaa;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;overflow-x:hidden;}
body{font-family:'Zen Kaku Gothic New',sans-serif;color:var(--text);overflow-x:hidden;-webkit-text-size-adjust:100%;background:var(--black);}
img{max-width:100%;display:block;}
a{text-decoration:none;}

/* NAV */
nav{
  position:fixed;top:0;left:0;right:0;z-index:200;
  background:var(--G);height:56px;
  display:flex;align-items:center;justify-content:space-between;
  padding:0 20px;box-shadow:0 2px 16px rgba(0,0,0,0.18);
}
.nav-logo img{height:32px;width:auto;}
.nav-back{color:rgba(255,255,255,0.92);font-size:0.82rem;font-weight:700;letter-spacing:0.04em;display:flex;align-items:center;gap:5px;}
.nav-back:hover{color:white;}

/* HERO */
.hero{
  background:var(--black);
  min-height:100svh;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:80px 24px 60px;text-align:center;position:relative;overflow:hidden;
}
.hero-deco{
  position:absolute;inset:0;
  background:radial-gradient(ellipse at 70% 30%, rgba(125,194,33,0.08) 0%, transparent 60%),
             radial-gradient(ellipse at 20% 80%, rgba(125,194,33,0.05) 0%, transparent 50%);
  pointer-events:none;
}
.hero-logo{
  width:min(200px,52vw);margin:0 auto 28px;position:relative;z-index:1;
  animation:floatY 3s ease-in-out infinite;
}
@keyframes floatY{0%,100%{transform:translateY(0);}50%{transform:translateY(-9px);}}
.hero-title{
  font-family:'Bebas Neue',sans-serif;
  font-size:clamp(3rem,12vw,6rem);
  color:var(--G);letter-spacing:0.15em;
  position:relative;z-index:1;margin-bottom:4px;
  text-shadow:0 0 40px rgba(125,194,33,0.3);
}
.hero-sub{
  font-size:0.78rem;color:rgba(255,255,255,0.4);
  letter-spacing:0.2em;position:relative;z-index:1;
}
.scroll-hint{
  position:absolute;bottom:28px;left:50%;transform:translateX(-50%);
  font-size:0.68rem;color:rgba(255,255,255,0.3);letter-spacing:0.2em;
  animation:sb 2s infinite;
}
@keyframes sb{0%,100%{transform:translateX(-50%) translateY(0);}50%{transform:translateX(-50%) translateY(5px);}}

/* OWNER */
.owner-sec{
  background:var(--black);padding:80px 24px;
}
.owner-inner{
  max-width:800px;margin:0 auto;
  display:grid;grid-template-columns:280px 1fr;gap:56px;align-items:center;
}
@media(max-width:640px){
  .owner-inner{grid-template-columns:1fr;gap:32px;}
  .owner-photo{max-width:220px;margin:0 auto;}
}
.owner-photo{
  width:100%;aspect-ratio:3/4;object-fit:cover;object-position:top center;
  border-radius:100px 100px 32px 32px;
  box-shadow:8px 8px 0 var(--G);display:block;
}
.owner-lbl{
  display:inline-block;font-family:'Bebas Neue',sans-serif;
  font-size:0.74rem;letter-spacing:0.28em;
  color:var(--G);background:rgba(125,194,33,0.12);
  padding:3px 12px;border-radius:20px;margin-bottom:12px;
}
.owner-name-role{font-size:0.72rem;color:rgba(255,255,255,0.4);letter-spacing:0.12em;margin-bottom:4px;}
.owner-name{
  font-family:'Noto Serif JP',serif;font-size:clamp(1.6rem,5vw,2.4rem);
  font-weight:700;color:white;margin-bottom:24px;line-height:1.3;
}
.owner-text{font-size:0.93rem;color:rgba(255,255,255,0.7);line-height:2.2;}

/* STORY */
.story-sec{background:var(--GBG);padding:80px 24px;}
.story-inner{max-width:800px;margin:0 auto;}
.story-lbl{
  display:inline-block;font-family:'Bebas Neue',sans-serif;
  font-size:0.74rem;letter-spacing:0.28em;
  color:var(--GD);background:var(--GP);
  padding:3px 12px;border-radius:20px;margin-bottom:12px;
}
.story-title{
  font-family:'Noto Serif JP',serif;font-size:clamp(1.5rem,4.5vw,2.2rem);
  font-weight:700;color:var(--text);margin-bottom:40px;line-height:1.4;
}

.story-block{
  display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;
  margin-bottom:60px;
}
.story-block.reverse{direction:rtl;}
.story-block.reverse > *{direction:ltr;}
@media(max-width:580px){
  .story-block{grid-template-columns:1fr;gap:24px;}
  .story-block.reverse{direction:ltr;}
}

.story-text p{
  font-size:0.93rem;line-height:2.2;color:var(--tsub);
}
.story-text p+p{margin-top:16px;}
.story-text strong{color:var(--GD);font-weight:700;}

.story-illust{
  display:flex;align-items:center;justify-content:center;
  background:white;border-radius:20px;padding:32px;
  border:2px solid var(--border);
  box-shadow:4px 4px 0 var(--G);
}
.story-illust svg{width:100%;max-width:200px;height:auto;}

/* FEATURE */
.feature-sec{background:var(--black);padding:80px 24px;}
.feature-inner{max-width:800px;margin:0 auto;}
.feature-lbl{
  display:inline-block;font-family:'Bebas Neue',sans-serif;
  font-size:0.74rem;letter-spacing:0.28em;
  color:var(--G);background:rgba(125,194,33,0.12);
  padding:3px 12px;border-radius:20px;margin-bottom:12px;
}
.feature-title{
  font-family:'Noto Serif JP',serif;font-size:clamp(1.5rem,4.5vw,2.2rem);
  font-weight:700;color:white;margin-bottom:36px;
}
.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
@media(max-width:560px){.feature-grid{grid-template-columns:1fr;}}
.feature-card{
  background:rgba(125,194,33,0.06);border:1px solid rgba(125,194,33,0.2);
  border-radius:16px;padding:24px 20px;
}
.feature-icon{font-size:2rem;margin-bottom:12px;}
.feature-name{font-weight:900;font-size:0.95rem;color:var(--G);margin-bottom:8px;}
.feature-desc{font-size:0.82rem;color:rgba(255,255,255,0.6);line-height:1.85;}

/* CTA */
.cta-sec{background:var(--G);padding:72px 24px;text-align:center;}
.cta-title{
  font-family:'Noto Serif JP',serif;font-size:clamp(1.5rem,5vw,2.2rem);
  font-weight:700;color:white;margin-bottom:10px;
}
.cta-desc{font-size:0.9rem;color:rgba(255,255,255,0.82);margin-bottom:32px;line-height:1.85;}
.cta-btns{display:flex;flex-direction:column;gap:12px;width:min(300px,86vw);margin:0 auto;}
.btn{
  display:block;text-align:center;font-family:'Zen Kaku Gothic New',sans-serif;
  font-weight:700;font-size:0.97rem;padding:15px 24px;border-radius:50px;
  letter-spacing:0.05em;transition:all 0.25s;border:none;cursor:pointer;
}
.btn-white{background:white;color:var(--GD);box-shadow:0 4px 16px rgba(0,0,0,0.14);}
.btn-white:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,0.2);}
.btn-outline-w{background:transparent;color:white;border:2px solid rgba(255,255,255,0.65);}
.btn-outline-w:hover{background:rgba(255,255,255,0.1);transform:translateY(-2px);}

/* FOOTER */
footer{background:var(--G);color:rgba(255,255,255,0.8);text-align:center;padding:40px 24px 28px;font-size:0.75rem;letter-spacing:0.08em;border-top:2px solid rgba(255,255,255,0.15);}
.footer-logo{height:38px;width:auto;margin:0 auto 16px;}
.footer-links{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;margin-bottom:14px;}
.footer-links a{color:rgba(255,255,255,0.8);transition:color 0.2s;}
.footer-links a:hover{color:white;}

/* FADE */
.fade{opacity:0;transform:translateY(20px);transition:opacity 0.7s ease,transform 0.7s ease;}
.fade.in{opacity:1;transform:none;}



/* ロゴ */
img.site-logo { display:block; }
.nav-logo img.site-logo { height:36px; width:auto; }
.hero-logo { display:block; width:min(150px,38vw); height:auto; margin:0 auto 24px; }
.footer-logo { display:block; height:40px; width:auto; margin:0 auto 16px; }
.login-logo { display:block; height:56px; width:auto; margin:0 auto 28px; }

/* ━━━ 日本語タイポグラフィ改善 ━━━ */
/* 行間：本文1.8、見出し1.4に統一 */
/* 文字間：日本語は0でOK、英字ラベルのみ調整 */
/* 禁則処理：文頭・文末の約物を整える */
/* 1行の適切な文字数：スマホ20〜24文字 */

html {
  /* 禁則処理を有効化 */
  word-break: normal;
  overflow-wrap: break-word;
  -webkit-locale: "ja";
}

/* 本文の行間・文字間を最適化 */
p, .t-body, li, td, th {
  line-height: 1.85;
  word-break: normal;
  overflow-wrap: break-word;
  /* 和文の文字詰め */
  font-feature-settings: "palt" 1, "kern" 1;
  -webkit-font-smoothing: antialiased;
}

/* 見出しの行間 */
h1, h2, h3, .t-display, .t-heading {
  line-height: 1.3;
  word-break: keep-all;
  overflow-wrap: break-word;
  font-feature-settings: "palt" 1;
  -webkit-font-smoothing: antialiased;
}

/* 本文最大幅（1行が長くなりすぎないように） */
.t-body {
  max-width: 40em; /* 約40文字 */
}

/* 見出しと本文のサイズ差を明確に */
.section .t-label {
  font-size: .72rem;
  letter-spacing: .24em;
  margin-bottom: 6px;
}
.section .t-heading {
  font-size: clamp(1.4rem, 4.5vw, 1.9rem);
  margin-bottom: 20px;
}

/* ナビの文字は折り返さない */
.nav-menu a {
  white-space: nowrap;
}

/* ボタンテキストは折り返さない */
.hero-btn, .btn-white, .btn-outline-w, .fixed-cta-btn,
.store-map-btn, .btn-submit {
  white-space: nowrap;
  word-break: keep-all;
}

/* フッターリンクは折り返さない */
.footer-links a {
  white-space: nowrap;
}
