:root{
  --kinari:#F7F4EF;      /* 生成 */
  --kinari-deep:#F0EBE1;
  --kinari-dark:#E5DECF; /* 生成の影 */
  --sumi:#26241F;        /* 墨 */
  --sumi-light:#6B6862;  /* 薄墨 */
  --shu:#B5482A;         /* 朱 */
  --shu-soft:#E0704F;
  --serif:"Shippori Mincho B1", serif;
  --sans:"Noto Sans JP", sans-serif;
  --en:"EB Garamond", serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{color:var(--sumi);font-family:var(--sans);font-weight:300;line-height:2;letter-spacing:.05em;font-size:15px;overflow-x:hidden;
  background-color:var(--kinari);
  background-image:
    radial-gradient(1100px 700px at 88% -8%, rgba(231,219,194,.55) 0%, rgba(231,219,194,0) 60%),
    radial-gradient(950px 680px at -8% 42%, rgba(236,228,210,.6) 0%, rgba(236,228,210,0) 55%),
    radial-gradient(800px 600px at 60% 110%, rgba(231,219,194,.4) 0%, rgba(231,219,194,0) 55%),
    radial-gradient(rgba(38,36,31,.05) 1px, transparent 1.4px);
  background-size:auto,auto,auto,30px 30px;
  background-attachment:fixed,fixed,fixed,fixed}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:60;opacity:.5;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='0.05'/%3E%3C/svg%3E")}

/* ---------- 共通 ---------- */
.fade{opacity:0;transform:translateY(26px);transition:opacity 1.3s ease,transform 1.3s ease}
.fade.show{opacity:1;transform:none}
section{padding:160px 24px;position:relative;overflow:hidden}
.inner{max-width:960px;margin:0 auto;position:relative;z-index:2}
.sec-head{display:flex;align-items:baseline;gap:24px;margin-bottom:10px}
.sec-no{font-family:var(--en);font-style:italic;font-size:15px;color:var(--shu);letter-spacing:.1em}
.sec-label{font-family:var(--en);font-size:14px;letter-spacing:.34em;color:var(--shu);display:flex;align-items:center;gap:18px}
.sec-label::after{content:"";flex:0 0 64px;height:1px;background:var(--shu)}
.sec-label-jp{font-size:12px;color:var(--sumi-light);letter-spacing:.26em;margin-bottom:60px}
h2{font-family:var(--serif);font-weight:700;font-size:clamp(26px,3.8vw,38px);letter-spacing:.12em;line-height:1.85;margin-bottom:48px}
.to{color:var(--shu)}
.wm{position:absolute;font-family:var(--serif);font-weight:800;font-size:min(44vw,460px);line-height:1;color:transparent;-webkit-text-stroke:1.5px rgba(38,36,31,.075);pointer-events:none;user-select:none;z-index:1;will-change:transform}

/* ---------- ヘッダー ---------- */
header{position:fixed;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:20px;padding:26px 40px;z-index:40;transition:background .4s,padding .4s,box-shadow .4s}
header.scrolled{background:rgba(247,244,239,.82);backdrop-filter:blur(12px);padding:14px 40px;box-shadow:0 1px 0 rgba(38,36,31,.07)}
.logo{text-decoration:none;color:var(--sumi);line-height:1.3}
.logo-en{display:block;font-family:var(--en);font-weight:500;font-size:22px;letter-spacing:.34em}
.logo-jp{display:block;font-size:9px;color:var(--sumi-light);letter-spacing:.3em}
nav{display:flex;gap:32px}
nav a{text-decoration:none;color:var(--sumi);text-align:center;line-height:1.5;position:relative}
nav a .en-l{display:block;font-family:var(--en);font-size:14px;letter-spacing:.12em}
nav a .jp-l{display:block;font-size:10px;color:var(--sumi-light);letter-spacing:.1em}
nav a::after{content:"";position:absolute;left:0;bottom:-6px;width:100%;height:1px;background:var(--shu);transform:scaleX(0);transform-origin:left;transition:transform .35s}
nav a:hover::after{transform:scaleX(1)}
nav a.join .en-l{color:var(--shu)}
@media(max-width:1100px){nav{display:none}}

/* ---------- ヒーロー ---------- */
.hero{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;padding:0 24px;overflow:hidden;
  background:radial-gradient(circle at 72% 48%, rgba(236,226,206,.7), rgba(247,244,239,0) 62%)}
.hero-circles{position:absolute;top:50%;right:-16vmin;transform:translateY(-50%);width:92vmin;height:92vmin;z-index:1}
.rot-slow{animation:spin 150s linear infinite;transform-origin:400px 400px}
.rot-mid{animation:spin 70s linear infinite reverse;transform-origin:400px 400px}
.rot-text{animation:spin 90s linear infinite;transform-origin:400px 400px}
.orbit{animation:spin 34s linear infinite;transform-origin:400px 400px}
@keyframes spin{to{transform:rotate(360deg)}}
.hero-word{position:absolute;left:3vw;bottom:4vh;font-family:var(--en);font-style:italic;font-size:min(19vw,210px);line-height:1;color:transparent;-webkit-text-stroke:1px rgba(181,72,42,.22);letter-spacing:.02em;z-index:1;pointer-events:none}
.hero-copy{writing-mode:vertical-rl;font-family:var(--serif);font-weight:700;font-size:clamp(30px,4.8vw,50px);letter-spacing:.28em;line-height:2.05;position:relative;z-index:2}
.hero-copy .line{display:inline-block;white-space:nowrap;opacity:0;animation:rise 1.6s cubic-bezier(.2,.7,.3,1) forwards}
.hero-copy .line:nth-child(2){animation-delay:.5s}
@keyframes rise{from{opacity:0;transform:translateX(28px)}to{opacity:1;transform:none}}
.to-stamp{display:inline-flex;align-items:center;justify-content:center;width:1.22em;height:1.22em;line-height:1;letter-spacing:0;text-indent:0;background:var(--shu);color:var(--kinari);border-radius:50%;margin:.1em 0;transform:rotate(-3deg);opacity:0;animation:stamp .5s cubic-bezier(.3,1.6,.5,1) 1.7s forwards}
@keyframes stamp{from{opacity:0;transform:rotate(-3deg) scale(1.7)}to{opacity:1;transform:rotate(-3deg) scale(1)}}
.hero-note{position:absolute;bottom:46px;right:40px;font-family:var(--en);font-style:italic;font-size:14px;color:var(--sumi-light);letter-spacing:.08em;opacity:0;animation:riseup 1.4s ease 2.2s forwards;z-index:2}
@keyframes riseup{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.scroll-hint{position:absolute;bottom:0;left:50%;width:1px;height:84px;background:var(--sumi-light);animation:drop 2.6s ease infinite;transform-origin:top;z-index:2}
@keyframes drop{0%{transform:scaleY(0)}55%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}

/* ---------- マニフェスト ---------- */
.manifesto{text-align:center}
.manifesto .frame{border:1px solid var(--kinari-dark);background:rgba(247,244,239,.55);padding:clamp(40px,7vw,90px) clamp(20px,6vw,80px);position:relative}
.manifesto .frame::before,.manifesto .frame::after{content:"";position:absolute;width:14px;height:14px;border-color:var(--shu);border-style:solid}
.manifesto .frame::before{top:-1px;left:-1px;border-width:1px 0 0 1px}
.manifesto .frame::after{bottom:-1px;right:-1px;border-width:0 1px 1px 0}
.manifesto p{font-family:var(--serif);font-size:clamp(15px,2.2vw,19px);letter-spacing:.15em;line-height:2.8;margin-bottom:2.4em}
.manifesto p:last-child{margin-bottom:0}
.manifesto .strong{font-size:clamp(19px,3vw,26px);font-weight:700}

/* ---------- 信条 ---------- */
.believe{background:linear-gradient(rgba(240,235,225,0),rgba(229,222,207,.55))}
.believe-list{list-style:none}
.believe-list li{display:flex;gap:34px;align-items:flex-start;padding:36px 14px;position:relative;cursor:default}
.believe-list li::before{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--kinari-dark)}
.believe-list li::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--shu);transform:scaleX(0);transform-origin:left;transition:transform .6s cubic-bezier(.2,.7,.3,1)}
.believe-list li:hover::after{transform:scaleX(1)}
.believe-list .num{font-family:var(--en);font-style:italic;font-size:26px;color:var(--shu);flex:0 0 2.2em;line-height:1.4;transition:transform .4s}
.believe-list li:hover .num{transform:translateX(6px)}
.believe-list .bd{flex:1}
.believe-list .t{display:block;font-family:var(--serif);font-weight:700;font-size:19px;letter-spacing:.1em;line-height:1.8}
.believe-list .d{display:block;font-size:13px;color:var(--sumi-light);line-height:1.9;margin-top:8px}
.believe-list .tag{font-family:var(--en);font-size:11px;letter-spacing:.24em;color:var(--sumi-light);opacity:0;transition:opacity .4s;flex:none;align-self:center}
.believe-list li:hover .tag{opacity:1}
@media(max-width:820px){.believe-list li{gap:18px}.believe-list .tag{display:none}}

