/* Layout: 竹の「節」で区切る12カラムの誌面。左3カラムは見出しと補足（索引）、右9カラムは本文。
   色は紙・墨・若竹の3つ。珊瑚色は「押してほしい場所」と萌さんの話し言葉だけに使う。 */
:root{
  color-scheme:light;
  --paper:#FAF8F3;
  --paper-2:#F0EDE4;
  --white:#FFFFFF;
  --ink:#1D221F;
  --ink-2:#4C534E;
  --ink-3:#7D847F;
  --rule:#DAD6CB;
  --rule-strong:#1D221F;
  --take:#2E8A55;
  --take-pale:#A9CDB2;
  --coral:#E0573E;
  --coral-ink:#C2412A;
  --pause:#B4621A;
  --f-min:"Shippori Mincho B1","Hiragino Mincho ProN","Yu Mincho",serif;
  --f-goth:"Zen Kaku Gothic New","Hiragino Sans","Yu Gothic",sans-serif;
  --f-voice:"Klee One","Hiragino Maru Gothic ProN","Yu Gothic",sans-serif;
  --fs-s:.8125rem;
  --fs-0:1rem;
  --fs-2:clamp(1.3rem,1.15rem + .6vw,1.6rem);
  --fs-3:clamp(1.6rem,1.3rem + 1.3vw,2.35rem);
  --fs-hero:clamp(2.9rem,1.9rem + 4.6vw,5.6rem);
  --col-gap:clamp(16px,2vw,28px);
  --wrap:1240px;
  --gl:max(20px, env(safe-area-inset-left, 0px));
  --gr:max(20px, env(safe-area-inset-right, 0px));
}
*,*::before,*::after{box-sizing:border-box}
html{overflow-x:clip}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-goth);font-size:var(--fs-0);line-height:1.95;letter-spacing:.04em;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--paper)}
a{color:inherit}
p{margin:0}
h1,h2,h3,h4{margin:0;font-weight:600;line-height:1.5;text-wrap:balance;word-break:auto-phrase}
ul,ol,dl{margin:0;padding:0}
:focus-visible{outline:2px solid var(--take);outline-offset:3px}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-left:var(--gl);padding-right:var(--gr)}
.g{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--col-gap)}
.idx{grid-column:1 / span 3;min-width:0}
.body{grid-column:4 / -1;min-width:0}
.voice{font-family:var(--f-voice);color:var(--coral-ink);font-weight:600;letter-spacing:.06em}
.tcy{text-combine-upright:all}
.nw{white-space:nowrap}
.ib{display:inline-block}
@media (max-width: 900px){
  .g{grid-template-columns:minmax(0,1fr)}
  .idx,.body{grid-column:1 / -1}
}

/* 節（ふし）の印：見出しの頭に置く、竹の節を表す短い横線 */
.node{display:inline-block;width:18px;height:2px;background:var(--take);vertical-align:middle;margin-right:12px;transform:translateY(-2px);transition:width .35s cubic-bezier(.3,.7,.2,1)}

