:root{--navy:#081c32;--navy2:#102d4a;--gold:#d6ab59;--cream:#faf6ed;--ink:#243349}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:'Hiragino Kaku Gothic ProN','Yu Gothic',Meiryo,sans-serif;color:var(--ink);background:var(--cream);line-height:1.8}a{color:inherit;text-decoration:none}.site-header{height:72px;background:#07192c;color:#f9e8bf;display:flex;align-items:center;justify-content:space-between;padding:0 max(5vw,22px);border-bottom:1px solid #b28a4938}.brand{font-family:Georgia,serif;font-weight:700;letter-spacing:.12em;font-size:19px}.brand span{font-size:10px;display:block;letter-spacing:.23em;font-weight:400;line-height:1}.invite{font-size:10px;letter-spacing:.2em;border:1px solid #bfa26980;border-radius:30px;padding:6px 13px}.hero{background:radial-gradient(ellipse at 50% 46%,#234466 0%,#102c49 45%,#071a2e 85%);color:white;overflow:hidden}.hero-inner{max-width:1160px;margin:auto;text-align:center;padding:80px 20px 58px}.eyebrow{font-family:Georgia,serif;color:#e1ba72;font-size:12px;letter-spacing:.26em;font-weight:700}.hero h1{font-size:clamp(36px,5vw,65px);line-height:1.45;letter-spacing:.09em;margin:20px 0}.hero h1 em{font-style:normal;color:#f1cd85}.intro{color:#e0e8f0;font-size:15px}.medals{display:flex;justify-content:center;gap:clamp(12px,4vw,55px);align-items:center;margin:45px auto 25px}.medals figure{width:min(41%,390px);margin:0}.medals img{display:block;width:100%;height:auto;filter:drop-shadow(0 20px 20px #0007)}.medals figcaption{font:11px Georgia,serif;letter-spacing:.13em;color:#d7bd8b;margin-top:10px}.hero-link{display:inline-block;border-bottom:1px solid var(--gold);color:#f2d8a7;font-size:13px;letter-spacing:.08em;padding:8px 0}.hero-link span{padding-left:12px}.section{padding:100px 24px}.container{max-width:1060px;margin:auto}.gold{color:#a67b33}.section h2,.closing h2{font-size:clamp(29px,3.8vw,45px);line-height:1.5;letter-spacing:.07em;margin:14px 0 22px}.lead{max-width:650px;color:#5c6572}.funding{background:white;border:1px solid #e9e0d2;box-shadow:0 15px 45px #162c3910;border-radius:18px;padding:38px;margin-top:44px}.funding-top,.stats{display:flex;justify-content:space-between;align-items:center;gap:16px}.funding-top span,.stats span{font-size:13px;color:#66707b}.funding-top strong{font:700 36px Georgia,serif;color:var(--navy)}.bar{height:14px;border-radius:99px;background:#e9e4dc;overflow:hidden;margin:24px 0}.bar-fill{height:100%;background:linear-gradient(90deg,#bb8a37,#f2d38c)}.stats{border-top:1px solid #ece9e4;padding-top:20px}.stats>div{display:flex;flex-direction:column}.stats strong{font-size:26px;color:var(--navy)}.note{font-size:12px;color:#78808a;margin:22px 0 0}.section-alt{background:#f0eadf}.split{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}.feature-image{border-radius:22px;background:radial-gradient(circle,#345070,#10263f);padding:25px;text-align:center}.feature-image img{width:85%;max-width:400px;filter:drop-shadow(0 15px 15px #0006)}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px}.card{background:#fff;border:1px solid #e7ddce;border-radius:15px;padding:30px}.card-icon{font-size:32px;color:#ba8a3e}.card h3{margin:12px 0}.card p{font-size:14px;color:#66707b;min-height:110px}.status{display:inline-block;background:#f3ede2;color:#88692e;border-radius:20px;padding:4px 13px;font-size:12px}.closing{text-align:center;background:linear-gradient(135deg,#102c48,#06192c);color:#fff;padding:90px 20px}.closing p:not(.eyebrow){color:#dce4ec}.closing-star{font-size:30px;color:#d5ad64}footer{text-align:center;background:#051423;color:#a9b4c0;font:11px Georgia,serif;letter-spacing:.09em;padding:25px}@media(max-width:680px){.site-header{height:64px}.brand{font-size:15px}.brand span{font-size:8px}.invite{font-size:8px;padding:5px 8px}.hero-inner{padding:65px 14px 42px}.hero h1{font-size:35px}.intro{font-size:13px}.medals{gap:8px;margin-top:35px}.medals figure{width:49%}.medals figcaption{font-size:9px;letter-spacing:0}.section{padding:65px 18px}.funding{padding:24px 20px}.funding-top{align-items:flex-start;flex-direction:column;gap:4px}.funding-top strong{font-size:32px}.split,.cards{grid-template-columns:1fr;gap:22px}.card p{min-height:0}.feature-image{margin-top:15px}}
.join-form{background:#fff;border:1px solid #e7ddce;border-radius:18px;padding:30px;max-width:720px;margin-top:30px}.join-form label{display:block;font-weight:700;margin:16px 0 7px}.join-form input,.join-form textarea,.admin-list input{width:100%;padding:13px;border:1px solid #c8c6c0;border-radius:8px;font:inherit}.join-form textarea{min-height:110px}.join-form button,.admin-actions button,main button{border:0;background:#a97b32;color:#fff;border-radius:8px;padding:12px 20px;cursor:pointer;font:inherit;margin-top:10px}.join-form .fine{font-size:12px;color:#6a7280}.admin-list{display:grid;gap:16px;margin-top:20px}.admin-actions{display:flex;gap:8px;flex-wrap:wrap}.admin-actions button{font-size:12px}.messages{display:grid;gap:14px;margin-top:25px}.messages .card p{min-height:0}.honeypot{position:absolute;left:-9999px}@media(max-width:680px){.join-form{padding:20px}}

/* ===== Phase 3: プロジェクト情報・特典・製作工程 =====
   既存のネイビー×ゴールドを踏襲。高齢の方にも読みやすいよう本文は16px以上、
   行間を広め、コントラストを確保しています。 */

/* ページ内ナビ */
.page-nav{position:sticky;top:0;z-index:20;display:flex;flex-wrap:wrap;justify-content:center;gap:4px;background:#07192c;border-bottom:1px solid #b28a4938;padding:8px max(4vw,12px)}
.page-nav a{color:#f1d9a9;font-size:16px;font-weight:700;letter-spacing:.04em;padding:11px 16px;border-radius:8px;white-space:nowrap}
.page-nav a:hover{background:#13304d;color:#fff}
.page-nav a:focus-visible{outline:2px solid var(--gold);outline-offset:2px}

/* 注意書き（概算・仮スケジュール） */
.caution{background:#fff8e8;border:1px solid #e6cfa4;border-left:5px solid var(--gold);border-radius:10px;padding:16px 20px;font-size:16px;color:#5d4a23;max-width:780px;margin:22px 0}
.assurance{background:#fff;border:2px solid var(--gold);border-radius:12px;padding:20px 24px;font-size:17px;color:#3c4654;margin-top:28px}
.deadline-value{font-size:19px !important;color:#9a3b3b !important}

/* 資金の使い道 */
.budget{margin-top:34px;display:grid;gap:26px}
.budget-row{background:#fff;border:1px solid #e7ddce;border-radius:14px;padding:22px 24px}
.budget-row-tbd{background:#fbf7ef;border-style:dashed}
.budget-head{display:flex;justify-content:space-between;align-items:baseline;gap:14px;flex-wrap:wrap}
.budget-label{font-size:18px;font-weight:700;color:var(--navy)}
.budget-note{font-style:normal;font-size:14px;font-weight:400;color:#7b6a4a}
.budget-amount{font:700 24px Georgia,serif;color:var(--navy);white-space:nowrap}
.budget-bar{height:30px;border-radius:8px;background:#ece7de;overflow:hidden;margin:14px 0 10px}
.budget-fill{height:100%;background:linear-gradient(90deg,#bb8a37,#f2d38c);display:flex;align-items:center;justify-content:flex-end;padding-right:12px;min-width:48px}
.budget-fill span{font:700 14px Georgia,serif;color:#3f2f10}
.budget-fill-tbd{width:100%;background:repeating-linear-gradient(45deg,#ded5c6 0 10px,#eee7db 10px 20px);justify-content:center;padding:0}
.budget-fill-tbd span{color:#6a6155}
.budget-detail{font-size:15px;color:#66707b;margin:0}

/* 募集条件 */
.terms{margin:30px 0 0;border:1px solid #e7ddce;border-radius:14px;overflow:hidden;background:#fff}
.terms-row{display:grid;grid-template-columns:200px 1fr;border-bottom:1px solid #eee7da}
.terms-row:last-child{border-bottom:0}
.terms dt{background:#f6f1e7;font-weight:700;font-size:17px;color:var(--navy);padding:18px 22px;margin:0}
.terms dd{margin:0;padding:18px 22px;font-size:17px;color:#3c4654}

/* 特典 */
.reward-hint{background:#fff6e4;border:1px solid #e6cfa4;border-radius:10px;padding:14px 18px;font-size:16px;color:#5d4a23;max-width:720px}
.reward-hint a{color:#8a6420;text-decoration:underline;font-weight:700}
.reward-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:34px}
.reward-card{background:#fff;border:1px solid #e7ddce;border-radius:16px;padding:26px}
.reward-card-high{border:2px solid var(--gold);box-shadow:0 14px 40px #16293814}
.reward-range{display:inline-block;background:#f3ede2;color:#88692e;border-radius:20px;padding:5px 15px;font-size:14px;font-weight:700;margin:0}
.reward-card h3{font-size:22px;color:var(--navy);margin:14px 0 18px;line-height:1.5}
.reward-visual{background:radial-gradient(circle,#345070,#10263f);border-radius:12px;padding:18px;text-align:center}
.reward-medal{width:58%;max-width:190px;filter:drop-shadow(0 12px 12px #0006)}
.case-figure{width:100%;height:auto;max-width:340px}
.figure-caption{font-size:14px;line-height:1.75;color:#5d4a23;background:#fff8e8;border:1px solid #e6cfa4;border-radius:10px;padding:13px 16px;margin:14px 0 0;text-align:left}
.reward-items{margin:18px 0 0;padding-left:1.3em;font-size:17px;color:#3c4654}
.reward-items li{margin:7px 0}
.reward-rules{background:#fff;border:1px solid #e7ddce;border-radius:14px;padding:26px 28px;margin-top:34px}
.reward-rules h3{margin:0 0 14px;font-size:20px;color:var(--navy)}
.reward-rules ul{margin:0;padding-left:1.3em;font-size:16px;color:#3c4654}
.reward-rules li{margin:11px 0}

/* 製作スケジュール */
.timeline{list-style:none;margin:34px 0 0;padding:0;position:relative}
.timeline:before{content:"";position:absolute;left:11px;top:10px;bottom:10px;width:3px;background:linear-gradient(#d6ab59,#e8d4ab)}
.timeline li{position:relative;padding:0 0 30px 46px}
.timeline li:last-child{padding-bottom:0}
.timeline li:before{content:"";position:absolute;left:3px;top:7px;width:19px;height:19px;border-radius:50%;background:var(--gold);border:3px solid var(--cream);box-shadow:0 0 0 2px #d6ab59}
.timeline-period{font:700 15px Georgia,serif;letter-spacing:.04em;color:#8a6420}
.timeline-body h3{margin:4px 0 6px;font-size:20px;color:var(--navy)}
.timeline-body p{margin:0;font-size:16px;color:#66707b}

/* よくある質問 */
.faq{display:grid;gap:18px;margin-top:32px}
.faq-item{background:#fff;border:1px solid #e7ddce;border-radius:14px;padding:24px 26px}
.faq-q{display:flex;gap:14px;align-items:flex-start;margin:0 0 14px;font-size:19px;line-height:1.6;color:var(--navy)}
.faq-a{display:flex;gap:14px;align-items:flex-start;border-top:1px solid #eee7da;padding-top:15px}
.faq-a p{margin:0;font-size:16.5px;line-height:1.95;color:#49535f}
.faq-mark{flex:0 0 32px;width:32px;height:32px;border-radius:50%;background:var(--navy);color:#f1d9a9;font:700 16px Georgia,serif;display:flex;align-items:center;justify-content:center}
.faq-mark-a{background:var(--gold);color:#2d2208}

/* ===== 管理画面 ===== */
.admin-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin:20px 0 10px}
.admin-summary>div{background:#fff;border:1px solid #e7ddce;border-radius:12px;padding:16px 18px;display:flex;flex-direction:column;gap:4px}
.admin-summary span{font-size:13px;color:#66707b}
.admin-summary strong{font-size:24px;color:var(--navy)}
.admin-warn{background:#fff4e2;border:2px solid #d99a3a;border-radius:12px;padding:16px 20px;font-size:15px;color:#6b4a14;margin:18px 0}
.admin-warn code{background:#fff;border:1px solid #e3cfa8;border-radius:5px;padding:2px 6px;font-size:13px;word-break:break-all}
.admin-warn-inline{background:#fff4e2;border-left:5px solid #d99a3a;border-radius:8px;padding:11px 15px;font-size:14.5px;color:#6b4a14;margin:12px 0}
.supporter-card h3{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0 0 10px;font-size:19px;color:var(--navy)}
.tier-badge{font-size:13px;font-weight:700;border-radius:20px;padding:5px 13px;background:#f3ede2;color:#88692e}
.tier-badge.tier-double{background:var(--navy);color:#f1d9a9}
.tier-badge.tier-none{background:#ece9e4;color:#6b7480}
.supporter-card.tier-double{border-color:var(--gold);border-width:2px}
.supporter-total{font-size:17px;margin:0 0 6px;color:#3c4654}
.supporter-total strong{font-size:22px;color:var(--navy)}
.pending-note{font-size:14px;color:#7b8590}
.admin-merge{border-top:1px dashed #ddd4c4;margin-top:16px;padding-top:14px}
.merge-state{font-size:14.5px;color:#55606d;margin:0 0 10px}
.merged-mark{background:var(--navy);color:#f1d9a9;border-radius:20px;padding:3px 11px;font-size:12px;margin-left:6px}
.solo-mark{background:#ece9e4;color:#6b7480;border-radius:20px;padding:3px 11px;font-size:12px;margin-left:6px}
.merge-label{display:block;font-size:14px;font-weight:700;color:#55606d;width:100%}
.merge-label select{display:block;width:100%;max-width:560px;margin-top:6px;padding:11px;border:1px solid #c8c6c0;border-radius:8px;font:inherit;font-size:15px;background:#fff}
.admin-actions .btn-sub{background:#6b7480}

@media(max-width:680px){
 .page-nav{gap:2px;padding:6px;justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}
 .page-nav a{font-size:15px;padding:10px 12px}
 .budget-row{padding:18px 16px}
 .budget-head{flex-direction:column;gap:2px}
 .budget-amount{font-size:21px}
 .budget-label{font-size:17px}
 .terms-row{grid-template-columns:1fr}
 .terms dt{padding:14px 18px 4px;background:#fff;font-size:15px;color:#8a6420}
 .terms dd{padding:0 18px 16px;font-size:16.5px}
 .reward-grid{grid-template-columns:1fr;gap:18px}
 .reward-card{padding:20px 18px}
 .reward-card h3{font-size:20px}
 .reward-rules{padding:20px 18px}
 .timeline li{padding-left:40px}
 .faq-item{padding:18px 16px}
 .faq-q{font-size:17.5px;gap:10px}
 .faq-a{gap:10px}
 .faq-a p{font-size:16px}
 .faq-mark{flex-basis:28px;width:28px;height:28px;font-size:14px}
 .assurance{padding:16px 18px;font-size:16px}
 .admin-summary{grid-template-columns:1fr 1fr}
 .admin-summary strong{font-size:20px}
}

/* 入金状態に応じた操作ボタン */
.admin-actions .btn-state{background:#e7e3db;color:#6b7480;border:1px solid #d5cfc4;cursor:not-allowed;font-weight:700}
.admin-actions .btn-state.is-confirmed{background:#e7f0e3;color:#3c6b31;border-color:#bbd3b1}
.admin-actions .btn-state.is-cancelled{background:#f0e5e5;color:#8a4a4a;border-color:#dcc3c3}
.pay-state{font-weight:700;border-radius:20px;padding:2px 10px;font-size:13px;background:#f3ede2;color:#88692e}
.pay-state.pay-confirmed{background:#e7f0e3;color:#3c6b31}
.pay-state.pay-cancelled{background:#f0e5e5;color:#8a4a4a}
.admin-summary strong.stat-alert{color:#9a3b3b}
.admin-notice{background:#eef3f8;border:1px solid #b9cde0;border-left:5px solid #4a79a8;border-radius:10px;padding:13px 18px;font-size:15px;margin:14px 0}
.admin-notice{color:#2d4a68}

/* ===== Phase 4: 可読性の調整とクラウドファンディング表現の強化 =====
   見出し・Georgia の数値表示・余白・配色は変更していません。
   本文まわりの文字サイズのみ引き上げています。 */

/* --- A3: 本文の可読性（高齢の方向け。過度な大型化は避ける） --- */
body{font-size:17px}
.intro{font-size:16.5px}
.lead{font-size:17.5px;max-width:680px}
.note{font-size:13.5px}
.fine{font-size:13px}
.card p{font-size:15.5px}
.messages .card p{font-size:16px}
.join-form label{font-size:16.5px}
.join-form input,.join-form textarea{font-size:17px;padding:14px;min-height:52px}
.join-form textarea{min-height:130px}
.join-form button,main button{font-size:16.5px;padding:14px 24px;min-height:50px}
.admin-actions button{font-size:13.5px;min-height:44px}
.budget-detail{font-size:15.5px}
.reward-items{font-size:17.5px}
.reward-rules ul{font-size:16.5px}
.terms dd{font-size:17.5px}
.timeline-body p{font-size:16.5px}
.faq-a p{font-size:17px}

/* --- A2: CTAボタン --- */
.btn-primary{display:inline-block;background:linear-gradient(180deg,#c89a44,#a97b32);color:#fff;font-size:17px;font-weight:700;letter-spacing:.06em;border-radius:10px;padding:16px 38px;box-shadow:0 8px 22px #0000002e;border:1px solid #d9b268}
.btn-primary:hover{background:linear-gradient(180deg,#d4a64e,#b5853a)}
.btn-primary:focus-visible{outline:3px solid #f1d9a9;outline-offset:3px}
.hero-cta{display:flex;flex-direction:column;align-items:center;gap:18px;margin-top:8px}
.hero-cta .hero-link{margin:0}
.funding-act{margin:22px 0 0;text-align:center}
.nav-cta{background:var(--gold);color:#21180a !important;font-weight:700;border-radius:8px;padding:10px 20px !important;white-space:nowrap}
.nav-cta:hover{background:#e6bd6f;color:#1b1407 !important}
.page-nav{justify-content:space-between;gap:10px}
.page-nav-links{display:flex;flex-wrap:wrap;gap:4px;align-items:center}

/* --- A1: 支援総額まわりの強調 --- */
.funding-label{margin:0;font-size:14px;letter-spacing:.1em;color:#66707b}
.funding-amount{margin:4px 0 2px;font:700 clamp(40px,6.5vw,58px)/1.1 Georgia,serif;color:var(--navy);letter-spacing:.01em}
.funding-goal{margin:0 0 6px;font-size:15.5px;color:#66707b}
.funding-goal strong{color:#8a6420;font-size:18px}
.funding-deadline{margin:16px 0 0;font-size:15.5px;color:#55606d;text-align:center;border-top:1px solid #ece9e4;padding-top:16px}
.funding-deadline strong{color:var(--navy)}
.stats{gap:10px}
.stats>div{flex:1;align-items:center;text-align:center}
.stats span{font-size:13.5px}
.stats strong{font:700 30px Georgia,serif}
.stats strong small{font-size:15px;font-weight:400;margin-left:2px;font-family:inherit}

/* --- B2: プロジェクトストーリー（紹介部分に組み込み） --- */
.story{max-width:950px;margin-top:6px}
.story-p{font-size:18px;line-height:2;color:#3f4854;margin:0 0 18px}
.story-p:first-child{font-size:19.5px;color:var(--navy);font-weight:700;line-height:1.9}
.story-closing{margin:26px 0 0;padding:20px 24px;border-left:4px solid var(--gold);background:#fffdf8;font-size:17px;line-height:1.95;color:#4a5361;border-radius:0 10px 10px 0}
.story-draft{margin:16px 0 0;font-size:13.5px;color:#8a5a1a;background:#fff4e2;border:1px dashed #d9a94f;border-radius:8px;padding:10px 14px}
.story-draft code{background:#fff;border:1px solid #e3cfa8;border-radius:4px;padding:1px 5px;font-size:12.5px}

/* --- B1: 活動報告（公開側） --- */
.reports{display:grid;gap:20px;margin-top:32px}
.report-item{background:#fff;border:1px solid #e7ddce;border-radius:14px;padding:26px 28px}
.report-date{display:inline-block;font:700 14px Georgia,serif;letter-spacing:.06em;color:#8a6420;background:#f6f1e7;border-radius:20px;padding:5px 15px}
.report-item h3{margin:13px 0 10px;font-size:21px;color:var(--navy);line-height:1.5}
.report-item p{margin:0;font-size:16.5px;line-height:1.95;color:#49535f}

/* --- B1: 活動報告（管理画面） --- */
.admin-crumb{margin:0 0 10px;font-size:15px}
.admin-crumb a{color:#8a6420;text-decoration:underline;font-weight:700}
.upd-form{background:#fff;border:1px solid #e7ddce;border-radius:14px;padding:22px 24px;margin:16px 0}
.upd-card .upd-form{border:0;background:#fbf9f5;padding:16px 18px}
.upd-form label{display:block;font-weight:700;font-size:15px;margin:12px 0 6px;color:#45505e}
.upd-form input[type=text],.upd-form input:not([type]),.upd-form textarea{width:100%;padding:13px;border:1px solid #c8c6c0;border-radius:8px;font:inherit;font-size:16.5px}
.upd-form textarea{min-height:150px;line-height:1.8}
.upd-check{display:flex;align-items:center;gap:10px;font-weight:400 !important;font-size:15.5px !important;margin-top:14px !important}
.upd-check input{width:22px;height:22px}
.upd-card h3{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0 0 6px;font-size:19px;color:var(--navy)}
.upd-badge{font-size:13px;font-weight:700;border-radius:20px;padding:4px 13px}
.upd-badge.is-pub{background:var(--navy);color:#f1d9a9}
.upd-badge.is-draft{background:#ece9e4;color:#6b7480}
.upd-card.is-published{border-color:var(--gold)}
.upd-date{font-size:13.5px;color:#7b8590;font-weight:400}
.upd-ops{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;border-top:1px dashed #ddd4c4;margin-top:14px;padding-top:14px}
.upd-delete{margin-left:auto}
.btn-danger{background:#9a3b3b !important;color:#fff !important;font-size:13.5px !important;min-height:44px}
.btn-danger:hover{background:#b14646 !important}
.upd-hint{margin:10px 0 0;font-size:13px;color:#7b8590}

/* --- A2: スマートフォン用の固定CTA --- */
.sticky-cta{display:none}
@media(max-width:680px){
 body{font-size:16.5px}
 .hero-cta{gap:14px}
 .btn-primary{width:100%;max-width:330px;text-align:center;padding:16px 20px}
 .page-nav{flex-wrap:nowrap}
 .page-nav-links{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}
 .nav-cta{flex:0 0 auto}
 .funding-amount{font-size:40px}
 .stats{gap:6px}
 .stats strong{font-size:24px}
 .stats span{font-size:12.5px}
 .story-p{font-size:17px}
 .story-p:first-child{font-size:18px}
 .report-item{padding:20px 18px}
 .report-item h3{font-size:19px}
 .upd-form{padding:18px 16px}
 .upd-ops{gap:10px}
 .upd-delete{margin-left:0;width:100%}
 .btn-danger{width:100%}

 /* 固定CTA本体。footer と申込フォームの上では JS が hidden にする */
 .sticky-cta{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;align-items:center;gap:12px;
  background:#07192cf2;backdrop-filter:blur(6px);border-top:1px solid #b28a4955;
  padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px))}
 .sticky-cta[hidden]{display:none !important}
 .sticky-cta-info{display:flex;flex-direction:column;line-height:1.25;flex:0 0 auto}
 .sticky-cta-info span{font-size:11.5px;color:#c6b58e;letter-spacing:.08em}
 .sticky-cta-info strong{font:700 19px Georgia,serif;color:#f1d9a9}
 .sticky-cta .btn-primary{flex:1;width:auto;max-width:none;padding:14px 16px;font-size:16px;box-shadow:none}
 /* 固定CTAがフッターに重ならないよう、下に余白を確保する（JS無効時の保険） */
 footer{padding-bottom:86px}
}

/* ===== Phase 5: スマートフォン表示の調整／連絡先／振込案内 =====
   配色・ヒーロー・カードの質感・Georgia の数値表現・セクション構成は変更していません。
   文字は縮小せず、行長・行間・余白・強調の整理で読みやすさを上げています。 */

/* --- 申込フォーム：連絡先・注意書き・エラー --- */
.contact-set{border:1px solid #e0d6c4;border-radius:12px;padding:18px 20px 20px;margin:22px 0 4px;background:#fdfbf7}
.contact-set.is-error{border-color:#c0564f;background:#fdf4f3}
.contact-set legend{font-weight:700;font-size:16.5px;color:var(--navy);padding:0 8px}
.contact-why{font-size:14.5px;line-height:1.85;color:#5c6572;margin:0 0 6px}
.contact-set label{margin-top:14px}
.join-form .is-error{border-color:#c0564f;background:#fffafa}
.form-errors{background:#fdf1f0;border:2px solid #c0564f;border-radius:10px;padding:16px 18px;margin:0 0 18px;color:#8e3a34}
.form-errors strong{display:block;font-size:16.5px;margin-bottom:8px}
.form-errors ul{margin:0;padding-left:1.25em;font-size:15.5px;line-height:1.85}
.form-errors li{margin:5px 0}
.form-notice{background:#fff8e8;border-left:5px solid var(--gold);border-radius:0 10px 10px 0;padding:15px 18px;margin:22px 0 4px}
.form-notice p{margin:0 0 6px;font-size:16px;line-height:1.85;color:#5d4a23}
.form-notice p:last-child{margin-bottom:0}
.join-form fieldset{min-width:0}

/* --- 申込完了・再確認画面 --- */
.receipt{max-width:720px}
.receipt h1{font-size:clamp(26px,4.4vw,38px);line-height:1.5;margin:12px 0 18px}
.receipt-card{background:#fff;border:1px solid #e7ddce;border-radius:14px;padding:24px 26px;margin:20px 0}
.receipt-card h2{font-size:19px;color:var(--navy);margin:0 0 14px;letter-spacing:.04em}
.receipt-card h3{font-size:17px;color:var(--navy);margin:20px 0 8px}
.receipt-card p{font-size:16.5px;line-height:1.9;color:#49535f;margin:0 0 10px}
.receipt-card p:last-child{margin-bottom:0}
.receipt-list,.bank-list{margin:0;display:grid;gap:0}
.receipt-list>div,.bank-list>div{display:grid;grid-template-columns:120px 1fr;gap:12px;padding:11px 0;border-bottom:1px solid #f0ebe1}
.receipt-list>div:last-child,.bank-list>div:last-child{border-bottom:0}
.receipt-list dt,.bank-list dt{margin:0;font-size:14.5px;color:#7b8590;font-weight:700}
.receipt-list dd,.bank-list dd{margin:0;font-size:17px;color:var(--navy);word-break:break-word}
.receipt-no{font:700 19px Georgia,serif;letter-spacing:.06em}
.receipt-amount{font:700 22px Georgia,serif !important}
.bank-card{border:2px solid var(--gold);background:#fffdf8}
.bank-list dd{font-size:18px;font-weight:700}
.bank-pending{background:#f6f1e7;border-radius:8px;padding:14px 16px;font-size:16px !important}
.notice-card{background:#fff8e8;border-color:#e6cfa4}
.save-card{background:#f7f9fb;border-color:#cfdae5}
.copy-row{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin:14px 0 10px !important}
.copy-done{color:#3c6b31;font-weight:700;font-size:15.5px}
.reurl-title{border-top:1px solid #dde4ea;padding-top:16px}
.reurl{margin:6px 0 10px !important}
.reurl code{display:block;background:#fff;border:1px solid #cfdae5;border-radius:8px;padding:12px 14px;
 font-size:13.5px;line-height:1.7;color:#33475c;word-break:break-all;-webkit-user-select:all;user-select:all}
.fine.warn{color:#8a5a1a}
.receipt-back{margin-top:26px}

/* --- 管理画面：連絡先と振込先の設定状況 --- */
.contact-row{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin:8px 0 !important;font-size:15px}
.contact-tag{background:#eef3f8;color:#33475c;border-radius:20px;padding:3px 11px;font-size:12.5px;font-weight:700}
.contact-row a{color:#2f5b86;text-decoration:underline;word-break:break-all}
.contact-none{color:#8d969f;font-size:14px}
.bank-status{border-radius:12px;padding:18px 22px;margin:18px 0;border:2px solid}
.bank-status h2{margin:0 0 10px;font-size:18px}
.bank-status.is-ready{background:#f1f7ef;border-color:#9dbd90}
.bank-status.is-pending{background:#fff4e2;border-color:#d99a3a}
.bank-check{margin:10px 0 0;padding-left:1.2em;font-size:15px;color:#3c4654}
.bank-check li{margin:4px 0}

/* ===== スマートフォン最適化 ===== */
@media(max-width:680px){
 /* 本文は縮小せず、行長と余白で読みやすくする */
 .section{padding:56px 18px}
 .container{max-width:100%}
 .lead,.story-p,.budget-detail,.timeline-body p,.faq-a p,.reward-rules li,.terms dd{
  overflow-wrap:anywhere;line-break:strict}
 .lead{font-size:17px;line-height:1.95}
 .story-p{font-size:17px;line-height:1.95;margin-bottom:16px}
 .story-p:first-child{font-size:18px;line-height:1.85}
 .section h2,.closing h2{font-size:26px;line-height:1.55;letter-spacing:.04em}
 .eyebrow{font-size:11px;letter-spacing:.2em}

 /* 数値と単位が分かれて折り返さないようにする */
 .funding-amount,.receipt-no,.receipt-amount,.budget-amount,.stats strong,.supporter-total strong{
  white-space:nowrap}
 .funding-goal{font-size:15px}
 .funding-deadline{font-size:15px;line-height:1.8}
 .funding{padding:22px 18px}
 .funding-act .btn-primary{width:100%}

 /* 資金の使い道：費目と金額を上下に、割合は実績と誤読されないよう明示 */
 .budget{gap:18px}
 .budget-label{font-size:16.5px;line-height:1.7}
 .budget-note{display:inline-block;font-size:13.5px}
 .budget-amount{font-size:22px}
 .budget-bar{height:26px}
 .budget-fill span{font-size:13px}
 .budget-detail{font-size:15px;line-height:1.85}

 /* 募集条件：ラベルと内容を縦積みにし、値は折り返さず読める幅に */
 .terms dt{font-size:14.5px;letter-spacing:.04em}
 .terms dd{font-size:16.5px;line-height:1.9;padding-bottom:18px}

 /* 特典：画像は大きく、説明は窮屈にしない */
 .reward-card{padding:22px 18px}
 .reward-range{font-size:13.5px;padding:5px 13px}
 .reward-card h3{font-size:19.5px;line-height:1.55;margin:12px 0 16px}
 .reward-visual{padding:14px}
 .reward-medal{width:72%;max-width:230px}
 .case-figure{max-width:100%}
 .figure-caption{font-size:13.5px;line-height:1.85;padding:14px}
 .reward-items{font-size:16.5px;line-height:1.9}
 .reward-items li{margin:9px 0}

 /* 特典判定のきまり：太字を絞り、行間を広げる */
 .reward-rules{padding:22px 18px}
 .reward-rules ul{font-size:16px;line-height:1.95}
 .reward-rules li{margin:14px 0}

 /* スケジュール */
 .timeline-body h3{font-size:18.5px}
 .timeline-period{font-size:14px}

 /* FAQ */
 .faq-item{padding:20px 17px}
 .faq-q{font-size:17px;line-height:1.7}
 .faq-a p{font-size:16.5px;line-height:1.95}

 /* 申込フォーム：指で押しやすく、ラベルと入力欄の間隔を確保 */
 .join-form{padding:22px 18px}
 .join-form label{margin:18px 0 8px}
 .join-form input,.join-form textarea{font-size:16px;padding:15px;min-height:54px}
 .join-form button{width:100%;min-height:56px;font-size:17px;margin-top:18px}
 .contact-set{padding:16px 15px 18px}
 .contact-set legend{font-size:16px}
 .contact-why{font-size:14px}

 /* 完了画面 */
 .receipt-card{padding:20px 17px;margin:16px 0}
 .receipt-list>div,.bank-list>div{grid-template-columns:1fr;gap:3px;padding:10px 0}
 .receipt-list dt,.bank-list dt{font-size:13.5px}
 .bank-list dd{font-size:17.5px}
 .copy-row .btn-primary{width:100%}
 .reurl code{font-size:12.5px}

 /* 管理画面 */
 .contact-row{font-size:14.5px}
 .bank-status{padding:15px 16px}
}

/* --- 360px 以下のさらに狭い端末 --- */
@media(max-width:360px){
 .section{padding:48px 14px}
 .section h2,.closing h2{font-size:23px}
 .funding-amount{font-size:35px}
 .stats strong{font-size:21px}
 .stats span{font-size:11.5px}
 .budget-amount{font-size:20px}
 .page-nav a{font-size:14.5px;padding:10px}
 .nav-cta{padding:9px 14px !important}
 /* 320px では「5歳の「いま」を、」が1行に収まらず3行になるため、少しだけ詰める */
 .hero h1{font-size:31px;letter-spacing:.04em}
}

/* ===== Phase 6: 受付メール ===== */
.req{background:#9a3b3b;color:#fff;border-radius:4px;padding:2px 8px;font-size:12.5px;font-weight:700;margin-left:6px;vertical-align:2px}
.opt{background:#ece9e4;color:#6b7480;border-radius:4px;padding:2px 8px;font-size:12.5px;font-weight:700;margin-left:6px;vertical-align:2px}
.mail-ok{background:#eef5ea;border-left:4px solid #6e9c5e;border-radius:0 8px 8px 0;padding:14px 16px;color:#33572a !important}
.mail-ng{background:#fdf1f0;border-left:4px solid #c0564f;border-radius:0 8px 8px 0;padding:14px 16px;color:#8e3a34 !important}
.mail-wait{background:#fff8e8;border-left:4px solid var(--gold);border-radius:0 8px 8px 0;padding:14px 16px;color:#5d4a23 !important}
/* 管理画面 */
.mail-row{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin:10px 0 6px !important;font-size:14px}
.mail-badge{border-radius:20px;padding:3px 12px;font-size:12.5px;font-weight:700;background:#ece9e4;color:#6b7480}
.mail-badge.mail-sent{background:#e7f0e3;color:#3c6b31}
.mail-badge.mail-failed{background:#f6dcda;color:#8e3a34}
.mail-badge.mail-skipped{background:#f3ede2;color:#88692e}
.mail-meta{color:#7b8590;font-size:13px}
.mail-err{color:#8e3a34;font-size:13px;background:#fdf1f0;border-radius:6px;padding:2px 9px;word-break:break-all}
@media(max-width:680px){ .mail-row{font-size:13.5px} }

/* ===== Phase 7: 確認URLのコピー（管理画面） ===== */
.admin-actions .btn-copy{background:#2f5b86;color:#fff;font-size:13.5px;min-height:44px}
.admin-actions .btn-copy:hover{background:#3a6d9e}
.admin-actions .btn-copy[disabled]{background:#8fa6bc;cursor:progress}
.copy-result{margin:8px 0 0 !important;font-size:14px;border-radius:8px;padding:9px 13px;line-height:1.7}
.copy-result.is-ok{background:#eef5ea;border:1px solid #9dbd90;color:#33572a}
.copy-result.is-ng{background:#fdf1f0;border:1px solid #d8a6a2;color:#8e3a34}
.copy-result.is-warn{background:#fff4e2;border:1px solid #d9a94f;color:#6b4a14}
.copy-result.is-busy{background:#eef3f8;border:1px solid #b9cde0;color:#33475c}
@media(max-width:680px){ .admin-actions .btn-copy{width:100%} .copy-result{font-size:13.5px} }

/* ===== ヒーローの紹介文：スマートフォンでの改行位置 ===== */
/* PC・タブレットでは .sp-br を消し、.pc-br（従来の <br>）だけを使うので
   表示は従来とまったく同じ2行のまま。
   スマートフォンでは文ごとに改行し、2つの文のあいだに 0.6em の余白を置く。
   .intro の文字サイズ（16.5px・高齢の方向けの可読性設定）は変更しない。
   ※ .intro の font-size は 145行目で上書きされる構造のため、
      この規則は必ずファイル末尾に置くこと。 */
.sp-br{display:none}
@media(max-width:680px){
 .sp-br{display:inline}
 .pc-br{display:none}
 .intro-2{display:block;margin-top:.6em}
}

/* ===== 日本語の折り返し（公開ページ改善） ===== */
/* 日本語は文字と文字の間ならどこでも改行できるため、PC幅では語の途中で割れて
   読みにくくなる（例：「2枚展示用スタン／ド」「変更があ／れば」）。
   .nw を付けた範囲は「ひとつのまとまり」として扱われ、途中で割れずに次の行へ送られる。
   幅が足りないときは内部で折り返すので、スマートフォンでもはみ出さない。 */
.nw{display:inline-block}
/* 対応ブラウザ（Chromium系）では文節単位の自動改行と厳密な禁則処理も有効にする。
   未対応のブラウザでは word-break の宣言だけが無視され、他の指定には影響しない。 */
.intro,.lead,.caution,.note,.fine,.figure-caption,.reward-hint,.form-notice p,.budget-detail,.terms dd,.timeline-body p,.story-p,.story-closing{line-break:strict;word-break:auto-phrase}