/* ---------- 価値 ---------- */
.value-wrap{display:flex;gap:70px;align-items:center;flex-wrap:wrap}
.value-fig{flex:0 0 380px;margin:0 auto;position:relative}
.value-list{flex:1 1 300px;list-style:none}
.value-list li{padding:22px 4px;border-bottom:1px solid var(--kinari-dark);position:relative;transition:padding-left .4s}
.value-list li::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--shu);position:absolute;left:-14px;top:34px;transform:scale(0);transition:transform .35s,left .35s}
.value-list li:hover{padding-left:20px}
.value-list li:hover::before{transform:scale(1);left:0}
.value-list .en-t{font-family:var(--en);font-size:18px;letter-spacing:.14em;display:block;line-height:1.6}
.value-list .jp-t{font-size:13px;color:var(--sumi-light);display:block;line-height:1.8}

/* ---------- 帯 ---------- */
.marquee{background:var(--shu);color:var(--kinari);overflow:hidden;padding:18px 0}
.marquee .track{display:flex;white-space:nowrap;animation:slide 38s linear infinite;width:max-content}
.marquee span{font-family:var(--serif);font-size:15px;letter-spacing:.22em;padding-right:3em}
.marquee .en{font-family:var(--en);font-style:italic;letter-spacing:.26em}
@keyframes slide{to{transform:translateX(-50%)}}