/* ===== header ===== */
.hd{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:var(--paper);border-bottom:1px solid var(--rule)}
.hd .wrap{display:flex;align-items:center;gap:24px;min-height:64px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;min-width:0}
.brand svg{flex:none}
.brand b{font-family:var(--f-min);font-weight:700;font-size:1.0625rem;letter-spacing:.08em;line-height:1.35}
.brand b span{display:inline-block}
.gnav{margin-left:auto;display:flex;align-items:center;gap:28px;font-size:.875rem;font-weight:500;letter-spacing:.12em}
.gnav a{text-decoration:none;padding-block:4px;background:linear-gradient(var(--take),var(--take)) 0 100%/0 1px no-repeat;transition:background-size .3s}
.gnav a:hover,.gnav a[aria-current="page"]{background-size:100% 1px}
.state-chip{display:inline-flex;align-items:center;gap:8px;font-size:.8125rem;font-weight:700;letter-spacing:.08em;text-decoration:none;white-space:nowrap}
.gnav .state-chip{background:none;padding-left:24px;border-left:1px solid var(--rule)}
.state-chip i{width:8px;height:8px;border-radius:50%;flex:none}
.is-paused .state-chip{color:var(--pause)} .is-paused .state-chip i{background:var(--pause)}
.is-open .state-chip{color:var(--take)} .is-open .state-chip i{background:var(--take)}
.menu-btn{display:none;background:none;border:0;color:var(--ink);font:inherit;font-size:.8125rem;font-weight:700;letter-spacing:.14em;padding:10px 0 10px 12px;cursor:pointer}
.hd .state-chip.m{display:none}
@media (max-width: 960px){
  .gnav{display:none}
  .menu-btn{display:block}
  .hd .state-chip.m{display:inline-flex;margin-left:auto}
}
@media (max-width: 520px){.hd .wrap{gap:14px}.brand{gap:10px}.brand b{font-size:.875rem;letter-spacing:.06em}.brand b span{display:block;white-space:nowrap}.menu-btn{white-space:nowrap;letter-spacing:.08em}}
.drawer{position:fixed;inset:0;z-index:70;background:var(--paper);display:none;padding:calc(env(safe-area-inset-top,0px) + 12px) var(--gr) 40px var(--gl);overflow:auto}
.drawer.open{display:block}
.drawer-top{display:flex;justify-content:space-between;align-items:center;min-height:52px;margin-bottom:24px}
.drawer-top .brand b{font-size:.9375rem}
.drawer ul{list-style:none;border-top:1px solid var(--rule-strong)}
.drawer li{border-bottom:1px solid var(--rule)}
.drawer li > a{display:block;padding:16px 0;font-family:var(--f-min);font-size:1.375rem;font-weight:600;letter-spacing:.1em;text-decoration:none}
.drawer .sub{padding:0 0 16px 30px;display:grid;gap:2px}
.drawer .sub a{font-size:.9375rem;padding:5px 0;letter-spacing:.06em;text-decoration:none;color:var(--ink-2)}


/* ===== hero ===== */
.hero{position:relative;border-bottom:1px solid var(--rule);overflow:hidden}
.hero .g{padding-block:clamp(48px,7vw,104px) clamp(48px,6vw,88px);align-items:start}
.hero-meta{grid-column:1 / span 3;font-size:var(--fs-s);color:var(--ink-2);letter-spacing:.08em;border-top:1px solid var(--rule-strong);margin-top:14px}
.hero-meta p{padding:10px 0;border-bottom:1px solid var(--rule);line-height:1.7}
.hero-meta b{display:block;color:var(--ink);font-weight:700;font-size:.875rem}
.hero-main{grid-column:4 / span 7;min-width:0;display:grid;gap:clamp(24px,3vw,36px)}
.hero h1{font-family:var(--f-min);font-weight:800;font-size:var(--fs-hero);line-height:1.22;letter-spacing:.06em}
.hero h1 .k{color:var(--take)}
.hero-lead{max-width:30em;color:var(--ink-2);font-size:1.0625rem;line-height:2.05}
.hero-act{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px}
.stalk-box{position:absolute;top:0;bottom:0;right:max(8px,calc((100% - var(--wrap))/2 + 8px));width:clamp(80px,9vw,140px);pointer-events:none}
.stalk-box svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.stalk-label{position:absolute;right:calc(100% + 4px);top:clamp(48px,7vw,104px);writing-mode:vertical-rl;font-family:var(--f-min);font-size:.9375rem;font-weight:600;letter-spacing:.5em;color:var(--ink)}
.stalk-label small{display:block;font-family:var(--f-goth);font-size:.6875rem;font-weight:500;letter-spacing:.3em;color:var(--ink-3);margin-inline-start:8px}
@media (max-width: 900px){
  .hero-meta{grid-column:1/-1;order:2;margin-top:32px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:16px}
  .hero-main{grid-column:1/-1;padding-right:60px}
  .hero-meta{margin-right:64px}
  .stalk-box{width:70px;right:2px}
  .stalk-label{display:none}
}
@media (max-width: 560px){.hero-meta{grid-template-columns:1fr}.hero-lead{font-size:1rem}}

