/* 🔴 自動生成。design\mezasu.html のCSS。手で直さない */
:root{
  --brand:#02A89D;--brand-dark:#00847C;--deep:#3B4E46;
  --text:#2B2823;--muted:#6E6A62;--line:#E2DDD2;--line-2:#D5CFC2;
  --soft:#EFEDE5;--paper:#F8F6F0;--bg:#F4F2ED;--white:#FFFFFF;
  --max:1180px;
  --sans:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",YuGothic,sans-serif;
  --mincho:"Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:16px;line-height:2;letter-spacing:.025em;-webkit-font-smoothing:antialiased}
/* width/height 属性を入れてあるので height:auto が要る。無いと縦に伸びる */
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{word-break:normal;overflow-wrap:normal;line-break:strict}
p{margin-bottom:1.5em}
.container{width:min(calc(100% - 48px),var(--max));margin-inline:auto}
.narrow{max-width:680px}
.section{padding:92px 0}
.eyebrow{margin:0 0 16px;color:var(--brand);font-size:12.5px;font-weight:700;letter-spacing:.16em;display:flex;align-items:center;gap:.8em}
.eyebrow::after{content:"";flex:1;height:1px;background:var(--line);max-width:120px}
h1{margin-bottom:26px;font-size:clamp(28px,3.6vw,46px);line-height:1.55;font-weight:700;text-wrap:balance}
h2{margin-bottom:26px;font-size:clamp(22px,2.4vw,31px);line-height:1.62;font-weight:700;text-wrap:balance}
h3{margin-bottom:14px;font-size:19px;line-height:1.7;font-weight:700}
.lead{font-size:16.5px;line-height:2.1;color:#443F38}
.btn{display:inline-flex;min-height:52px;align-items:center;justify-content:center;padding:13px 26px;background:var(--brand);color:#fff;font-weight:700;border-radius:999px;border:1px solid var(--brand)}
.btn:hover{background:var(--brand-dark);border-color:var(--brand-dark)}
.btn:focus-visible{outline:3px solid #9BD9D4;outline-offset:2px}

/* 目には見えないが、読み上げには届くラベル */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip-path:inset(50%);white-space:nowrap;border:0}
/* 本文へスキップ。ふだんは画面の外、Tabで入ると降りてくる */
.skip{position:absolute;left:12px;top:-64px;z-index:100;padding:11px 18px;
  background:var(--brand);color:#fff;font-weight:700;border-radius:0 0 3px 3px;transition:top .15s ease}
.skip:focus{top:0}

/* header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(244,242,237,.94);border-bottom:1px solid var(--line);backdrop-filter:blur(10px)}
.header-inner{min-height:78px;display:flex;align-items:center;gap:30px;position:relative}
.logo img{height:40px;width:auto}
.nav{margin-left:auto}
.nav ul{display:flex;align-items:center;gap:22px;margin:0;padding:0;list-style:none;white-space:nowrap;font-size:13.5px;font-weight:500}
.nav a.here{color:var(--brand);font-weight:700}
.header-cta{padding:11px 20px;background:var(--brand);color:#fff;font-weight:700;border-radius:999px}
/* スマホのメニュー。JSを1行も使わず、チェックボックスとCSSだけで開閉する（2026-09-11）。
   🔴 .nav-toggle は .nav より前に置くこと。「~」で兄弟をたどっているため */
.nav-toggle{position:absolute;width:1px;height:1px;opacity:0;margin:0;pointer-events:none}
.menu-button{display:none;margin-left:auto;border:0;background:transparent;padding:9px;cursor:pointer;line-height:0}
.nav-toggle:focus-visible ~ .menu-button{outline:3px solid #9BD9D4;outline-offset:2px}

/* 扉 */
.opening{padding:0 0 64px;border-bottom:1px solid var(--line)}
.opening .lead{max-width:720px}
/* 扉の絵は全幅。空を切って、町と海が残る位置で切り抜く */
.hero-img{width:100%;margin:0 0 52px;background:var(--soft)}
.hero-img img{width:100%;height:clamp(200px,30vw,440px);object-fit:cover;object-position:50% 72%}

/* 三つの地震 ─ 語りの節。ここだけ明朝で組む */
.story{background:var(--paper);border-bottom:1px solid var(--line)}
.story .narrow{max-width:640px}
.story p{font-family:var(--mincho);font-size:17px;line-height:2.25;letter-spacing:.02em}
.story .marker{font-family:var(--sans);font-size:13px;font-weight:700;color:var(--brand);letter-spacing:.08em;margin-bottom:.4em}
.story blockquote{margin:2.4rem 0;padding:1.4rem 0 1.4rem 1.5rem;border-left:3px solid var(--brand);font-family:var(--mincho);font-size:19px;line-height:2;letter-spacing:.02em}
.story .close{font-family:var(--sans);font-weight:700;font-size:19px;line-height:1.9;margin-top:2.2em}

/* 理念の四層 ─ ピラミッド。頂点が社会への理念、土台が日々の行動 */
.pyramid{display:flex;flex-direction:column;align-items:center;gap:5px;margin:0 0 20px}
.tier{width:100%;padding:17px 30px;text-align:center;display:flex;flex-direction:column;gap:3px}
.tier .lbl{font-size:11px;letter-spacing:.16em;font-weight:700;opacity:.85}
.tier .val{font-weight:700;font-size:17px;line-height:1.55;text-wrap:balance}
.tier .sub{font-size:12.5px;line-height:1.7;opacity:.85}
.t1{max-width:54%;background:var(--brand-dark);color:#fff}
.t2{max-width:70%;background:var(--brand);color:#fff}
.t3{max-width:86%;background:#8CD3CD;color:var(--text)}
.t4{max-width:100%;background:#CFE7E4;color:var(--text)}
.pyramid-key{display:flex;justify-content:center;gap:1.2em;margin:0 0 32px;
  font-size:12px;color:var(--muted);letter-spacing:.04em}
.triad{font-size:14.5px;line-height:2;margin-bottom:2em}
.triad b{color:var(--brand)}
.tbl-wrap{overflow-x:auto;margin:0 0 2em}
table{border-collapse:collapse;width:100%;font-size:15px}
th,td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);line-height:1.8}
th{font-weight:700;white-space:nowrap;width:9em}
td.num,th.num{font-variant-numeric:tabular-nums}
tr:last-child th,tr:last-child td{border-bottom:none}

/* 実測の一覧。列が多いので幅の指定を外して数字を右へ */
.data{background:var(--white);border:1px solid var(--line);padding:4px 20px;margin:0 0 1.4em}
.data table{font-size:14px}
.data th{width:auto;color:var(--muted);font-size:12.5px;letter-spacing:.04em;white-space:nowrap}
.data td,.data th.r,.data td.r{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.data td:first-child,.data th:first-child{text-align:left}
.data tbody tr:last-child td{border-bottom:none;font-weight:700}
.data tr.total td{border-top:2px solid var(--line-2);font-weight:700}
.data .minus{color:var(--brand-dark);font-weight:700}
.note{font-size:12.5px;line-height:1.9;color:var(--muted);margin:0 0 2em}

/* 10年ビジョン */
.vision{background:var(--deep);color:#fff}
.vision .eyebrow{color:#8FD4C4}
.vision .eyebrow::after{background:rgba(255,255,255,.2)}
.vision p{color:#DCE3D9}
.pillars{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin:36px 0 30px}
.pillar{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);padding:26px 26px}
.pillar h3{color:#fff;margin-bottom:10px}
.pillar p{margin:0;font-size:14.5px;line-height:1.95;color:#CFD8CB}

/* いま、していること */
.doing{border-bottom:1px solid var(--line)}
.act{padding:44px 0;border-top:1px solid var(--line)}
.act:first-of-type{border-top:none;padding-top:0}
.act-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:44px;align-items:start}
.act-grid.rev{grid-template-columns:380px minmax(0,1fr)}
.act h3{font-size:22px;margin-bottom:16px}
.act p{font-size:15.5px;line-height:2.05;color:#443F38}
.act .ph{width:100%;object-fit:cover;height:420px;background:var(--soft)}
.act .cap{margin:10px 0 0;color:var(--muted);font-size:12px;line-height:1.7}
.specs{margin:0 0 1.5em}
.spec{display:grid;grid-template-columns:13rem 1fr;gap:.2rem 1.2rem;padding:14px 0;border-bottom:1px solid var(--line)}
.spec:first-child{border-top:1px solid var(--line)}
.spec dt{font-weight:700;font-size:15.5px;line-height:1.7}
.spec dd{margin:0;font-size:14.5px;line-height:1.95;color:#514B42}

/* 図版 ─ 本文の理解を助ける図。装飾ではないのでキャプションを必ず付ける */
.fig{margin:0 0 2.4em}
.fig img{width:100%;border:1px solid var(--line);background:var(--white)}
.fig figcaption{margin:10px 0 0;color:var(--muted);font-size:12px;line-height:1.75}
/* narrow(680px)の中に置いても図だけ広げる */
.fig-out{width:min(92vw,980px);margin-left:50%;transform:translateX(-50%)}
/* 縦位置と横位置の写真を並べる。高さを揃えて切り抜く */
.photo-row{display:grid;grid-template-columns:1fr 1.55fr;gap:16px}
.photo-row img{width:100%;height:360px;object-fit:cover;border:1px solid var(--line)}

/* 約束する数字 */
.promise{background:var(--soft);border-bottom:1px solid var(--line)}
.roadmap{background:var(--white);border:1px solid var(--line);padding:6px 22px;margin:0 0 2em}
.roadmap table{font-size:14.5px}
.roadmap th{color:var(--brand);width:8em}
.donation{background:var(--white);border:1px solid var(--line);padding:26px 28px;margin-bottom:14px}
.donation h3{margin-bottom:8px}
.donation p{margin-bottom:0;font-size:14.5px;line-height:2;color:#514B42}
.donation p + p{margin-top:.9em}

/* 一緒にやってくださる方へ */
.join-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.join{background:var(--white);border:1px solid var(--line);border-top:3px solid var(--brand);padding:30px 28px}
.join h3{margin-bottom:14px}
.join p{font-size:14.5px;line-height:2;color:#514B42}
.join p:last-child{margin-bottom:0}
/* 施主の出口。箱にはしない ─ 共同事業者と同列にすると重心が崩れる */
.for-owner{margin:26px 0 0;font-size:14.5px;color:var(--muted)}
.for-owner a{color:var(--brand);font-weight:700;text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}

.colophon{background:var(--paper);border-top:1px solid var(--line);padding:56px 0}
.colophon p{font-size:14px;line-height:2.1;color:#514B42;margin-bottom:1em}

footer{background:#2B2823;color:#DAD3C8;padding:56px 0 40px}
.footer-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:60px}
.footer-brand{font-weight:700;color:#fff;margin-bottom:12px}
.footer-info{font-size:14px;line-height:2;color:#B9B1A4}
.footer-links{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 24px;font-size:13.5px}
.copyright{margin-top:42px;padding-top:20px;border-top:1px solid rgba(255,255,255,.11);color:#8E877B;font-size:11.5px}

@media (max-width:1080px){
  .nav{display:none}.menu-button{display:block}
  /* ここから開いた状態。2026-09-11 まではボタンだけあって中身が無かった */
  .nav-toggle:checked ~ .nav{display:block;position:absolute;left:0;right:0;top:100%;z-index:60;
    background:var(--bg);border-bottom:1px solid var(--line);
    box-shadow:0 14px 30px rgba(43,40,35,.12);padding:4px 0 16px}
  .nav-toggle:checked ~ .nav ul{display:block;white-space:normal;font-size:15.5px;font-weight:700}
  .nav-toggle:checked ~ .nav li{border-bottom:1px solid var(--line)}
  .nav-toggle:checked ~ .nav li:last-child{border-bottom:0;padding-top:14px}
  .nav-toggle:checked ~ .nav a{display:block;padding:15px 2px}
  .nav-toggle:checked ~ .nav .header-cta{text-align:center;padding:15px 20px}
  .act-grid,.act-grid.rev{grid-template-columns:1fr;gap:28px}
  .act .ph{height:340px}
  .photo-row img{height:300px}
}
@media (max-width:820px){
  .container{width:min(calc(100% - 36px),var(--max))}
  .section{padding:68px 0}
  .pillars,.join-grid,.footer-grid,.photo-row{grid-template-columns:1fr}
  .photo-row img{height:62vw;max-height:360px}
  .tier{max-width:100%!important;padding:15px 20px}
  .spec{grid-template-columns:1fr}
  .act .ph{height:64vw;max-height:420px}
}
@media (max-width:560px){
  body{font-size:15px}
  .container{width:min(calc(100% - 28px),var(--max))}
  h1{font-size:min(7.4vw,28px)}h2{font-size:21px}
  .story p{font-size:16px;line-height:2.15}
  .story blockquote{font-size:17px}
  .footer-links{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