/* ---------- メッセージ ---------- */
.message{background:var(--sumi);color:var(--kinari);padding:180px 24px}
.message .wm{-webkit-text-stroke:1.5px rgba(247,244,239,.06)}
.message .sec-label-jp{color:rgba(247,244,239,.55)}
.message-flex{display:flex;gap:76px;align-items:flex-start;flex-wrap:wrap}
.message-quote{writing-mode:vertical-rl;font-family:var(--serif);font-weight:700;font-size:clamp(19px,2.6vw,26px);letter-spacing:.22em;line-height:2.3;height:360px;flex:none;color:var(--kinari);position:relative;padding-right:28px}
.message-quote::after{content:"";position:absolute;right:0;top:6px;width:1px;height:88%;background:var(--shu-soft)}
.message-quote .to{color:var(--shu-soft)}
.message-body{flex:1 1 320px;min-width:280px}
.message-body p{font-family:var(--serif);font-size:16px;letter-spacing:.1em;line-height:2.6;margin-bottom:2em;color:rgba(247,244,239,.92)}
.message .more{display:inline-flex;align-items:center;gap:12px;color:var(--kinari);text-decoration:none;font-size:14px;letter-spacing:.18em;border:1px solid rgba(247,244,239,.45);padding:15px 38px;border-radius:2px;position:relative;overflow:hidden;z-index:1}
.message .more::before{content:"";position:absolute;inset:0;background:var(--shu);transform:scaleX(0);transform-origin:left;transition:transform .4s;z-index:-1}
.message .more:hover::before{transform:scaleX(1)}
.message .sig{margin-top:68px;font-family:var(--en);font-size:14px;letter-spacing:.3em;color:rgba(247,244,239,.7);display:flex;align-items:center;gap:18px}
.message .sig::before{content:"";width:48px;height:1px;background:var(--shu-soft)}
@media(max-width:780px){.message-quote{height:260px}}