.btn{display:inline-flex;align-items:center;gap:14px;padding:15px 22px 15px 24px;background:var(--ink);color:var(--paper);text-decoration:none;font-weight:700;font-size:.9375rem;letter-spacing:.1em;border:0;cursor:pointer;font-family:inherit;transition:background .25s}
.btn:hover{background:var(--take)}
.btn .ar{display:inline-block;width:22px;height:1px;background:currentColor;position:relative;transition:width .3s;flex:none}
.btn .ar::after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg)}
.btn:hover .ar{width:30px}
.btn.coral{background:var(--coral)}
.btn.coral:hover{background:var(--coral-ink)}
.tlink{font-weight:700;font-size:.9375rem;letter-spacing:.08em;text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;padding-bottom:3px;transition:color .2s}
.tlink:hover{color:var(--take)}

/* status line */
.status{border-bottom:1px solid var(--rule)}
.status .g{padding-block:18px;align-items:baseline;row-gap:4px}
.status .idx{font-size:var(--fs-s);font-weight:700;letter-spacing:.12em;display:flex;align-items:center;gap:10px}
.status .idx i{width:8px;height:8px;border-radius:50%;background:var(--pause)}
.is-open .status .idx i{background:var(--take)}
.status .body{display:flex;flex-wrap:wrap;gap:6px 28px;align-items:baseline;justify-content:space-between;font-size:.9375rem}

/* ===== sections ===== */
.sec{padding-block:clamp(56px,6.5vw,96px)}
.sec + .sec{border-top:1px solid var(--rule)}
.sec-h{font-size:.9375rem;font-weight:700;letter-spacing:.16em;line-height:1.6;position:sticky;top:96px}
.sec-h small{display:block;margin-top:14px;font-size:var(--fs-s);font-weight:400;color:var(--ink-3);letter-spacing:.06em;line-height:1.9;max-width:16em}
@media (max-width: 900px){.sec-h{position:static;margin-bottom:28px}.sec-h small{max-width:none}}

/* ごあいさつ */
.greet-lead{font-family:var(--f-min);font-weight:600;font-size:clamp(1.3rem,1.1rem + .8vw,1.7rem);line-height:1.85;letter-spacing:.06em;max-width:24em}
.greet-cols{margin-top:clamp(32px,4vw,48px);columns:2 20em;column-gap:clamp(32px,4vw,56px);color:var(--ink-2)}
.greet-cols p{margin-bottom:1.2em;break-inside:avoid-column}
.saying{margin-top:clamp(28px,3vw,40px);padding-top:28px;border-top:1px solid var(--rule);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px 32px;align-items:end}
.saying .voice{font-size:clamp(1.25rem,1.05rem + .9vw,1.75rem);line-height:1.7}
.sig{font-size:var(--fs-s);color:var(--ink-2);letter-spacing:.1em;text-align:right;line-height:1.7}
.sig b{display:block;font-family:var(--f-min);font-size:1.25rem;color:var(--ink);letter-spacing:.24em}
@media (max-width: 640px){.saying{grid-template-columns:1fr}.sig{text-align:left}}

