*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:#f3efe6;color:#23241f;font-family:"Zen Kaku Gothic New",system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:#4a5d4e;text-decoration:none}
button{font-family:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
input{font-family:inherit}
:focus-visible{outline:2px solid #4a5d4e;outline-offset:2px}

a,button{transition:color .2s ease,background-color .2s ease,border-color .2s ease,opacity .2s ease,transform .15s ease}
.cta:hover{opacity:.88}
.cta:active{opacity:.75;transform:scale(.99)}
.btn-text:hover{color:#23241f}
.btn-text-plain:hover{opacity:.7}
.spot-btn:hover{border-color:#23241f;color:#23241f}
.news-item:hover .news-title{color:#4a5d4e}
.people-card:hover{border-color:#23241f}
.hero-cta:hover{background:rgba(247,244,237,.22)}
.menu-link:hover{opacity:.75}

@media (prefers-reduced-motion: no-preference) {
  .reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
  .reveal.is-visible{opacity:1;transform:translateY(0)}

  .menu-overlay{opacity:0;transition:opacity .28s ease}
  .menu-overlay.is-open{opacity:1}
  .menu-top,.menu-nav,.menu-bottom{transform:translateY(10px);transition:transform .32s ease}
  .menu-overlay.is-open .menu-top,.menu-overlay.is-open .menu-nav,.menu-overlay.is-open .menu-bottom{transform:translateY(0)}

  .scroll-line{animation:scrollPulse 2.4s ease-in-out infinite}
}
@keyframes scrollPulse{0%,100%{opacity:.35}50%{opacity:1}}

.mock-banner{padding:8px 16px;background:#3a3b34;color:rgba(243,239,230,.85);font-size:11px;line-height:1.6;text-align:center}

.page{max-width:560px;margin:0 auto;background:#f3efe6;min-height:100vh;position:relative}
.bleed{width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}
/* 見出しを視覚的に隠す（コピーが画像に焼き込まれているページ用。読み上げ・検索エンジンには残す） */
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}

.mono{font:9px ui-monospace,Menlo,monospace;letter-spacing:.22em}
.mn{font-family:"Shippori Mincho",serif}
.num{font-family:"Zen Old Mincho",serif}
.memo{display:inline-block;font-family:"Klee One",cursive;font-size:12.5px;line-height:1.9;color:rgba(35,36,31,.6)}
.sub{margin:26px 0 0;font-size:12.5px;line-height:2.3;color:rgba(35,36,31,.72)}

.ink-fade{color:rgba(35,36,31,.6)}
.ink-green{color:#6b7a68}
.ink-brown{color:#8a6f57}
.ink-navy{color:#2f4258}

.section-pad{padding:60px 26px 8px;max-width:560px;margin-left:auto;margin-right:auto}
.section-pad--tight{padding-top:0;padding-bottom:8px}
.section-pad--last{padding-bottom:60px}

.mark{width:9px;height:9px;border:1px solid currentColor;display:inline-block;transform:rotate(45deg)}
.rule{display:flex;align-items:center;gap:10px}
.rule::after{content:"";flex:1;height:1px;background:rgba(35,36,31,.18)}

.ph{position:relative;overflow:hidden;background-color:#cfc9bd;background-image:repeating-linear-gradient(135deg,rgba(0,0,0,.055) 0 6px,rgba(0,0,0,0) 6px 13px)}
.ph>img{position:absolute;inset:0;z-index:0;width:100%;height:100%;display:block;object-fit:cover}
.ph span{position:absolute;left:8px;bottom:7px;font:400 9px/1.35 ui-monospace,Menlo,monospace;color:rgba(35,36,31,.62);background:rgba(255,255,255,.55);padding:2px 5px;max-width:82%}
.ph span,.ph .exif{z-index:1}
.ph.m{background-color:#c2cad0}
.ph.d{background-color:#c7ccba}
.ph.e{background-color:#cbbca9}
.ph.k{background-color:#4b4d47}
.exif{position:absolute;right:8px;top:8px;font:400 8.5px/1.3 ui-monospace,Menlo,monospace;letter-spacing:.08em;color:rgba(255,255,255,.9);background:rgba(20,22,18,.42);padding:3px 6px}

.bar{position:sticky;top:0;z-index:6;display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:rgba(243,239,230,.94);backdrop-filter:blur(8px);border-bottom:1px solid rgba(35,36,31,.1)}
.bar-right{margin-left:auto}
.btn-text-plain{display:inline-flex;align-items:center;border:0;background:none;font-size:12.5px;min-height:44px;padding:0;color:#23241f}
.hamburger{margin-left:16px;width:44px;height:44px;border:0;background:none;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:6px}
.hamburger span{width:24px;height:1px;background:#f6f2ea}
.hamburger span:last-child{width:16px}
.hamburger--dark span{background:#23241f}
.hamburger--dark span:last-child{width:13px}

.cta{display:flex;width:100%;min-height:54px;border:0;background:#23241f;color:#f3efe6;font-family:"Shippori Mincho",serif;font-size:15px;letter-spacing:.12em;text-align:center;align-items:center;justify-content:center;line-height:1.4}
.cta--apply{min-height:62px;background:#bd6a43;color:#fffaf4;border:1px solid rgba(91,43,25,.22);box-shadow:0 10px 22px rgba(116,58,34,.20);font-weight:700}
.cta--apply:hover{background:#a95735}
.btn-text{margin-top:14px;width:100%;min-height:44px;border:0;background:none;font-size:12.5px;color:rgba(35,36,31,.65);display:block}

/* --- centered section title --- */
.stw{display:flex;flex-direction:column;align-items:center;gap:14px}
.stw::after{content:"";width:26px;height:1px;background:rgba(35,36,31,.35)}
.st{margin:0;text-align:center;font-family:"Shippori Mincho",serif;font-size:clamp(14px,4.6vw,20px);letter-spacing:.04em;line-height:1.9;white-space:nowrap}

/* --- home hero --- */
.hero{position:relative;height:680px}
.hero--poster{height:auto;aspect-ratio:2/3;background:#f7f3e9;overflow:hidden}
.hero-poster{display:block;width:100%;height:100%;object-fit:cover}
.hamburger--poster{position:absolute;top:14px;right:14px;z-index:1;margin:0;border:1px solid rgba(35,36,31,.16);border-radius:999px;background:rgba(247,244,237,.76);backdrop-filter:blur(4px)}
.hamburger--poster span{background:#23241f}
.hero-gradient{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,22,18,.42) 0%,rgba(20,22,18,.05) 42%,rgba(20,22,18,.62) 100%)}
.hero-top{position:absolute;top:22px;left:22px;right:22px;display:flex;justify-content:space-between;align-items:flex-start}
.brand{color:#f6f2ea;line-height:1.25}
.brand-mark{display:flex;align-items:center;gap:9px}
.brand-title{font-size:16px;letter-spacing:.04em;font-family:"Shippori Mincho",serif;white-space:nowrap}
.brand-sub{margin-top:7px;opacity:.8;letter-spacing:.3em;padding-left:18px}
.hero-nav{display:none}
.hero-copy{position:absolute;left:24px;right:24px;bottom:168px}
.hero-copy h1{margin:0;font-weight:600;font-size:20px;line-height:1.8;letter-spacing:.035em;color:#f7f4ed}
.hero-copy h1 span{display:block;white-space:nowrap}
.hero-copy p{margin:20px 0 0;font-size:12.5px;line-height:2.2;color:rgba(247,244,237,.88)}
.hero-cta{display:inline-flex;align-items:center;position:absolute;left:24px;bottom:36px;min-height:40px;padding:0 20px;border:1px solid rgba(247,244,237,.85);background:rgba(247,244,237,.1);color:#f7f4ed;font-size:12.5px;letter-spacing:.08em}
.hero--light .hero-gradient{background:linear-gradient(180deg,rgba(247,244,237,.18) 0%,rgba(247,244,237,.04) 44%,rgba(247,244,237,.16) 100%)}
.hero--light .brand{color:#23241f}.hero--light .hero-nav a{color:#23241f}.hero--light .hamburger span{background:#23241f}.hero--light .scroll-hint .mono{color:rgba(35,36,31,.74)}.hero--light .scroll-line{background:linear-gradient(180deg,rgba(35,36,31,.62),rgba(35,36,31,0))}.hero--light .exif{color:rgba(35,36,31,.72);background:rgba(247,244,237,.58)}
.hero--light .hero-copy h1{color:#23241f;text-shadow:0 0 5px rgba(255,255,255,.92),0 0 20px rgba(255,255,255,.78),0 0 42px rgba(255,255,255,.58)}.hero--light .hero-copy p{color:rgba(35,36,31,.86);text-shadow:0 0 5px rgba(255,255,255,.94),0 0 16px rgba(255,255,255,.78)}
.scroll-hint{position:absolute;right:20px;bottom:40px;display:flex;flex-direction:column;align-items:center;gap:8px}
.scroll-hint--left{right:auto;left:24px;align-items:flex-start}
.scroll-hint .mono{color:rgba(247,244,237,.75);writing-mode:vertical-rl;letter-spacing:.2em}
.scroll-line{width:1px;height:34px;background:linear-gradient(180deg,rgba(247,244,237,.7),rgba(247,244,237,0))}

/* --- about intro (チャリティフォトウォークとは) --- */
.about-intro-wrap{padding:64px 0 8px}
.about-intro{max-width:640px;margin:0 auto;padding:0 26px;text-align:center}
.about-intro p{margin:26px 0 0;font-size:13px;line-height:2.3;color:rgba(35,36,31,.75)}

/* --- news --- */
.news-wrap{padding:56px 26px 8px;max-width:560px;margin:0 auto}
.news-list{margin:20px 0 0;padding:0;list-style:none}
.news-item{display:flex;gap:16px;align-items:baseline;padding:16px 0;border-top:1px solid rgba(35,36,31,.15);color:inherit}
.news-list li:last-child .news-item{border-bottom:1px solid rgba(35,36,31,.15)}
.news-date{flex:none;font:10px ui-monospace,Menlo,monospace;color:rgba(35,36,31,.5)}
.news-title{font-size:13px;line-height:1.8}

/* --- impact recap --- */
.flow-wrap{padding:60px 0 8px}
.flow-stats{position:relative;overflow:hidden;max-width:560px;margin:0 auto;background:#f3efe6;color:#23241f;text-align:center}
.flow-stats .mono{opacity:.6;letter-spacing:.22em}
.impact-bg{position:absolute;inset:0;opacity:.4}
.impact-overlay{position:absolute;inset:0;background:rgba(243,239,230,.85)}
.impact-inner{position:relative;padding:36px 26px}
.impact-figure{margin-top:14px;font-family:"Shippori Mincho",serif;font-size:15px;line-height:1.9;letter-spacing:.03em;color:rgba(35,36,31,.75)}
.impact-sub{margin-top:28px;padding-top:22px;border-top:1px solid rgba(35,36,31,.18);display:grid;grid-template-columns:1fr 1fr 1fr}
.impact-sub>div+div{border-left:1px solid rgba(35,36,31,.14)}
.impact-num{font-family:"Zen Old Mincho",serif;font-size:22px}
.impact-num span{font-size:10.5px;margin-left:2px}
.impact-label{margin-top:6px;font-size:10px;color:rgba(35,36,31,.55)}

/* --- people grid --- */
.people-wrap{background:#e7e3d8}
.people-grid{margin-top:20px;display:flex;flex-direction:column;gap:14px}
.people-card{display:flex;gap:14px;align-items:center;padding:14px;border:1px solid rgba(35,36,31,.15);color:inherit}
.people-card .ph{width:60px;height:60px;flex:none}
.people-card-name{font-size:14px;font-family:"Shippori Mincho",serif}
.people-card-role{margin-top:4px;font-size:11px;color:rgba(35,36,31,.55)}

/* --- activity principles --- */
.promise-wrap{background:#e7e3d8}
.promise-title{margin:14px 0 0;font-size:23px;letter-spacing:.06em}
.promise-grid{margin-top:24px;border-top:1px solid rgba(35,36,31,.18)}
.promise-item{padding:22px 0;border-bottom:1px solid rgba(35,36,31,.18)}
.promise-item .mono{color:#6b7a68}
.promise-item h3{margin:8px 0 0;font-size:17px;font-weight:600;letter-spacing:.05em}
.promise-item p{margin:9px 0 0;font-size:12.5px;line-height:2;color:rgba(35,36,31,.72)}

/* --- chapters (about.html) --- */
.chapter{padding-top:62px}
.chapter.chapter--first{padding-top:0}
.chapter--last{padding-bottom:8px}
.chapter-label{gap:12px;padding:0 26px 18px}
.chapter-photo{height:430px}
.chapter-photo--tall{height:460px}
.chapter-photo--l{margin-left:26px}
.chapter-photo--r{margin-right:26px}
.chapter-text{margin:26px 26px 0;font-size:20px;line-height:2.3;letter-spacing:.05em}
.chapter-memo{margin:16px 26px 0}

/* --- spot buttons --- */
.spot-buttons{display:flex;flex-wrap:wrap;gap:9px;margin:24px 26px 0}
.spot-btn{min-height:44px;padding:0 16px;border:1px solid rgba(35,36,31,.25);background:none;font-size:12.5px;border-radius:22px;color:#23241f}
.note-panel{margin:16px 26px 0;border-left:2px solid #4a5d4e;padding-left:14px;font-size:12.5px;line-height:2.1;color:rgba(35,36,31,.8)}

/* --- donation formula --- */
.formula-wrap{background:#e7e3d8}
.formula{margin:26px 0 0;font-family:"Zen Old Mincho",serif}
.formula-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px dashed rgba(35,36,31,.2);font-size:14px}
.formula-row:last-child{border-bottom:0;padding-top:18px;border-top:2px solid #2f4258;color:#2f4258;font-weight:600;font-size:16px}
.formula-op{color:rgba(35,36,31,.4);font-size:12px}
.commitments{margin:28px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:12px}
.commitments li{position:relative;padding-left:20px;font-size:12.5px;line-height:2;color:rgba(35,36,31,.78)}
.commitments li::before{content:"";position:absolute;left:0;top:9px;width:7px;height:7px;border:1px solid #4a5d4e;transform:rotate(45deg)}

/* --- prep (準備中) card --- */
.prep-card{border:1px solid rgba(35,36,31,.18);padding:34px 26px;text-align:left}
.prep-card .mono{margin-bottom:12px;display:block}
.prep-card h2,.prep-card h1{margin:0;font-size:21px;line-height:1.8;letter-spacing:.05em}
.prep-card p{margin:16px 0 0;font-size:12.5px;line-height:2.2;color:rgba(35,36,31,.72)}
.prep-list{margin:20px 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:8px 14px}
.prep-list li{font-size:11.5px;color:rgba(35,36,31,.55);padding:4px 10px;border:1px solid rgba(35,36,31,.15);border-radius:14px}

/* --- record carousel (home) --- */
.row-section{padding:56px 0 8px}
.row-section--last{padding-bottom:58px}
.record-scroll{display:flex;gap:12px;overflow-x:auto;padding:0 26px;scroll-snap-type:x mandatory}
.record-card{flex:none;width:230px;scroll-snap-align:center;position:relative;color:inherit;text-decoration:none;display:block}
.record-card-gradient{position:absolute;inset:0;background:linear-gradient(180deg,rgba(35,36,31,.35),rgba(35,36,31,.05) 45%,rgba(35,36,31,.5))}
.record-card-info{position:absolute;left:16px;top:14px;color:#f6f2ea}
.record-card-num{font-family:"Zen Old Mincho",serif;font-size:26px;letter-spacing:.04em}
.record-card-name{margin-top:6px;font-family:"Shippori Mincho",serif;font-size:14px;letter-spacing:.14em}
.record-card-date{margin-top:6px;font:9px ui-monospace,Menlo,monospace;opacity:.85}
.record-card-tag{position:absolute;left:16px;bottom:14px;font:8.5px ui-monospace,Menlo,monospace;color:#f6f2ea;border:1px solid rgba(246,242,234,.6);padding:4px 7px}

/* --- people strip (home) --- */
.people-scroll{display:flex;gap:3px;overflow-x:auto;padding:0 26px}
.people-strip-card{flex:none;width:150px;position:relative;color:inherit;text-decoration:none;display:block}
.people-strip-card .ph{height:190px}
.people-strip-name{position:absolute;left:10px;bottom:10px;font-family:"Shippori Mincho",serif;font-size:12.5px;letter-spacing:.08em;color:#23241f}

.next-teaser-wrap{position:relative;height:400px;color:#23241f;overflow:hidden}
.next-teaser-photo{position:absolute;inset:0}
.next-teaser-gradient{position:absolute;inset:0;background:linear-gradient(90deg,rgba(243,239,230,.92) 0%,rgba(243,239,230,.6) 55%,rgba(243,239,230,.08) 100%)}
.next-teaser{position:relative;padding:64px 90px 0 26px;max-width:560px;margin:0 auto}
.next-teaser h2{margin:0;font-size:27px;letter-spacing:.08em;line-height:1.9;color:#23241f}
.next-info{margin-top:24px;font-size:12.5px;line-height:2.1;color:rgba(35,36,31,.78)}
.next-teaser-cta{display:inline-flex;align-items:center;gap:12px;width:auto;min-height:50px;padding:0 22px;border:1px solid rgba(35,36,31,.35);background:rgba(243,239,230,.85);color:#23241f;margin-top:24px}

/* --- about page extras --- */
.about-block{margin-top:14px;font-size:12.5px;line-height:2.2;color:rgba(35,36,31,.72)}
.about-block h2{font-family:"Shippori Mincho",serif;font-size:18px;font-weight:600;letter-spacing:.04em;color:#23241f;margin:0 0 12px}

/* --- next-walk page --- */
.next-hero{position:relative;height:400px}
.next-hero-gradient{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,22,18,.3),rgba(20,22,18,.62))}
.next-hero-copy{position:absolute;left:22px;right:22px;bottom:28px;color:#f7f4ed}
.next-hero-copy .mono{opacity:.85}
.next-hero-copy h1{margin:12px 0 0;font-size:27px;line-height:1.9;letter-spacing:.06em}
.next-hero-meta{margin:14px 0 0;font-size:11px;line-height:2;color:rgba(247,244,237,.86);letter-spacing:.04em}.next-hero-meta span{display:inline-block;margin-top:3px;padding:1px 7px;border:1px solid rgba(247,244,237,.55);font-size:10px}
.next-about{margin-top:0}
.detail-grid{display:grid;grid-template-columns:auto 1fr;gap:14px 20px;font-size:13px;line-height:1.9}
.detail-sub{font-size:11.5px;color:rgba(35,36,31,.6)}
.slot-list{margin:14px 0 0;padding:0;list-style:none}
.slot-row{border-top:1px solid rgba(35,36,31,.15);padding:20px 0}
.slot-list li:last-child .slot-row{border-bottom:1px solid rgba(35,36,31,.15)}
.slot-sub{font-size:11.5px;margin-top:6px;color:rgba(35,36,31,.62)}
.memo-wrap{margin:16px 26px 0}
.next-photo{height:280px;margin:0 26px}
.next-record-note{margin:38px 26px 0;padding:28px 0;border-top:1px solid rgba(35,36,31,.18);border-bottom:1px solid rgba(35,36,31,.18);text-align:center}
.next-record-note .mono{color:rgba(35,36,31,.52)}
.next-record-note p{margin:14px 0 0;font-size:16px;line-height:2;letter-spacing:.05em}

/* --- archive intro --- */
.record-intro{height:250px;background:#4a5d4e;color:#f3efe6;display:grid;place-items:center;text-align:center;position:relative;overflow:hidden}
.record-intro::before,.record-intro::after{content:"";position:absolute;width:250px;height:250px;border:1px solid rgba(243,239,230,.23);transform:rotate(45deg)}
.record-intro::before{top:-185px;left:-120px}.record-intro::after{right:-155px;bottom:-180px}
.record-intro-inner{position:relative;z-index:1;display:flex;flex-direction:column;gap:18px}
.record-intro-inner .mono{opacity:.7}.record-intro-inner .mn{font-size:21px;line-height:1.9;letter-spacing:.08em}

/* --- faq page --- */
.faq-item{border-top:1px solid rgba(35,36,31,.15);padding:22px 0}
.faq-q{display:flex;gap:12px;align-items:baseline;font-size:14px;line-height:1.9}
.faq-a{display:flex;gap:12px;align-items:baseline;margin-top:12px;font-size:12.5px;line-height:2.1;color:rgba(35,36,31,.75)}
.faq-cta{margin-top:30px}

/* --- menu overlay --- */
.menu-overlay{position:fixed;inset:0;z-index:20;background:#23241f;color:#f3efe6;overflow:hidden;display:flex;flex-direction:column}
.menu-bg{position:absolute;inset:0;opacity:.18}
.menu-top,.menu-nav,.menu-bottom{max-width:560px;margin-left:auto;margin-right:auto}
.menu-top{position:relative;padding:26px 26px 0;display:flex;justify-content:space-between;align-items:flex-start}
.menu-brand{display:flex;align-items:center;gap:9px;font-size:18px;letter-spacing:.14em}
.menu-brand-sub{margin-top:7px;opacity:.7;letter-spacing:.3em;padding-left:18px}
.menu-close{width:44px;height:44px;border:0;background:none;color:#f3efe6;font-size:22px}
.menu-nav{position:relative;padding:52px 26px 0;display:flex;flex-direction:column;gap:8px}
.menu-link{display:flex;border:0;background:none;color:#f3efe6;align-items:baseline;gap:14px;min-height:54px;padding:0;font-family:"Shippori Mincho",serif;text-align:left}
.menu-link .mono{opacity:.45}
.menu-link span:last-child{font-size:23px;letter-spacing:.1em}
.menu-bottom{position:relative;margin-top:auto;padding:26px}
.menu-bottom .mono{opacity:.5;letter-spacing:.2em}
.menu-cta{display:block;margin-top:16px;width:100%;min-height:52px;border:1px solid rgba(243,239,230,.7);background:none;color:#f3efe6;font-size:14px;letter-spacing:.12em;text-align:center}

/* --- shared footer / index pages --- */
.site-footer{margin-top:64px;background:#23241f;color:#f3efe6}.site-footer-inner{max-width:560px;margin:0 auto;padding:46px 26px 30px}.site-footer-brand{display:flex;align-items:center;gap:9px;font-size:18px;letter-spacing:.08em}.site-footer p{margin:12px 0 0;font-size:12px;line-height:1.9;color:rgba(243,239,230,.7)}.site-footer nav{margin-top:30px;display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid rgba(243,239,230,.2)}.site-footer nav a{padding:12px 4px;border-bottom:1px solid rgba(243,239,230,.15);color:rgba(243,239,230,.85);font-size:12px}.site-footer-meta{margin-top:28px;font:9px/1.8 ui-monospace,Menlo,monospace;letter-spacing:.08em;color:rgba(243,239,230,.45)}
.page-head{padding:48px 26px 24px;max-width:560px;margin:0 auto}.page-head h1{margin:12px 0 0;font-size:29px;letter-spacing:.06em}.page-head p{margin:14px 0 0;font-size:12.5px;line-height:2.1;color:rgba(35,36,31,.7)}.filter-list{display:flex;gap:8px;flex-wrap:wrap;margin:0;padding:0;list-style:none}.filter-list span{display:block;padding:7px 11px;border:1px solid rgba(35,36,31,.18);border-radius:18px;font-size:11px;color:rgba(35,36,31,.65)}.filter-list span:first-child{background:#23241f;border-color:#23241f;color:#f3efe6}.news-summary{margin:6px 0 0;font-size:11.5px;line-height:1.8;color:rgba(35,36,31,.6)}.news-category{font:9px ui-monospace,Menlo,monospace;color:#6b7a68;letter-spacing:.1em}.contact-types{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:20px}.contact-types div{padding:15px 12px;border:1px solid rgba(35,36,31,.16);font-size:12px;line-height:1.6}.notice-panel{margin-top:25px;padding:22px;border-left:2px solid #4a5d4e;background:#e7e3d8;font-size:12.5px;line-height:2;color:rgba(35,36,31,.75)}

/* --- narrow-phone line-break safety net (320px class devices) ---
   placed last on purpose: same-specificity rules earlier in the
   cascade would otherwise win over these on source order alone */
@media (max-width:340px){
  .hero-copy h1{font-size:18px;letter-spacing:.02em}
  .about-intro h2{font-size:23px}
  .about-intro-poem{font-size:14px}
  .next-teaser h2{font-size:23px}
  .chapter-text{font-size:18px}
}

/* Desktop retains the warmth of the mobile-first composition, while using
   the extra width for reading rhythm rather than simply enlarging a phone. */
@media (min-width:900px){
  .page{max-width:none;box-shadow:none}
  .section-pad,.news-wrap,.flow,.flow-stats,.menu-top,.menu-nav,.menu-bottom{max-width:1040px}
  .section-pad{padding-left:52px;padding-right:52px}
  .hero{height:760px}
  .hero--poster{height:min(860px,100vh);aspect-ratio:auto}
  .hero--poster .hero-poster{object-fit:contain}
  .hamburger--poster{top:26px;right:52px}
  .hero-top{top:32px;left:52px;right:52px}
  .hero-nav{display:flex;align-items:center;gap:25px;margin-left:auto;margin-right:28px;padding-top:7px}.hero-nav a{color:rgba(247,244,237,.94);font-size:12px;letter-spacing:.06em;white-space:nowrap}.hero-nav a:hover{opacity:.65}
  .hero-gradient{background:linear-gradient(90deg,rgba(20,22,18,.06) 0%,rgba(20,22,18,.16) 48%,rgba(20,22,18,.56) 100%)}
  .hero-copy{left:52px;right:auto;bottom:136px;width:500px}
  .hero-copy h1{font-size:38px;line-height:1.65}
  .hero-copy p{max-width:510px;font-size:14px}
  .hero-cta{left:auto;right:52px;bottom:52px}
  .hero--light .hero-gradient{background:linear-gradient(90deg,rgba(247,244,237,.16) 0%,rgba(247,244,237,.03) 48%,rgba(247,244,237,.10) 100%)}
  .scroll-hint{right:52px;bottom:54px}
  .scroll-hint--left{right:auto;left:52px}
  .about-intro-wrap{padding:110px 0 42px}
  .about-intro{max-width:920px;padding:0 52px}
  .st{font-size:30px}
  .about-intro p{max-width:690px;font-size:14px}
  .news-wrap{padding:58px 52px 18px}
  .flow-wrap{padding:70px 0}
  .flow{max-width:640px;padding:0 52px}
  .flow-stats{width:100%;max-width:none;margin:36px 0 0;display:flex;flex-direction:column;justify-content:center;text-align:center}
  .impact-inner{padding:46px 72px;max-width:640px;margin:0 auto}
  .formula-wrap .section-pad{padding-top:92px;padding-bottom:70px}
  .formula-wrap .section-pad > .sub{max-width:680px}
  .promise-wrap .section-pad{padding-top:90px;padding-bottom:70px}
  .promise-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
  .promise-item{padding:24px 0;border-bottom:0}
  .promise-item + .promise-item{border-left:1px solid rgba(35,36,31,.18);padding-left:28px}
  .next-teaser-wrap{height:460px}
  .next-teaser{padding:80px 90px 0 52px}
  .next-teaser h2{font-size:36px}
  .chapter-label,.chapter-text,.chapter-memo,.spot-buttons,.note-panel,.memo-wrap{margin-left:calc((100% - 936px)/2);margin-right:calc((100% - 936px)/2)}
  .chapter-label{padding-left:0;padding-right:0}
  .chapter-photo{height:530px}
  .chapter-photo--tall{height:570px}
  .chapter-photo--l{margin-left:calc((100% - 936px)/2)}
  .chapter-photo--r{margin-right:calc((100% - 936px)/2)}
  .chapter-text{font-size:24px}
  .next-hero{height:500px}
  .next-hero-copy{left:52px;right:52px;bottom:48px}
  .next-hero-copy h1{font-size:38px}
  .next-hero-meta{font-size:12px}
  .next-record-note{margin-left:52px;margin-right:52px}
  .record-intro{height:360px}.record-intro-inner .mn{font-size:28px}
  .site-footer-inner,.page-head{max-width:1040px;padding-left:52px;padding-right:52px}.site-footer nav{grid-template-columns:repeat(4,1fr)}
}