/* ---------- Join ---------- */
section.join{text-align:center;padding:210px 24px}
.join-badge{width:180px;height:180px;margin:0 auto 52px;position:relative}
.join-badge > svg{width:100%;height:100%;animation:spin 26s linear infinite}
.join-badge .dot{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--shu)}
.join-badge .dot svg{width:34px;height:34px;animation:none}
section.join h2{margin-bottom:32px}
.join-line{display:flex;align-items:center;justify-content:center;gap:20px;font-family:var(--serif);font-size:15px;letter-spacing:.18em;color:var(--sumi-light);margin-bottom:72px}
.join-line::before,.join-line::after{content:"";width:52px;height:1px;background:var(--sumi-light);opacity:.6}
.btn{display:inline-block;border:1px solid var(--shu);color:var(--shu);font-family:var(--serif);font-weight:700;font-size:18px;letter-spacing:.22em;text-decoration:none;padding:24px 80px;border-radius:2px;position:relative;overflow:hidden;z-index:1;transition:color .35s}
.btn::before{content:"";position:absolute;inset:0;background:var(--shu);transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.2,.7,.3,1);z-index:-1}
.btn:hover{color:var(--kinari)}
.btn:hover::before{transform:scaleX(1)}

/* ---------- フッター ---------- */
footer{background:var(--kinari-deep);padding:90px 40px 48px}
.f-top{max-width:960px;margin:0 auto 64px;display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:32px}
.f-mark{font-family:var(--en);font-weight:500;font-size:clamp(28px,4.5vw,40px);letter-spacing:.22em;line-height:1}
.f-tag{font-size:12px;color:var(--sumi-light);letter-spacing:.2em;margin-top:14px}
.f-nav{display:flex;gap:26px}
.f-nav a{color:var(--sumi-light);text-decoration:none;font-family:var(--en);font-size:14px;letter-spacing:.12em}
.f-nav a:hover{color:var(--shu)}
.f-btm{max-width:960px;margin:0 auto;border-top:1px solid var(--kinari-dark);padding-top:28px;display:flex;justify-content:space-between;font-size:11px;color:var(--sumi-light);letter-spacing:.1em;flex-wrap:wrap;gap:10px}