/* これまで */
.career{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,15rem);gap:clamp(28px,4vw,56px);align-items:start}
.rows{list-style:none;border-top:1px solid var(--rule-strong)}
.rows > li{display:grid;grid-template-columns:5.5em minmax(0,1fr);gap:20px;padding:22px 0;border-bottom:1px solid var(--rule)}
.rows .k{font-family:var(--f-min);font-weight:700;font-size:1.0625rem;letter-spacing:.14em}
.rows h3{font-size:1.0625rem;font-weight:700;letter-spacing:.06em}
.rows p{color:var(--ink-2);font-size:.9375rem;line-height:1.9;margin-top:4px}
.photo{margin:0;display:grid;gap:10px}
.photo .ph{aspect-ratio:3/4;max-width:100%;background:var(--paper-2);border:1px solid var(--rule);display:grid;place-items:center;color:var(--ink-3);font-size:var(--fs-s);letter-spacing:.2em}
.photo figcaption{font-size:.75rem;color:var(--ink-3);line-height:1.7}
.facts{margin-top:8px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 24px}
.facts div{padding-top:14px}
.facts dt{font-size:.75rem;color:var(--ink-3);letter-spacing:.12em}
.facts dd{margin:4px 0 0;font-size:.9375rem;line-height:1.8}
@media (max-width: 760px){.career{grid-template-columns:1fr}.photo{max-width:15rem}.facts{grid-template-columns:1fr}.facts div{padding-block:12px;border-bottom:1px solid var(--rule)}}
@media (max-width: 520px){.rows > li{grid-template-columns:1fr;gap:4px}}

/* お手伝いできること：目次として組む */
.toc{list-style:none;border-top:1px solid var(--rule-strong)}
.toc a{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1.2fr) auto;gap:8px 28px;align-items:baseline;padding:26px 0;border-bottom:1px solid var(--rule);text-decoration:none}
.toc h3{font-family:var(--f-min);font-weight:700;font-size:clamp(1.2rem,1.08rem + .5vw,1.45rem);letter-spacing:.06em;line-height:1.5;transition:color .25s;position:relative;padding-left:32px}
.toc h3 .node{position:absolute;left:0;top:.75em;margin:0;transform:none}
.toc a:hover .node{width:24px}
.toc p{color:var(--ink-2);font-size:.9375rem;line-height:1.85}
.toc .term{font-size:var(--fs-s);color:var(--ink-3);letter-spacing:.06em;text-align:right;line-height:1.7;white-space:nowrap}
.toc .term.stop{color:var(--pause);font-weight:700}
.toc a:hover h3{color:var(--take)}
.kinds{margin-top:28px;font-size:.9375rem;color:var(--ink-2);line-height:2.1}
.kinds b{color:var(--ink);font-weight:700;margin-right:14px;letter-spacing:.1em;font-size:var(--fs-s)}
.kinds .main{color:var(--ink);font-weight:700;border-bottom:2px solid var(--take)}
.kinds span + span::before{content:"、";color:var(--ink-3)}
@media (max-width: 760px){
  .toc a{grid-template-columns:minmax(0,1fr);gap:6px;padding:22px 0}
  .toc .term{text-align:left}
  .toc .term:empty{display:none}
}

