/* ===== 菊地酵素 共通スタイル ===== */
:root{
  --ink:#1a1a1a;
  --gray:#767066;
  --gray-light:#a8a19458;
  --line:#e4e1da;
  --bg:#ffffff;
  --bg-soft:#f7f5f1;
  --field:#ececec;
  --footer-bg:#141312;
  --footer-text:#c7c2b8;
  --serif:"Shippori Mincho","Noto Serif JP",serif;
  --sans:"Noto Sans JP","Hiragino Sans",sans-serif;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--sans);
  color:var(--ink);
  background:var(--bg);
  line-height:1.95;
  font-size:15px;
  font-weight:300;
  letter-spacing:.02em;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:var(--ink);text-decoration:none;}
h1,h2,h3,h4{
  font-family:var(--serif);
  font-weight:500;
  margin:0;
  letter-spacing:.02em;
}
.wrap{max-width:1180px;margin:0 auto;padding:0 40px;}
@media (max-width:700px){.wrap{padding:0 22px;}}

/* header */
.site-header{
  border-bottom:1px solid var(--line);
  background:var(--bg);
  position:sticky;top:0;z-index:50;
}
.anchor-target{scroll-margin-top:104px;}
@media (max-width:700px){.anchor-target{scroll-margin-top:88px;}}
.header-inner{
  max-width:1180px;margin:0 auto;padding:20px 40px;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
}
@media (max-width:700px){.header-inner{padding:16px 22px;}}
.logo{display:flex;align-items:center;gap:10px;color:var(--ink);}
.logo-mark{color:var(--ink);flex-shrink:0;display:block;object-fit:contain;}
.logo-full{height:42px;width:auto;display:block;}
.logo-full-footer{height:128px;width:auto;display:block;}
.logo-text{font-family:var(--serif);font-size:15px;letter-spacing:.06em;font-weight:600;line-height:1.3;}
.logo-text small{display:block;font-family:var(--sans);font-size:9.5px;color:var(--gray);font-weight:400;letter-spacing:.04em;margin-top:2px;}
.main-nav{display:flex;gap:28px;font-size:12.5px;letter-spacing:.03em;}
.main-nav a{color:var(--ink);white-space:nowrap;padding-bottom:2px;border-bottom:1px solid transparent;}
.main-nav a:hover{border-color:var(--ink);}
.lang{font-size:12px;letter-spacing:.05em;color:var(--ink);flex-shrink:0;position:relative;}
.lang summary{list-style:none;cursor:pointer;color:var(--ink);letter-spacing:.05em;}
.lang summary::-webkit-details-marker{display:none;}
.lang summary::after{content:"⌵";margin-left:5px;font-size:11px;}
.lang .lang-menu{
  position:absolute;right:0;top:24px;min-width:130px;
  background:#fff;border:1px solid var(--line);z-index:80;
  box-shadow:0 12px 30px rgba(20,18,15,.1);
}
.lang .lang-menu a{
  display:block;padding:11px 18px;font-size:12.5px;color:var(--ink);letter-spacing:.03em;
}
.lang .lang-menu a:hover{background:var(--bg-soft);}
.lang.current a{font-weight:600;}
.lang-footer summary{color:#c7c2b8;}
.lang-footer summary::after{color:#c7c2b8;}
.lang-footer .lang-menu{top:auto;bottom:24px;}

.header-right{display:flex;align-items:center;gap:24px;}

.mobile-nav{display:none;position:relative;}
.mobile-nav summary{
  list-style:none;cursor:pointer;font-size:22px;line-height:1;color:var(--ink);
}
.mobile-nav summary::-webkit-details-marker{display:none;}
.mobile-nav-menu{
  position:absolute;right:0;top:34px;min-width:200px;
  background:#fff;border:1px solid var(--line);z-index:80;
  box-shadow:0 12px 30px rgba(20,18,15,.1);
}
.mobile-nav-menu a{
  display:block;padding:14px 20px;font-size:14px;color:var(--ink);
  border-bottom:1px solid var(--line);letter-spacing:.02em;
}
.mobile-nav-menu a:last-child{border-bottom:none;}
.mobile-nav-menu a:hover{background:var(--bg-soft);}

@media (max-width:900px){
  .main-nav{display:none;}
  .mobile-nav{display:block;}
}

/* breadcrumb */
.breadcrumb{padding:26px 0 0;}
.breadcrumb .wrap{
  font-size:11px;letter-spacing:.15em;color:var(--gray);text-align:center;
}
.breadcrumb a.wrap{display:block;text-decoration:none;}
.breadcrumb a.wrap:hover{color:var(--ink);}

/* page title */
.page-title{padding:36px 0 60px;}
.page-title h1{font-size:clamp(28px,3.4vw,38px);}

/* sections */
.section{padding:0 0 110px;background:var(--bg);position:relative;}
.section-inner + .section-inner{margin-top:120px;}
.eyebrow-en{font-size:11px;letter-spacing:.2em;color:var(--gray);margin-bottom:14px;}
.h2{font-size:clamp(20px,2.4vw,26px);margin-bottom:22px;}
.lead{color:var(--gray);font-size:14.5px;max-width:640px;font-weight:300;}

/* photo/text alternating row */
.row{
  display:grid;grid-template-columns:1.05fr .95fr;gap:70px;align-items:center;margin-bottom:100px;
}
.row.rev{grid-template-columns:.95fr 1.05fr;}
.row.rev .ph{order:1;}
.row.rev .row-text{order:2;}
@media (max-width:820px){
  .row,.row.rev{grid-template-columns:1fr;}
  .row.rev .ph{order:0;}
  .row.rev .row-text{order:0;}
}
.row-text .lead{max-width:520px;}

/* photo blocks (placeholder or real) */
.ph{
  background:var(--bg-soft);
  border:1px dashed var(--gray-light);
  display:flex;align-items:center;justify-content:center;
  color:#9c9482;font-size:12px;letter-spacing:.06em;text-align:center;
  min-height:280px;
  overflow:hidden;
}
.ph.has-img{border:none;}
.ph img{width:100%;height:100%;object-fit:cover;display:block;}
.ph video{width:100%;height:100%;object-fit:cover;display:block;}
.ph.illust{background:#fff;}
.ph.illust img{width:62%;height:62%;object-fit:contain;}

/* pull quote */
.pull{font-size:clamp(19px,2.4vw,25px);line-height:1.9;margin:8px 0 26px;}

/* season blocks */
.season-row{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center;margin-bottom:70px;}
.season-row.rev{grid-template-columns:.9fr 1.1fr;}
.season-row.rev .kanji-big{order:1;}
.season-row.rev .season-text{order:2;}
@media (max-width:820px){
  .season-row,.season-row.rev{grid-template-columns:1fr;}
  .season-row.rev .kanji-big{order:0;}
}
.kanji-big{
  text-align:center;
  font-family:var(--serif);
  font-size:clamp(28px,3.2vw,42px);
  font-weight:600;
  color:var(--ink);
  line-height:1;
  letter-spacing:.02em;
}
.season-text p{font-size:15px;line-height:2;margin:0;}

/* divider poem */
.poem-divider{text-align:center;padding:70px 0;}
.poem-divider .rule{width:1px;height:60px;background:var(--line);margin:0 auto 34px;}
.poem-divider p{font-family:var(--serif);font-size:16px;line-height:2.1;color:var(--ink);}

/* numbered feature list */
.feat-list{margin-top:10px;}
.feat{padding:44px 0;border-top:1px solid var(--line);}
.feat:first-child{border-top:1px solid var(--line);margin-top:40px;}
.feat-icon{width:38px;height:38px;margin-bottom:20px;color:var(--ink);opacity:.82;}
.feat-icon svg{width:100%;height:100%;display:block;stroke:currentColor;fill:none;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;}
.feat-num{font-family:var(--serif);font-size:13px;color:var(--gray);letter-spacing:.1em;margin-bottom:10px;}
.feat h3{font-size:17px;margin-bottom:12px;font-weight:600;}
.feat p{color:var(--gray);font-size:14px;max-width:680px;margin:0;}

/* profile */
.profile-row{display:flex;gap:22px;align-items:flex-start;margin-bottom:26px;}
.profile-row .ph{width:96px;height:96px;min-height:96px;flex-shrink:0;border-radius:50%;font-size:10px;}
.profile-row h4{font-size:14.5px;margin-bottom:4px;font-weight:600;}
.profile-row .role{font-size:12px;color:var(--gray);margin-bottom:6px;}
.profile-row .kana{font-size:12px;color:var(--gray);}

/* faq */
.faq-item{border-top:1px solid var(--line);padding:30px 0;}
.faq-item:last-child{border-bottom:1px solid var(--line);}
.faq-q{
  display:flex;gap:18px;align-items:flex-start;cursor:pointer;font-size:15px;font-weight:500;
  list-style:none;
}
.faq-q::-webkit-details-marker{display:none;}
.faq-q .mark{font-family:var(--serif);font-size:16px;color:var(--ink);flex-shrink:0;}
.faq-q .chev{margin-left:auto;font-size:13px;color:var(--gray);transform:rotate(0deg);transition:.2s;flex-shrink:0;}
details[open] .chev{transform:rotate(180deg);}
.faq-a{display:flex;gap:18px;margin-top:20px;font-size:14px;color:var(--gray);line-height:2;}
.faq-a .mark{font-family:var(--serif);font-size:16px;color:var(--ink);flex-shrink:0;}

/* shop card */
.shop-card{display:grid;grid-template-columns:1fr 1.1fr;gap:0;border:1px solid var(--line);}
@media (max-width:780px){.shop-card{grid-template-columns:1fr;}}
.shop-card .ph{min-height:100%;border:none;}
.shop-info{padding:38px;}
.shop-info h4{font-size:16px;margin-bottom:16px;}
.shop-info p{font-size:13.5px;color:var(--gray);margin:5px 0;}

/* buttons */
.btn{
  display:inline-block;background:var(--ink);color:#fff;
  padding:16px 44px;font-size:13px;letter-spacing:.1em;font-weight:500;
  border:1px solid var(--ink);
}
.btn:hover{background:#000;}
.btn.outline{background:transparent;color:var(--ink);}

/* home teaser cards */
.teasers{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:60px;}
@media (max-width:780px){.teasers{grid-template-columns:1fr;}}
.teaser{background:#fff;padding:44px 34px;}
.teaser .ph{height:170px;margin-bottom:24px;}
.teaser .eyebrow-en{margin-bottom:8px;}
.teaser h3{font-size:16px;margin-bottom:10px;}
.teaser p{font-size:13px;color:var(--gray);margin:0 0 16px;}
.teaser .more{font-size:12px;letter-spacing:.06em;border-bottom:1px solid var(--ink);padding-bottom:2px;}

/* note strip */
.note-strip{background:var(--bg-soft);border-bottom:1px solid var(--line);padding:13px 0;}
.note-strip .wrap{display:flex;align-items:center;justify-content:center;gap:10px;font-size:12.5px;color:var(--gray);letter-spacing:.02em;text-align:center;flex-wrap:wrap;}
.note-strip a{color:var(--ink);border-bottom:1px solid var(--ink);padding-bottom:1px;font-weight:500;}
.note-strip a:hover{opacity:.7;}

/* hero */
.hero{text-align:center;}
.hero .eyebrow-en{margin-bottom:26px;}
.hero h1{font-size:clamp(26px,3.6vw,40px);margin-bottom:34px;line-height:1.7;}
.hero p{color:var(--gray);max-width:560px;margin:0 auto 54px;font-size:14.5px;}
.hero-intro{padding:72px 0 36px;}

/* full-screen hero slideshow */
.hero-full{position:relative;display:flex;flex-direction:column;padding:0;}
.hero-top{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;z-index:2;padding:110px 24px 60px;}
.hero-bg{position:fixed;inset:0;z-index:-2;}
.hero-bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;animation:heroSlide 20s infinite;}
.hero-bg img:nth-child(1){animation-delay:0s;}
.hero-bg img:nth-child(2){animation-delay:5s;}
.hero-bg img:nth-child(3){animation-delay:10s;}
.hero-bg img:nth-child(4){animation-delay:15s;}
@keyframes heroSlide{
  0%{opacity:0;}
  3%{opacity:1;}
  22%{opacity:1;}
  27%{opacity:0;}
  100%{opacity:0;}
}
@media (prefers-reduced-motion: reduce){
  .hero-bg img{animation:none;opacity:0;}
  .hero-bg img:nth-child(1){opacity:1;}
}
.hero-overlay{position:fixed;inset:0;background:rgba(17,16,14,.34);z-index:-1;}
.hero-content{position:relative;z-index:2;padding:60px 24px 120px;}
.hero-content .eyebrow-en{color:#fff;opacity:.9;}
.hero-content h1{color:#fff;}
.hero-content p{color:rgba(255,255,255,.88);}
.hero-content .btn{background:#fff;color:var(--ink);border-color:#fff;}
.hero-content .btn:hover{background:rgba(255,255,255,.85);}
.hero-content .stats{margin-top:90px;}
.hero-content .stat b{color:#fff;}
.hero-content .stat span{color:rgba(255,255,255,.75);}

/* centered logo + tagline over hero photo */
.hero-center{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:28px;}
.hero-logo-mark{width:84px;height:auto;display:block;filter:drop-shadow(0 2px 14px rgba(0,0,0,.3));}
.hero-center .hero-tagline{writing-mode:vertical-rl;text-orientation:mixed;color:#fff !important;font-family:var(--serif);font-size:22px;font-weight:600;letter-spacing:.14em;line-height:2;margin:0 auto !important;max-width:none !important;height:auto;text-align:start;text-shadow:0 2px 14px rgba(0,0,0,.35);}
.hero-center .hero-tagline.hero-tagline-h{writing-mode:horizontal-tb;font-size:16px;letter-spacing:.04em;line-height:1.8;text-align:center;max-width:340px !important;}
@media (max-width:600px){
  .hero-logo-mark{width:66px;}
  .hero-center .hero-tagline{font-size:18px;}
}

.scroll-cue{position:absolute;left:50%;bottom:32px;transform:translateX(-50%);z-index:2;color:#fff;font-size:10.5px;letter-spacing:.18em;display:flex;flex-direction:column;align-items:center;gap:10px;opacity:.85;}
.scroll-cue span{width:1px;height:32px;background:rgba(255,255,255,.75);display:block;animation:scrollCue 1.8s ease-in-out infinite;}
@keyframes scrollCue{
  0%{transform:scaleY(.35);opacity:.3;}
  50%{transform:scaleY(1);opacity:1;}
  100%{transform:scaleY(.35);opacity:.3;}
}

/* stats row */
.stats-section{padding:64px 0 0;}
.stats-section .stats{margin-top:0;}
.stats{display:flex;justify-content:center;gap:70px;margin-top:60px;flex-wrap:wrap;}
.stat{text-align:center;}
.stat b{display:block;font-family:var(--serif);font-size:28px;font-weight:600;}
.stat span{font-size:11.5px;color:var(--gray);letter-spacing:.05em;}

/* contact form */
.form-row{margin-bottom:30px;}
.form-row label{display:block;font-size:13.5px;margin-bottom:10px;font-weight:500;}
.form-row label .req{color:#b5443a;margin-left:4px;}
.form-row input[type=text],.form-row input[type=email],.form-row input[type=tel],.form-row input[type=date],.form-row textarea,.form-row select{
  width:100%;background:var(--field);border:none;padding:14px 16px;font-size:14px;
  font-family:var(--sans);color:var(--ink);border-radius:2px;
}
.form-row textarea{min-height:120px;resize:vertical;}
.form-split{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media (max-width:600px){.form-split{grid-template-columns:1fr;}}
.radio-group{display:flex;gap:28px;flex-wrap:wrap;}
.radio-group label{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:400;margin:0;}
.date-row{display:grid;grid-template-columns:1fr 140px;gap:16px;}
@media (max-width:600px){.date-row{grid-template-columns:1fr 1fr;}}
.privacy-line{text-align:center;font-size:13px;color:var(--gray);margin:40px 0 20px;}
.privacy-check{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:32px;font-size:13.5px;}
.submit-wrap{text-align:center;}
.submit-wrap .btn{width:100%;max-width:640px;text-align:center;}
.form-note{text-align:center;font-size:12.5px;color:var(--gray);margin-top:26px;}

/* footer */
.site-footer{background:var(--footer-bg);color:var(--footer-text);padding:70px 0 0;margin-top:0;}
.footer-inner{
  max-width:1180px;margin:0 auto;padding:0 40px 60px;
  display:flex;justify-content:space-between;gap:60px;flex-wrap:wrap;
}
@media (max-width:700px){.footer-inner{padding:0 22px 50px;}}
.footer-brand{display:flex;align-items:center;gap:14px;}
.footer-brand .logo-mark{color:#efe9db;}
.footer-brand div{font-family:var(--serif);font-size:16px;color:#efe9db;letter-spacing:.06em;line-height:1.5;}
.footer-brand small{font-family:var(--sans);font-size:11px;color:#8f887a;letter-spacing:.06em;}
.footer-links{display:flex;gap:56px;flex-wrap:wrap;}
.footer-links div{display:flex;flex-direction:column;gap:14px;}
.footer-links a{color:var(--footer-text);font-size:12.5px;letter-spacing:.02em;}
.footer-links a:hover{color:#fff;}
.footer-bottom{
  border-top:1px solid #2b2924;padding:22px 40px;
  display:flex;justify-content:space-between;font-size:11.5px;color:#8f887a;flex-wrap:wrap;gap:10px;
  max-width:1180px;margin:0 auto;
}
.footer-bottom a{color:#8f887a;}
@media (max-width:700px){.footer-bottom{padding:22px 22px;justify-content:center;text-align:center;}}

/* scroll-in reveal animation */
.js .reveal{
  opacity:0;
  transform:translateY(30px);
  transition:opacity .9s cubic-bezier(.2,.7,.3,1), transform .9s cubic-bezier(.2,.7,.3,1);
  will-change:opacity, transform;
}
.js .reveal.is-visible{opacity:1;transform:none;}
.teasers .teaser.reveal:nth-child(2){transition-delay:.12s;}
.teasers .teaser.reveal:nth-child(3){transition-delay:.24s;}
@media (prefers-reduced-motion: reduce){
  .js .reveal{opacity:1;transform:none;transition:none;}
}

/* ===== interactive motion: buttons, links, cards, dropdowns ===== */

/* buttons */
.btn{transition:background .25s ease, transform .15s ease, box-shadow .25s ease;}
.btn:active{transform:scale(.97);}
@media (hover:hover) and (pointer:fine){
  .btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(20,18,15,.18);}
  .hero-content .btn:hover{box-shadow:0 10px 26px rgba(0,0,0,.35);}
}

/* "詳しく見る →" style links */
.more{display:inline-block;transition:transform .25s ease;}
.more:active{opacity:.7;}
@media (hover:hover) and (pointer:fine){
  .more:hover{transform:translateX(4px);}
}

/* home teaser cards */
.teaser{transition:transform .3s ease, box-shadow .3s ease;}
.teaser:active{opacity:.9;}
@media (hover:hover) and (pointer:fine){
  .teaser:hover{transform:translateY(-6px);box-shadow:0 18px 34px rgba(20,18,15,.10);position:relative;z-index:1;}
  .teaser:hover .more{transform:translateX(4px);}
}

/* shop card */
.shop-card{transition:box-shadow .3s ease, transform .3s ease;}
@media (hover:hover) and (pointer:fine){
  .shop-card:hover{box-shadow:0 18px 34px rgba(20,18,15,.10);transform:translateY(-4px);}
}

/* numbered feature rows */
.feat{transition:background .3s ease, padding .3s ease, margin .3s ease;}
@media (hover:hover) and (pointer:fine){
  .feat:hover{background:var(--bg-soft);padding-left:20px;padding-right:20px;margin-left:-20px;margin-right:-20px;}
}

/* founder profile rows */
.profile-row{transition:transform .3s ease;}
@media (hover:hover) and (pointer:fine){
  .profile-row:hover{transform:translateX(6px);}
}

/* faq question row */
.faq-q{transition:color .2s ease;}
@media (hover:hover) and (pointer:fine){
  .faq-q:hover{color:var(--gray);}
  .faq-q:hover .chev{color:var(--ink);}
}

/* faq answer — animated open/close (driven by reveal.js) */
.faq-a{overflow:hidden;transition:max-height .35s ease, opacity .3s ease, margin-top .35s ease;}

/* nav link underline grows in on hover instead of snapping */
.main-nav a{transition:border-color .25s ease;}

/* lang / mobile-nav dropdown open animation */
.lang[open] .lang-menu,
.mobile-nav[open] .mobile-nav-menu{animation:dropdownIn .18s ease;}
@keyframes dropdownIn{
  from{opacity:0;transform:translateY(-6px);}
  to{opacity:1;transform:translateY(0);}
}

@media (prefers-reduced-motion: reduce){
  .btn:hover,.teaser:hover,.shop-card:hover,.feat:hover,.profile-row:hover,.more:hover{
    transform:none;box-shadow:none;
  }
  .lang[open] .lang-menu,.mobile-nav[open] .mobile-nav-menu{animation:none;}
}