/* ---------- 下層ページ共通 ---------- */
.page-hero{padding:215px 24px 105px;position:relative;overflow:hidden;text-align:center}
.page-hero .sec-label{justify-content:center}
.page-hero .sec-label::before{content:"";flex:0 0 64px;height:1px;background:var(--shu)}
.page-hero h1{font-family:var(--serif);font-weight:700;font-size:clamp(30px,5vw,46px);letter-spacing:.14em;line-height:1.9;margin-top:26px}
.page-hero .hero-jp{font-size:12px;color:var(--sumi-light);letter-spacing:.26em;margin-top:18px}
.page-hero .lead{font-family:var(--serif);font-size:clamp(14px,1.9vw,16px);letter-spacing:.12em;line-height:2.8;color:var(--sumi-light);margin-top:42px}
nav a.cur::after{transform:scaleX(1)}
.next{display:block;text-decoration:none;color:var(--sumi);border-top:1px solid var(--kinari-dark);padding:100px 24px;text-align:center;position:relative;overflow:hidden}
.next .nx-en{font-family:var(--en);font-size:13px;letter-spacing:.32em;color:var(--shu)}
.next .nx-t{display:block;font-family:var(--serif);font-weight:700;font-size:clamp(22px,3.4vw,32px);letter-spacing:.12em;margin-top:20px;transition:color .35s}
.next .nx-q{display:block;font-size:13px;color:var(--sumi-light);margin-top:16px;letter-spacing:.15em}
.next:hover .nx-t{color:var(--shu)}
.spec{width:100%;max-width:640px;margin:0 auto;border-collapse:collapse}
.spec th,.spec td{border-bottom:1px solid var(--kinari-dark);padding:22px 8px;text-align:left;font-size:14px;letter-spacing:.08em;font-weight:400;vertical-align:top}
.spec th{width:9em;color:var(--sumi-light);font-family:var(--serif)}
.b-item{display:flex;gap:54px;align-items:flex-start;padding:96px 0;border-bottom:1px solid var(--kinari-dark)}
.b-item:last-child{border-bottom:none}
.b-item .b-no{font-family:var(--en);font-style:italic;font-size:72px;color:var(--shu);line-height:1;flex:0 0 140px;text-align:right}
.b-item.rev{flex-direction:row-reverse}
.b-item.rev .b-no{text-align:left}
.b-item .b-tag{font-family:var(--en);font-size:12px;letter-spacing:.3em;color:var(--sumi-light);display:block;margin-bottom:14px}
.b-item h2{font-family:var(--serif);font-weight:700;font-size:clamp(22px,3vw,28px);letter-spacing:.12em;line-height:1.9;margin-bottom:24px}
.b-item p{font-size:15px;line-height:2.5;color:var(--sumi);max-width:36em}
@media(max-width:780px){.b-item{flex-direction:column;gap:20px;padding:70px 0}.b-item.rev{flex-direction:column}.b-item .b-no{text-align:left;flex:none;font-size:52px}}
.v-item{padding:74px 0;border-bottom:1px solid var(--kinari-dark);display:flex;gap:48px;align-items:baseline;flex-wrap:wrap}
.v-item:last-child{border-bottom:none}
.v-item .v-head{flex:0 0 320px}
.v-item .v-en{font-family:var(--en);font-size:27px;letter-spacing:.1em;line-height:1.4}
.v-item .v-jp{font-family:var(--serif);font-weight:700;font-size:17px;letter-spacing:.14em;display:block;margin-top:10px}
.v-item .v-no{font-family:var(--en);font-style:italic;font-size:15px;color:var(--shu);display:block;margin-bottom:10px}
.v-item p{flex:1;min-width:260px;font-size:14px;line-height:2.4;color:var(--sumi-light)}
.fit-wrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:30px;text-align:left}
.fit{border:1px solid var(--kinari-dark);background:rgba(247,244,239,.6);padding:42px 38px}
.fit h2{font-family:var(--serif);font-weight:700;font-size:17px;letter-spacing:.14em;margin-bottom:22px;display:flex;align-items:center;gap:12px}
.fit h2::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--shu)}
.fit ul{list-style:none}
.fit li{padding:12px 0 12px 22px;position:relative;font-size:14px;line-height:2;border-bottom:1px dashed var(--kinari-dark)}
.fit li:last-child{border-bottom:none}
.fit li::before{content:"";position:absolute;left:2px;top:1.45em;width:6px;height:6px;border-radius:50%;background:var(--shu)}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:30px;text-align:left}
.step{border-top:2px solid var(--shu);padding:26px 6px 0}
.step .s-no{font-family:var(--en);font-style:italic;color:var(--shu);font-size:24px}
.step h2{font-family:var(--serif);font-weight:700;font-size:17px;letter-spacing:.12em;margin:10px 0 12px}
.step p{font-size:13px;color:var(--sumi-light);line-height:2.1}
.form{max-width:560px;margin:0 auto;text-align:left}
.form label{display:block;font-size:12px;letter-spacing:.22em;color:var(--sumi-light);margin:28px 0 10px;font-family:var(--serif)}
.form input,.form textarea{width:100%;background:rgba(255,255,255,.5);border:1px solid var(--kinari-dark);padding:15px 16px;font-family:var(--sans);font-size:15px;color:var(--sumi);border-radius:2px;transition:border-color .3s}
.form input:focus,.form textarea:focus{outline:none;border-color:var(--shu)}
.form button{margin-top:44px;width:100%;cursor:pointer;background:transparent}
.dark-page header a,.dark-page nav a{color:var(--kinari)}
.dark-page nav a .jp-l,.dark-page .logo-jp{color:rgba(247,244,239,.55)}
.dark-page header.scrolled{background:rgba(38,36,31,.82);box-shadow:0 1px 0 rgba(247,244,239,.08)}
.letter{background:var(--sumi);color:var(--kinari);padding:230px 24px 150px;position:relative;overflow:hidden}
.letter .wm{-webkit-text-stroke:1.5px rgba(247,244,239,.06)}
.letter .sec-label-jp{color:rgba(247,244,239,.55)}
.letter-inner{max-width:620px;margin:0 auto;position:relative;z-index:2}
.letter h1{font-family:var(--serif);font-weight:700;font-size:clamp(24px,3.8vw,34px);letter-spacing:.14em;line-height:2;margin:34px 0 80px}
.letter p{font-family:var(--serif);font-size:clamp(15px,2vw,17px);line-height:3;letter-spacing:.1em;margin-bottom:3.2em;color:rgba(247,244,239,.92)}
.letter .sig{margin-top:90px;font-family:var(--en);font-size:14px;letter-spacing:.3em;color:rgba(247,244,239,.7);display:flex;align-items:center;gap:18px}
.letter .sig::before{content:"";width:48px;height:1px;background:var(--shu-soft)}
.letter .next{border-top:1px solid rgba(247,244,239,.15);color:var(--kinari);margin-top:120px;padding:90px 0 0}
.letter .next .nx-q{color:rgba(247,244,239,.55)}