/* しんならづよい：縦組み */
.tale{background:var(--paper-2);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.tale .g{padding-block:clamp(64px,8vw,112px);align-items:start}
.tale-wrap{display:flex;flex-direction:row;direction:rtl;justify-content:flex-start;gap:clamp(28px,4vw,56px);overflow-x:auto;padding-bottom:6px}
.tale-title{writing-mode:vertical-rl;font-family:var(--f-min);font-weight:800;font-size:clamp(2rem,1.4rem + 2.2vw,3.2rem);letter-spacing:.24em;line-height:1.25;flex:none}
.tale-title small{display:block;font-family:var(--f-goth);font-weight:500;font-size:.8125rem;letter-spacing:.3em;color:var(--ink-3);margin-inline-start:16px}
.tale-text{writing-mode:vertical-rl;height:24em;font-family:var(--f-min);font-weight:500;font-size:1.0625rem;line-height:2.15;letter-spacing:.1em;color:var(--ink);flex:none}
.tale-text p{text-indent:1em}
.tale-text p + p{margin-inline-start:1.2em}
.tale-quote{writing-mode:vertical-rl;flex:none;font-size:clamp(1.3rem,1.05rem + .9vw,1.7rem);line-height:1.9;padding-right:clamp(16px,2vw,28px);border-right:1px solid var(--rule)}
.tale-quote small{display:block;font-family:var(--f-goth);font-weight:400;color:var(--ink-3);font-size:.75rem;letter-spacing:.2em;margin-inline-start:12px}
@media (max-width: 900px){
  .tale-wrap{display:grid;gap:28px;overflow:visible}
  .tale-title,.tale-text,.tale-quote{writing-mode:horizontal-tb;height:auto}
  .tale-title{font-size:2rem;letter-spacing:.12em}
  .tale-title small{margin:8px 0 0}
  .tale-text p + p{margin:1em 0 0}
  .tale-quote{border:0;border-top:1px solid var(--rule);padding:20px 0 0}
  .tale-text{max-width:36em}
  .tale-quote small{margin:8px 0 0}
}

/* ブログ */
.dated{list-style:none;border-top:1px solid var(--rule-strong)}
.dated a{display:grid;grid-template-columns:6.6em 8.5em minmax(0,1fr) 3em;gap:20px;align-items:baseline;padding:18px 0;border-bottom:1px solid var(--rule);text-decoration:none}
.dated time{font-size:.875rem;color:var(--ink-3);font-variant-numeric:tabular-nums;letter-spacing:.04em}
.dated .cat{font-size:var(--fs-s);color:var(--take);font-weight:700;letter-spacing:.06em}
.dated .cat.stop{color:var(--pause)}
.dated .t{font-weight:500;line-height:1.75}
.dated .src{font-size:.75rem;color:var(--ink-3);text-align:right}
.dated a:hover .t{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
.more{margin-top:24px;display:flex;flex-wrap:wrap;gap:12px 32px;align-items:baseline;justify-content:space-between}
.more p{font-size:var(--fs-s);color:var(--ink-3)}
@media (max-width: 640px){.dated a{grid-template-columns:auto 1fr;gap:2px 14px}.dated .t{grid-column:1/-1}.dated .src{display:none}}

/* お問い合わせ */
.ask-h{font-family:var(--f-min);font-weight:700;font-size:var(--fs-3);line-height:1.6;letter-spacing:.06em;max-width:18em}
.ask-p{margin-top:20px;color:var(--ink-2);max-width:36em}
.ask-act{margin-top:32px;display:flex;flex-wrap:wrap;gap:16px 32px;align-items:center}

/* ===== sub pages ===== */
.ph{border-bottom:1px solid var(--rule)}
.ph .g{padding-block:clamp(40px,6vw,84px) clamp(36px,5vw,64px);row-gap:16px;align-items:baseline}
.crumb{font-size:var(--fs-s);color:var(--ink-3);letter-spacing:.08em;line-height:1.9}
.crumb a{text-decoration:none}
.crumb a:hover{color:var(--take)}
.crumb span{margin-inline:6px}
.ph h1{font-family:var(--f-min);font-weight:800;font-size:clamp(2rem,1.5rem + 2.2vw,3.3rem);line-height:1.35;letter-spacing:.06em}
.ph .lead{margin-top:18px;max-width:32em;color:var(--ink-2);font-size:1.0625rem;line-height:2}

.meta{display:grid;border-top:1px solid var(--rule-strong);position:sticky;top:96px}
.meta div{padding:12px 0;border-bottom:1px solid var(--rule)}
.meta dt{font-size:.75rem;color:var(--ink-3);letter-spacing:.12em}
.meta dd{margin:2px 0 0;font-size:.9375rem;font-weight:700;line-height:1.7}
.meta dd.stop{color:var(--pause)}
@media (max-width: 900px){.meta{position:static;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px;margin-bottom:36px}}

.prose{max-width:38em;display:grid;gap:1.3em}
.prose p{color:var(--ink-2)}
.prose h2{font-family:var(--f-min);font-weight:700;font-size:var(--fs-2);color:var(--ink);margin-top:1.4em;line-height:1.6}
.prose h2:first-child{margin-top:0}
.prose .voice{font-size:1.25rem;line-height:1.8;color:var(--coral-ink)}
.bul{list-style:none;border-top:1px solid var(--rule)}
.bul li{padding:12px 0 12px 1.4em;border-bottom:1px solid var(--rule);position:relative;color:var(--ink);line-height:1.8}
.bul li::before{content:"";position:absolute;left:0;top:1.4em;width:10px;height:2px;background:var(--take)}
.bul.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px}
@media (max-width: 640px){.bul.two{grid-template-columns:1fr}}
.num{list-style:none;counter-reset:n;border-top:1px solid var(--rule)}
.num li{counter-increment:n;display:grid;grid-template-columns:2.4em minmax(0,1fr);padding:12px 0;border-bottom:1px solid var(--rule);line-height:1.8}
.num li::before{content:counter(n);font-family:var(--f-min);font-weight:700;color:var(--take);font-variant-numeric:tabular-nums}
.steps{list-style:none;counter-reset:s;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--rule-strong);margin-top:20px;max-width:56em}
.steps li{counter-increment:s;padding:20px 20px 24px 0;display:grid;gap:6px;align-content:start}
.steps li + li{padding-left:20px;border-left:1px solid var(--rule)}
.steps .when{font-size:.75rem;color:var(--ink-3);letter-spacing:.1em}
.steps h3{font-family:var(--f-min);font-weight:700;font-size:1.1875rem}
.steps h3::before{content:counter(s) "．";color:var(--take)}
.steps p{font-size:.9375rem;color:var(--ink-2)}
@media (max-width: 760px){.steps{grid-template-columns:1fr}.steps li,.steps li + li{padding:18px 0;border-left:0;border-bottom:1px solid var(--rule)}}
.aside{border-left:2px solid var(--take);padding:4px 0 4px 18px;font-size:.9375rem}
.aside b{color:var(--ink);display:block;letter-spacing:.06em}
.aside.stop{border-left-color:var(--pause)}
.aside.stop b{color:var(--pause)}
.sub-sec{margin-top:clamp(48px,6vw,80px)}
.nextnav{margin-top:clamp(48px,6vw,80px);border-top:1px solid var(--rule-strong);max-width:38em}
.nextnav a{display:flex;justify-content:space-between;gap:20px;align-items:baseline;padding:22px 0;border-bottom:1px solid var(--rule);text-decoration:none}
.nextnav small{font-size:var(--fs-s);color:var(--ink-3);letter-spacing:.1em;flex:none}
.nextnav b{font-family:var(--f-min);font-size:1.25rem;font-weight:700;letter-spacing:.06em;text-align:right}
.nextnav a:hover b{color:var(--take)}

