/* ======================================================================
   パターン⑤ 雑誌型（エディトリアル）
   白い紙面に黒い文字、細い罫線。見出しは大きな明朝、英数字は Playfair Display
   ====================================================================== */
body[data-pattern="5"]{--ink:#16181d;--paper:#fbfaf7;--rule:#1d1f24;--soft:#ecebe6;--mincho:"Shippori Mincho B1","Noto Serif JP",serif;--en:"Playfair Display",Georgia,serif;background:var(--paper);color:var(--ink)}
.p5-wrap{max-width:1120px;margin:0 auto;padding:0 24px}

/* ---- マストヘッド（雑誌の題字） ---- */
.p5-header{position:relative;background:var(--paper);box-shadow:none;border-bottom:3px double var(--rule)}
.p5-masthead{text-align:center;padding:22px 20px 8px;border-bottom:1px solid var(--rule);max-width:1120px;margin:0 auto}
.p5-masthead__meta{display:flex;justify-content:space-between;font-size:12px;letter-spacing:.12em;color:#4b4f57;font-weight:700}
.p5-masthead__name{display:block;font-family:var(--hand);font-weight:var(--hand-weight);font-size:clamp(40px,6vw,76px);letter-spacing:.14em;line-height:1.15;margin:6px 0}
.p5-bar{justify-content:center;padding:6px 20px}
.p5-nav{gap:34px}
.p5-nav a{font-size:14px;font-weight:700;letter-spacing:.1em}
.p5-nav a:hover{color:var(--blue)}
.p5-nav a.nav__cta{background:var(--ink);color:#fff;border-radius:0;box-shadow:none;padding:6px 18px}
body[data-pattern="5"] .menu-btn span{background:var(--ink)}

/* ---- 表紙 ---- */
.p5-cover{max-width:1120px;margin:0 auto;padding:56px 24px 72px;display:grid;grid-template-columns:1.25fr 1fr;gap:56px;align-items:end}
.p5-cover__title{font-family:var(--hand);font-weight:var(--hand-weight);font-size:clamp(34px,5vw,74px);line-height:1.22;letter-spacing:var(--hand-spacing)}
.p5-line{display:block;overflow:hidden;padding-bottom:.04em}
.p5-line>span{display:inline-block}
.p5-accent{color:var(--blue)}
.p5-byline{margin-top:28px;font-size:14px;border-top:1px solid var(--rule);padding-top:12px;letter-spacing:.08em}
.p5-cover__photo{margin:0}
.p5-cover__photo img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 18%;filter:saturate(.95)}

/* 演出：見出しが下から1行ずつ現れる */
body[data-pattern="5"] [data-reveal="line"]>span{transform:translateY(105%);transition:transform .9s cubic-bezier(.2,.7,.2,1)}
body[data-pattern="5"] [data-reveal="line"].is-in>span{transform:none}
body[data-pattern="5"] .p5-line:nth-child(2)>span{transition-delay:.12s}
body[data-pattern="5"] .p5-line:nth-child(3)>span{transition-delay:.24s}
body[data-pattern="5"] [data-reveal="line"]{overflow:hidden}

/* ---- セクション共通 ---- */
.p5-sec{padding:96px 0;border-top:1px solid var(--rule)}
.p5-sec--paper{background:#f3f1ea}
body[data-pattern="5"] .p5-h2{text-align:left;font-family:var(--hand);font-weight:var(--hand-weight);font-size:clamp(28px,3.6vw,46px);color:var(--ink);margin:0 0 40px;padding:0}
body[data-pattern="5"] .p5-h2::after{display:none}
body[data-pattern="5"] .p5-h2>span{display:inline-block}
.p5-h3{font-family:var(--hand);font-weight:var(--hand-weight);font-size:22px;margin:56px 0 16px}
.p5-lead{max-width:720px;margin-bottom:32px;color:#3b3f47}
.p5-more{margin-top:24px;text-align:right}
.p5-more a{font-weight:700;border-bottom:1px solid currentColor}

/* ---- 巻頭言 ---- */
.p5-columns{column-count:2;column-gap:56px;column-rule:1px solid var(--soft);font-size:16px;line-height:2.05}
.p5-columns p{margin-bottom:1.2em;break-inside:avoid-column}
.p5-dropcap::first-letter{float:left;font-family:var(--mincho);font-weight:800;font-size:4.2em;line-height:.9;margin:.08em .12em 0 0;color:var(--blue)}
.p5-pull{margin:48px 0;padding:28px 0;border-top:3px solid var(--ink);border-bottom:1px solid var(--ink);font-family:var(--hand);font-weight:var(--hand-weight);font-size:clamp(24px,3vw,38px);line-height:1.6;text-align:center}
.p5-pull>span{display:inline-block}
.p5-sign{text-align:right;font-family:var(--mincho);font-weight:800}

/* ---- 数字で読む ---- */
.p5-numbers{background:var(--ink);color:#fff;padding:64px 0}
.p5-numbers__title{font-family:var(--hand);font-weight:var(--hand-weight);font-size:20px;letter-spacing:.2em;margin-bottom:24px}
.p5-numbers__row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0}
.p5-num{padding:10px 28px;border-left:1px solid rgba(255,255,255,.25)}
.p5-num:first-child{border-left:0;padding-left:0}
.p5-num__big{font-family:var(--en);font-weight:700;font-size:64px;line-height:1.05}
.p5-num__big small{font-family:"Noto Sans JP",sans-serif;font-size:15px;margin:0 4px;font-weight:700}
.p5-num__label{font-size:14px;opacity:.85;margin-top:6px}

/* ---- 政策：章立て ---- */
.p5-chapters{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:0 56px}
.p5-chapter{padding:28px 0;border-top:1px solid var(--rule)}
.p5-chapter__no{font-family:var(--mincho);font-weight:800;font-size:14px;color:var(--blue);letter-spacing:.2em}
.p5-chapter h3{font-family:var(--hand);font-weight:var(--hand-weight);font-size:26px;margin:6px 0 10px}
.p5-chapter p{color:#3b3f47;line-height:1.95}
.p5-chapter.is-hot h3{color:var(--blue)}

/* ---- 活動報告：目次 ---- */
.p5-index{border-top:3px solid var(--ink)}
.p5-entry{display:grid;grid-template-columns:60px 1fr 140px;gap:24px;align-items:center;padding:22px 0;border-bottom:1px solid var(--rule);transition:background .2s}
.p5-entry:hover{background:#fff}
.p5-entry__no{font-family:var(--en);font-style:italic;font-size:30px;color:var(--blue)}
.p5-entry__main{display:flex;flex-direction:column;gap:4px}
.p5-entry__meta{font-size:13px;color:#4b4f57;letter-spacing:.06em}
.p5-entry__title{font-family:var(--hand);font-weight:var(--hand-weight);font-size:20px;line-height:1.5}
.p5-entry__text{font-size:14px;color:#4b4f57}
.p5-entry img{width:140px;aspect-ratio:4/3;object-fit:cover}

/* ---- 議会活動 ---- */
.p5-table{width:100%;border-collapse:collapse;border-top:1px solid var(--rule)}
.p5-table th,.p5-table td{padding:16px 10px;border-bottom:1px solid var(--rule);text-align:left;vertical-align:top}
.p5-table th{width:180px;font-family:var(--mincho);font-weight:800}
body[data-pattern="5"] .cv{--cv-radius:0;--cv-thumb:linear-gradient(135deg,#1d1f24,color-mix(in srgb,var(--blue) 60%,#1d1f24));max-width:none}

/* ---- プロフィール ---- */
.p5-profile{display:grid;grid-template-columns:360px 1fr;gap:56px;align-items:start}
.p5-profile__photo{margin:0}
.p5-profile__photo img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center 18%}
body[data-pattern="5"] .p5-profile .p5-h2{margin-bottom:6px}
.p5-profile__kana{font-size:13px;letter-spacing:.3em;color:#4b4f57}
.p5-profile__lines{margin:14px 0 22px;font-weight:700;color:color-mix(in srgb,var(--blue) 82%,#000)}
.p5-profile__dl{display:grid;grid-template-columns:120px 1fr;border-top:1px solid var(--rule)}
.p5-profile__dl dt,.p5-profile__dl dd{padding:12px 0;border-bottom:1px solid var(--soft)}
.p5-profile__dl dt{font-weight:700}
.p5-motto{margin-top:24px;font-family:var(--hand);font-weight:var(--hand-weight);font-size:22px}

/* ---- ご相談・フッター ---- */
.p5-contact{background:var(--paper)}
body[data-pattern="5"] .p5-contact .p5-h2{text-align:center}
.p5-contact__lead{max-width:680px;margin:0 auto 32px;line-height:2}
.p5-btn{display:inline-block;background:var(--ink);color:#fff;font-weight:800;padding:16px 44px;transition:.2s}
.p5-btn:hover{background:var(--blue)}
.p5-contact__info{margin-top:18px;font-size:14px}
.p5-sns{display:flex;justify-content:center;gap:16px;margin-top:20px}
.p5-sns__link{display:inline-flex;align-items:center;gap:6px;font-weight:700;border-bottom:1px solid currentColor}
.p5-sns__link svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2}
.p5-footer{background:var(--ink);border-top:0;padding:48px 0 96px}
.p5-footer__name{font-family:var(--hand);font-weight:var(--hand-weight);font-size:30px;color:#fff;letter-spacing:.1em}
.p5-footer__office{font-size:13px;margin-top:10px}

/* ---- スマホ ---- */
@media (max-width:900px){
  .p5-cover{grid-template-columns:1fr;gap:28px;padding-top:32px}
  .p5-cover__photo{order:-1}
  .p5-columns{column-count:1}
  .p5-chapters{grid-template-columns:1fr}
  .p5-profile{grid-template-columns:1fr;gap:28px}
  .p5-profile__photo{max-width:320px}
}
@media (max-width:768px){
  .p5-masthead__meta{font-size:12px;flex-wrap:wrap;justify-content:center;gap:4px 14px}
  .p5-bar{justify-content:flex-end;position:absolute;top:8px;right:8px;padding:0}
  .p5-sec{padding:64px 0}
  .p5-entry{grid-template-columns:40px 1fr;gap:12px}
  .p5-entry img{display:none}
  .p5-table th{width:110px}
  .p5-num{border-left:0;border-top:1px solid rgba(255,255,255,.25);padding:16px 0}
  .p5-num:first-child{border-top:0}
}
body[data-pattern="5"].is-slide .p5-cover{padding-top:32px}