/* ---------- ロゴ・メニュー ---------- */
.logo-img{display:block;height:24px;width:auto}
.logo .logo-jp{margin-top:7px}
.dark-page .logo-img{content:url("../img/logo-white-crop.png");height:30px;margin-left:-8px}
.menu-btn{display:none;flex-direction:column;justify-content:center;gap:7px;background:none;border:none;cursor:pointer;padding:12px 4px;position:relative;z-index:55}
.menu-btn span{display:block;width:28px;height:1.5px;background:var(--sumi);transition:transform .35s ease,opacity .35s}
body.menu-open .menu-btn span:nth-child(1){transform:translateY(4.25px) rotate(45deg)}
body.menu-open .menu-btn span:nth-child(2){transform:translateY(-4.25px) rotate(-45deg)}
@media(max-width:1100px){.menu-btn{display:flex}}
.menu-ov{position:fixed;inset:0;background:rgba(247,244,239,.96);backdrop-filter:blur(10px);z-index:35;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .45s ease}
body.menu-open .menu-ov{opacity:1;pointer-events:auto}
.menu-links{display:flex;flex-direction:column;gap:34px;text-align:center}
.menu-links a{text-decoration:none;color:var(--sumi);opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}
body.menu-open .menu-links a{opacity:1;transform:none}
body.menu-open .menu-links a:nth-child(2){transition-delay:.05s}
body.menu-open .menu-links a:nth-child(3){transition-delay:.1s}
body.menu-open .menu-links a:nth-child(4){transition-delay:.15s}
body.menu-open .menu-links a:nth-child(5){transition-delay:.2s}
body.menu-open .menu-links a:nth-child(6){transition-delay:.25s}
.menu-links .m-en{display:block;font-family:var(--serif);font-weight:700;font-size:24px;letter-spacing:.16em}
.menu-links .m-jp{display:block;font-size:11px;color:var(--sumi-light);letter-spacing:.24em;margin-top:6px}
.dark-page .menu-btn span{background:var(--kinari)}
.dark-page .menu-ov{background:rgba(38,36,31,.96)}
.dark-page .menu-links a{color:var(--kinari)}
.dark-page .menu-links .m-jp{color:rgba(247,244,239,.55)}
.form input[type="file"]{padding:12px 14px;font-size:13px;color:var(--sumi-light);cursor:pointer}
.form input[type="file"]::file-selector-button{font-family:var(--sans);font-size:12px;letter-spacing:.1em;color:var(--shu);background:transparent;border:1px solid var(--shu);border-radius:2px;padding:7px 16px;margin-right:14px;cursor:pointer}
.form .req{color:var(--shu);font-size:11px;margin-left:6px}

.f-logo{display:block;height:30px;width:auto}

body.menu-open{overflow:hidden}
.pfall{animation:pfall 30s linear infinite}
@keyframes pfall{to{transform:translateY(320px)}}

/* ---------- モバイル微調整 ---------- */
@media(max-width:680px){
  .f-top{flex-direction:column;align-items:flex-start;gap:30px}
  .f-nav{flex-wrap:wrap;gap:14px 20px}
  .f-btm{flex-direction:column;gap:6px;align-items:flex-start}
  footer{padding:48px 24px}
  section{padding:110px 20px}
}
/* ---------- Contact Form 7 ---------- */
.form .wpcf7 p{margin:0}
.form .wpcf7-form-control-wrap{display:block;margin-top:10px}
.form input[type="submit"]{display:inline-block;width:100%;border:1px solid var(--shu);color:var(--shu);background:transparent;font-family:var(--serif);font-weight:700;font-size:17px;letter-spacing:.22em;padding:20px 0;border-radius:2px;cursor:pointer;margin-top:44px;transition:background .35s,color .35s}
.form input[type="submit"]:hover{background:var(--shu);color:var(--kinari)}
.form .wpcf7-spinner{display:block;margin:10px auto 0}
.form .wpcf7-not-valid-tip{color:var(--shu);font-size:12px;letter-spacing:.1em;margin-top:6px;display:block}
.form .wpcf7-response-output{border:1px solid var(--shu)!important;color:var(--sumi);font-size:13px;letter-spacing:.1em;padding:16px 20px!important;margin:32px 0 0!important;line-height:2}