/* blog page */
.tabs{display:flex;flex-wrap:wrap;gap:0 22px;margin-bottom:24px;border-bottom:1px solid var(--rule)}
.tab{background:none;border:0;font:inherit;font-size:.875rem;font-weight:500;color:var(--ink-3);padding:10px 0;cursor:pointer;letter-spacing:.06em;border-bottom:2px solid transparent;margin-bottom:-1px}
.tab[aria-pressed="true"]{color:var(--ink);border-bottom-color:var(--take);font-weight:700}
.pager{display:flex;gap:18px;margin-top:28px;font-size:.9375rem;font-variant-numeric:tabular-nums;align-items:baseline}
.pager a{text-decoration:none;color:var(--ink-3)}
.pager b{border-bottom:2px solid var(--take)}
.article{max-width:38em;display:grid;gap:1.4em}
.article .when{font-size:.875rem;color:var(--ink-3);letter-spacing:.06em}
.article h1{font-family:var(--f-min);font-weight:700;font-size:var(--fs-3);line-height:1.5}
.article p{color:var(--ink-2);line-height:2.1}
.byline{display:grid;grid-template-columns:56px minmax(0,1fr);gap:16px;align-items:center;padding-top:24px;border-top:1px solid var(--rule)}
.byline .av{width:56px;height:56px;border-radius:50%;background:var(--paper-2);border:1px solid var(--rule)}
.byline p{font-size:.875rem;line-height:1.8}

/* form */
.form{display:grid;gap:26px;max-width:38em;margin-top:clamp(40px,5vw,64px);padding-top:clamp(32px,4vw,48px);border-top:1px solid var(--rule)}
.form h2{font-family:var(--f-min);font-size:var(--fs-2);font-weight:700}
.f{display:grid;gap:6px}
.f label{font-size:.875rem;font-weight:700;letter-spacing:.06em;display:flex;gap:10px;align-items:baseline}
.f label small{font-weight:400;color:var(--ink-3);font-size:.75rem}
.f label .rq{color:var(--coral-ink);font-size:.75rem}
.f input,.f select,.f textarea{font:inherit;font-size:1rem;color:var(--ink);background:var(--white);border:1px solid var(--rule);border-radius:0;padding:12px 14px;width:100%;min-width:0}
.f input:focus,.f select:focus,.f textarea:focus{outline:none;border-color:var(--take);box-shadow:inset 0 -2px 0 var(--take)}
.f textarea{min-height:150px;resize:vertical}
.agree{display:flex;gap:10px;align-items:flex-start;font-size:.9375rem;color:var(--ink-2)}
.agree input{width:18px;height:18px;margin-top:6px;accent-color:var(--take)}
.err{color:var(--coral-ink);font-size:.875rem}
.done{margin-top:40px;border-top:2px solid var(--take);padding-top:20px;max-width:38em;display:grid;gap:6px}
.done b{font-family:var(--f-min);font-size:1.25rem}
.demo{font-size:.75rem;color:var(--ink-3)}

/* footer */
.ft{border-top:1px solid var(--rule-strong)}
.ft .g{padding-block:56px 28px;row-gap:36px}
.ft-name{grid-column:1 / span 5}
.ft-name b{font-family:var(--f-min);font-size:1.375rem;font-weight:700;letter-spacing:.08em;line-height:1.5;display:block}
.ft-name p{margin-top:10px;font-size:var(--fs-s);color:var(--ink-2);line-height:1.9;max-width:24em}
.ft-col{grid-column:span 3}
.ft-col.last{grid-column:span 4}
.ft h4{font-size:.75rem;letter-spacing:.14em;color:var(--ink-3);font-weight:500;margin-bottom:10px}
.ft ul{list-style:none;display:grid;gap:4px}
.ft li a{font-size:.875rem;text-decoration:none}
.ft li a:hover{color:var(--take)}
.ft-bottom{grid-column:1/-1;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;padding-top:20px;border-top:1px solid var(--rule);font-size:.75rem;color:var(--ink-3);letter-spacing:.06em}
@media (max-width: 900px){.ft-name,.ft-col,.ft-col.last{grid-column:1/-1}}

@media (prefers-reduced-motion: reduce){.node,.btn .ar{transition:none}}

/* TOPの簡潔版 */
.rows.short > li{align-items:baseline;padding:18px 0}
.rows.short h3{font-family:var(--f-min);font-weight:600;font-size:clamp(1.05rem,.98rem + .3vw,1.25rem)}
.toc.short a{grid-template-columns:minmax(0,1fr) auto;padding:20px 0}
.toc.short .term:empty{display:none}
.tale-text.short{height:auto}
.hero-lead{font-family:var(--f-min);font-weight:600;font-size:clamp(1.1rem,1rem + .4vw,1.3rem);line-height:1.9;color:var(--ink);letter-spacing:.08em}
.saying{margin-top:clamp(40px,5vw,64px)}
.sig .tlink{font-size:var(--fs-s);margin-top:6px;display:inline-block}
.ask-act{margin-top:28px}
@media (max-width: 760px){.toc.short a{grid-template-columns:minmax(0,1fr)}}

/* 竹のお話：縦組みを本文欄の中央に置き、高さを文の長さに合わせる */
.tale .g{padding-block:clamp(56px,6vw,88px)}
.tale-wrap{justify-content:center;align-items:flex-start}
.tale-wrap{align-items:stretch}
.tale-text.short{height:auto}
.tale-quote{max-height:none}
@media (min-width: 901px){.tale-wrap{padding-right:clamp(0px,6vw,96px)}}
@media (max-width: 900px){.tale-text.short{height:auto}.tale-quote{max-height:none}}

.tale-wrap > *{direction:ltr}
.tale-text{height:27em}
.tale-text.short{height:auto}
@media (max-width: 900px){.tale-wrap{direction:ltr}.tale-text{height:auto}}

.greet-text{margin-top:24px;max-width:36em;color:var(--ink-2)}
.rows.short p{margin-top:2px}

/* ===== WordPress ===== */
img{max-width:100%;height:auto}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.screen-reader-text:focus{position:fixed!important;top:8px;left:8px;width:auto;height:auto;clip:auto;z-index:100;background:var(--white);padding:8px 12px}
.admin-bar .hd{top:calc(32px + env(safe-area-inset-top,0px))}
@media (max-width: 782px){.admin-bar .hd{top:calc(46px + env(safe-area-inset-top,0px))}}
@media (max-width: 600px){.admin-bar .hd{top:env(safe-area-inset-top,0px)}}
.drawer-close{display:block}
/* 記事本文（noteから取り込んだ記事も含む） */
.entry{max-width:38em;color:var(--ink-2);line-height:2.05;overflow-wrap:anywhere}
.entry > * + *{margin-top:1.3em}
.entry p{margin:0}
.entry h2,.entry h3,.entry h4{font-family:var(--f-min);color:var(--ink);margin-top:2em;line-height:1.6}
.entry h2{font-size:var(--fs-2)}
.entry h3{font-size:1.2rem}
.entry a{color:var(--take);text-underline-offset:4px}
.entry ul,.entry ol{padding-left:1.4em}
.entry li + li{margin-top:.4em}
.entry img,.entry figure{max-width:100%;height:auto;margin-inline:0}
.entry blockquote{margin-inline:0;border-left:2px solid var(--take);padding-left:18px}
.entry table{border-collapse:collapse;display:block;overflow-x:auto}
.entry th,.entry td{border:1px solid var(--rule);padding:8px 12px}
.entry iframe{max-width:100%}
.pager .page-numbers{text-decoration:none;color:var(--ink-3)}
.pager .page-numbers.current{color:var(--ink);font-weight:700;border-bottom:2px solid var(--take)}
.tabs a.tab{text-decoration:none}
.tabs a.tab[aria-current="page"]{color:var(--ink);border-bottom-color:var(--take);font-weight:700}
.notice-msg{border-left:2px solid var(--coral);padding:4px 0 4px 16px;color:var(--coral-ink);font-size:.9375rem;max-width:38em}
.hp-field{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.f .err{display:block;margin-top:2px}
.empty{color:var(--ink-3)}
.photo .ph-img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover;max-width:100%}
@media (max-width: 900px){.body[style*="grid-column"]{grid-column:1/-1!important}}
.about-photo{max-width:15rem}
.byline img.av{width:56px;height:56px;border-radius:50%;object-fit:cover}
.nextnav b{font-size:1.0625rem}

.dated.no-cat a{grid-template-columns:6.6em minmax(0,1fr) 3em}
.dated.no-cat .cat{display:none}
.nextnav a{display:grid;grid-template-columns:auto minmax(0,1fr)}
@media (max-width: 640px){.dated.no-cat a{grid-template-columns:1fr}.nextnav b{font-size:1rem}}

/* 竹のお話（トップ）：改行位置を固定して、まとまりで読ませる */
.tale-text.short p{text-indent:0;white-space:nowrap}
.tale-text.short p + p{margin-inline-start:1.6em}
@media (max-width: 900px){.tale-text.short p{white-space:normal}.tale-text.short p + p{margin:1em 0 0}}
